@yuuvis/client-framework 0.8.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions/lib/actions/delete-action/delete-action.d.ts +1 -0
- package/common/index.d.ts +1 -0
- package/common/lib/services/error-messages/error-messages.service.d.ts +7 -0
- package/common/lib/services/index.d.ts +1 -0
- package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +4 -10
- package/esm2022/common/index.mjs +2 -1
- package/esm2022/common/lib/directives/drag-select.directive.mjs +2 -2
- package/esm2022/common/lib/services/error-messages/error-messages.service.mjs +68 -0
- package/esm2022/common/lib/services/index.mjs +2 -0
- package/esm2022/forms/index.mjs +9 -8
- package/esm2022/forms/lib/elements/data-grid/data-grid/data-grid.component.mjs +172 -0
- package/esm2022/forms/lib/elements/data-grid/edit-table-data/edit-data.component.mjs +95 -0
- package/esm2022/forms/lib/elements/data-grid/model/data-grid.interface.mjs +9 -0
- package/esm2022/forms/lib/elements/index.mjs +11 -0
- package/esm2022/forms/lib/elements/organization/organization.component.mjs +47 -29
- package/esm2022/icons/lib/icons.mjs +3 -2
- package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +5 -4
- package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +1 -1
- package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +7 -52
- package/esm2022/object-details/index.mjs +2 -1
- package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +5 -4
- package/esm2022/object-details/lib/retention-badge/retention-badge.component.mjs +27 -0
- package/esm2022/object-form/index.mjs +1 -1
- package/esm2022/object-form/lib/object-form.component.mjs +2 -1
- package/esm2022/object-form/lib/object-form.service.mjs +5 -2
- package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +15 -13
- package/esm2022/pagination/lib/pagination.component.mjs +4 -6
- package/esm2022/sequence-list/index.mjs +1 -3
- package/esm2022/sequence-list/lib/sequence-list.component.mjs +11 -16
- package/esm2022/sequence-list/lib/sequence-list.interface.mjs +1 -1
- package/esm2022/tile-list/lib/tile/tile.component.mjs +3 -3
- package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-actions.mjs +3 -9
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +69 -4
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +1194 -909
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +2 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +10 -55
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +26 -5
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +5 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +14 -12
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -5
- package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +17 -296
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/forms/index.d.ts +1 -7
- package/forms/lib/elements/data-grid/data-grid/data-grid.component.d.ts +38 -0
- package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +21 -0
- package/forms/lib/elements/data-grid/model/data-grid.interface.d.ts +14 -0
- package/forms/lib/elements/index.d.ts +10 -0
- package/forms/lib/elements/organization/organization.component.d.ts +13 -4
- package/lib/assets/i18n/de.json +131 -0
- package/lib/assets/i18n/en.json +131 -0
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +0 -1
- package/object-details/index.d.ts +1 -0
- package/object-details/lib/retention-badge/retention-badge.component.d.ts +12 -0
- package/package.json +4 -4
- package/sequence-list/index.d.ts +0 -2
- package/sequence-list/lib/sequence-list.component.d.ts +2 -2
- package/sequence-list/lib/sequence-list.interface.d.ts +5 -4
- package/styles/client-framework.scss +55 -18
- package/esm2022/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.mjs +0 -183
- package/esm2022/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.mjs +0 -114
- package/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.d.ts +0 -52
- package/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.d.ts +0 -36
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { NgClass } from '@angular/common';
|
|
2
2
|
import { ChangeDetectorRef, Component, effect, inject, input, signal, untracked, viewChild } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { BaseObjectTypeField, ContentStreamField, DmsService, EventService, ObjectConfigService, Operator, SearchService, SystemService, TranslateModule, TranslateService, YuvEventType } from '@yuuvis/client-core';
|
|
4
|
+
import { BaseObjectTypeField, ContentStreamField, DmsService, EventService, ObjectConfigService, Operator, SearchService, SystemService, SystemSOT, TranslateModule, TranslateService, YuvEventType } from '@yuuvis/client-core';
|
|
5
5
|
import { BusyOverlayDirective } from '@yuuvis/client-framework/common';
|
|
6
6
|
import { YUV_ICONS } from '@yuuvis/client-framework/icons';
|
|
7
|
+
import { RetentionBadgeComponent } from '@yuuvis/client-framework/object-details';
|
|
7
8
|
import { ObjectFlavorComponent } from '@yuuvis/client-framework/object-flavor';
|
|
8
9
|
import { RendererDirective } from '@yuuvis/client-framework/renderer';
|
|
9
10
|
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
@@ -69,11 +70,6 @@ export class ObjectSummaryComponent {
|
|
|
69
70
|
}
|
|
70
71
|
else
|
|
71
72
|
this.flavorData = undefined;
|
|
72
|
-
// this.retentionEndDate = this._dmsObject.data[RetentionField.RETENTION_END]
|
|
73
|
-
// ? new Date(this._dmsObject.data[RetentionField.RETENTION_END] as string)
|
|
74
|
-
// : undefined;
|
|
75
|
-
// const today = new Date();
|
|
76
|
-
// this.retentionEnded = this.retentionEndDate && today > this.retentionEndDate;
|
|
77
73
|
}
|
|
78
74
|
else {
|
|
79
75
|
this.flavorData = undefined;
|
|
@@ -150,11 +146,13 @@ export class ObjectSummaryComponent {
|
|
|
150
146
|
const q = {
|
|
151
147
|
fields: [`SUM(${ContentStreamField.LENGTH})`],
|
|
152
148
|
aggs: [BaseObjectTypeField.BASE_TYPE_ID],
|
|
153
|
-
filters: [
|
|
149
|
+
filters: [
|
|
150
|
+
{
|
|
154
151
|
f: BaseObjectTypeField.PARENT_ID,
|
|
155
152
|
o: Operator.EQUAL,
|
|
156
153
|
v1: id
|
|
157
|
-
}
|
|
154
|
+
}
|
|
155
|
+
]
|
|
158
156
|
};
|
|
159
157
|
this.#searchService.aggregate(q, [BaseObjectTypeField.BASE_TYPE_ID]).subscribe((res) => {
|
|
160
158
|
const entries = res.aggregations[0].entries;
|
|
@@ -238,7 +236,10 @@ export class ObjectSummaryComponent {
|
|
|
238
236
|
const contentFields = [ContentStreamField.FILENAME, ContentStreamField.LENGTH, ContentStreamField.MIME_TYPE];
|
|
239
237
|
const dmsObject = this.dmsObject();
|
|
240
238
|
if (dmsObject) {
|
|
241
|
-
|
|
239
|
+
const retentionFields = dmsObject.data[BaseObjectTypeField.SECONDARY_OBJECT_TYPE_IDS].includes(SystemSOT.DESTRUCTION_RETENTION)
|
|
240
|
+
? [BaseObjectTypeField.RETENTION_START, BaseObjectTypeField.RETENTION_END]
|
|
241
|
+
: [];
|
|
242
|
+
(dmsObject.content ? [...fields, ...contentFields, ...retentionFields] : fields).forEach((f) => {
|
|
242
243
|
this.baseData.push({
|
|
243
244
|
label: this.#systemService.getLocalizedLabel(f.replace('_title', '')) || f,
|
|
244
245
|
value: {
|
|
@@ -250,7 +251,7 @@ export class ObjectSummaryComponent {
|
|
|
250
251
|
}
|
|
251
252
|
}
|
|
252
253
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectSummaryComponent, isStandalone: true, selector: "yuv-object-summary", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, dmsObjectInput: { classPropertyName: "dmsObjectInput", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, objectId: { classPropertyName: "objectId", publicName: "objectId", isSignal: true, isRequired: false, transformFunction: null }, configType: { classPropertyName: "configType", publicName: "configType", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "flavorCmp", first: true, predicate: ObjectFlavorComponent, descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.BusyOverlayDirective, inputs: ["yuvBusyOverlay", "busy"] }], ngImport: i0, template: "@let imageSlide = slide();\n<section class=\"slide\" [yuvBusyOverlay]=\"imageSlide.loading\">\n @if (imageSlide.uri || imageSlide.loading) {\n <img draggable=\"false\" [ngClass]=\"{ loading: imageSlide.loading }\" [attr.data-orientation]=\"imageSlide.orientation\" [src]=\"imageSlide.uri\" />\n } @else if (imageSlide.icon?.svg) {\n <yvc-icon draggable=\"false\" [svg]=\"imageSlide.icon?.svg!\"></yvc-icon>\n } @else if (imageSlide.icon?.src) {\n <yvc-icon draggable=\"false\" [svgSrc]=\"imageSlide.icon?.src!\"></yvc-icon>\n }\n @if (folderInfo) {\n <div class=\"badge\">{{ folderInfo.size }}</div>\n }\n</section>\n\n@let o = dmsObject();\n@if (o && !o.isFolder) {\n <yuv-object-flavor [dmsObject]=\"o\" (flavorClick)=\"onFlavorClick($event)\"></yuv-object-flavor>\n}\n\n<div class=\"content\">\n @let header = headerData();\n <section class=\"title\">\n <h1>{{ header?.title }}</h1>\n\n <div class=\"actions\">\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"actions()\"></yvc-overflow-menu>\n </div>\n </section>\n\n @if (flavorData) {\n <section class=\"flavor properties\">\n <!-- <h2>{{ flavorData.label }}</h2> -->\n @for (p of flavorData.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n\n <section class=\"properties\">\n @for (p of baseData; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section{padding:var(--app-pane-padding)}:host section h2{font-size:var(--font-subhead);font-weight:400}:host yuv-object-flavor{border-block-end:1px solid var(--panel-divider-color);min-height:30px}:host .content{flex:1;overflow-y:auto}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: BusyOverlayDirective, selector: "[yuvBusyOverlay]", inputs: ["yuvBusyOverlay"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: RendererDirective, selector: "[yuvRenderer]", inputs: ["yuvRenderer"] }, { kind: "component", type: ObjectFlavorComponent, selector: "yuv-object-flavor", inputs: ["dmsObject"], outputs: ["flavorClick"] }, { kind: "ngmodule", type: YvcOverlayModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "component", type: YvcOverflowMenuComponent, selector: "yvc-overflow-menu", inputs: ["overflowIcon", "groupLabels", "menuItems", "hideLabels"] }] }); }
|
|
254
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectSummaryComponent, isStandalone: true, selector: "yuv-object-summary", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, dmsObjectInput: { classPropertyName: "dmsObjectInput", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, objectId: { classPropertyName: "objectId", publicName: "objectId", isSignal: true, isRequired: false, transformFunction: null }, configType: { classPropertyName: "configType", publicName: "configType", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "flavorCmp", first: true, predicate: ObjectFlavorComponent, descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.BusyOverlayDirective, inputs: ["yuvBusyOverlay", "busy"] }], ngImport: i0, template: "@let imageSlide = slide();\n<section class=\"slide\" [yuvBusyOverlay]=\"imageSlide.loading\">\n @if (imageSlide.uri || imageSlide.loading) {\n <img draggable=\"false\" [ngClass]=\"{ loading: imageSlide.loading }\" [attr.data-orientation]=\"imageSlide.orientation\" [src]=\"imageSlide.uri\" />\n } @else if (imageSlide.icon?.svg) {\n <yvc-icon draggable=\"false\" [svg]=\"imageSlide.icon?.svg!\"></yvc-icon>\n } @else if (imageSlide.icon?.src) {\n <yvc-icon draggable=\"false\" [svgSrc]=\"imageSlide.icon?.src!\"></yvc-icon>\n }\n @if (folderInfo) {\n <div class=\"badge\">{{ folderInfo.size }}</div>\n }\n</section>\n\n@let o = dmsObject();\n@if (o && !o.isFolder) {\n <yuv-object-flavor [dmsObject]=\"o\" (flavorClick)=\"onFlavorClick($event)\"></yuv-object-flavor>\n}\n\n<div class=\"content\">\n @let header = headerData();\n <section class=\"title\">\n <h1>{{ header?.title }}</h1>\n\n <div class=\"actions\">\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"actions()\"></yvc-overflow-menu>\n </div>\n </section>\n\n @if (o) {\n <section class=\"badges\">\n <yuv-retention-badge [dmsObject]=\"o\"></yuv-retention-badge>\n </section>\n }\n\n @if (flavorData) {\n <section class=\"flavor properties\">\n <!-- <h2>{{ flavorData.label }}</h2> -->\n @for (p of flavorData.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n\n <section class=\"properties\">\n @for (p of baseData; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section:not(.badges){padding:var(--app-pane-padding)}:host section:not(.badges) h2{font-size:var(--font-subhead);font-weight:400}:host yuv-object-flavor{border-block-end:1px solid var(--panel-divider-color);min-height:30px}:host .content{flex:1;overflow-y:auto}:host section.badges{display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-start;gap:calc(var(--app-pane-padding) / 4);padding-inline:var(--app-pane-padding)}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: BusyOverlayDirective, selector: "[yuvBusyOverlay]", inputs: ["yuvBusyOverlay"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: RendererDirective, selector: "[yuvRenderer]", inputs: ["yuvRenderer"] }, { kind: "component", type: ObjectFlavorComponent, selector: "yuv-object-flavor", inputs: ["dmsObject"], outputs: ["flavorClick"] }, { kind: "ngmodule", type: YvcOverlayModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "component", type: YvcOverflowMenuComponent, selector: "yvc-overflow-menu", inputs: ["overflowIcon", "groupLabels", "menuItems", "hideLabels"] }, { kind: "component", type: RetentionBadgeComponent, selector: "yuv-retention-badge", inputs: ["dmsObject"] }] }); }
|
|
254
255
|
}
|
|
255
256
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryComponent, decorators: [{
|
|
256
257
|
type: Component,
|
|
@@ -262,12 +263,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
262
263
|
ObjectFlavorComponent,
|
|
263
264
|
YvcOverlayModule,
|
|
264
265
|
YvcIconModule,
|
|
265
|
-
YvcOverflowMenuComponent
|
|
266
|
+
YvcOverflowMenuComponent,
|
|
267
|
+
RetentionBadgeComponent
|
|
266
268
|
], hostDirectives: [
|
|
267
269
|
{
|
|
268
270
|
directive: BusyOverlayDirective,
|
|
269
271
|
inputs: ['yuvBusyOverlay: busy']
|
|
270
272
|
}
|
|
271
|
-
], template: "@let imageSlide = slide();\n<section class=\"slide\" [yuvBusyOverlay]=\"imageSlide.loading\">\n @if (imageSlide.uri || imageSlide.loading) {\n <img draggable=\"false\" [ngClass]=\"{ loading: imageSlide.loading }\" [attr.data-orientation]=\"imageSlide.orientation\" [src]=\"imageSlide.uri\" />\n } @else if (imageSlide.icon?.svg) {\n <yvc-icon draggable=\"false\" [svg]=\"imageSlide.icon?.svg!\"></yvc-icon>\n } @else if (imageSlide.icon?.src) {\n <yvc-icon draggable=\"false\" [svgSrc]=\"imageSlide.icon?.src!\"></yvc-icon>\n }\n @if (folderInfo) {\n <div class=\"badge\">{{ folderInfo.size }}</div>\n }\n</section>\n\n@let o = dmsObject();\n@if (o && !o.isFolder) {\n <yuv-object-flavor [dmsObject]=\"o\" (flavorClick)=\"onFlavorClick($event)\"></yuv-object-flavor>\n}\n\n<div class=\"content\">\n @let header = headerData();\n <section class=\"title\">\n <h1>{{ header?.title }}</h1>\n\n <div class=\"actions\">\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"actions()\"></yvc-overflow-menu>\n </div>\n </section>\n\n @if (flavorData) {\n <section class=\"flavor properties\">\n <!-- <h2>{{ flavorData.label }}</h2> -->\n @for (p of flavorData.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n\n <section class=\"properties\">\n @for (p of baseData; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section{padding:var(--app-pane-padding)}:host section h2{font-size:var(--font-subhead);font-weight:400}:host yuv-object-flavor{border-block-end:1px solid var(--panel-divider-color);min-height:30px}:host .content{flex:1;overflow-y:auto}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}\n"] }]
|
|
273
|
+
], template: "@let imageSlide = slide();\n<section class=\"slide\" [yuvBusyOverlay]=\"imageSlide.loading\">\n @if (imageSlide.uri || imageSlide.loading) {\n <img draggable=\"false\" [ngClass]=\"{ loading: imageSlide.loading }\" [attr.data-orientation]=\"imageSlide.orientation\" [src]=\"imageSlide.uri\" />\n } @else if (imageSlide.icon?.svg) {\n <yvc-icon draggable=\"false\" [svg]=\"imageSlide.icon?.svg!\"></yvc-icon>\n } @else if (imageSlide.icon?.src) {\n <yvc-icon draggable=\"false\" [svgSrc]=\"imageSlide.icon?.src!\"></yvc-icon>\n }\n @if (folderInfo) {\n <div class=\"badge\">{{ folderInfo.size }}</div>\n }\n</section>\n\n@let o = dmsObject();\n@if (o && !o.isFolder) {\n <yuv-object-flavor [dmsObject]=\"o\" (flavorClick)=\"onFlavorClick($event)\"></yuv-object-flavor>\n}\n\n<div class=\"content\">\n @let header = headerData();\n <section class=\"title\">\n <h1>{{ header?.title }}</h1>\n\n <div class=\"actions\">\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"actions()\"></yvc-overflow-menu>\n </div>\n </section>\n\n @if (o) {\n <section class=\"badges\">\n <yuv-retention-badge [dmsObject]=\"o\"></yuv-retention-badge>\n </section>\n }\n\n @if (flavorData) {\n <section class=\"flavor properties\">\n <!-- <h2>{{ flavorData.label }}</h2> -->\n @for (p of flavorData.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n\n <section class=\"properties\">\n @for (p of baseData; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section:not(.badges){padding:var(--app-pane-padding)}:host section:not(.badges) h2{font-size:var(--font-subhead);font-weight:400}:host yuv-object-flavor{border-block-end:1px solid var(--panel-divider-color);min-height:30px}:host .content{flex:1;overflow-y:auto}:host section.badges{display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-start;gap:calc(var(--app-pane-padding) / 4);padding-inline:var(--app-pane-padding)}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}\n"] }]
|
|
272
274
|
}], ctorParameters: () => [] });
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3Qtc3VtbWFyeS9zcmMvbGliL29iamVjdC1zdW1tYXJ5L29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LXN1bW1hcnkvc3JjL2xpYi9vYmplY3Qtc3VtbWFyeS9vYmplY3Qtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLGtCQUFrQixFQUVsQixVQUFVLEVBQ1YsWUFBWSxFQUVaLG1CQUFtQixFQUNuQixRQUFRLEVBR1IsYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEVBQ2YsZ0JBQWdCLEVBR2hCLFlBQVksRUFDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQTBCLE1BQU0sbUNBQW1DLENBQUM7QUFFOUYsT0FBTyxFQUFFLGFBQWEs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d0JBQ2YsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3FCQUN6QjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQS9SVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix5cEJBU1gscUJBQXFCLDhKQ2xFN0Msa3dEQXNEQSx5MEREZkksT0FBTyxvRkFDUCxvQkFBb0Isd0ZBQ3BCLGVBQWUsK0JBQ2YsaUJBQWlCLG1GQUNqQixxQkFBcUIsOEdBQ3JCLGdCQUFnQiw4QkFDaEIsYUFBYSwrSEFDYix3QkFBd0I7OzRGQVdmLHNCQUFzQjtrQkF0QmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLHdCQUF3QjtxQkFDekIsa0JBR2U7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLG9CQUFvQjs0QkFDL0IsTUFBTSxFQUFFLENBQUMsc0JBQXNCLENBQUM7eUJBQ2pDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgdW50cmFja2VkLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEJhc2VPYmplY3RUeXBlRmllbGQsXG4gIENvbmZpZ1R5cGVPcHRpb24sXG4gIENvbnRlbnRTdHJlYW1GaWVsZCxcbiAgRG1zT2JqZWN0LFxuICBEbXNTZXJ2aWNlLFxuICBFdmVudFNlcnZpY2UsXG4gIE9iamVjdENvbmZpZ1JlY29yZCxcbiAgT2JqZWN0Q29uZmlnU2VydmljZSxcbiAgT3BlcmF0b3IsXG4gIFJlc29sdmVkT2JqZWN0Q29uZmlnLFxuICBTZWFyY2hRdWVyeSxcbiAgU2VhcmNoU2VydmljZSxcbiAgU3lzdGVtU2VydmljZSxcbiAgVHJhbnNsYXRlTW9kdWxlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBWaXJ0dWFsT2JqZWN0VHlwZSxcbiAgWXV2RXZlbnQsXG4gIFl1dkV2ZW50VHlwZVxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEJ1c3lPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5pbXBvcnQgeyBZVVZfSUNPTlMgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgT2JqZWN0Rmxhdm9yQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mbGF2b3InO1xuaW1wb3J0IHsgUmVuZGVyZXJEaXJlY3RpdmUsIFJlbmRlcmVyRGlyZWN0aXZlSW5wdXQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvcmVuZGVyZXInO1xuaW1wb3J0IHsgT2JqZWN0Rmxhdm9yIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtc2hlbGwtY29yZSc7XG5pbXBvcnQgeyBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgTWVudUl0ZW0sIFl2Y092ZXJmbG93TWVudUNvbXBvbmVudCB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9vdmVyZmxvdy1tZW51JztcbmltcG9ydCB7IFl2Y092ZXJsYXlNb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5cbi8qKlxuICogQ29tcG9uZW50IHNob3dpbmcgYSBzdW1tYXJ5IG9mIHRoZSBnaXZlbiBkbXMgb2JqZWN0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtb2JqZWN0LXN1bW1hcnknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBCdXN5T3ZlcmxheURpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVuZGVyZXJEaXJlY3RpdmUsXG4gICAgT2JqZWN0Rmxhdm9yQ29tcG9uZW50LFxuICAgIFl2Y092ZXJsYXlNb2R1bGUsXG4gICAgWXZjSWNvbk1vZHVsZSxcbiAgICBZdmNPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IEJ1c3lPdmVybGF5RGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ3l1dkJ1c3lPdmVybGF5OiBidXN5J11cbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U3VtbWFyeUNvbXBvbmVudCB7XG4gIHJlYWRvbmx5ICNldmVudFNlcnZpY2UgPSBpbmplY3QoRXZlbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Rtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICByZWFkb25seSAjc3lzdGVtU2VydmljZSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI29iamVjdENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoT2JqZWN0Q29uZmlnU2VydmljZSk7XG4gIHJlYWRvbmx5ICNzZWFyY2hTZXJ2aWNlID0gaW5qZWN0KFNlYXJjaFNlcnZpY2UpO1xuICByZWFkb25seSAjY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIGZsYXZvckNtcCA9IHZpZXdDaGlsZChPYmplY3RGbGF2b3JDb21wb25lbnQpO1xuXG4gICNvYz86IE9iamVjdENvbmZpZ1JlY29yZDtcblxuICBzbGlkZSA9IHNpZ25hbDx7XG4gICAgaWNvbj86IHtcbiAgICAgIHNyYz86IHN0cmluZztcbiAgICAgIHN2Zz86IHN0cmluZztcbiAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIH07XG4gICAgdXJpPzogc3RyaW5nO1xuICAgIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgb3JpZW50YXRpb24/OiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZSc7XG4gIH0+KHtcbiAgICBsb2FkaW5nOiBmYWxzZVxuICB9KTtcbiAgYnVzeSA9IHRydWU7XG5cbiAgY29udGV4dEVycm9yPzogc3RyaW5nO1xuICBoZWFkZXJEYXRhID0gc2lnbmFsPFxuICAgIHwge1xuICAgICAgICBpY29uPzoge1xuICAgICAgICAgIHNyYz86IHN0cmluZztcbiAgICAgICAgICBzdmc/OiBzdHJpbmc7XG4gICAgICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG5cbiAgYmFzZURhdGE6IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBSZW5kZXJlckRpcmVjdGl2ZUlucHV0O1xuICB9W10gPSBbXTtcblxuICBmbGF2b3JEYXRhPzoge1xuICAgIGZsYXZvcjogT2JqZWN0Rmxhdm9yO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIHZhbHVlOiBSZW5kZXJlckRpcmVjdGl2ZUlucHV0O1xuICAgIH1bXTtcbiAgfTtcblxuICBpY29ucyA9IHtcbiAgICBmb2xkZXI6IFlVVl9JQ09OUy5mb2xkZXJcbiAgfTtcblxuICBhY3Rpb25zID0gaW5wdXQ8TWVudUl0ZW1bXT4oW10pO1xuICBmb2xkZXJJbmZvPzoge1xuICAgIHNpemU6IG51bWJlcjtcbiAgICBlbnRyaWVzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgfVtdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEbXNPYmplY3QgdG8gc2hvdyB0aGUgZGV0YWlscyBmb3IuXG4gICAqL1xuXG4gIGRtc09iamVjdCA9IHNpZ25hbDxEbXNPYmplY3QgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgZG1zT2JqZWN0SW5wdXQgPSBpbnB1dDxEbXNPYmplY3QgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgeyBhbGlhczogJ2Rtc09iamVjdCcgfSk7XG4gICNkbXNPYmplY3RJbnB1dEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3RJbnB1dCgpO1xuICAgIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gdGhpcy5kbXNPYmplY3QoKT8uY29udGVudD8uY29udGVudFN0cmVhbUlkICE9PSBkbXNPYmplY3Q/LmNvbnRlbnQ/LmNvbnRlbnRTdHJlYW1JZDtcblxuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICB0aGlzLmRtc09iamVjdC5zZXQoZG1zT2JqZWN0KTtcbiAgICAgIGNvbnRlbnRDaGFuZ2VkICYmIHRoaXMuc2xpZGUudXBkYXRlKChzbGlkZSkgPT4gKHsgLi4uc2xpZGUsIHVyaTogdW5kZWZpbmVkLCBpY29uOiB1bmRlZmluZWQsIGljb25Tdmc6IHVuZGVmaW5lZCB9KSk7XG4gICAgICBpZiAoZG1zT2JqZWN0KSB7XG4gICAgICAgIHRoaXMuI2dldEhlYWRlckRhdGEoKTtcbiAgICAgICAgdGhpcy4jZ2V0QmFzZURhdGEoKTtcbiAgICAgICAgKGNvbnRlbnRDaGFuZ2VkIHx8IGRtc09iamVjdC5pc0ZvbGRlcikgJiYgdGhpcy4jc2V0dXBTbGlkZSgpO1xuICAgICAgICB0aGlzLmZvbGRlckluZm8gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGRtc09iamVjdC5pc0ZvbGRlcikgdGhpcy4jZmV0Y2hGb2xkZXJJbmZvKGRtc09iamVjdC5pZCk7XG5cbiAgICAgICAgLy8gaWYgYSBmbGF2b3IgaGFzIGJlZW4gc2VsZWN0ZWQgYW5kIGEgbmV3IG9iamVjdCBjb21lcyBpbiwgd2UnbGwgY2hlY2sgaWZcbiAgICAgICAgLy8gdGhlIG5ldyBvYmplY3QgaGFzIHRoZSBzYW1lIGZsYXZvciBhbmQgdXBkYXRlIHRoZSBmbGF2b3IgZGF0YVxuICAgICAgICBpZiAodGhpcy5mbGF2b3JEYXRhICYmIGRtc09iamVjdC5zb3RzLmluY2x1ZGVzKHRoaXMuZmxhdm9yRGF0YS5mbGF2b3Iuc290KSkge1xuICAgICAgICAgIHRoaXMuI2dldEZsYXZvckRhdGEodGhpcy5mbGF2b3JEYXRhLmZsYXZvcik7XG4gICAgICAgIH0gZWxzZSB0aGlzLmZsYXZvckRhdGEgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgLy8gICB0aGlzLnJldGVudGlvbkVuZERhdGUgPSB0aGlzLl9kbXNPYmplY3QuZGF0YVtSZXRlbnRpb25GaWVsZC5SRVRFTlRJT05fRU5EXVxuICAgICAgICAvLyAgICAgPyBuZXcgRGF0ZSh0aGlzLl9kbXNPYmplY3QuZGF0YVtSZXRlbnRpb25GaWVsZC5SRVRFTlRJT05fRU5EXSBhcyBzdHJpbmcpXG4gICAgICAgIC8vICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgLy8gICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIC8vICAgdGhpcy5yZXRlbnRpb25FbmRlZCA9IHRoaXMucmV0ZW50aW9uRW5kRGF0ZSAmJiB0b2RheSA+IHRoaXMucmV0ZW50aW9uRW5kRGF0ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmxhdm9yRGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIElEIG9mIGEgRG1zT2JqZWN0LiBUaGUgb2JqZWN0IHdpbGwgYmUgZmV0Y2hlZCBmcm9tIHRoZSBiYWNrZW5kIHVwZnJvbnQuXG4gICAqL1xuICBvYmplY3RJZCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+KG51bGwpO1xuICAjb2JqZWN0SWRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5vYmplY3RJZCgpO1xuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICBpZCAmJiB0aGlzLiNnZXREbXNPYmplY3QoaWQpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyB2aXJ0dWFsIG9iamVjdCB0eXBlIHRvIGJlIHVzZWQgZm9yIGhlYWRlciBkYXRhXG4gIGNvbmZpZ1R5cGUgPSBpbnB1dDxDb25maWdUeXBlT3B0aW9uPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI29iamVjdENvbmZpZ1NlcnZpY2VcbiAgICAgIC5nZXRPYmplY3RDb25maWdzJCh1bmRlZmluZWQsIHRydWUpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogT2JqZWN0Q29uZmlnUmVjb3JkKSA9PiB7XG4gICAgICAgIHRoaXMuI29jID0gcmVzO1xuICAgICAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgICAgICBpZiAoZG1zT2JqZWN0KSB0aGlzLiNnZXRIZWFkZXJEYXRhKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLiNldmVudFNlcnZpY2VcbiAgICAgIC5vbihZdXZFdmVudFR5cGUuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChlOiBZdXZFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBvID0gZS5kYXRhIGFzIERtc09iamVjdDtcbiAgICAgICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3QoKTtcbiAgICAgICAgaWYgKGRtc09iamVjdD8uaWQgPT09IG8uaWQpIHtcbiAgICAgICAgICB0aGlzLmRtc09iamVjdC5zZXQobyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI3NldHVwU2xpZGUoKSB7XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3QoKTtcbiAgICBpZiAoZG1zT2JqZWN0KSB7XG4gICAgICBpZiAoZG1zT2JqZWN0LmNvbnRlbnQpIHtcbiAgICAgICAgY29uc3Qgc2xpZGVVcmkgPSB0aGlzLiNkbXNTZXJ2aWNlLmdldFNsaWRlVVJJKGRtc09iamVjdC5pZCwgZG1zT2JqZWN0LmNvbnRlbnQ/Lm1pbWVUeXBlKTtcbiAgICAgICAgaWYgKHNsaWRlVXJpKSB7XG4gICAgICAgICAgdGhpcy5zbGlkZS51cGRhdGUoKHNsaWRlKSA9PiAoeyAuLi5zbGlkZSwgbG9hZGluZzogdHJ1ZSB9KSk7XG4gICAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGUudXBkYXRlKChzbGlkZSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uc2xpZGUsXG4gICAgICAgICAgICAgIG9yaWVudGF0aW9uOiBpbWcud2lkdGggPiBpbWcuaGVpZ2h0ID8gJ2xhbmRzY2FwZScgOiAncG9ydHJhaXQnLFxuICAgICAgICAgICAgICB1cmk6IGAke3NsaWRlVXJpfT8ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWAsIC8vIGFkZCBUaW1lc3RhbXAgdG8gZm9yY2UgaW1hZ2UgcmVsb2FkXG4gICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB0aGlzLiNjZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIGltZy5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyRGF0YSA9IHRoaXMuaGVhZGVyRGF0YSgpO1xuICAgICAgICAgICAgdGhpcy5zbGlkZS51cGRhdGUoKHNsaWRlKSA9PiAoeyAuLi5zbGlkZSwgaWNvbjogaGVhZGVyRGF0YT8uaWNvbiwgbG9hZGluZzogZmFsc2UgfSkpO1xuICAgICAgICAgICAgdGhpcy4jY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBpbWcuc3JjID0gc2xpZGVVcmk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGhlYWRlckRhdGEgPSB0aGlzLmhlYWRlckRhdGEoKTtcbiAgICAgICAgdGhpcy5zbGlkZS51cGRhdGUoKHNsaWRlKSA9PiAoeyAuLi5zbGlkZSwgaWNvbjogaGVhZGVyRGF0YT8uaWNvbiB9KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25GbGF2b3JDbGljayhmbGF2b3I6IE9iamVjdEZsYXZvcikge1xuICAgIHRoaXMuI2dldEZsYXZvckRhdGEoZmxhdm9yKTtcbiAgfVxuXG4gICNmZXRjaEZvbGRlckluZm8oaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHE6IFNlYXJjaFF1ZXJ5ID0ge1xuICAgICAgZmllbGRzOiBbYFNVTSgke0NvbnRlbnRTdHJlYW1GaWVsZC5MRU5HVEh9KWBdLFxuICAgICAgYWdnczogW0Jhc2VPYmplY3RUeXBlRmllbGQuQkFTRV9UWVBFX0lEXSxcbiAgICAgIGZpbHRlcnM6IFt7XG4gICAgICAgIGY6IEJhc2VPYmplY3RUeXBlRmllbGQuUEFSRU5UX0lELFxuICAgICAgICBvOiBPcGVyYXRvci5FUVVBTCxcbiAgICAgICAgdjE6IGlkXG4gICAgICB9XVxuICAgIH07XG4gICAgdGhpcy4jc2VhcmNoU2VydmljZS5hZ2dyZWdhdGUocSwgW0Jhc2VPYmplY3RUeXBlRmllbGQuQkFTRV9UWVBFX0lEXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSByZXMuYWdncmVnYXRpb25zWzBdLmVudHJpZXM7XG4gICAgICB0aGlzLmZvbGRlckluZm8gPSB7XG4gICAgICAgIHNpemU6IGVudHJpZXMucmVkdWNlKChzLCB2KSA9PiBzICsgdi5jb3VudCwgMCksXG4gICAgICAgIGVudHJpZXNcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAjZ2V0RG1zT2JqZWN0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJ1c3kgPSB0cnVlO1xuICAgIHRoaXMuI2Rtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0KGlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRtc09iamVjdCkgPT4gdGhpcy5kbXNPYmplY3Quc2V0KGRtc09iamVjdCksXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmRtc09iamVjdC5zZXQodW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0RXJyb3IgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LXN1bW1hcnkubG9hZC5lcnJvcicpO1xuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgI2dldE9iamVjdENvbmZpZyh0eXBlPzogVmlydHVhbE9iamVjdFR5cGUsIGJ1Y2tldD86IHN0cmluZyk6IFJlc29sdmVkT2JqZWN0Q29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIHJldHVybiBkbXNPYmplY3RcbiAgICAgID8gdGhpcy4jb2JqZWN0Q29uZmlnU2VydmljZS5nZXRSZXNvbHZlZE9iamVjdENvbmZpZyhcbiAgICAgICAgICBkbXNPYmplY3QuZGF0YSxcbiAgICAgICAgICB0eXBlIHx8IHtcbiAgICAgICAgICAgIGlkOiBkbXNPYmplY3Qub2JqZWN0VHlwZUlkLFxuICAgICAgICAgICAgb2JqZWN0VHlwZTogZG1zT2JqZWN0Lm9iamVjdFR5cGVJZFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYnVja2V0LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAjZ2V0Rmxhdm9yRGF0YShmbGF2b3I6IE9iamVjdEZsYXZvcikge1xuICAgIGlmICghZmxhdm9yKSB7XG4gICAgICB0aGlzLmZsYXZvckRhdGEgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNvdCA9IHRoaXMuI3N5c3RlbVNlcnZpY2UuZ2V0U2Vjb25kYXJ5T2JqZWN0VHlwZShmbGF2b3Iuc290LCB0cnVlKTtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmIChkbXNPYmplY3QgJiYgc290KSB7XG4gICAgICB0aGlzLmZsYXZvckRhdGEgPSB7XG4gICAgICAgIGZsYXZvcixcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZmxhdm9yLmlkKSxcbiAgICAgICAgcHJvcGVydGllczogc290LmZpZWxkcy5tYXAoKGYpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IHRoaXMuI3N5c3RlbVNlcnZpY2UuZ2V0TG9jYWxpemVkTGFiZWwoZi5pZCkgfHwgZi5pZCxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBmLmlkLFxuICAgICAgICAgICAgdmFsdWU6IGRtc09iamVjdC5kYXRhW2YuaWRdXG4gICAgICAgICAgfVxuICAgICAgICB9KSlcbiAgICAgIH07XG4gICAgfSBlbHNlIHRoaXMuZmxhdm9yRGF0YSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gICNnZXRIZWFkZXJEYXRhKCkge1xuICAgIGNvbnN0IG9jID0gdGhpcy4jZ2V0T2JqZWN0Q29uZmlnKHRoaXMuY29uZmlnVHlwZSgpPy50eXBlLCB0aGlzLmNvbmZpZ1R5cGUoKT8uYnVja2V0KTtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmIChvYyAmJiBkbXNPYmplY3QpIHtcbiAgICAgIHRoaXMuaGVhZGVyRGF0YS51cGRhdGUoKGRhdGEpID0+ICh7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIHRpdGxlOiBvYy50aXRsZS52YWx1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IG9jLmRlc2NyaXB0aW9uPy52YWx1ZSxcbiAgICAgICAgaWNvbjoge1xuICAgICAgICAgIHRpdGxlOiBvYy50aXRsZS52YWx1ZSxcbiAgICAgICAgICAuLi4ob2MuaWNvbiA/IHsgc3ZnOiBvYy5pY29uLnZhbHVlIH0gOiB7IHNyYzogdGhpcy4jc3lzdGVtU2VydmljZS5nZXRPYmplY3RUeXBlSWNvblVyaShkbXNPYmplY3Qub2JqZWN0VHlwZUlkKSB9KVxuICAgICAgICB9XG4gICAgICB9KSk7XG5cbiAgICAgIC8vIHRoaXMuaGVhZGVyRGF0YS5pY29uID07XG4gICAgfSBlbHNlIHRoaXMuaGVhZGVyRGF0YS5zZXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gICNnZXRCYXNlRGF0YSgpIHtcbiAgICB0aGlzLmJhc2VEYXRhID0gW107XG5cbiAgICBjb25zdCBmaWVsZHMgPSBbXG4gICAgICBCYXNlT2JqZWN0VHlwZUZpZWxkLkNSRUFUSU9OX0RBVEUsXG4gICAgICBgJHtCYXNlT2JqZWN0VHlwZUZpZWxkLkNSRUFURURfQll9X3RpdGxlYCxcbiAgICAgIEJhc2VPYmplY3RUeXBlRmllbGQuTU9ESUZJQ0FUSU9OX0RBVEUsXG4gICAgICBgJHtCYXNlT2JqZWN0VHlwZUZpZWxkLk1PRElGSUVEX0JZfV90aXRsZWBcbiAgICBdO1xuICAgIGNvbnN0IGNvbnRlbnRGaWVsZHMgPSBbQ29udGVudFN0cmVhbUZpZWxkLkZJTEVOQU1FLCBDb250ZW50U3RyZWFtRmllbGQuTEVOR1RILCBDb250ZW50U3RyZWFtRmllbGQuTUlNRV9UWVBFXTtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIChkbXNPYmplY3QuY29udGVudCA/IFsuLi5maWVsZHMsIC4uLmNvbnRlbnRGaWVsZHNdIDogZmllbGRzKS5mb3JFYWNoKChmKSA9PiB7XG4gICAgICAgIHRoaXMuYmFzZURhdGEucHVzaCh7XG4gICAgICAgICAgbGFiZWw6IHRoaXMuI3N5c3RlbVNlcnZpY2UuZ2V0TG9jYWxpemVkTGFiZWwoZi5yZXBsYWNlKCdfdGl0bGUnLCAnJykpIHx8IGYsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZTogZixcbiAgICAgICAgICAgIHZhbHVlOiBkbXNPYmplY3QuZGF0YVtmXVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIkBsZXQgaW1hZ2VTbGlkZSA9IHNsaWRlKCk7XG48c2VjdGlvbiBjbGFzcz1cInNsaWRlXCIgW3l1dkJ1c3lPdmVybGF5XT1cImltYWdlU2xpZGUubG9hZGluZ1wiPlxuICBAaWYgKGltYWdlU2xpZGUudXJpIHx8IGltYWdlU2xpZGUubG9hZGluZykge1xuICAgIDxpbWcgZHJhZ2dhYmxlPVwiZmFsc2VcIiBbbmdDbGFzc109XCJ7IGxvYWRpbmc6IGltYWdlU2xpZGUubG9hZGluZyB9XCIgW2F0dHIuZGF0YS1vcmllbnRhdGlvbl09XCJpbWFnZVNsaWRlLm9yaWVudGF0aW9uXCIgW3NyY109XCJpbWFnZVNsaWRlLnVyaVwiIC8+XG4gIH0gQGVsc2UgaWYgKGltYWdlU2xpZGUuaWNvbj8uc3ZnKSB7XG4gICAgPHl2Yy1pY29uIGRyYWdnYWJsZT1cImZhbHNlXCIgW3N2Z109XCJpbWFnZVNsaWRlLmljb24/LnN2ZyFcIj48L3l2Yy1pY29uPlxuICB9IEBlbHNlIGlmIChpbWFnZVNsaWRlLmljb24/LnNyYykge1xuICAgIDx5dmMtaWNvbiBkcmFnZ2FibGU9XCJmYWxzZVwiIFtzdmdTcmNdPVwiaW1hZ2VTbGlkZS5pY29uPy5zcmMhXCI+PC95dmMtaWNvbj5cbiAgfVxuICBAaWYgKGZvbGRlckluZm8pIHtcbiAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj57eyBmb2xkZXJJbmZvLnNpemUgfX08L2Rpdj5cbiAgfVxuPC9zZWN0aW9uPlxuXG5AbGV0IG8gPSBkbXNPYmplY3QoKTtcbkBpZiAobyAmJiAhby5pc0ZvbGRlcikge1xuICA8eXV2LW9iamVjdC1mbGF2b3IgW2Rtc09iamVjdF09XCJvXCIgKGZsYXZvckNsaWNrKT1cIm9uRmxhdm9yQ2xpY2soJGV2ZW50KVwiPjwveXV2LW9iamVjdC1mbGF2b3I+XG59XG5cbjxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gIEBsZXQgaGVhZGVyID0gaGVhZGVyRGF0YSgpO1xuICA8c2VjdGlvbiBjbGFzcz1cInRpdGxlXCI+XG4gICAgPGgxPnt7IGhlYWRlcj8udGl0bGUgfX08L2gxPlxuXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDx5dmMtb3ZlcmZsb3ctbWVudSBbaGlkZUxhYmVsc109XCJ0cnVlXCIgW21lbnVJdGVtc109XCJhY3Rpb25zKClcIj48L3l2Yy1vdmVyZmxvdy1tZW51PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG5cbiAgQGlmIChmbGF2b3JEYXRhKSB7XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmbGF2b3IgcHJvcGVydGllc1wiPlxuICAgICAgPCEtLSA8aDI+e3sgZmxhdm9yRGF0YS5sYWJlbCB9fTwvaDI+IC0tPlxuICAgICAgQGZvciAocCBvZiBmbGF2b3JEYXRhLnByb3BlcnRpZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3sgcC5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqeXV2UmVuZGVyZXI9XCJwLnZhbHVlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvc2VjdGlvbj5cbiAgfVxuXG4gIDxzZWN0aW9uIGNsYXNzPVwicHJvcGVydGllc1wiPlxuICAgIEBmb3IgKHAgb2YgYmFzZURhdGE7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eyBwLmxhYmVsIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicC52YWx1ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3Qtc3VtbWFyeS9zcmMvbGliL29iamVjdC1zdW1tYXJ5L29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LXN1bW1hcnkvc3JjL2xpYi9vYmplY3Qtc3VtbWFyeS9vYmplY3Qtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLGtCQUFrQixFQUVsQixVQUFVLEVBQ1YsWUFBWSxFQUVaLG1CQUFtQixFQUNuQixRQUFRLEVBR1IsYUFBYSxFQUNiLGFBQWEsRUFDYixTQUFTLEVBQ1QsZUFBZSxFQUNmLGdCQUFnQixFQUdoQixZQUFZLEVBQ2IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxF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LENBQUMsRUFBRSxFQUFFO2dCQUM3RixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUMxRSxLQUFLLEVBQUU7d0JBQ0wsWUFBWSxFQUFFLENBQUM7d0JBQ2YsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3FCQUN6QjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQS9SVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix5cEJBU1gscUJBQXFCLDhKQ3JFN0MsMjREQTREQSxtaEVEbkJJLE9BQU8sb0ZBQ1Asb0JBQW9CLHdGQUNwQixlQUFlLCtCQUNmLGlCQUFpQixtRkFDakIscUJBQXFCLDhHQUNyQixnQkFBZ0IsOEJBQ2hCLGFBQWEsK0hBQ2Isd0JBQXdCLGtJQUN4Qix1QkFBdUI7OzRGQVdkLHNCQUFzQjtrQkF2QmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3FCQUN4QixrQkFHZTt3QkFDZDs0QkFDRSxTQUFTLEVBQUUsb0JBQW9COzRCQUMvQixNQUFNLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzt5QkFDakM7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsLCB1bnRyYWNrZWQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgQmFzZU9iamVjdFR5cGVGaWVsZCxcbiAgQ29uZmlnVHlwZU9wdGlvbixcbiAgQ29udGVudFN0cmVhbUZpZWxkLFxuICBEbXNPYmplY3QsXG4gIERtc1NlcnZpY2UsXG4gIEV2ZW50U2VydmljZSxcbiAgT2JqZWN0Q29uZmlnUmVjb3JkLFxuICBPYmplY3RDb25maWdTZXJ2aWNlLFxuICBPcGVyYXRvcixcbiAgUmVzb2x2ZWRPYmplY3RDb25maWcsXG4gIFNlYXJjaFF1ZXJ5LFxuICBTZWFyY2hTZXJ2aWNlLFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBTeXN0ZW1TT1QsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgVmlydHVhbE9iamVjdFR5cGUsXG4gIFl1dkV2ZW50LFxuICBZdXZFdmVudFR5cGVcbn0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBCdXN5T3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24nO1xuaW1wb3J0IHsgWVVWX0lDT05TIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2ljb25zJztcbmltcG9ydCB7IFJldGVudGlvbkJhZGdlQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzJztcbmltcG9ydCB7IE9iamVjdEZsYXZvckNvbXBvbmVudCB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZmxhdm9yJztcbmltcG9ydCB7IFJlbmRlcmVyRGlyZWN0aXZlLCBSZW5kZXJlckRpcmVjdGl2ZUlucHV0IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3JlbmRlcmVyJztcbmltcG9ydCB7IE9iamVjdEZsYXZvciB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LXNoZWxsLWNvcmUnO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IE1lbnVJdGVtLCBZdmNPdmVyZmxvd01lbnVDb21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmZsb3ctbWVudSc7XG5pbXBvcnQgeyBZdmNPdmVybGF5TW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL292ZXJsYXknO1xuXG4vKipcbiAqIENvbXBvbmVudCBzaG93aW5nIGEgc3VtbWFyeSBvZiB0aGUgZ2l2ZW4gZG1zIG9iamVjdC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LW9iamVjdC1zdW1tYXJ5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgQnVzeU92ZXJsYXlEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlbmRlcmVyRGlyZWN0aXZlLFxuICAgIE9iamVjdEZsYXZvckNvbXBvbmVudCxcbiAgICBZdmNPdmVybGF5TW9kdWxlLFxuICAgIFl2Y0ljb25Nb2R1bGUsXG4gICAgWXZjT3ZlcmZsb3dNZW51Q29tcG9uZW50LFxuICAgIFJldGVudGlvbkJhZGdlQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3Qtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYmplY3Qtc3VtbWFyeS5jb21wb25lbnQuc2NzcycsXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAge1xuICAgICAgZGlyZWN0aXZlOiBCdXN5T3ZlcmxheURpcmVjdGl2ZSxcbiAgICAgIGlucHV0czogWyd5dXZCdXN5T3ZlcmxheTogYnVzeSddXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdFN1bW1hcnlDb21wb25lbnQge1xuICByZWFkb25seSAjZXZlbnRTZXJ2aWNlID0gaW5qZWN0KEV2ZW50U2VydmljZSk7XG4gIHJlYWRvbmx5ICNkbXNTZXJ2aWNlID0gaW5qZWN0KERtc1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3N5c3RlbVNlcnZpY2UgPSBpbmplY3QoU3lzdGVtU2VydmljZSk7XG4gIHJlYWRvbmx5ICNvYmplY3RDb25maWdTZXJ2aWNlID0gaW5qZWN0KE9iamVjdENvbmZpZ1NlcnZpY2UpO1xuICByZWFkb25seSAjc2VhcmNoU2VydmljZSA9IGluamVjdChTZWFyY2hTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2NkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBmbGF2b3JDbXAgPSB2aWV3Q2hpbGQoT2JqZWN0Rmxhdm9yQ29tcG9uZW50KTtcblxuICAjb2M/OiBPYmplY3RDb25maWdSZWNvcmQ7XG5cbiAgc2xpZGUgPSBzaWduYWw8e1xuICAgIGljb24/OiB7XG4gICAgICBzcmM/OiBzdHJpbmc7XG4gICAgICBzdmc/OiBzdHJpbmc7XG4gICAgICB0aXRsZT86IHN0cmluZztcbiAgICB9O1xuICAgIHVyaT86IHN0cmluZztcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICAgIG9yaWVudGF0aW9uPzogJ3BvcnRyYWl0JyB8ICdsYW5kc2NhcGUnO1xuICB9Pih7XG4gICAgbG9hZGluZzogZmFsc2VcbiAgfSk7XG4gIGJ1c3kgPSB0cnVlO1xuXG4gIGNvbnRleHRFcnJvcj86IHN0cmluZztcbiAgaGVhZGVyRGF0YSA9IHNpZ25hbDxcbiAgICB8IHtcbiAgICAgICAgaWNvbj86IHtcbiAgICAgICAgICBzcmM/OiBzdHJpbmc7XG4gICAgICAgICAgc3ZnPzogc3RyaW5nO1xuICAgICAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuXG4gIGJhc2VEYXRhOiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB2YWx1ZTogUmVuZGVyZXJEaXJlY3RpdmVJbnB1dDtcbiAgfVtdID0gW107XG5cbiAgZmxhdm9yRGF0YT86IHtcbiAgICBmbGF2b3I6IE9iamVjdEZsYXZvcjtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICB2YWx1ZTogUmVuZGVyZXJEaXJlY3RpdmVJbnB1dDtcbiAgICB9W107XG4gIH07XG5cbiAgaWNvbnMgPSB7XG4gICAgZm9sZGVyOiBZVVZfSUNPTlMuZm9sZGVyXG4gIH07XG5cbiAgYWN0aW9ucyA9IGlucHV0PE1lbnVJdGVtW10+KFtdKTtcbiAgZm9sZGVySW5mbz86IHtcbiAgICBzaXplOiBudW1iZXI7XG4gICAgZW50cmllczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICBjb3VudDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfTtcblxuICAvKipcbiAgICogRG1zT2JqZWN0IHRvIHNob3cgdGhlIGRldGFpbHMgZm9yLlxuICAgKi9cblxuICBkbXNPYmplY3QgPSBzaWduYWw8RG1zT2JqZWN0IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIGRtc09iamVjdElucHV0ID0gaW5wdXQ8RG1zT2JqZWN0IHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHsgYWxpYXM6ICdkbXNPYmplY3QnIH0pO1xuICAjZG1zT2JqZWN0SW5wdXRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGRtc09iamVjdCA9IHRoaXMuZG1zT2JqZWN0SW5wdXQoKTtcbiAgICBjb25zdCBjb250ZW50Q2hhbmdlZCA9IHRoaXMuZG1zT2JqZWN0KCk/LmNvbnRlbnQ/LmNvbnRlbnRTdHJlYW1JZCAhPT0gZG1zT2JqZWN0Py5jb250ZW50Py5jb250ZW50U3RyZWFtSWQ7XG5cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5kbXNPYmplY3Quc2V0KGRtc09iamVjdCk7XG4gICAgICBjb250ZW50Q2hhbmdlZCAmJiB0aGlzLnNsaWRlLnVwZGF0ZSgoc2xpZGUpID0+ICh7IC4uLnNsaWRlLCB1cmk6IHVuZGVmaW5lZCwgaWNvbjogdW5kZWZpbmVkLCBpY29uU3ZnOiB1bmRlZmluZWQgfSkpO1xuICAgICAgaWYgKGRtc09iamVjdCkge1xuICAgICAgICB0aGlzLiNnZXRIZWFkZXJEYXRhKCk7XG4gICAgICAgIHRoaXMuI2dldEJhc2VEYXRhKCk7XG4gICAgICAgIChjb250ZW50Q2hhbmdlZCB8fCBkbXNPYmplY3QuaXNGb2xkZXIpICYmIHRoaXMuI3NldHVwU2xpZGUoKTtcbiAgICAgICAgdGhpcy5mb2xkZXJJbmZvID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChkbXNPYmplY3QuaXNGb2xkZXIpIHRoaXMuI2ZldGNoRm9sZGVySW5mbyhkbXNPYmplY3QuaWQpO1xuXG4gICAgICAgIC8vIGlmIGEgZmxhdm9yIGhhcyBiZWVuIHNlbGVjdGVkIGFuZCBhIG5ldyBvYmplY3QgY29tZXMgaW4sIHdlJ2xsIGNoZWNrIGlmXG4gICAgICAgIC8vIHRoZSBuZXcgb2JqZWN0IGhhcyB0aGUgc2FtZSBmbGF2b3IgYW5kIHVwZGF0ZSB0aGUgZmxhdm9yIGRhdGFcbiAgICAgICAgaWYgKHRoaXMuZmxhdm9yRGF0YSAmJiBkbXNPYmplY3Quc290cy5pbmNsdWRlcyh0aGlzLmZsYXZvckRhdGEuZmxhdm9yLnNvdCkpIHtcbiAgICAgICAgICB0aGlzLiNnZXRGbGF2b3JEYXRhKHRoaXMuZmxhdm9yRGF0YS5mbGF2b3IpO1xuICAgICAgICB9IGVsc2UgdGhpcy5mbGF2b3JEYXRhID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mbGF2b3JEYXRhID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICAvKipcbiAgICogSUQgb2YgYSBEbXNPYmplY3QuIFRoZSBvYmplY3Qgd2lsbCBiZSBmZXRjaGVkIGZyb20gdGhlIGJhY2tlbmQgdXBmcm9udC5cbiAgICovXG4gIG9iamVjdElkID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4obnVsbCk7XG4gICNvYmplY3RJZEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaWQgPSB0aGlzLm9iamVjdElkKCk7XG4gICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgIGlkICYmIHRoaXMuI2dldERtc09iamVjdChpZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIHZpcnR1YWwgb2JqZWN0IHR5cGUgdG8gYmUgdXNlZCBmb3IgaGVhZGVyIGRhdGFcbiAgY29uZmlnVHlwZSA9IGlucHV0PENvbmZpZ1R5cGVPcHRpb24+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jb2JqZWN0Q29uZmlnU2VydmljZVxuICAgICAgLmdldE9iamVjdENvbmZpZ3MkKHVuZGVmaW5lZCwgdHJ1ZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBPYmplY3RDb25maWdSZWNvcmQpID0+IHtcbiAgICAgICAgdGhpcy4jb2MgPSByZXM7XG4gICAgICAgIGNvbnN0IGRtc09iamVjdCA9IHRoaXMuZG1zT2JqZWN0KCk7XG4gICAgICAgIGlmIChkbXNPYmplY3QpIHRoaXMuI2dldEhlYWRlckRhdGEoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuI2V2ZW50U2VydmljZVxuICAgICAgLm9uKFl1dkV2ZW50VHlwZS5ETVNfT0JKRUNUX1VQREFURUQpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGU6IFl1dkV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG8gPSBlLmRhdGEgYXMgRG1zT2JqZWN0O1xuICAgICAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgICAgICBpZiAoZG1zT2JqZWN0Py5pZCA9PT0gby5pZCkge1xuICAgICAgICAgIHRoaXMuZG1zT2JqZWN0LnNldChvKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAjc2V0dXBTbGlkZSgpIHtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIGlmIChkbXNPYmplY3QuY29udGVudCkge1xuICAgICAgICBjb25zdCBzbGlkZVVyaSA9IHRoaXMuI2Rtc1NlcnZpY2UuZ2V0U2xpZGVVUkkoZG1zT2JqZWN0LmlkLCBkbXNPYmplY3QuY29udGVudD8ubWltZVR5cGUpO1xuICAgICAgICBpZiAoc2xpZGVVcmkpIHtcbiAgICAgICAgICB0aGlzLnNsaWRlLnVwZGF0ZSgoc2xpZGUpID0+ICh7IC4uLnNsaWRlLCBsb2FkaW5nOiB0cnVlIH0pKTtcbiAgICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zbGlkZS51cGRhdGUoKHNsaWRlKSA9PiAoe1xuICAgICAgICAgICAgICAuLi5zbGlkZSxcbiAgICAgICAgICAgICAgb3JpZW50YXRpb246IGltZy53aWR0aCA+IGltZy5oZWlnaHQgPyAnbGFuZHNjYXBlJyA6ICdwb3J0cmFpdCcsXG4gICAgICAgICAgICAgIHVyaTogYCR7c2xpZGVVcml9PyR7bmV3IERhdGUoKS5nZXRUaW1lKCl9YCwgLy8gYWRkIFRpbWVzdGFtcCB0byBmb3JjZSBpbWFnZSByZWxvYWRcbiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2VcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHRoaXMuI2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJEYXRhID0gdGhpcy5oZWFkZXJEYXRhKCk7XG4gICAgICAgICAgICB0aGlzLnNsaWRlLnVwZGF0ZSgoc2xpZGUpID0+ICh7IC4uLnNsaWRlLCBpY29uOiBoZWFkZXJEYXRhPy5pY29uLCBsb2FkaW5nOiBmYWxzZSB9KSk7XG4gICAgICAgICAgICB0aGlzLiNjZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIGltZy5zcmMgPSBzbGlkZVVyaTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaGVhZGVyRGF0YSA9IHRoaXMuaGVhZGVyRGF0YSgpO1xuICAgICAgICB0aGlzLnNsaWRlLnVwZGF0ZSgoc2xpZGUpID0+ICh7IC4uLnNsaWRlLCBpY29uOiBoZWFkZXJEYXRhPy5pY29uIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkZsYXZvckNsaWNrKGZsYXZvcjogT2JqZWN0Rmxhdm9yKSB7XG4gICAgdGhpcy4jZ2V0Rmxhdm9yRGF0YShmbGF2b3IpO1xuICB9XG5cbiAgI2ZldGNoRm9sZGVySW5mbyhpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcTogU2VhcmNoUXVlcnkgPSB7XG4gICAgICBmaWVsZHM6IFtgU1VNKCR7Q29udGVudFN0cmVhbUZpZWxkLkxFTkdUSH0pYF0sXG4gICAgICBhZ2dzOiBbQmFzZU9iamVjdFR5cGVGaWVsZC5CQVNFX1RZUEVfSURdLFxuICAgICAgZmlsdGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgZjogQmFzZU9iamVjdFR5cGVGaWVsZC5QQVJFTlRfSUQsXG4gICAgICAgICAgbzogT3BlcmF0b3IuRVFVQUwsXG4gICAgICAgICAgdjE6IGlkXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICAgIHRoaXMuI3NlYXJjaFNlcnZpY2UuYWdncmVnYXRlKHEsIFtCYXNlT2JqZWN0VHlwZUZpZWxkLkJBU0VfVFlQRV9JRF0pLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBjb25zdCBlbnRyaWVzID0gcmVzLmFnZ3JlZ2F0aW9uc1swXS5lbnRyaWVzO1xuICAgICAgdGhpcy5mb2xkZXJJbmZvID0ge1xuICAgICAgICBzaXplOiBlbnRyaWVzLnJlZHVjZSgocywgdikgPT4gcyArIHYuY291bnQsIDApLFxuICAgICAgICBlbnRyaWVzXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgI2dldERtc09iamVjdChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICB0aGlzLiNkbXNTZXJ2aWNlLmdldERtc09iamVjdChpZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkbXNPYmplY3QpID0+IHRoaXMuZG1zT2JqZWN0LnNldChkbXNPYmplY3QpLFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5kbXNPYmplY3Quc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuY29udGV4dEVycm9yID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1zdW1tYXJ5LmxvYWQuZXJyb3InKTtcbiAgICAgIH0sXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gICNnZXRPYmplY3RDb25maWcodHlwZT86IFZpcnR1YWxPYmplY3RUeXBlLCBidWNrZXQ/OiBzdHJpbmcpOiBSZXNvbHZlZE9iamVjdENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3QoKTtcbiAgICByZXR1cm4gZG1zT2JqZWN0XG4gICAgICA/IHRoaXMuI29iamVjdENvbmZpZ1NlcnZpY2UuZ2V0UmVzb2x2ZWRPYmplY3RDb25maWcoXG4gICAgICAgICAgZG1zT2JqZWN0LmRhdGEsXG4gICAgICAgICAgdHlwZSB8fCB7XG4gICAgICAgICAgICBpZDogZG1zT2JqZWN0Lm9iamVjdFR5cGVJZCxcbiAgICAgICAgICAgIG9iamVjdFR5cGU6IGRtc09iamVjdC5vYmplY3RUeXBlSWRcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJ1Y2tldCxcbiAgICAgICAgICB0cnVlXG4gICAgICAgIClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgI2dldEZsYXZvckRhdGEoZmxhdm9yOiBPYmplY3RGbGF2b3IpIHtcbiAgICBpZiAoIWZsYXZvcikge1xuICAgICAgdGhpcy5mbGF2b3JEYXRhID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzb3QgPSB0aGlzLiNzeXN0ZW1TZXJ2aWNlLmdldFNlY29uZGFyeU9iamVjdFR5cGUoZmxhdm9yLnNvdCwgdHJ1ZSk7XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3QoKTtcbiAgICBpZiAoZG1zT2JqZWN0ICYmIHNvdCkge1xuICAgICAgdGhpcy5mbGF2b3JEYXRhID0ge1xuICAgICAgICBmbGF2b3IsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGZsYXZvci5pZCksXG4gICAgICAgIHByb3BlcnRpZXM6IHNvdC5maWVsZHMubWFwKChmKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiB0aGlzLiNzeXN0ZW1TZXJ2aWNlLmdldExvY2FsaXplZExhYmVsKGYuaWQpIHx8IGYuaWQsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZTogZi5pZCxcbiAgICAgICAgICAgIHZhbHVlOiBkbXNPYmplY3QuZGF0YVtmLmlkXVxuICAgICAgICAgIH1cbiAgICAgICAgfSkpXG4gICAgICB9O1xuICAgIH0gZWxzZSB0aGlzLmZsYXZvckRhdGEgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAjZ2V0SGVhZGVyRGF0YSgpIHtcbiAgICBjb25zdCBvYyA9IHRoaXMuI2dldE9iamVjdENvbmZpZyh0aGlzLmNvbmZpZ1R5cGUoKT8udHlwZSwgdGhpcy5jb25maWdUeXBlKCk/LmJ1Y2tldCk7XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3QoKTtcbiAgICBpZiAob2MgJiYgZG1zT2JqZWN0KSB7XG4gICAgICB0aGlzLmhlYWRlckRhdGEudXBkYXRlKChkYXRhKSA9PiAoe1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICB0aXRsZTogb2MudGl0bGUudmFsdWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvYy5kZXNjcmlwdGlvbj8udmFsdWUsXG4gICAgICAgIGljb246IHtcbiAgICAgICAgICB0aXRsZTogb2MudGl0bGUudmFsdWUsXG4gICAgICAgICAgLi4uKG9jLmljb24gPyB7IHN2Zzogb2MuaWNvbi52YWx1ZSB9IDogeyBzcmM6IHRoaXMuI3N5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZUljb25VcmkoZG1zT2JqZWN0Lm9iamVjdFR5cGVJZCkgfSlcbiAgICAgICAgfVxuICAgICAgfSkpO1xuXG4gICAgICAvLyB0aGlzLmhlYWRlckRhdGEuaWNvbiA9O1xuICAgIH0gZWxzZSB0aGlzLmhlYWRlckRhdGEuc2V0KHVuZGVmaW5lZCk7XG4gIH1cblxuICAjZ2V0QmFzZURhdGEoKSB7XG4gICAgdGhpcy5iYXNlRGF0YSA9IFtdO1xuXG4gICAgY29uc3QgZmllbGRzID0gW1xuICAgICAgQmFzZU9iamVjdFR5cGVGaWVsZC5DUkVBVElPTl9EQVRFLFxuICAgICAgYCR7QmFzZU9iamVjdFR5cGVGaWVsZC5DUkVBVEVEX0JZfV90aXRsZWAsXG4gICAgICBCYXNlT2JqZWN0VHlwZUZpZWxkLk1PRElGSUNBVElPTl9EQVRFLFxuICAgICAgYCR7QmFzZU9iamVjdFR5cGVGaWVsZC5NT0RJRklFRF9CWX1fdGl0bGVgXG4gICAgXTtcbiAgICBjb25zdCBjb250ZW50RmllbGRzID0gW0NvbnRlbnRTdHJlYW1GaWVsZC5GSUxFTkFNRSwgQ29udGVudFN0cmVhbUZpZWxkLkxFTkdUSCwgQ29udGVudFN0cmVhbUZpZWxkLk1JTUVfVFlQRV07XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3QoKTtcbiAgICBpZiAoZG1zT2JqZWN0KSB7XG4gICAgICBjb25zdCByZXRlbnRpb25GaWVsZHMgPSAoZG1zT2JqZWN0LmRhdGFbQmFzZU9iamVjdFR5cGVGaWVsZC5TRUNPTkRBUllfT0JKRUNUX1RZUEVfSURTXSBhcyBzdHJpbmdbXSkuaW5jbHVkZXMoU3lzdGVtU09ULkRFU1RSVUNUSU9OX1JFVEVOVElPTilcbiAgICAgICAgPyBbQmFzZU9iamVjdFR5cGVGaWVsZC5SRVRFTlRJT05fU1RBUlQsIEJhc2VPYmplY3RUeXBlRmllbGQuUkVURU5USU9OX0VORF1cbiAgICAgICAgOiBbXTtcblxuICAgICAgKGRtc09iamVjdC5jb250ZW50ID8gWy4uLmZpZWxkcywgLi4uY29udGVudEZpZWxkcywgLi4ucmV0ZW50aW9uRmllbGRzXSA6IGZpZWxkcykuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgICB0aGlzLmJhc2VEYXRhLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiB0aGlzLiNzeXN0ZW1TZXJ2aWNlLmdldExvY2FsaXplZExhYmVsKGYucmVwbGFjZSgnX3RpdGxlJywgJycpKSB8fCBmLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGYsXG4gICAgICAgICAgICB2YWx1ZTogZG1zT2JqZWN0LmRhdGFbZl1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCJAbGV0IGltYWdlU2xpZGUgPSBzbGlkZSgpO1xuPHNlY3Rpb24gY2xhc3M9XCJzbGlkZVwiIFt5dXZCdXN5T3ZlcmxheV09XCJpbWFnZVNsaWRlLmxvYWRpbmdcIj5cbiAgQGlmIChpbWFnZVNsaWRlLnVyaSB8fCBpbWFnZVNsaWRlLmxvYWRpbmcpIHtcbiAgICA8aW1nIGRyYWdnYWJsZT1cImZhbHNlXCIgW25nQ2xhc3NdPVwieyBsb2FkaW5nOiBpbWFnZVNsaWRlLmxvYWRpbmcgfVwiIFthdHRyLmRhdGEtb3JpZW50YXRpb25dPVwiaW1hZ2VTbGlkZS5vcmllbnRhdGlvblwiIFtzcmNdPVwiaW1hZ2VTbGlkZS51cmlcIiAvPlxuICB9IEBlbHNlIGlmIChpbWFnZVNsaWRlLmljb24/LnN2Zykge1xuICAgIDx5dmMtaWNvbiBkcmFnZ2FibGU9XCJmYWxzZVwiIFtzdmddPVwiaW1hZ2VTbGlkZS5pY29uPy5zdmchXCI+PC95dmMtaWNvbj5cbiAgfSBAZWxzZSBpZiAoaW1hZ2VTbGlkZS5pY29uPy5zcmMpIHtcbiAgICA8eXZjLWljb24gZHJhZ2dhYmxlPVwiZmFsc2VcIiBbc3ZnU3JjXT1cImltYWdlU2xpZGUuaWNvbj8uc3JjIVwiPjwveXZjLWljb24+XG4gIH1cbiAgQGlmIChmb2xkZXJJbmZvKSB7XG4gICAgPGRpdiBjbGFzcz1cImJhZGdlXCI+e3sgZm9sZGVySW5mby5zaXplIH19PC9kaXY+XG4gIH1cbjwvc2VjdGlvbj5cblxuQGxldCBvID0gZG1zT2JqZWN0KCk7XG5AaWYgKG8gJiYgIW8uaXNGb2xkZXIpIHtcbiAgPHl1di1vYmplY3QtZmxhdm9yIFtkbXNPYmplY3RdPVwib1wiIChmbGF2b3JDbGljayk9XCJvbkZsYXZvckNsaWNrKCRldmVudClcIj48L3l1di1vYmplY3QtZmxhdm9yPlxufVxuXG48ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICBAbGV0IGhlYWRlciA9IGhlYWRlckRhdGEoKTtcbiAgPHNlY3Rpb24gY2xhc3M9XCJ0aXRsZVwiPlxuICAgIDxoMT57eyBoZWFkZXI/LnRpdGxlIH19PC9oMT5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8eXZjLW92ZXJmbG93LW1lbnUgW2hpZGVMYWJlbHNdPVwidHJ1ZVwiIFttZW51SXRlbXNdPVwiYWN0aW9ucygpXCI+PC95dmMtb3ZlcmZsb3ctbWVudT5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuXG4gIEBpZiAobykge1xuICAgIDxzZWN0aW9uIGNsYXNzPVwiYmFkZ2VzXCI+XG4gICAgICA8eXV2LXJldGVudGlvbi1iYWRnZSBbZG1zT2JqZWN0XT1cIm9cIj48L3l1di1yZXRlbnRpb24tYmFkZ2U+XG4gICAgPC9zZWN0aW9uPlxuICB9XG5cbiAgQGlmIChmbGF2b3JEYXRhKSB7XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmbGF2b3IgcHJvcGVydGllc1wiPlxuICAgICAgPCEtLSA8aDI+e3sgZmxhdm9yRGF0YS5sYWJlbCB9fTwvaDI+IC0tPlxuICAgICAgQGZvciAocCBvZiBmbGF2b3JEYXRhLnByb3BlcnRpZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3sgcC5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqeXV2UmVuZGVyZXI9XCJwLnZhbHVlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvc2VjdGlvbj5cbiAgfVxuXG4gIDxzZWN0aW9uIGNsYXNzPVwicHJvcGVydGllc1wiPlxuICAgIEBmb3IgKHAgb2YgYmFzZURhdGE7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eyBwLmxhYmVsIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicC52YWx1ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -32,11 +32,9 @@ export class PaginationComponent {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
onInputBlur() {
|
|
35
|
-
|
|
36
|
-
this.
|
|
37
|
-
|
|
38
|
-
});
|
|
39
|
-
}
|
|
35
|
+
this.pagingForm.patchValue({
|
|
36
|
+
page: `${this.pagination().page}`
|
|
37
|
+
});
|
|
40
38
|
}
|
|
41
39
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
40
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: PaginationComponent, isStandalone: true, selector: "yuv-pagination", inputs: { pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<div class=\"total\">{{ pagination().total }}</div>\n<div class=\"controls\">\n <button [disabled]=\"pagination().page === 1\" (click)=\"pageChange.emit(1)\">\n <yvc-icon class=\"first\" [svg]=\"icons.arrowLast\"></yvc-icon>\n </button>\n <button [disabled]=\"pagination().page <= 1\" (click)=\"pageChange.emit(pagination().page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n\n <form (ngSubmit)=\"onPagingFormSubmit()\" [formGroup]=\"pagingForm\">\n <input (blur)=\"onInputBlur()\" type=\"number\" formControlName=\"page\" />\n <div>{{ pagination().pages }}</div>\n </form>\n\n <button [disabled]=\"pagination().page >= pagination().pages\" (click)=\"pageChange.emit(pagination().page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <button [disabled]=\"pagination().page === pagination().pages\" (click)=\"pageChange.emit(pagination().pages)\">\n <yvc-icon class=\"last\" [svg]=\"icons.arrowLast\"></yvc-icon>\n </button>\n</div>\n", styles: [":host{--_paging-button-size: var(--paging-button-size, 18px);--_paging-margin: var(--paging-margin, calc(var(--app-pane-padding) / 2));--_paging-padding: var(--paging-padding, calc(var(--app-pane-padding) / 4));--_paging-border: var(--paging-border-radius, 4px);--_paging-background: var(--paging-background, var(--panel-background));display:flex;justify-content:space-between;align-items:center;padding:var(--_paging-padding);background-color:var(--_paging-background);border-radius:var(--_paging-border-radius)}:host .controls{display:flex;justify-content:space-between;align-items:center}:host .total{font-size:var(--font-caption);color:var(--text-color-caption);padding-inline:.25em;line-height:1em}:host button{padding:0;display:flex;--icon-size: var(--_paging-button-size)}:host button .first,:host button .prev{transform:rotate(180deg)}:host form{display:flex;border:1px solid var(--panel-divider-color);margin:0 4px;align-items:baseline}:host form>*{font-size:var(--font-caption);color:var(--text-color-caption);padding-inline:.25em}:host form>div{-webkit-user-select:none;user-select:none}:host form input{width:3em;line-height:1em;text-align:right;border:0;background-color:transparent;border-inline-end:1px solid var(--panel-divider-color)}:host form input.ng-invalid{color:var(--color-error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
@@ -45,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
45
43
|
type: Component,
|
|
46
44
|
args: [{ selector: 'yuv-pagination', standalone: true, imports: [CommonModule, YvcIconModule, ReactiveFormsModule], template: "<div class=\"total\">{{ pagination().total }}</div>\n<div class=\"controls\">\n <button [disabled]=\"pagination().page === 1\" (click)=\"pageChange.emit(1)\">\n <yvc-icon class=\"first\" [svg]=\"icons.arrowLast\"></yvc-icon>\n </button>\n <button [disabled]=\"pagination().page <= 1\" (click)=\"pageChange.emit(pagination().page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n\n <form (ngSubmit)=\"onPagingFormSubmit()\" [formGroup]=\"pagingForm\">\n <input (blur)=\"onInputBlur()\" type=\"number\" formControlName=\"page\" />\n <div>{{ pagination().pages }}</div>\n </form>\n\n <button [disabled]=\"pagination().page >= pagination().pages\" (click)=\"pageChange.emit(pagination().page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <button [disabled]=\"pagination().page === pagination().pages\" (click)=\"pageChange.emit(pagination().pages)\">\n <yvc-icon class=\"last\" [svg]=\"icons.arrowLast\"></yvc-icon>\n </button>\n</div>\n", styles: [":host{--_paging-button-size: var(--paging-button-size, 18px);--_paging-margin: var(--paging-margin, calc(var(--app-pane-padding) / 2));--_paging-padding: var(--paging-padding, calc(var(--app-pane-padding) / 4));--_paging-border: var(--paging-border-radius, 4px);--_paging-background: var(--paging-background, var(--panel-background));display:flex;justify-content:space-between;align-items:center;padding:var(--_paging-padding);background-color:var(--_paging-background);border-radius:var(--_paging-border-radius)}:host .controls{display:flex;justify-content:space-between;align-items:center}:host .total{font-size:var(--font-caption);color:var(--text-color-caption);padding-inline:.25em;line-height:1em}:host button{padding:0;display:flex;--icon-size: var(--_paging-button-size)}:host button .first,:host button .prev{transform:rotate(180deg)}:host form{display:flex;border:1px solid var(--panel-divider-color);margin:0 4px;align-items:baseline}:host form>*{font-size:var(--font-caption);color:var(--text-color-caption);padding-inline:.25em}:host form>div{-webkit-user-select:none;user-select:none}:host form input{width:3em;line-height:1em;text-align:right;border:0;background-color:transparent;border-inline-end:1px solid var(--panel-divider-color)}:host form input.ng-invalid{color:var(--color-error)}\n"] }]
|
|
47
45
|
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3BhZ2luYXRpb24vc3JjL2xpYi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvcGFnaW5hdGlvbi9zcmMvbGliL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM5RSxNQUFNLE9BQU8sbUJBQW1CO0lBUGhDO1FBUUUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQixlQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYyxDQUFDO1FBQzFDLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0MsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQy9DLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUksQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsZUFBVSxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQzlCLGVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxVQUFLLEdBQUc7WUFDZixTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7WUFDOUIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO1NBQy9CLENBQUM7S0FhSDtJQTVCQyxHQUFHLENBQXVCO0lBRTFCLGlCQUFpQixDQU1kO0lBU0gsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDekIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRTtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTVCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixtUUNkaEMsaWhDQXFCQSxtMUNEWFksWUFBWSw4QkFBRSxhQUFhLDhIQUFFLG1CQUFtQjs7NEZBSS9DLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuL3BhZ2luYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFl2Y0ljb25Nb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBZVVZfSUNPTlMgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1wYWdpbmF0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgWXZjSWNvbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQge1xuICAjZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICBwYWdpbmF0aW9uID0gaW5wdXQucmVxdWlyZWQ8UGFnaW5hdGlvbj4oKTtcbiAgI3BhZ2luYXRpb25FZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHBhZ2VDdHJsID0gdGhpcy5wYWdpbmdGb3JtLmdldCgncGFnZScpO1xuICAgIGlmIChwYWdlQ3RybCkge1xuICAgICAgcGFnZUN0cmwuc2V0VmFsdWUoYCR7dGhpcy5wYWdpbmF0aW9uKCkucGFnZX1gKTtcbiAgICAgIHBhZ2VDdHJsLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybignWzAtOV0rJyksIFZhbGlkYXRvcnMubWluKDEpLCBWYWxpZGF0b3JzLm1heCh0aGlzLnBhZ2luYXRpb24oKS5wYWdlcyldKTtcbiAgICB9XG4gIH0pO1xuXG4gIHBhZ2VDaGFuZ2UgPSBvdXRwdXQ8bnVtYmVyPigpO1xuICBwYWdpbmdGb3JtID0gdGhpcy4jZmIuZ3JvdXAoeyBwYWdlOiBbJyddIH0pO1xuICByZWFkb25seSBpY29ucyA9IHtcbiAgICBhcnJvd05leHQ6IFlVVl9JQ09OUy5hcnJvd05leHQsXG4gICAgYXJyb3dMYXN0OiBZVVZfSUNPTlMuYXJyb3dMYXN0XG4gIH07XG5cbiAgb25QYWdpbmdGb3JtU3VibWl0KCkge1xuICAgIGlmICh0aGlzLnBhZ2luZ0Zvcm0udmFsaWQgJiYgdGhpcy5wYWdpbmdGb3JtLnZhbHVlLnBhZ2UpIHtcbiAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhcnNlSW50KHRoaXMucGFnaW5nRm9ybS52YWx1ZS5wYWdlKSk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEJsdXIoKSB7XG4gICAgdGhpcy5wYWdpbmdGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgcGFnZTogYCR7dGhpcy5wYWdpbmF0aW9uKCkucGFnZX1gXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b3RhbFwiPnt7IHBhZ2luYXRpb24oKS50b3RhbCB9fTwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbnRyb2xzXCI+XG4gIDxidXR0b24gW2Rpc2FibGVkXT1cInBhZ2luYXRpb24oKS5wYWdlID09PSAxXCIgKGNsaWNrKT1cInBhZ2VDaGFuZ2UuZW1pdCgxKVwiPlxuICAgIDx5dmMtaWNvbiBjbGFzcz1cImZpcnN0XCIgW3N2Z109XCJpY29ucy5hcnJvd0xhc3RcIj48L3l2Yy1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnaW5hdGlvbigpLnBhZ2UgPD0gMVwiIChjbGljayk9XCJwYWdlQ2hhbmdlLmVtaXQocGFnaW5hdGlvbigpLnBhZ2UgLSAxKVwiPlxuICAgIDx5dmMtaWNvbiBjbGFzcz1cInByZXZcIiBbc3ZnXT1cImljb25zLmFycm93TmV4dFwiPjwveXZjLWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDxmb3JtIChuZ1N1Ym1pdCk9XCJvblBhZ2luZ0Zvcm1TdWJtaXQoKVwiIFtmb3JtR3JvdXBdPVwicGFnaW5nRm9ybVwiPlxuICAgIDxpbnB1dCAoYmx1cik9XCJvbklucHV0Qmx1cigpXCIgdHlwZT1cIm51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cInBhZ2VcIiAvPlxuICAgIDxkaXY+e3sgcGFnaW5hdGlvbigpLnBhZ2VzIH19PC9kaXY+XG4gIDwvZm9ybT5cblxuICA8YnV0dG9uIFtkaXNhYmxlZF09XCJwYWdpbmF0aW9uKCkucGFnZSA+PSBwYWdpbmF0aW9uKCkucGFnZXNcIiAoY2xpY2spPVwicGFnZUNoYW5nZS5lbWl0KHBhZ2luYXRpb24oKS5wYWdlICsgMSlcIj5cbiAgICA8eXZjLWljb24gY2xhc3M9XCJuZXh0XCIgW3N2Z109XCJpY29ucy5hcnJvd05leHRcIj48L3l2Yy1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnaW5hdGlvbigpLnBhZ2UgPT09IHBhZ2luYXRpb24oKS5wYWdlc1wiIChjbGljayk9XCJwYWdlQ2hhbmdlLmVtaXQocGFnaW5hdGlvbigpLnBhZ2VzKVwiPlxuICAgIDx5dmMtaWNvbiBjbGFzcz1cImxhc3RcIiBbc3ZnXT1cImljb25zLmFycm93TGFzdFwiPjwveXZjLWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export * from './lib/due-date-picker/due-date-picker.component';
|
|
2
2
|
export * from './lib/sequence-list.component';
|
|
3
3
|
export * from './lib/sequence-list.interface';
|
|
4
|
-
|
|
5
|
-
export * from './lib/sequence-list-template-manage/sequence-list-template-manage.component';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NlcXVlbmNlLWxpc3Qvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyw2RUFBNkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2R1ZS1kYXRlLXBpY2tlci9kdWUtZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcXVlbmNlLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcXVlbmNlLWxpc3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcXVlbmNlLWxpc3QtdGVtcGxhdGVzL3NlcXVlbmNlLWxpc3QtdGVtcGxhdGVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXF1ZW5jZS1saXN0LXRlbXBsYXRlLW1hbmFnZS9zZXF1ZW5jZS1saXN0LXRlbXBsYXRlLW1hbmFnZS5jb21wb25lbnQnO1xuIl19
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NlcXVlbmNlLWxpc3Qvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZHVlLWRhdGUtcGlja2VyL2R1ZS1kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VxdWVuY2UtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VxdWVuY2UtbGlzdC5pbnRlcmZhY2UnO1xuIl19
|
|
@@ -3,10 +3,9 @@ import { Component, ViewChild, forwardRef, inject, input } from '@angular/core';
|
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR, NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
5
5
|
import { TranslateModule } from '@yuuvis/client-core';
|
|
6
|
-
import {
|
|
6
|
+
import { OrganizationComponent } from '@yuuvis/client-framework/forms';
|
|
7
7
|
import { YUV_ICONS } from '@yuuvis/client-framework/icons';
|
|
8
8
|
import { ICONS, YvcIconModule } from '@yuuvis/components/icon';
|
|
9
|
-
import { DueDatePickerComponent } from './due-date-picker/due-date-picker.component';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
11
10
|
import * as i1 from "@yuuvis/client-core";
|
|
12
11
|
import * as i2 from "@angular/forms";
|
|
@@ -35,6 +34,7 @@ export class SequenceListComponent {
|
|
|
35
34
|
items: this.#fb.array([this.#generateSequenceItem()])
|
|
36
35
|
});
|
|
37
36
|
this.entries = [];
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
38
38
|
this.propagateChange = (_) => { };
|
|
39
39
|
this.sequenceForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {
|
|
40
40
|
this.#propagate();
|
|
@@ -43,7 +43,7 @@ export class SequenceListComponent {
|
|
|
43
43
|
#generateSequenceItem(sequenceItem) {
|
|
44
44
|
return this.#fb.group({
|
|
45
45
|
title: [sequenceItem?.title || '', Validators.required],
|
|
46
|
-
nextAssignee: [sequenceItem?.nextAssignee
|
|
46
|
+
nextAssignee: [sequenceItem?.nextAssignee || '', Validators.required],
|
|
47
47
|
expiryDatetime: [sequenceItem?.expiryDatetime || undefined]
|
|
48
48
|
});
|
|
49
49
|
}
|
|
@@ -63,6 +63,7 @@ export class SequenceListComponent {
|
|
|
63
63
|
const ml = this.maxLength();
|
|
64
64
|
this.maxLengthExceeded = ml !== undefined && this.formItemArray.length >= ml;
|
|
65
65
|
}
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
66
67
|
registerOnTouched() { }
|
|
67
68
|
#propagate() {
|
|
68
69
|
const res = [];
|
|
@@ -80,6 +81,9 @@ export class SequenceListComponent {
|
|
|
80
81
|
}
|
|
81
82
|
writeValue(value) {
|
|
82
83
|
this.entries = value || [];
|
|
84
|
+
this.formItemArray.clear();
|
|
85
|
+
if (this.entries.length === 0)
|
|
86
|
+
this.addItem();
|
|
83
87
|
this.entries.forEach((entry) => {
|
|
84
88
|
this.formItemArray.push(this.#generateSequenceItem(entry));
|
|
85
89
|
});
|
|
@@ -112,20 +116,11 @@ export class SequenceListComponent {
|
|
|
112
116
|
useExisting: forwardRef(() => SequenceListComponent),
|
|
113
117
|
multi: true
|
|
114
118
|
}
|
|
115
|
-
], viewQueries: [{ propertyName: "orgComponent", first: true, predicate: OrganizationComponent, descendants: true }], ngImport: i0, template: "<form [formGroup]=\"sequenceForm\">\n <section formArrayName=\"items\">\n @for (item of sequenceForm.controls.items.controls; track itemIndex; let itemIndex = $index) {\n <div class=\"item\" [formGroup]=\"item\">\n <button class=\"add before\" type=\"button\" [disabled]=\"maxLengthExceeded\" (click)=\"addItemAt($index)\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n <span class=\"index\" [attr.data-index]=\"itemIndex + 1\"></span>\n\n <div class=\"item-form\">\n <button class=\"remove\" type=\"button\" (click)=\"removeItem($index)\"
|
|
119
|
+
], viewQueries: [{ propertyName: "orgComponent", first: true, predicate: OrganizationComponent, descendants: true }], ngImport: i0, template: "<form [formGroup]=\"sequenceForm\">\n <section formArrayName=\"items\">\n @for (item of sequenceForm.controls.items.controls; track itemIndex; let itemIndex = $index) {\n <div class=\"item\" [formGroup]=\"item\">\n <button class=\"add before\" type=\"button\" [disabled]=\"maxLengthExceeded\" (click)=\"addItemAt($index)\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n <span class=\"index\" [attr.data-index]=\"itemIndex + 1\"></span>\n\n <div class=\"item-form\">\n <button class=\"remove\" type=\"button\" (click)=\"removeItem($index)\" [disabled]=\"sequenceForm.controls.items.controls.length === 1\">\n <yvc-icon [svg]=\"icons.delete\"></yvc-icon>\n </button>\n <input [placeholder]=\"'yuv.sequence-list.form.task' | translate\" [maxLength]=\"128\" formControlName=\"title\" />\n <yuv-organization [title]=\"'yuv.sequence-list.form.nextAssignee' | translate\" [withMetadata]=\"true\" formControlName=\"nextAssignee\">\n </yuv-organization>\n </div>\n @if ($last) {\n <button class=\"add after\" type=\"button\" [disabled]=\"maxLengthExceeded\" (click)=\"addItem()\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n }\n </div>\n }\n </section>\n</form>\n", styles: [":host{--yvc-form-element-border-color: var(--form-element-border-color, var(--text-color-hint));--yvc-form-element-focus-border-color: var(--form-element-focus-border-color, var(--color-accent));--yvc-form-element-focus-outline-color: var(--form-element-focus-outline-color, rgba(var(--color-accent-rgb), .3));--yvc-form-element-focus-outline-with: var(--form-element-focus-outline-with, 2px);--yvc-form-element-disabled-background-color: var(--form-element-disabled-background-color, rgba(from var(--text-color-body) r g b / .1));--yvc-form-element-disabled-opacity: var(--form-element-disabled-opacity, .8);--_sequence-list-item-background: var(--sequence-list-item-background, var(--panel-background));--_sequence-list-item-border-color: var(--sequence-list-item-border-color, var(--panel-divider-color));--_sequence-list-item-border-radius: var(--sequence-list-item-border-radius, calc(var(--app-pane-padding) / 2));--_sequence-list-line-color: var(--sequence-list-line-color, var(--text-color-hint));--_sequence-list-line-width: var(--sequence-list-line-width, 2px);--_sequence-list-line-item-background: var(--sequence-list-line-item-background, var(--panel-background-lightgrey));--_sequence-list-line-item-border-radius: var(--sequence-list-line-item-border-radius, .25em)}:host form section{margin-inline-end:4px}:host form section button.add{--icon-size: 18px;border-radius:var(--_sequence-list-line-item-border-radius);padding:0;display:flex;align-items:center;justify-content:center;background-color:var(--_sequence-list-line-item-background);border:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color)}:host form section button.add:focus{outline:2px solid rgb(from var(--color-accent) r g b/.5);outline-offset:-2px;border-color:var(--color-accent)}:host form section .item{display:grid;grid-template-columns:6ch 1fr;grid-template-rows:auto auto;column-gap:1em;grid-template-areas:\"addBefore .\" \"index form\" \"addAfter .\"}:host form section .item.ng-invalid.ng-dirty .item-form{border-color:var(--color-error);outline:3px solid rgb(from var(--color-error) r g b/.5)}:host form section .item .add.before{grid-area:addBefore;justify-self:center}:host form section .item .add.after{grid-area:addAfter;justify-self:center}:host form section .item .index{grid-area:index;display:grid;align-items:center;justify-content:center}:host form section .item .index:after{content:attr(data-index);grid-row:1;grid-column:1;background-color:var(--_sequence-list-line-item-background);font-size:var(--font-hint);color:var(--text-color-caption);font-weight:700;border:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color);border-radius:var(--_sequence-list-line-item-border-radius);line-height:1em;padding:1px .25em;outline:3px solid rgb(from var(--_sequence-list-line-color) r g b/.1)}:host form section .item .index:before{content:\"\";grid-row:1;grid-column:1;height:100%;width:calc(50% - var(--_sequence-list-line-width) / 2);border-inline-end:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color)}:host form section .item .item-form{grid-area:form;background-color:var(--_sequence-list-item-background);border:1px solid var(--_sequence-list-item-border-color);border-radius:var(--_sequence-list-item-border-radius);padding:calc(var(--app-pane-padding) / 2);display:grid;column-gap:var(--app-pane-padding);row-gap:4px;grid-template-columns:1fr auto;grid-template-rows:repeat(3,auto);grid-template-areas:\"task remove\" \"user user\" \"date date\"}:host form section .item .item-form input{border:1px solid transparent;border-radius:calc(var(--_sequence-list-item-border-radius) / 2);grid-area:task;outline-offset:0;line-height:1em;padding:calc(var(--app-pane-padding) / 4);background-color:transparent;color:var(--text-color-body)}:host form section .item .item-form input:focus{border-color:var(--yvc-form-element-focus-border-color);outline:var(--yvc-form-element-focus-outline-with) solid var(--yvc-form-element-focus-outline-color)}:host form section .item .item-form yvc-datepicker{--form-element-border-color: transparent;grid-area:date;padding:0;flex-flow:row-reverse}:host form section .item .item-form yuv-organization{--form-element-border-color: transparent;border-radius:calc(var(--_sequence-list-item-border-radius) / 2);border:1px solid var(--form-element-border-color);grid-area:user;flex-flow:row-reverse}:host form section .item .item-form yuv-organization:focus-within{border-color:var(--yvc-form-element-focus-border-color);outline:var(--yvc-form-element-focus-outline-with) solid var(--yvc-form-element-focus-outline-color)}:host form section .item .item-form .remove{--icon-size: 18px;padding:calc(var(--app-pane-padding) / 4);grid-area:remove;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: OrganizationComponent, selector: "yuv-organization", inputs: ["placeholder", "situation", "multiselect", "classifications", "readonly", "autofocus", "appendTo", "excludeMe", "withMetadata"], outputs: ["userSelect"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i3.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
|
|
116
120
|
}
|
|
117
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SequenceListComponent, decorators: [{
|
|
118
122
|
type: Component,
|
|
119
|
-
args: [{ selector: 'yuv-sequence-list', standalone: true, imports: [
|
|
120
|
-
CommonModule,
|
|
121
|
-
TranslateModule,
|
|
122
|
-
FormInputComponent,
|
|
123
|
-
StringComponent,
|
|
124
|
-
OrganizationComponent,
|
|
125
|
-
DueDatePickerComponent,
|
|
126
|
-
ReactiveFormsModule,
|
|
127
|
-
YvcIconModule
|
|
128
|
-
], providers: [
|
|
123
|
+
args: [{ selector: 'yuv-sequence-list', standalone: true, imports: [CommonModule, TranslateModule, OrganizationComponent, ReactiveFormsModule, YvcIconModule], providers: [
|
|
129
124
|
{
|
|
130
125
|
provide: NG_VALUE_ACCESSOR,
|
|
131
126
|
useExisting: forwardRef(() => SequenceListComponent),
|
|
@@ -138,9 +133,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
138
133
|
}
|
|
139
134
|
], host: {
|
|
140
135
|
tabindex: '0'
|
|
141
|
-
}, template: "<form [formGroup]=\"sequenceForm\">\n <section formArrayName=\"items\">\n @for (item of sequenceForm.controls.items.controls; track itemIndex; let itemIndex = $index) {\n <div class=\"item\" [formGroup]=\"item\">\n <button class=\"add before\" type=\"button\" [disabled]=\"maxLengthExceeded\" (click)=\"addItemAt($index)\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n <span class=\"index\" [attr.data-index]=\"itemIndex + 1\"></span>\n\n <div class=\"item-form\">\n <button class=\"remove\" type=\"button\" (click)=\"removeItem($index)\"
|
|
136
|
+
}, template: "<form [formGroup]=\"sequenceForm\">\n <section formArrayName=\"items\">\n @for (item of sequenceForm.controls.items.controls; track itemIndex; let itemIndex = $index) {\n <div class=\"item\" [formGroup]=\"item\">\n <button class=\"add before\" type=\"button\" [disabled]=\"maxLengthExceeded\" (click)=\"addItemAt($index)\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n <span class=\"index\" [attr.data-index]=\"itemIndex + 1\"></span>\n\n <div class=\"item-form\">\n <button class=\"remove\" type=\"button\" (click)=\"removeItem($index)\" [disabled]=\"sequenceForm.controls.items.controls.length === 1\">\n <yvc-icon [svg]=\"icons.delete\"></yvc-icon>\n </button>\n <input [placeholder]=\"'yuv.sequence-list.form.task' | translate\" [maxLength]=\"128\" formControlName=\"title\" />\n <yuv-organization [title]=\"'yuv.sequence-list.form.nextAssignee' | translate\" [withMetadata]=\"true\" formControlName=\"nextAssignee\">\n </yuv-organization>\n </div>\n @if ($last) {\n <button class=\"add after\" type=\"button\" [disabled]=\"maxLengthExceeded\" (click)=\"addItem()\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n }\n </div>\n }\n </section>\n</form>\n", styles: [":host{--yvc-form-element-border-color: var(--form-element-border-color, var(--text-color-hint));--yvc-form-element-focus-border-color: var(--form-element-focus-border-color, var(--color-accent));--yvc-form-element-focus-outline-color: var(--form-element-focus-outline-color, rgba(var(--color-accent-rgb), .3));--yvc-form-element-focus-outline-with: var(--form-element-focus-outline-with, 2px);--yvc-form-element-disabled-background-color: var(--form-element-disabled-background-color, rgba(from var(--text-color-body) r g b / .1));--yvc-form-element-disabled-opacity: var(--form-element-disabled-opacity, .8);--_sequence-list-item-background: var(--sequence-list-item-background, var(--panel-background));--_sequence-list-item-border-color: var(--sequence-list-item-border-color, var(--panel-divider-color));--_sequence-list-item-border-radius: var(--sequence-list-item-border-radius, calc(var(--app-pane-padding) / 2));--_sequence-list-line-color: var(--sequence-list-line-color, var(--text-color-hint));--_sequence-list-line-width: var(--sequence-list-line-width, 2px);--_sequence-list-line-item-background: var(--sequence-list-line-item-background, var(--panel-background-lightgrey));--_sequence-list-line-item-border-radius: var(--sequence-list-line-item-border-radius, .25em)}:host form section{margin-inline-end:4px}:host form section button.add{--icon-size: 18px;border-radius:var(--_sequence-list-line-item-border-radius);padding:0;display:flex;align-items:center;justify-content:center;background-color:var(--_sequence-list-line-item-background);border:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color)}:host form section button.add:focus{outline:2px solid rgb(from var(--color-accent) r g b/.5);outline-offset:-2px;border-color:var(--color-accent)}:host form section .item{display:grid;grid-template-columns:6ch 1fr;grid-template-rows:auto auto;column-gap:1em;grid-template-areas:\"addBefore .\" \"index form\" \"addAfter .\"}:host form section .item.ng-invalid.ng-dirty .item-form{border-color:var(--color-error);outline:3px solid rgb(from var(--color-error) r g b/.5)}:host form section .item .add.before{grid-area:addBefore;justify-self:center}:host form section .item .add.after{grid-area:addAfter;justify-self:center}:host form section .item .index{grid-area:index;display:grid;align-items:center;justify-content:center}:host form section .item .index:after{content:attr(data-index);grid-row:1;grid-column:1;background-color:var(--_sequence-list-line-item-background);font-size:var(--font-hint);color:var(--text-color-caption);font-weight:700;border:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color);border-radius:var(--_sequence-list-line-item-border-radius);line-height:1em;padding:1px .25em;outline:3px solid rgb(from var(--_sequence-list-line-color) r g b/.1)}:host form section .item .index:before{content:\"\";grid-row:1;grid-column:1;height:100%;width:calc(50% - var(--_sequence-list-line-width) / 2);border-inline-end:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color)}:host form section .item .item-form{grid-area:form;background-color:var(--_sequence-list-item-background);border:1px solid var(--_sequence-list-item-border-color);border-radius:var(--_sequence-list-item-border-radius);padding:calc(var(--app-pane-padding) / 2);display:grid;column-gap:var(--app-pane-padding);row-gap:4px;grid-template-columns:1fr auto;grid-template-rows:repeat(3,auto);grid-template-areas:\"task remove\" \"user user\" \"date date\"}:host form section .item .item-form input{border:1px solid transparent;border-radius:calc(var(--_sequence-list-item-border-radius) / 2);grid-area:task;outline-offset:0;line-height:1em;padding:calc(var(--app-pane-padding) / 4);background-color:transparent;color:var(--text-color-body)}:host form section .item .item-form input:focus{border-color:var(--yvc-form-element-focus-border-color);outline:var(--yvc-form-element-focus-outline-with) solid var(--yvc-form-element-focus-outline-color)}:host form section .item .item-form yvc-datepicker{--form-element-border-color: transparent;grid-area:date;padding:0;flex-flow:row-reverse}:host form section .item .item-form yuv-organization{--form-element-border-color: transparent;border-radius:calc(var(--_sequence-list-item-border-radius) / 2);border:1px solid var(--form-element-border-color);grid-area:user;flex-flow:row-reverse}:host form section .item .item-form yuv-organization:focus-within{border-color:var(--yvc-form-element-focus-border-color);outline:var(--yvc-form-element-focus-outline-with) solid var(--yvc-form-element-focus-outline-color)}:host form section .item .item-form .remove{--icon-size: 18px;padding:calc(var(--app-pane-padding) / 4);grid-area:remove;padding:0}\n"] }]
|
|
142
137
|
}], ctorParameters: () => [], propDecorators: { orgComponent: [{
|
|
143
138
|
type: ViewChild,
|
|
144
139
|
args: [OrganizationComponent]
|
|
145
140
|
}] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NlcXVlbmNlLWxpc3Qvc3JjL2xpYi9zZXF1ZW5jZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvc2VxdWVuY2UtbGlzdC9zcmMvbGliL3NlcXVlbmNlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFLTCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFHbkIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFZckY7O0dBRUc7QUFnQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxHQUFHLENBQWtDO0lBc0JyQyxJQUFJLGFBQWE7UUFDZixPQUFPLElB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QUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3BELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLHdFQVFVLHFCQUFxQixnRENyRWxDLDYvQ0E2QkEseXJKRFVJLFlBQVksOEJBQ1osZUFBZSw0RkFHZixxQkFBcUIsK05BRXJCLG1CQUFtQixtakNBQ25CLGFBQWE7OzRGQW9CSixxQkFBcUI7a0JBL0JqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixhQUFhO3FCQUNkLGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzs0QkFDcEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsUUFDSzt3QkFDSixRQUFRLEVBQUUsR0FBRztxQkFDZDt3REFLaUMsWUFBWTtzQkFBN0MsU0FBUzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQXJyYXksXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQsIE9yZ2FuaXphdGlvbkNvbXBvbmVudCwgU3RyaW5nQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2Zvcm1zJztcbmltcG9ydCB7IFlVVl9JQ09OUyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9pY29ucyc7XG5pbXBvcnQgeyBJQ09OUywgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IER1ZURhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2R1ZS1kYXRlLXBpY2tlci9kdWUtZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcXVlbmNlSXRlbSB9IGZyb20gJy4vc2VxdWVuY2UtbGlzdC5pbnRlcmZhY2UnO1xuXG50eXBlIFNlcXVlbmNlRm9ybUl0ZW0gPSBGb3JtR3JvdXA8e1xuICB0aXRsZTogRm9ybUNvbnRyb2w8c3RyaW5nPjtcbiAgbmV4dEFzc2lnbmVlOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xuICBleHBpcnlEYXRldGltZTogRm9ybUNvbnRyb2w8YW55Pjtcbn0+O1xudHlwZSBTZXF1ZW5jZUZvcm0gPSBGb3JtR3JvdXA8e1xuICBpdGVtczogRm9ybUFycmF5PFNlcXVlbmNlRm9ybUl0ZW0+O1xufT47XG5cbi8qKlxuICogVGFzayBzZXF1ZW5jZSBsaXN0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtc2VxdWVuY2UtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBTdHJpbmdDb21wb25lbnQsXG4gICAgT3JnYW5pemF0aW9uQ29tcG9uZW50LFxuICAgIER1ZURhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBZdmNJY29uTW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXF1ZW5jZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NlcXVlbmNlLWxpc3QuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlcXVlbmNlTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlcXVlbmNlTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgIHRhYmluZGV4OiAnMCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgI2ZiID0gaW5qZWN0KE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIpO1xuXG4gIEBWaWV3Q2hpbGQoT3JnYW5pemF0aW9uQ29tcG9uZW50KSBvcmdDb21wb25lbnQhOiBPcmdhbml6YXRpb25Db21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHNlcXVlbmNlIGl0ZW1zIChkZWZhdWx0cyB0byAxMDApLlxuICAgKi9cbiAgbWF4TGVuZ3RoID0gaW5wdXQ8bnVtYmVyPigxMDApO1xuICBtYXhMZW5ndGhFeGNlZWRlZCA9IGZhbHNlO1xuXG4gIGljb25zID0ge1xuICAgIGRlbGV0ZTogSUNPTlMuY2xlYXIsXG4gICAgYWRkOiBZVVZfSUNPTlMuYWRkXG4gIH07XG5cbiAgLy8gZHluYW1pYyBmb3JtIGZvciBzZXF1ZW5jZSBpdGVtc1xuICBzZXF1ZW5jZUZvcm06IFNlcXVlbmNlRm9ybSA9IHRoaXMuI2ZiLmdyb3VwKHtcbiAgICBpdGVtczogdGhpcy4jZmIuYXJyYXk8U2VxdWVuY2VGb3JtSXRlbT4oW3RoaXMuI2dlbmVyYXRlU2VxdWVuY2VJdGVtKCldKVxuICB9KTtcblxuICBlbnRyaWVzOiBTZXF1ZW5jZUl0ZW1bXSA9IFtdO1xuXG4gIGdldCBmb3JtSXRlbUFycmF5KCk6IEZvcm1BcnJheTxTZXF1ZW5jZUZvcm1JdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VxdWVuY2VGb3JtLmNvbnRyb2xzLml0ZW1zIGFzIEZvcm1BcnJheTxTZXF1ZW5jZUZvcm1JdGVtPjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2VxdWVuY2VGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy4jcHJvcGFnYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICAjZ2VuZXJhdGVTZXF1ZW5jZUl0ZW0oc2VxdWVuY2VJdGVtPzogU2VxdWVuY2VJdGVtKTogU2VxdWVuY2VGb3JtSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuI2ZiLmdyb3VwKHtcbiAgICAgIHRpdGxlOiBbc2VxdWVuY2VJdGVtPy50aXRsZSB8fCAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBuZXh0QXNzaWduZWU6IFtzZXF1ZW5jZUl0ZW0/Lm5leHRBc3NpZ25lZS5pZCB8fCAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBleHBpcnlEYXRldGltZTogW3NlcXVlbmNlSXRlbT8uZXhwaXJ5RGF0ZXRpbWUgfHwgdW5kZWZpbmVkXVxuICAgIH0pO1xuICB9XG5cbiAgYWRkSXRlbSgpIHtcbiAgICB0aGlzLnNlcXVlbmNlRm9ybS5jb250cm9scy5pdGVtcy5wdXNoKHRoaXMuI2dlbmVyYXRlU2VxdWVuY2VJdGVtKCkpO1xuICAgIHRoaXMuI3VwZGF0ZVN0YXRlKCk7XG4gIH1cbiAgXG4gIGFkZEl0ZW1BdChpZHg6IG51bWJlcikge1xuICAgIHRoaXMuc2VxdWVuY2VGb3JtLmNvbnRyb2xzLml0ZW1zLmluc2VydChpZHgsIHRoaXMuI2dlbmVyYXRlU2VxdWVuY2VJdGVtKCkpO1xuICAgIHRoaXMuI3VwZGF0ZVN0YXRlKCk7XG4gIH1cbiAgXG4gIHJlbW92ZUl0ZW0oaWR4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlcXVlbmNlRm9ybS5jb250cm9scy5pdGVtcy5yZW1vdmVBdChpZHgpO1xuICAgIHRoaXMuI3VwZGF0ZVN0YXRlKCk7XG4gIH1cblxuICAjdXBkYXRlU3RhdGUoKSB7XG4gICAgY29uc3QgbWwgPSB0aGlzLm1heExlbmd0aCgpO1xuICAgIHRoaXMubWF4TGVuZ3RoRXhjZWVkZWQgPSBtbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZm9ybUl0ZW1BcnJheS5sZW5ndGggPj0gbWw7XG4gIH1cblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgcmVnaXN0ZXJPblRvdWNoZWQoKTogdm9pZCB7fVxuXG4gICNwcm9wYWdhdGUoKSB7XG4gICAgY29uc3QgcmVzOiBTZXF1ZW5jZUl0ZW1bXSA9IFtdO1xuICAgICh0aGlzLnNlcXVlbmNlRm9ybS52YWx1ZS5pdGVtcyB8fCBbXSkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBjb25zdCBpOiBTZXF1ZW5jZUl0ZW0gPSB7XG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxuICAgICAgICBuZXh0QXNzaWduZWU6IGl0ZW0ubmV4dEFzc2lnbmVlXG4gICAgICB9O1xuICAgICAgaWYgKGl0ZW0uZXhwaXJ5RGF0ZXRpbWUpIHtcbiAgICAgICAgaS5leHBpcnlEYXRldGltZSA9IGl0ZW0uZXhwaXJ5RGF0ZXRpbWU7XG4gICAgICB9XG4gICAgICByZXMucHVzaChpKTtcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHJlcyk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBTZXF1ZW5jZUl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuZW50cmllcyA9IHZhbHVlIHx8IFtdO1xuICAgIHRoaXMuZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgdGhpcy5mb3JtSXRlbUFycmF5LnB1c2godGhpcy4jZ2VuZXJhdGVTZXF1ZW5jZUl0ZW0oZW50cnkpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgbWwgPSB0aGlzLm1heExlbmd0aCgpO1xuICAgIGNvbnN0IG1sRXhjZWVkZWQgPSBtbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZm9ybUl0ZW1BcnJheS5sZW5ndGggPiBtbDtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMuc2VxdWVuY2VGb3JtLnZhbGlkICYmICFtbEV4Y2VlZGVkOyAgXG4gICAgXG4gICAgcmV0dXJuICF2YWxpZFxuICAgICAgPyB7XG4gICAgICAgICAgc2VxdWVuY2VsaXN0OiB7IFxuICAgICAgICAgICAgaW52YWxpZDogIHRoaXMuc2VxdWVuY2VGb3JtLmludmFsaWQsIFxuICAgICAgICAgICAgbWF4TGVuZ3RoRXhjZWVkZWQ6IG1sRXhjZWVkZWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJzZXF1ZW5jZUZvcm1cIj5cbiAgPHNlY3Rpb24gZm9ybUFycmF5TmFtZT1cIml0ZW1zXCI+XG4gICAgQGZvciAoaXRlbSBvZiBzZXF1ZW5jZUZvcm0uY29udHJvbHMuaXRlbXMuY29udHJvbHM7IHRyYWNrIGl0ZW1JbmRleDsgbGV0IGl0ZW1JbmRleCA9ICRpbmRleCkge1xuICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiBbZm9ybUdyb3VwXT1cIml0ZW1cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZCBiZWZvcmVcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cIm1heExlbmd0aEV4Y2VlZGVkXCIgKGNsaWNrKT1cImFkZEl0ZW1BdCgkaW5kZXgpXCI+PHl2Yy1pY29uIFtzdmddPVwiaWNvbnMuYWRkXCI+PC95dmMtaWNvbj48L2J1dHRvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmRleFwiIFthdHRyLmRhdGEtaW5kZXhdPVwiaXRlbUluZGV4ICsgMVwiPjwvc3Bhbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1mb3JtXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlbW92ZVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVtb3ZlSXRlbSgkaW5kZXgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwic2VxdWVuY2VGb3JtLmNvbnRyb2xzLml0ZW1zLmNvbnRyb2xzLmxlbmd0aCA9PT0gMVwiPjx5dmMtaWNvbiBbc3ZnXT1cImljb25zLmRlbGV0ZVwiPjwveXZjLWljb24+PC9idXR0b24+XG4gICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCIneXV2LnNlcXVlbmNlLWxpc3QuZm9ybS50YXNrJyB8IHRyYW5zbGF0ZVwiIFttYXhMZW5ndGhdPVwiMTI4XCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgIDx5dXYtb3JnYW5pemF0aW9uXG4gICAgICAgICAgW3RpdGxlXT1cIid5dXYuc2VxdWVuY2UtbGlzdC5mb3JtLm5leHRBc3NpZ25lZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFt3aXRoTWV0YWRhdGFdPVwidHJ1ZVwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmV4dEFzc2lnbmVlXCI+IDwveXV2LW9yZ2FuaXphdGlvbj5cbiAgICAgICAgICBcbiAgICAgICAgICA8IS0tIDx5dXYtZHVlLWRhdGUtcGlja2VyIFxuICAgICAgICAgIFt0aXRsZV09XCIneXV2LnNlcXVlbmNlLWxpc3QuZm9ybS5leHBpcnlEYXRldGltZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImV4cGlyeURhdGV0aW1lXCI+PC95dXYtZHVlLWRhdGUtcGlja2VyPiAgICAgICAgICAgLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKCRsYXN0KSB7XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZCBhZnRlclwiIHR5cGU9XCJidXR0b25cIiBcbiAgICAgICAgICBbZGlzYWJsZWRdPVwibWF4TGVuZ3RoRXhjZWVkZWRcIlxuICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtKClcIj48eXZjLWljb24gW3N2Z109XCJpY29ucy5hZGRcIj48L3l2Yy1pY29uPjwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvc2VjdGlvbj5cbjwvZm9ybT5cbiJdfQ==
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NlcXVlbmNlLWxpc3Qvc3JjL2xpYi9zZXF1ZW5jZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvc2VxdWVuY2UtbGlzdC9zcmMvbGliL3NlcXVlbmNlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFLTCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFHbkIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQVkvRDs7R0FFRztBQXVCSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLEdBQUcsQ0FBa0M7SUFzQnJDLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBb0MsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7UUExQkEsUUFBRyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBSXJDOztXQUVHO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBUyxHQUFHLENBQUMsQ0FBQztRQUMvQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsVUFBSyxHQUFHO1lBQ04sTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ25CLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRztTQUNuQixDQUFDO1FBRUYsa0NBQWtDO1FBQ2xDLGlCQUFZLEdBQWlCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBbUIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1NBQ3hFLENBQUMsQ0FBQztRQUVILFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBd0M3QixnRUFBZ0U7UUFDaEUsb0JBQWUsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBbEMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFCQUFxQixDQUFDLFlBQTJCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDcEIsS0FBSyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN2RCxZQUFZLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3JFLGNBQWMsRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLElBQUksU0FBUyxDQUFDO1NBQzVELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUMvRSxDQUFDO0lBSUQsZ0VBQWdFO0lBQ2hFLGlCQUFpQixLQUFVLENBQUM7SUFFNUIsVUFBVTtRQUNSLE1BQU0sR0FBRyxHQUFtQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDMUQsTUFBTSxDQUFDLEdBQWlCO2dCQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTthQUNoQyxDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXFCO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUIsTUFBTSxVQUFVLEdBQUcsRUFBRSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDdEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFckQsT0FBTyxDQUFDLEtBQUs7WUFDWCxDQUFDLENBQUM7Z0JBQ0UsWUFBWSxFQUFFO29CQUNaLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87b0JBQ2xDLGlCQUFpQixFQUFFLFVBQVU7aUJBQzlCO2FBQ0Y7WUFDSCxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQzsrR0E1R1UscUJBQXFCO21HQUFyQixxQkFBcUIsMlBBaEJyQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3BELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLHdFQVFVLHFCQUFxQixnREMzRGxDLCt3Q0FzQkEseXJKRGVZLFlBQVksOEJBQUUsZUFBZSw0RkFBRSxxQkFBcUIsK05BQUUsbUJBQW1CLG1qQ0FBRSxhQUFhOzs0RkFtQnZGLHFCQUFxQjtrQkF0QmpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLGFBR3hGO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLFFBQ0s7d0JBQ0osUUFBUSxFQUFFLEdBQUc7cUJBQ2Q7d0RBS2lDLFlBQVk7c0JBQTdDLFNBQVM7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUFycmF5LFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTm9uTnVsbGFibGVGb3JtQnVpbGRlcixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2Zvcm1zJztcbmltcG9ydCB7IFlVVl9JQ09OUyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9pY29ucyc7XG5pbXBvcnQgeyBJQ09OUywgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IFNlcXVlbmNlSXRlbSwgU2VxdWVuY2VMaXN0QXNzaWduZWUgfSBmcm9tICcuL3NlcXVlbmNlLWxpc3QuaW50ZXJmYWNlJztcblxudHlwZSBTZXF1ZW5jZUZvcm1JdGVtID0gRm9ybUdyb3VwPHtcbiAgdGl0bGU6IEZvcm1Db250cm9sPHN0cmluZz47XG4gIG5leHRBc3NpZ25lZTogRm9ybUNvbnRyb2w8U2VxdWVuY2VMaXN0QXNzaWduZWUgfCBzdHJpbmc+O1xuICBleHBpcnlEYXRldGltZTogRm9ybUNvbnRyb2w8YW55Pjtcbn0+O1xudHlwZSBTZXF1ZW5jZUZvcm0gPSBGb3JtR3JvdXA8e1xuICBpdGVtczogRm9ybUFycmF5PFNlcXVlbmNlRm9ybUl0ZW0+O1xufT47XG5cbi8qKlxuICogVGFzayBzZXF1ZW5jZSBsaXN0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtc2VxdWVuY2UtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgT3JnYW5pemF0aW9uQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBZdmNJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlcXVlbmNlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2VxdWVuY2UtbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VxdWVuY2VMaXN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VxdWVuY2VMaXN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBob3N0OiB7XG4gICAgdGFiaW5kZXg6ICcwJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFNlcXVlbmNlTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICAjZmIgPSBpbmplY3QoTm9uTnVsbGFibGVGb3JtQnVpbGRlcik7XG5cbiAgQFZpZXdDaGlsZChPcmdhbml6YXRpb25Db21wb25lbnQpIG9yZ0NvbXBvbmVudCE6IE9yZ2FuaXphdGlvbkNvbXBvbmVudDtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2VxdWVuY2UgaXRlbXMgKGRlZmF1bHRzIHRvIDEwMCkuXG4gICAqL1xuICBtYXhMZW5ndGggPSBpbnB1dDxudW1iZXI+KDEwMCk7XG4gIG1heExlbmd0aEV4Y2VlZGVkID0gZmFsc2U7XG5cbiAgaWNvbnMgPSB7XG4gICAgZGVsZXRlOiBJQ09OUy5jbGVhcixcbiAgICBhZGQ6IFlVVl9JQ09OUy5hZGRcbiAgfTtcblxuICAvLyBkeW5hbWljIGZvcm0gZm9yIHNlcXVlbmNlIGl0ZW1zXG4gIHNlcXVlbmNlRm9ybTogU2VxdWVuY2VGb3JtID0gdGhpcy4jZmIuZ3JvdXAoe1xuICAgIGl0ZW1zOiB0aGlzLiNmYi5hcnJheTxTZXF1ZW5jZUZvcm1JdGVtPihbdGhpcy4jZ2VuZXJhdGVTZXF1ZW5jZUl0ZW0oKV0pXG4gIH0pO1xuXG4gIGVudHJpZXM6IFNlcXVlbmNlSXRlbVtdID0gW107XG5cbiAgZ2V0IGZvcm1JdGVtQXJyYXkoKTogRm9ybUFycmF5PFNlcXVlbmNlRm9ybUl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXF1ZW5jZUZvcm0uY29udHJvbHMuaXRlbXMgYXMgRm9ybUFycmF5PFNlcXVlbmNlRm9ybUl0ZW0+O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zZXF1ZW5jZUZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLiNwcm9wYWdhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gICNnZW5lcmF0ZVNlcXVlbmNlSXRlbShzZXF1ZW5jZUl0ZW0/OiBTZXF1ZW5jZUl0ZW0pOiBTZXF1ZW5jZUZvcm1JdGVtIHtcbiAgICByZXR1cm4gdGhpcy4jZmIuZ3JvdXAoe1xuICAgICAgdGl0bGU6IFtzZXF1ZW5jZUl0ZW0/LnRpdGxlIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIG5leHRBc3NpZ25lZTogW3NlcXVlbmNlSXRlbT8ubmV4dEFzc2lnbmVlIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGV4cGlyeURhdGV0aW1lOiBbc2VxdWVuY2VJdGVtPy5leHBpcnlEYXRldGltZSB8fCB1bmRlZmluZWRdXG4gICAgfSk7XG4gIH1cblxuICBhZGRJdGVtKCkge1xuICAgIHRoaXMuc2VxdWVuY2VGb3JtLmNvbnRyb2xzLml0ZW1zLnB1c2godGhpcy4jZ2VuZXJhdGVTZXF1ZW5jZUl0ZW0oKSk7XG4gICAgdGhpcy4jdXBkYXRlU3RhdGUoKTtcbiAgfVxuXG4gIGFkZEl0ZW1BdChpZHg6IG51bWJlcikge1xuICAgIHRoaXMuc2VxdWVuY2VGb3JtLmNvbnRyb2xzLml0ZW1zLmluc2VydChpZHgsIHRoaXMuI2dlbmVyYXRlU2VxdWVuY2VJdGVtKCkpO1xuICAgIHRoaXMuI3VwZGF0ZVN0YXRlKCk7XG4gIH1cblxuICByZW1vdmVJdGVtKGlkeDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXF1ZW5jZUZvcm0uY29udHJvbHMuaXRlbXMucmVtb3ZlQXQoaWR4KTtcbiAgICB0aGlzLiN1cGRhdGVTdGF0ZSgpO1xuICB9XG5cbiAgI3VwZGF0ZVN0YXRlKCkge1xuICAgIGNvbnN0IG1sID0gdGhpcy5tYXhMZW5ndGgoKTtcbiAgICB0aGlzLm1heExlbmd0aEV4Y2VlZGVkID0gbWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmZvcm1JdGVtQXJyYXkubGVuZ3RoID49IG1sO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICByZWdpc3Rlck9uVG91Y2hlZCgpOiB2b2lkIHt9XG5cbiAgI3Byb3BhZ2F0ZSgpIHtcbiAgICBjb25zdCByZXM6IFNlcXVlbmNlSXRlbVtdID0gW107XG4gICAgKHRoaXMuc2VxdWVuY2VGb3JtLnZhbHVlLml0ZW1zIHx8IFtdKS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGk6IFNlcXVlbmNlSXRlbSA9IHtcbiAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXG4gICAgICAgIG5leHRBc3NpZ25lZTogaXRlbS5uZXh0QXNzaWduZWVcbiAgICAgIH07XG4gICAgICBpZiAoaXRlbS5leHBpcnlEYXRldGltZSkge1xuICAgICAgICBpLmV4cGlyeURhdGV0aW1lID0gaXRlbS5leHBpcnlEYXRldGltZTtcbiAgICAgIH1cbiAgICAgIHJlcy5wdXNoKGkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UocmVzKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFNlcXVlbmNlSXRlbVtdKTogdm9pZCB7XG4gICAgdGhpcy5lbnRyaWVzID0gdmFsdWUgfHwgW107XG4gICAgdGhpcy5mb3JtSXRlbUFycmF5LmNsZWFyKCk7XG4gICAgaWYgKHRoaXMuZW50cmllcy5sZW5ndGggPT09IDApIHRoaXMuYWRkSXRlbSgpO1xuICAgIHRoaXMuZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgdGhpcy5mb3JtSXRlbUFycmF5LnB1c2godGhpcy4jZ2VuZXJhdGVTZXF1ZW5jZUl0ZW0oZW50cnkpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgbWwgPSB0aGlzLm1heExlbmd0aCgpO1xuICAgIGNvbnN0IG1sRXhjZWVkZWQgPSBtbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZm9ybUl0ZW1BcnJheS5sZW5ndGggPiBtbDtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMuc2VxdWVuY2VGb3JtLnZhbGlkICYmICFtbEV4Y2VlZGVkO1xuXG4gICAgcmV0dXJuICF2YWxpZFxuICAgICAgPyB7XG4gICAgICAgICAgc2VxdWVuY2VsaXN0OiB7XG4gICAgICAgICAgICBpbnZhbGlkOiB0aGlzLnNlcXVlbmNlRm9ybS5pbnZhbGlkLFxuICAgICAgICAgICAgbWF4TGVuZ3RoRXhjZWVkZWQ6IG1sRXhjZWVkZWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJzZXF1ZW5jZUZvcm1cIj5cbiAgPHNlY3Rpb24gZm9ybUFycmF5TmFtZT1cIml0ZW1zXCI+XG4gICAgQGZvciAoaXRlbSBvZiBzZXF1ZW5jZUZvcm0uY29udHJvbHMuaXRlbXMuY29udHJvbHM7IHRyYWNrIGl0ZW1JbmRleDsgbGV0IGl0ZW1JbmRleCA9ICRpbmRleCkge1xuICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiBbZm9ybUdyb3VwXT1cIml0ZW1cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZCBiZWZvcmVcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cIm1heExlbmd0aEV4Y2VlZGVkXCIgKGNsaWNrKT1cImFkZEl0ZW1BdCgkaW5kZXgpXCI+PHl2Yy1pY29uIFtzdmddPVwiaWNvbnMuYWRkXCI+PC95dmMtaWNvbj48L2J1dHRvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmRleFwiIFthdHRyLmRhdGEtaW5kZXhdPVwiaXRlbUluZGV4ICsgMVwiPjwvc3Bhbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1mb3JtXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlbW92ZVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVtb3ZlSXRlbSgkaW5kZXgpXCIgW2Rpc2FibGVkXT1cInNlcXVlbmNlRm9ybS5jb250cm9scy5pdGVtcy5jb250cm9scy5sZW5ndGggPT09IDFcIj5cbiAgICAgICAgICAgIDx5dmMtaWNvbiBbc3ZnXT1cImljb25zLmRlbGV0ZVwiPjwveXZjLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCIneXV2LnNlcXVlbmNlLWxpc3QuZm9ybS50YXNrJyB8IHRyYW5zbGF0ZVwiIFttYXhMZW5ndGhdPVwiMTI4XCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgIDx5dXYtb3JnYW5pemF0aW9uIFt0aXRsZV09XCIneXV2LnNlcXVlbmNlLWxpc3QuZm9ybS5uZXh0QXNzaWduZWUnIHwgdHJhbnNsYXRlXCIgW3dpdGhNZXRhZGF0YV09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwibmV4dEFzc2lnbmVlXCI+XG4gICAgICAgICAgPC95dXYtb3JnYW5pemF0aW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmICgkbGFzdCkge1xuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhZGQgYWZ0ZXJcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cIm1heExlbmd0aEV4Y2VlZGVkXCIgKGNsaWNrKT1cImFkZEl0ZW0oKVwiPjx5dmMtaWNvbiBbc3ZnXT1cImljb25zLmFkZFwiPjwveXZjLWljb24+PC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9zZWN0aW9uPlxuPC9mb3JtPlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UtbGlzdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NlcXVlbmNlLWxpc3Qvc3JjL2xpYi9zZXF1ZW5jZS1saXN0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZXF1ZW5jZUl0ZW0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBleHBpcnlEYXRldGltZT86IERhdGU7XG4gIG5leHRBc3NpZ25lZTogU2VxdWVuY2VMaXN0QXNzaWduZWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VxdWVuY2VMaXN0VGVtcGxhdGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNlcXVlbmNlOiBTZXF1ZW5jZUl0ZW1bXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VxdWVuY2VMaXN0VGVtcGxhdGVTYXZlUmVzcG9uc2Uge1xuICB0ZW1wbGF0ZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXF1ZW5jZUxpc3RBc3NpZ25lZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG59XG4iXX0=
|