@bizdoc/core 2.3.18 → 2.3.20
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/esm2022/lib/admin/admin-menu.component.mjs +9 -10
- package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +11 -11
- package/esm2022/lib/admin/architecture/designer-element.component.mjs +4 -4
- package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +15 -16
- package/esm2022/lib/admin/architecture/designer.component.mjs +16 -15
- package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +13 -14
- package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +11 -12
- package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +4 -5
- package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +11 -12
- package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +13 -14
- package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +9 -10
- package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +11 -12
- package/esm2022/lib/admin/architecture/elements/cube.component.mjs +23 -24
- package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +11 -12
- package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/elements/folder.component.mjs +16 -17
- package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +17 -18
- package/esm2022/lib/admin/architecture/elements/form.component.mjs +22 -23
- package/esm2022/lib/admin/architecture/elements/guide.component.mjs +16 -17
- package/esm2022/lib/admin/architecture/elements/job.component.mjs +12 -13
- package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +9 -10
- package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +12 -13
- package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/elements/report.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +8 -9
- package/esm2022/lib/admin/architecture/elements/role.component.mjs +13 -14
- package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +13 -13
- package/esm2022/lib/admin/architecture/elements/type.component.mjs +18 -19
- package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +11 -12
- package/esm2022/lib/admin/architecture/elements/widget.component.mjs +10 -11
- package/esm2022/lib/admin/architecture/icon-picker.component.mjs +7 -8
- package/esm2022/lib/admin/core/color-picker.input.mjs +5 -6
- package/esm2022/lib/admin/core/localized-string.component.mjs +10 -11
- package/esm2022/lib/admin/diff/configuration-diff.component.mjs +11 -11
- package/esm2022/lib/admin/document-trace/document-trace.component.mjs +18 -18
- package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +12 -12
- package/esm2022/lib/admin/document-trace/trace-element.component.mjs +13 -12
- package/esm2022/lib/admin/form/designer/box-designer.component.mjs +24 -60
- package/esm2022/lib/admin/form/designer/declarations.mjs +1 -1
- package/esm2022/lib/admin/form/designer/design-control.component.mjs +41 -0
- package/esm2022/lib/admin/form/designer/properties.component.mjs +11 -12
- package/esm2022/lib/admin/form/designer/section.component.mjs +11 -12
- package/esm2022/lib/admin/form/workflow/node.component.mjs +9 -10
- package/esm2022/lib/admin/form/workflow/role-node.component.mjs +15 -16
- package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
- package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +13 -13
- package/esm2022/lib/admin/patterns/patterns.component.mjs +19 -19
- package/esm2022/lib/admin/permissions/permissions.component.mjs +14 -15
- package/esm2022/lib/admin/positions/positions-popup.component.mjs +11 -11
- package/esm2022/lib/admin/positions/positions.component.mjs +23 -24
- package/esm2022/lib/admin/profiler/outofoffice.component.mjs +13 -13
- package/esm2022/lib/admin/profiler/profiler.component.mjs +15 -15
- package/esm2022/lib/browse/browse-items.component.mjs +3 -3
- package/esm2022/lib/browse/browse.mobile.component.mjs +15 -16
- package/esm2022/lib/browse/browse.pane.component.mjs +14 -15
- package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +14 -15
- package/esm2022/lib/browse/filter/filter.component.mjs +13 -13
- package/esm2022/lib/browse/folders-menu.component.mjs +10 -11
- package/esm2022/lib/chat/chat.mobile.component.mjs +5 -6
- package/esm2022/lib/chat/contacts.component.mjs +16 -16
- package/esm2022/lib/chat/conversation.component.mjs +13 -14
- package/esm2022/lib/compose/action/action-picker.component.mjs +9 -10
- package/esm2022/lib/compose/action/action.dialog.mjs +8 -9
- package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +6 -7
- package/esm2022/lib/compose/action/assign-action.component.mjs +12 -12
- package/esm2022/lib/compose/action/moveto-action.component.mjs +11 -11
- package/esm2022/lib/compose/action/return-action.component.mjs +9 -9
- package/esm2022/lib/compose/attachments/attachments.component.mjs +11 -12
- package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +8 -9
- package/esm2022/lib/compose/box/box.component.mjs +7 -8
- package/esm2022/lib/compose/comments/comment.component.mjs +14 -15
- package/esm2022/lib/compose/comments/comments.component.mjs +8 -9
- package/esm2022/lib/compose/comments/edits.component.mjs +5 -5
- package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +5 -6
- package/esm2022/lib/compose/comments/votes.component.mjs +8 -8
- package/esm2022/lib/compose/compose.mobile.component.mjs +16 -17
- package/esm2022/lib/compose/compose.pane.component.mjs +15 -16
- package/esm2022/lib/compose/copy/copy.dialog.mjs +11 -11
- package/esm2022/lib/compose/events/events.component.mjs +7 -8
- package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +7 -8
- package/esm2022/lib/compose/form.component.mjs +5 -5
- package/esm2022/lib/compose/new-menu.component.mjs +8 -9
- package/esm2022/lib/compose/tag/tags.component.mjs +10 -10
- package/esm2022/lib/compose/trace/people.component.mjs +4 -5
- package/esm2022/lib/compose/version-compare/version.pane.component.mjs +10 -11
- package/esm2022/lib/core/animations.mjs +7 -1
- package/esm2022/lib/core/checkbox.mjs +20 -17
- package/esm2022/lib/core/fields/address.field.mjs +35 -26
- package/esm2022/lib/core/fields/autocomplete.field.mjs +68 -52
- package/esm2022/lib/core/fields/checkbox.field.mjs +9 -10
- package/esm2022/lib/core/fields/checklist.designer.mjs +66 -47
- package/esm2022/lib/core/fields/checklist.field.mjs +8 -9
- package/esm2022/lib/core/fields/date-range.field.mjs +6 -6
- package/esm2022/lib/core/fields/date.field.mjs +10 -11
- package/esm2022/lib/core/fields/expression.field.mjs +31 -23
- package/esm2022/lib/core/fields/file.field.mjs +8 -9
- package/esm2022/lib/core/fields/html.field.mjs +9 -10
- package/esm2022/lib/core/fields/input.field.mjs +8 -9
- package/esm2022/lib/core/fields/numeric.field.mjs +7 -7
- package/esm2022/lib/core/fields/options.component.mjs +11 -12
- package/esm2022/lib/core/fields/radio-button.designer.mjs +10 -11
- package/esm2022/lib/core/fields/radio-button.field.mjs +8 -9
- package/esm2022/lib/core/fields/select.designer.mjs +71 -52
- package/esm2022/lib/core/fields/select.field.mjs +9 -10
- package/esm2022/lib/core/fields/signature.field.mjs +10 -11
- package/esm2022/lib/core/fields/switch.field.mjs +8 -9
- package/esm2022/lib/core/fields/tags.field.mjs +9 -10
- package/esm2022/lib/core/fields/textarea.field.mjs +9 -10
- package/esm2022/lib/core/fields/time.field.mjs +9 -10
- package/esm2022/lib/core/fields/timespan.field.mjs +33 -26
- package/esm2022/lib/core/fields/yesno.designer.mjs +70 -55
- package/esm2022/lib/core/fields/yesno.field.mjs +8 -9
- package/esm2022/lib/core/guide/guide.component.mjs +7 -8
- package/esm2022/lib/core/guide/help-tip.component.mjs +21 -18
- package/esm2022/lib/core/identity/identity.component.mjs +5 -6
- package/esm2022/lib/core/inputs/address.input.mjs +24 -21
- package/esm2022/lib/core/inputs/auto-complete.input.mjs +42 -26
- package/esm2022/lib/core/inputs/combination-picker-body.mjs +12 -13
- package/esm2022/lib/core/inputs/combination-picker.mjs +8 -5
- package/esm2022/lib/core/inputs/combination-pool.mjs +7 -8
- package/esm2022/lib/core/inputs/file.input.mjs +11 -12
- package/esm2022/lib/core/inputs/select.input.mjs +39 -23
- package/esm2022/lib/core/inputs/time-picker.mjs +6 -7
- package/esm2022/lib/core/mailbox.service.mjs +1 -1
- package/esm2022/lib/core/models.mjs +1 -1
- package/esm2022/lib/core/none.component.mjs +19 -22
- package/esm2022/lib/core/slots/slots.component.mjs +13 -14
- package/esm2022/lib/core/tagging/documents.component.mjs +7 -7
- package/esm2022/lib/core/tagging/edit-input.component.mjs +12 -13
- package/esm2022/lib/core/tagging/users.component.mjs +7 -7
- package/esm2022/lib/core/translations.mjs +2 -2
- package/esm2022/lib/cube/cube-menu.component.mjs +8 -9
- package/esm2022/lib/cube/explore/explore-items.component.mjs +8 -8
- package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +6 -7
- package/esm2022/lib/cube/filter/filter.component.mjs +11 -11
- package/esm2022/lib/cube/grid/spreadsheet.component.mjs +1 -2
- package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +12 -12
- package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +12 -12
- package/esm2022/lib/cube/matrix/popup.component.mjs +10 -10
- package/esm2022/lib/cube/matrix/table.component.mjs +3 -4
- package/esm2022/lib/cube/parallel/parallel.component.mjs +4 -5
- package/esm2022/lib/cube/sum/sum.component.mjs +3 -3
- package/esm2022/lib/cube/view.mobile.component.mjs +16 -17
- package/esm2022/lib/cube/view.pane.component.mjs +12 -13
- package/esm2022/lib/dashboard/dashboard.component.mjs +11 -12
- package/esm2022/lib/dashboard/recents/recents.widget.mjs +11 -12
- package/esm2022/lib/dashboard/score/activity.widget.mjs +4 -5
- package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +5 -5
- package/esm2022/lib/dashboard/score/pending-results.widget.mjs +11 -12
- package/esm2022/lib/dashboard/score/personal-score.widget.mjs +3 -2
- package/esm2022/lib/designer.module.mjs +6 -5
- package/esm2022/lib/home/about/about.dialog.mjs +7 -8
- package/esm2022/lib/home/home.desktop.component.mjs +17 -18
- package/esm2022/lib/home/home.mobile.component.mjs +16 -17
- package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
- package/esm2022/lib/home/options/options.component.mjs +11 -11
- package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +8 -9
- package/esm2022/lib/home/tools.component.mjs +13 -13
- package/esm2022/lib/impersonate/impersonate.component.mjs +10 -10
- package/esm2022/lib/modules/gantt.module.mjs +4 -2
- package/esm2022/lib/notifications/notifications-table.component.mjs +3 -3
- package/esm2022/lib/notifications/types/commented.notification.mjs +19 -12
- package/esm2022/lib/notifications/types/escalated.notification.mjs +6 -6
- package/esm2022/lib/notifications/types/liked.notification.mjs +19 -12
- package/esm2022/lib/notifications/types/tagged.notification.mjs +9 -9
- package/esm2022/lib/notifications/types/text.notification.mjs +6 -3
- package/esm2022/lib/options/options.component.mjs +52 -28
- package/esm2022/lib/options/options.service.mjs +26 -6
- package/esm2022/lib/reports/cube/table-documents.component.mjs +10 -10
- package/esm2022/lib/reports/report.mobile.component.mjs +12 -13
- package/esm2022/lib/reports/report.pane.component.mjs +10 -11
- package/esm2022/lib/reports/reports-menu.component.mjs +7 -8
- package/esm2022/lib/reports/substitution/substitution.component.mjs +10 -11
- package/esm2022/lib/reports/table/table-view.component.mjs +5 -6
- package/esm2022/lib/search/path.component.mjs +17 -18
- package/esm2022/lib/shared.module.mjs +4 -2
- package/esm2022/lib/system.module.mjs +5 -5
- package/esm2022/lib/views/cube/chart.component.mjs +6 -7
- package/esm2022/lib/views/cube/explore.component.mjs +10 -10
- package/esm2022/lib/views/cube/matrix.component.mjs +11 -11
- package/esm2022/lib/views/cube/parallel.component.mjs +4 -5
- package/esm2022/lib/views/cube/pivot.component.mjs +4 -5
- package/esm2022/lib/views/cube/sum.component.mjs +12 -10
- package/esm2022/lib/views/cube/view.component.mjs +11 -12
- package/esm2022/lib/views/timeline/timeline.component.exp.mjs +191 -192
- package/esm2022/lib/views/views.component.mjs +4 -5
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/bizdoc-core.mjs +3509 -3296
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/architecture/elements/analysis-view.component.d.ts +2 -2
- package/lib/admin/architecture/elements/cube-view.component.d.ts +2 -2
- package/lib/admin/architecture/elements/form.component.d.ts +5 -5
- package/lib/admin/architecture/elements/matrix-view.component.d.ts +17 -9
- package/lib/admin/architecture/elements/parallel-view.component.d.ts +5 -5
- package/lib/admin/architecture/elements/tasks-report.component.d.ts +3 -2
- package/lib/admin/form/designer/box-designer.component.d.ts +26 -23
- package/lib/admin/form/designer/declarations.d.ts +2 -2
- package/lib/admin/form/designer/design-control.component.d.ts +19 -0
- package/lib/admin/form/designer/section.component.d.ts +3 -3
- package/lib/compose/attachments/attachments.component.d.ts +2 -2
- package/lib/core/animations.d.ts +1 -0
- package/lib/core/inputs/combination-picker.d.ts +1 -0
- package/lib/core/mailbox.service.d.ts +4 -3
- package/lib/core/models.d.ts +1 -1
- package/lib/cube/matrix/table.component.d.ts +2 -2
- package/lib/dashboard/score/peers-performance.widget.d.ts +1 -1
- package/lib/designer.module.d.ts +27 -26
- package/lib/notifications/types/escalated.notification.d.ts +1 -1
- package/lib/notifications/types/tagged.notification.d.ts +1 -1
- package/lib/notifications/types/text.notification.d.ts +1 -1
- package/lib/options/options.component.d.ts +6 -4
- package/lib/options/options.service.d.ts +7 -2
- package/lib/shared.module.d.ts +1 -1
- package/lib/system.module.d.ts +25 -25
- package/lib/views/cube/sum.component.d.ts +1 -0
- package/lib/views/timeline/timeline.component.exp.d.ts +2 -2
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
@@ -9,20 +9,19 @@ import * as i1 from "@angular/forms";
|
|
9
9
|
import * as i2 from "../../system.service";
|
10
10
|
import * as i3 from "../../../core/prompt.service";
|
11
11
|
import * as i4 from "../../../core/slots/pane-ref";
|
12
|
-
import * as i5 from "@angular/
|
13
|
-
import * as i6 from "@angular/material/
|
14
|
-
import * as i7 from "@angular/material/
|
15
|
-
import * as i8 from "@angular/material/
|
16
|
-
import * as i9 from "@angular/material/
|
17
|
-
import * as i10 from "@angular/material/
|
18
|
-
import * as i11 from "@angular/material/
|
19
|
-
import * as i12 from "@angular/material/
|
20
|
-
import * as i13 from "@angular/material/
|
21
|
-
import * as i14 from "@angular/material/
|
22
|
-
import * as i15 from "
|
23
|
-
import * as i16 from "
|
24
|
-
import * as i17 from "
|
25
|
-
import * as i18 from "../declarations";
|
12
|
+
import * as i5 from "@angular/material/chips";
|
13
|
+
import * as i6 from "@angular/material/datepicker";
|
14
|
+
import * as i7 from "@angular/material/list";
|
15
|
+
import * as i8 from "@angular/material/autocomplete";
|
16
|
+
import * as i9 from "@angular/material/core";
|
17
|
+
import * as i10 from "@angular/material/form-field";
|
18
|
+
import * as i11 from "@angular/material/button";
|
19
|
+
import * as i12 from "@angular/material/checkbox";
|
20
|
+
import * as i13 from "@angular/material/input";
|
21
|
+
import * as i14 from "@angular/material/icon";
|
22
|
+
import * as i15 from "../../core/localized-string.component";
|
23
|
+
import * as i16 from "../../../core/pipes/translate.pipe";
|
24
|
+
import * as i17 from "../declarations";
|
26
25
|
export class FormInviteDialog {
|
27
26
|
constructor(_fb, _service, _ps, _ref, _pane) {
|
28
27
|
this._fb = _fb;
|
@@ -117,13 +116,13 @@ export class FormInviteDialog {
|
|
117
116
|
return role?.title || name;
|
118
117
|
}
|
119
118
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: FormInviteDialog, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: i3.PromptService }, { token: DesignerRef }, { token: i4.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
120
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: FormInviteDialog, selector: "ng-component", ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n <mat-form-field>\n <mat-chip-grid #chips [attr.aria-label]=\"''\" multiple required>\n @for (r of groups.value; track r) {\n <mat-chip-row\n (removed)=\"removeRole(r)\">\n {{titleOf(r)}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'Roles'|translate\" required\n [formControl]=search\n #inputrole\n [matAutocomplete]=\"rolename\"\n [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #rolename=\"matAutocomplete\" (optionSelected)=\"addRole(inputrole, $event)\">\n @for (r of roles; track r) {\n <mat-option [value]=\"r.name\">\n {{r.title || r.name}}\n </mat-option>\n }\n </mat-autocomplete>\n @if (form.controls.groups.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Roles'|translate)\"></mat-error>\n }\n </mat-form-field>\n <bizdoc-localized-string formControlName=\"message\" [placeholder]=\"'Message'|translate\" class=\"flex column\" maxlength=\"400\"></bizdoc-localized-string>\n <mat-form-field>\n <mat-label>{{'InviteDue' | l18n}}</mat-label>\n <input matInput formControlName=\"due\"\n [matDatepicker]=\"duePicker\" />\n <mat-datepicker-toggle [for]=\"duePicker\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #duePicker></mat-datepicker>\n @if (form.controls.due.hasError('min')) {\n <mat-error [innerHTML]=\"'DateInPastErr'|translate\"></mat-error>\n }\n </mat-form-field>\n <mat-checkbox formControlName=\"oneTime\">{{'InviteOneTime'|l18n}}</mat-checkbox>\n <mat-selection-list formControlName=\"devices\" multiple>\n @for (d of devices; track d) {\n <mat-list-option [value]=\"d\">{{d|translate}}</mat-list-option>\n }\n </mat-selection-list>\n <button mat-raised-button color=\"primary\" (click)=\"send()\" [disabled]=\"!form.valid || working\">{{'Send'|l18n}}</button>\n </form>\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i5.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i7.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i7.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i13.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i15.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "pipe", type: i16.L18nPipe, name: "l18n" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] }); }
|
121
120
|
}
|
122
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: FormInviteDialog, decorators: [{
|
123
122
|
type: Component,
|
124
|
-
args: [{ template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\
|
125
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SystemService }, { type: i3.PromptService }, { type:
|
123
|
+
args: [{ template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n <mat-form-field>\n <mat-chip-grid #chips [attr.aria-label]=\"''\" multiple required>\n @for (r of groups.value; track r) {\n <mat-chip-row\n (removed)=\"removeRole(r)\">\n {{titleOf(r)}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'Roles'|translate\" required\n [formControl]=search\n #inputrole\n [matAutocomplete]=\"rolename\"\n [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #rolename=\"matAutocomplete\" (optionSelected)=\"addRole(inputrole, $event)\">\n @for (r of roles; track r) {\n <mat-option [value]=\"r.name\">\n {{r.title || r.name}}\n </mat-option>\n }\n </mat-autocomplete>\n @if (form.controls.groups.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Roles'|translate)\"></mat-error>\n }\n </mat-form-field>\n <bizdoc-localized-string formControlName=\"message\" [placeholder]=\"'Message'|translate\" class=\"flex column\" maxlength=\"400\"></bizdoc-localized-string>\n <mat-form-field>\n <mat-label>{{'InviteDue' | l18n}}</mat-label>\n <input matInput formControlName=\"due\"\n [matDatepicker]=\"duePicker\" />\n <mat-datepicker-toggle [for]=\"duePicker\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #duePicker></mat-datepicker>\n @if (form.controls.due.hasError('min')) {\n <mat-error [innerHTML]=\"'DateInPastErr'|translate\"></mat-error>\n }\n </mat-form-field>\n <mat-checkbox formControlName=\"oneTime\">{{'InviteOneTime'|l18n}}</mat-checkbox>\n <mat-selection-list formControlName=\"devices\" multiple>\n @for (d of devices; track d) {\n <mat-list-option [value]=\"d\">{{d|translate}}</mat-list-option>\n }\n </mat-selection-list>\n <button mat-raised-button color=\"primary\" (click)=\"send()\" [disabled]=\"!form.valid || working\">{{'Send'|l18n}}</button>\n </form>\n", styles: ["form{padding:8px}\n"] }]
|
124
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SystemService }, { type: i3.PromptService }, { type: i17.DesignerRef, decorators: [{
|
126
125
|
type: Inject,
|
127
126
|
args: [DesignerRef]
|
128
127
|
}] }, { type: i4.PaneRef }] });
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnZpdGUuZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZWxlbWVudHMvZm9ybS1pbnZpdGUuZGlhbG9nLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZWxlbWVudHMvZm9ybS1pbnZpdGUuZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTlELE1BQU0sT0FDRSxnQkFBZ0I7SUFpQnRCLFlBQ1UsR0FBZ0IsRUFDaEIsUUFBdUIsRUFDdkIsR0FBa0IsRUFDRyxJQUFpQixFQUN0QyxLQUFjO1FBSmQsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFlO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDRyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ3RDLFVBQUssR0FBTCxLQUFLLENBQVM7UUFyQmYsdUJBQWtCLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELFdBQU0sR0FBRyxJQUFJLENBQUMs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MEJMLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTU1BLCBFTlRFUiwgU0VNSUNPTE9OIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9rZXljb2Rlc1wiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGVcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmXCI7XHJcbmltcG9ydCB7IEludml0ZURldmljZSwgUm9sZSwgU3lzdGVtU2VydmljZSB9IGZyb20gXCIuLi8uLi9zeXN0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lclJlZiwgbG9jYWxpemVTdHJpbmcgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJ2Zvcm0taW52aXRlLmRpYWxvZy5odG1sJyxcclxuICBzdHlsZXM6IFtgZm9ybSB7cGFkZGluZzogOHB4fWBdXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEZvcm1JbnZpdGVEaWFsb2cgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BLCBTRU1JQ09MT05dO1xyXG4gIHJlYWRvbmx5IGdyb3VwcyA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgcmVhZG9ubHkgZGV2aWNlcyA9IFsnU21zJywgJ0VtYWlsJywgJ0lNJ10gYXMgSW52aXRlRGV2aWNlW107XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIGdyb3VwczogdGhpcy5ncm91cHMsXHJcbiAgICBkZXZpY2VzOiB0aGlzLl9mYi5jb250cm9sPEludml0ZURldmljZVtdPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIGR1ZTogdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLm1pbihuZXcgRGF0ZSgpLmdldFRpbWUoKSkpLFxyXG4gICAgb25lVGltZTogZmFsc2UsXHJcbiAgICBtZXNzYWdlOiB0aGlzLl9mYi5jb250cm9sPHN0cmluZz4obnVsbClcclxuICB9KTtcclxuICBwcml2YXRlIF9zZWFyY2hjaGFuZ2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgLyoqIGFsbCBCaXpEb2Mgcm9sZXMgYW5kIHVzZXIgZ3JvdXBzICovXHJcbiAgcHJpdmF0ZSBfcm9sZXM6IFJvbGVbXTtcclxuICByb2xlczogUm9sZVtdO1xyXG4gIHJlYWRvbmx5IHNlYXJjaCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgd29ya2luZzogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wczogUHJvbXB0U2VydmljZSxcclxuICAgIEBJbmplY3QoRGVzaWduZXJSZWYpIHByaXZhdGUgX3JlZjogRGVzaWduZXJSZWYsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmXHJcbiAgKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VydmljZS5yb2xlcygpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5fcm9sZXMgPSByLmNvbmNhdCh0aGlzLl9yZWYuZGVzaWduZXIucm9sZXMuZmlsdGVyKHIgPT4gIXIuZGlzYWJsZWQpLlxyXG4gICAgICAgIG1hcChyID0+ICh7XHJcbiAgICAgICAgICBuYW1lOiByLm5hbWUsXHJcbiAgICAgICAgICB0aXRsZTogbG9jYWxpemVTdHJpbmcoci50aXRsZSlcclxuICAgICAgICB9KSkpO1xyXG4gICAgICB0aGlzLl9yb2xlcy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICAgIHJbJ19pbmRleCddID0gKHIudGl0bGUgfHwgci5uYW1lKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIHRoaXMuX3JvbGVzW3IubmFtZV0gPSByO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5yb2xlcyA9IHRoaXMuX3JvbGVzLnNsaWNlKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgxNTApKS5zdWJzY3JpYmUoKHY6IHN0cmluZykgPT4ge1xyXG4gICAgICB0aGlzLl9zZWFyY2hjaGFuZ2UubmV4dCh2KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2VhcmNoY2hhbmdlLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgY29uc3QgZ3JvdXBzID0gdGhpcy5ncm91cHMudmFsdWUgfHwgW107XHJcbiAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gdi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLl9yb2xlcy5maWx0ZXIociA9PiByWydfaW5kZXgnXS5pbmRleE9mKHZhbCkgPiAtMSAmJiBncm91cHMuaW5kZXhPZihyLm5hbWUpIDwgMCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLl9yb2xlcy5maWx0ZXIociA9PiBncm91cHMuaW5kZXhPZihyLm5hbWUpIDwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICovXHJcbiAgcmVtb3ZlUm9sZShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCByb2xlcyA9IHRoaXMuZ3JvdXBzLnZhbHVlO1xyXG4gICAgY29uc3QgaW5kZXggPSByb2xlcy5pbmRleE9mKGlkKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPj0gMClcclxuICAgICAgcm9sZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuZ3JvdXBzLnNldFZhbHVlKHJvbGVzKTtcclxuICAgIHRoaXMuX3NlYXJjaGNoYW5nZS5uZXh0KG51bGwpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaW5wXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgYWRkUm9sZShpbnA6IEhUTUxJbnB1dEVsZW1lbnQsIGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCByb2xlcyA9IHRoaXMuZ3JvdXBzLnZhbHVlO1xyXG4gICAgY29uc3QgaWQgPSBldmVudC5vcHRpb24udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgaWYgKCFyb2xlcylcclxuICAgICAgdGhpcy5ncm91cHMuc2V0VmFsdWUoW2lkXSk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgcm9sZXMucHVzaChpZCk7XHJcbiAgICAgIHRoaXMuZ3JvdXBzLnNldFZhbHVlKHJvbGVzKTtcclxuICAgIH1cclxuICAgIGlucC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5zZWFyY2guc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG4gIHNlbmQoKSB7XHJcbiAgICBjb25zdCB7IGdyb3VwcywgZGV2aWNlcywgbWVzc2FnZSwgZHVlIH0gPSB0aGlzLmZvcm0udmFsdWU7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5fc2VydmljZS5pbnZpdGUodGhpcy5fcmVmLm1vZGVsLm5hbWUsIHsgZ3JvdXBzLCBtZXNzYWdlLCBkZXZpY2VzLCBkdWUgfSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9wcy50b2FzdChlLm9rID8gJ0ludml0YXRpb25zU2VudCcgOiAnTm9JbnZpdGF0aW9uc1NlbnQnLCBlLm9rKTtcclxuICAgICAgICAgIHRoaXMuX3BhbmUuY2xvc2UoKTtcclxuICAgICAgICB9LCBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcHMuZXJyb3IoKTtcclxuICAgICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHRpdGxlT2YobmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCByb2xlID0gdGhpcy5fcm9sZXNbbmFtZV07XHJcbiAgICByZXR1cm4gcm9sZT8udGl0bGUgfHwgbmFtZTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWNoaXAtZ3JpZCAjY2hpcHMgW2F0dHIuYXJpYS1sYWJlbF09XCInJ1wiIG11bHRpcGxlIHJlcXVpcmVkPlxyXG4gICAgICA8bWF0LWNoaXAtcm93ICpuZ0Zvcj1cImxldCByIG9mIGdyb3Vwcy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlUm9sZShyKVwiPlxyXG4gICAgICAgIHt7dGl0bGVPZihyKX19XHJcbiAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgPC9tYXQtY2hpcC1yb3c+XHJcbiAgICA8L21hdC1jaGlwLWdyaWQ+XHJcbiAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cIidSb2xlcyd8dHJhbnNsYXRlXCIgcmVxdWlyZWRcclxuICAgICAgICAgICBbZm9ybUNvbnRyb2xdPXNlYXJjaFxyXG4gICAgICAgICAgICNpbnB1dHJvbGVcclxuICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cInJvbGVuYW1lXCJcclxuICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBzXCJcclxuICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCI+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjcm9sZW5hbWU9XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwiYWRkUm9sZShpbnB1dHJvbGUsICRldmVudClcIj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygcm9sZXNcIiBbdmFsdWVdPVwici5uYW1lXCI+XHJcbiAgICAgICAge3tyLnRpdGxlIHx8IHIubmFtZX19XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnZ3JvdXBzJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiBbaW5uZXJIVE1MXT1cIidSZXF1aXJlZEVycid8dHJhbnNsYXRlOignUm9sZXMnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxiaXpkb2MtbG9jYWxpemVkLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJtZXNzYWdlXCIgW3BsYWNlaG9sZGVyXT1cIidNZXNzYWdlJ3x0cmFuc2xhdGVcIiBjbGFzcz1cImZsZXggY29sdW1uXCIgbWF4bGVuZ3RoPVwiNDAwXCI+PC9iaXpkb2MtbG9jYWxpemVkLXN0cmluZz5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWxhYmVsPnt7J0ludml0ZUR1ZScgfCBsMThufX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkdWVcIlxyXG4gICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImR1ZVBpY2tlclwiIC8+XHJcbiAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwiZHVlUGlja2VyXCIgbWF0U3VmZml4PjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyICNkdWVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnZHVlJykuaGFzRXJyb3IoJ21pbicpXCIgW2lubmVySFRNTF09XCInRGF0ZUluUGFzdEVycid8dHJhbnNsYXRlOihsYWJlbHx8bmFtZSlcIj48L21hdC1lcnJvcj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwib25lVGltZVwiPnt7J0ludml0ZU9uZVRpbWUnfGwxOG59fTwvbWF0LWNoZWNrYm94PlxyXG4gIDxtYXQtc2VsZWN0aW9uLWxpc3QgZm9ybUNvbnRyb2xOYW1lPVwiZGV2aWNlc1wiIG11bHRpcGxlPlxyXG4gICAgPG1hdC1saXN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZCBvZiBkZXZpY2VzXCIgW3ZhbHVlXT1cImRcIj57e2R8dHJhbnNsYXRlfX08L21hdC1saXN0LW9wdGlvbj5cclxuICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cclxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzZW5kKClcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgd29ya2luZ1wiPnt7J1NlbmQnfGwxOG59fTwvYnV0dG9uPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnZpdGUuZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZWxlbWVudHMvZm9ybS1pbnZpdGUuZGlhbG9nLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZWxlbWVudHMvZm9ybS1pbnZpdGUuZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNOUQsTUFBTSxPQUNFLGdCQUFnQjtJQWlCdEIsWUFDVSxHQUFnQixFQUNoQixRQUF1QixFQUN2QixHQUFrQixFQUNHLElBQWlCLEVBQ3RDLEtBQWM7UUFKZCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNHLFNBQUksR0FBSixJQUFJLENBQWE7UUFDdEMsVUFBSyxHQUFMLEtBQUssQ0FBUztRQXJCZix1QkFBa0IsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekQsV0FBTSxHQUFHLElBQUksQ0FBQyxH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QkwsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ09NTUEsIEVOVEVSLCBTRU1JQ09MT04gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuaW1wb3J0IHsgSW52aXRlRGV2aWNlLCBSb2xlLCBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBsb2NhbGl6ZVN0cmluZyB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnZm9ybS1pbnZpdGUuZGlhbG9nLmh0bWwnLFxyXG4gIHN0eWxlczogW2Bmb3JtIHtwYWRkaW5nOiA4cHh9YF1cclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgRm9ybUludml0ZURpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUEsIFNFTUlDT0xPTl07XHJcbiAgcmVhZG9ubHkgZ3JvdXBzID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICByZWFkb25seSBkZXZpY2VzID0gWydTbXMnLCAnRW1haWwnLCAnSU0nXSBhcyBJbnZpdGVEZXZpY2VbXTtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgZ3JvdXBzOiB0aGlzLmdyb3VwcyxcclxuICAgIGRldmljZXM6IHRoaXMuX2ZiLmNvbnRyb2w8SW52aXRlRGV2aWNlW10+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgZHVlOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMubWluKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSksXHJcbiAgICBvbmVUaW1lOiBmYWxzZSxcclxuICAgIG1lc3NhZ2U6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nPihudWxsKVxyXG4gIH0pO1xyXG4gIHByaXZhdGUgX3NlYXJjaGNoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICAvKiogYWxsIEJpekRvYyByb2xlcyBhbmQgdXNlciBncm91cHMgKi9cclxuICBwcml2YXRlIF9yb2xlczogUm9sZVtdO1xyXG4gIHJvbGVzOiBSb2xlW107XHJcbiAgcmVhZG9ubHkgc2VhcmNoID0gdGhpcy5fZmIuY29udHJvbChudWxsKTtcclxuICB3b3JraW5nOiBib29sZWFuO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX3BzOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcHJpdmF0ZSBfcmVmOiBEZXNpZ25lclJlZixcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWZcclxuICApIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnJvbGVzKCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLl9yb2xlcyA9IHIuY29uY2F0KHRoaXMuX3JlZi5kZXNpZ25lci5yb2xlcy5maWx0ZXIociA9PiAhci5kaXNhYmxlZCkuXHJcbiAgICAgICAgbWFwKHIgPT4gKHtcclxuICAgICAgICAgIG5hbWU6IHIubmFtZSxcclxuICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZVN0cmluZyhyLnRpdGxlKVxyXG4gICAgICAgIH0pKSk7XHJcbiAgICAgIHRoaXMuX3JvbGVzLmZvckVhY2gociA9PiB7XHJcbiAgICAgICAgclsnX2luZGV4J10gPSAoci50aXRsZSB8fCByLm5hbWUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgdGhpcy5fcm9sZXNbci5uYW1lXSA9IHI7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJvbGVzID0gdGhpcy5fcm9sZXMuc2xpY2UoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWFyY2gudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZSgodjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuX3NlYXJjaGNoYW5nZS5uZXh0KHYpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zZWFyY2hjaGFuZ2Uuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3Vwcy52YWx1ZSB8fCBbXTtcclxuICAgICAgaWYgKHYpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSB2LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgdGhpcy5yb2xlcyA9IHRoaXMuX3JvbGVzLmZpbHRlcihyID0+IHJbJ19pbmRleCddLmluZGV4T2YodmFsKSA+IC0xICYmIGdyb3Vwcy5pbmRleE9mKHIubmFtZSkgPCAwKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5yb2xlcyA9IHRoaXMuX3JvbGVzLmZpbHRlcihyID0+IGdyb3Vwcy5pbmRleE9mKHIubmFtZSkgPCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWRcclxuICAgKi9cclxuICByZW1vdmVSb2xlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJvbGVzID0gdGhpcy5ncm91cHMudmFsdWU7XHJcbiAgICBjb25zdCBpbmRleCA9IHJvbGVzLmluZGV4T2YoaWQpO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKVxyXG4gICAgICByb2xlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5ncm91cHMuc2V0VmFsdWUocm9sZXMpO1xyXG4gICAgdGhpcy5fc2VhcmNoY2hhbmdlLm5leHQobnVsbCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBpbnBcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBhZGRSb2xlKGlucDogSFRNTElucHV0RWxlbWVudCwgZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJvbGVzID0gdGhpcy5ncm91cHMudmFsdWU7XHJcbiAgICBjb25zdCBpZCA9IGV2ZW50Lm9wdGlvbi52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICBpZiAoIXJvbGVzKVxyXG4gICAgICB0aGlzLmdyb3Vwcy5zZXRWYWx1ZShbaWRdKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICByb2xlcy5wdXNoKGlkKTtcclxuICAgICAgdGhpcy5ncm91cHMuc2V0VmFsdWUocm9sZXMpO1xyXG4gICAgfVxyXG4gICAgaW5wLnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLnNlYXJjaC5zZXRWYWx1ZShudWxsKTtcclxuICB9XHJcbiAgc2VuZCgpIHtcclxuICAgIGNvbnN0IHsgZ3JvdXBzLCBkZXZpY2VzLCBtZXNzYWdlLCBkdWUgfSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLmludml0ZSh0aGlzLl9yZWYubW9kZWwubmFtZSwgeyBncm91cHMsIG1lc3NhZ2UsIGRldmljZXMsIGR1ZSB9KS5cclxuICAgICAgc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBlID0+IHtcclxuICAgICAgICAgIHRoaXMuX3BzLnRvYXN0KGUub2sgPyAnSW52aXRhdGlvbnNTZW50JyA6ICdOb0ludml0YXRpb25zU2VudCcsIGUub2spO1xyXG4gICAgICAgICAgdGhpcy5fcGFuZS5jbG9zZSgpO1xyXG4gICAgICAgIH0sIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9wcy5lcnJvcigpO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgdGl0bGVPZihuYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9yb2xlc1tuYW1lXTtcclxuICAgIHJldHVybiByb2xlPy50aXRsZSB8fCBuYW1lO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1jaGlwLWdyaWQgI2NoaXBzIFthdHRyLmFyaWEtbGFiZWxdPVwiJydcIiBtdWx0aXBsZSByZXF1aXJlZD5cbiAgICAgIEBmb3IgKHIgb2YgZ3JvdXBzLnZhbHVlOyB0cmFjayByKSB7XG4gICAgICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVSb2xlKHIpXCI+XG4gICAgICAgICAge3t0aXRsZU9mKHIpfX1cbiAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICA8L21hdC1jaGlwLXJvdz5cbiAgICAgIH1cbiAgICA8L21hdC1jaGlwLWdyaWQ+XG4gICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCInUm9sZXMnfHRyYW5zbGF0ZVwiIHJlcXVpcmVkXG4gICAgICBbZm9ybUNvbnRyb2xdPXNlYXJjaFxuICAgICAgI2lucHV0cm9sZVxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJyb2xlbmFtZVwiXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBzXCJcbiAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIj5cbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNyb2xlbmFtZT1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJhZGRSb2xlKGlucHV0cm9sZSwgJGV2ZW50KVwiPlxuICAgICAgICBAZm9yIChyIG9mIHJvbGVzOyB0cmFjayByKSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInIubmFtZVwiPlxuICAgICAgICAgICAge3tyLnRpdGxlIHx8IHIubmFtZX19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICBAaWYgKGZvcm0uY29udHJvbHMuZ3JvdXBzLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgIDxtYXQtZXJyb3IgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1JvbGVzJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XG4gICAgICB9XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8Yml6ZG9jLWxvY2FsaXplZC1zdHJpbmcgZm9ybUNvbnRyb2xOYW1lPVwibWVzc2FnZVwiIFtwbGFjZWhvbGRlcl09XCInTWVzc2FnZSd8dHJhbnNsYXRlXCIgY2xhc3M9XCJmbGV4IGNvbHVtblwiIG1heGxlbmd0aD1cIjQwMFwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD57eydJbnZpdGVEdWUnIHwgbDE4bn19PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZHVlXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZHVlUGlja2VyXCIgLz5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBbZm9yXT1cImR1ZVBpY2tlclwiIG1hdFN1ZmZpeD48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyICNkdWVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgQGlmIChmb3JtLmNvbnRyb2xzLmR1ZS5oYXNFcnJvcignbWluJykpIHtcbiAgICAgICAgICA8bWF0LWVycm9yIFtpbm5lckhUTUxdPVwiJ0RhdGVJblBhc3RFcnInfHRyYW5zbGF0ZVwiPjwvbWF0LWVycm9yPlxuICAgICAgICB9XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJvbmVUaW1lXCI+e3snSW52aXRlT25lVGltZSd8bDE4bn19PC9tYXQtY2hlY2tib3g+XG4gICAgICA8bWF0LXNlbGVjdGlvbi1saXN0IGZvcm1Db250cm9sTmFtZT1cImRldmljZXNcIiBtdWx0aXBsZT5cbiAgICAgICAgQGZvciAoZCBvZiBkZXZpY2VzOyB0cmFjayBkKSB7XG4gICAgICAgICAgPG1hdC1saXN0LW9wdGlvbiBbdmFsdWVdPVwiZFwiPnt7ZHx0cmFuc2xhdGV9fTwvbWF0LWxpc3Qtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNlbmQoKVwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCB3b3JraW5nXCI+e3snU2VuZCd8bDE4bn19PC9idXR0b24+XG4gICAgPC9mb3JtPlxuIl19
|
@@ -12,23 +12,22 @@ import * as i2 from "../../../core/slots/router.service";
|
|
12
12
|
import * as i3 from "../../system.service";
|
13
13
|
import * as i4 from "../../../core/session.service";
|
14
14
|
import * as i5 from "../../../core/translate.service";
|
15
|
-
import * as i6 from "@angular
|
16
|
-
import * as i7 from "@
|
17
|
-
import * as i8 from "@angular/
|
18
|
-
import * as i9 from "@angular/material/
|
19
|
-
import * as i10 from "@angular/material/
|
20
|
-
import * as i11 from "@angular/material/
|
21
|
-
import * as i12 from "@angular/material/
|
22
|
-
import * as i13 from "@angular/material/
|
23
|
-
import * as i14 from "@angular/material/
|
24
|
-
import * as i15 from "
|
25
|
-
import * as i16 from "
|
26
|
-
import * as i17 from "
|
27
|
-
import * as i18 from "../designer-
|
28
|
-
import * as i19 from "
|
29
|
-
import * as i20 from "../../../core/pipes/
|
30
|
-
import * as i21 from "
|
31
|
-
import * as i22 from "../declarations";
|
15
|
+
import * as i6 from "@syncfusion/ej2-angular-charts";
|
16
|
+
import * as i7 from "@angular/cdk/drag-drop";
|
17
|
+
import * as i8 from "@angular/material/core";
|
18
|
+
import * as i9 from "@angular/material/form-field";
|
19
|
+
import * as i10 from "@angular/material/select";
|
20
|
+
import * as i11 from "@angular/material/button";
|
21
|
+
import * as i12 from "@angular/material/input";
|
22
|
+
import * as i13 from "@angular/material/icon";
|
23
|
+
import * as i14 from "@angular/material/menu";
|
24
|
+
import * as i15 from "../../../core/popup/tooltip.directive";
|
25
|
+
import * as i16 from "../../core/localized-string.component";
|
26
|
+
import * as i17 from "../designer-privileges.component";
|
27
|
+
import * as i18 from "../designer-element.component";
|
28
|
+
import * as i19 from "../../../core/pipes/localized-string.pipe";
|
29
|
+
import * as i20 from "../../../core/pipes/translate.pipe";
|
30
|
+
import * as i21 from "../declarations";
|
32
31
|
export class FormDesignComponent extends DesignerTypeElementComponent {
|
33
32
|
constructor(fb, _router, _service, _session, _injector, _translate, element, ref) {
|
34
33
|
super(fb, element, ref);
|
@@ -101,12 +100,12 @@ export class FormDesignComponent extends DesignerTypeElementComponent {
|
|
101
100
|
});
|
102
101
|
}
|
103
102
|
this.format.valueChanges.pipe(debounceTime(150)).subscribe(f => {
|
104
|
-
let format = f.prefix || this.
|
103
|
+
let format = f.prefix || localizeString(this.model.title);
|
105
104
|
if (f.digits)
|
106
105
|
format += `{0:D${f.digits}}`;
|
107
106
|
if (f.suffix)
|
108
107
|
format += f.suffix;
|
109
|
-
this.form.
|
108
|
+
this.form.controls.format.setValue(format);
|
110
109
|
this.form.markAsDirty();
|
111
110
|
});
|
112
111
|
this.model.resourceType && this.disable('group', 'description');
|
@@ -146,13 +145,13 @@ export class FormDesignComponent extends DesignerTypeElementComponent {
|
|
146
145
|
this._destroy.complete();
|
147
146
|
}
|
148
147
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PanesRouter }, { token: i3.SystemService }, { token: i4.SessionService }, { token: i0.Injector }, { token: i5.TranslateService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [view]=\"view\" (back)=\"view = null\" [context]=\"context\">\r\n <ng-template bizdocContent>\r\n <ejs-sparkline *ngIf=\"usage\" width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [locale]=\"locale\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n (tooltipInitialize)=\"tooltipInitialize($event)\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\r\n </mat-menu>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <div [formGroup]=\"form\" class=\"column\">\r\n <div class=\"row flex\" [formGroup]=\"format\">\r\n <mat-form-field>\r\n <mat-label>{{'Prefix'|translate}}</mat-label>\r\n <input matInput formControlName=\"prefix\" />\r\n </mat-form-field>\r\n \r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Digits'|translate}}</mat-label>\r\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\r\n </mat-form-field>\r\n \r\n <mat-form-field>\r\n <mat-label>{{'Suffix'|translate}}</mat-label>\r\n <input matInput formControlName=\"suffix\" />\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\r\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\r\n <mat-form-field *ngIf=\"guides.length\">\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let g of guides\" [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"cubes.length\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n <!--Rules-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', ruleform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n <tr class=\"mat-mdc-row\" *ngFor=\"let r of rules.controls; index as index\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\r\n {{r.get('title').value}}\r\n </td>\r\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', ruleform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<ng-template #ruleform let-form>\r\n <div [formGroup]=\"form\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n \r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i7.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "directive", type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i8.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i13.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i15.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i15.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i15.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i17.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: i18.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: i19.EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: i19.WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: i19.DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "view", "context"], outputs: ["continue", "back", "save"] }, { kind: "pipe", type: i20.LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: i21.L18nPipe, name: "l18n" }, { kind: "pipe", type: i21.TranslatePipe, name: "translate" }] }); }
|
148
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [view]=\"view\" (back)=\"view = null\" [context]=\"context\">\n <ng-template bizdocContent>\n @if (usage) {\n <ejs-sparkline width='250px' height='200px'\n type=\"Line\"\n [id]=\"model.name\"\n [fill]=\"primary\"\n [dataSource]=\"usage\"\n xName=\"date\"\n yName=\"count\"\n lineWidth=\"2\"\n valueType=\"DateTime\"\n [locale]=\"locale\"\n [markerSettings]=\"markerSettings\"\n [tooltipSettings]=\"tooltipSettings\"\n (tooltipInitialize)=\"tooltipInitialize($event)\"\n [enableRtl]=\"enableRtl\">\n </ejs-sparkline>\n }\n <div class=\"row\">\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #options>\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\n </mat-menu>\n </div>\n </ng-template>\n <!--edit-->\n <ng-template bizdocEditContent>\n <div [formGroup]=\"form\" class=\"column\">\n <div class=\"row flex\" [formGroup]=\"format\">\n <mat-form-field>\n <mat-label>{{'Prefix'|translate}}</mat-label>\n <input matInput formControlName=\"prefix\" />\n </mat-form-field>\n \n <mat-form-field class=\"flex\">\n <mat-label>{{'Digits'|translate}}</mat-label>\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\n </mat-form-field>\n \n <mat-form-field>\n <mat-label>{{'Suffix'|translate}}</mat-label>\n <input matInput formControlName=\"suffix\" />\n </mat-form-field>\n </div>\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\n @if (guides.length) {\n <mat-form-field>\n <mat-label>{{'Guide'|translate}}</mat-label>\n <mat-select formControlName=\"guide\">\n <mat-option>{{'None'|translate}}</mat-option>\n @for (g of guides; track g) {\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (cubes.length) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select formControlName=\"cubes\" multiple>\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\n }\n </mat-select>\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\n </mat-form-field>\n }\n <!--Rules-->\n <h2 class=\"mat-h2 row\">\n {{'Rules'|translate}}\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', ruleform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n </h2>\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\n @for (r of rules.controls; track r; let index = $index) {\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\n <td class=\"mat-mdc-cell\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n </td>\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\n {{r.controls.title.value}}\n </td>\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n <button mat-icon-button (click)=\"edit(r, 'Rule', ruleform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n </div>\n </ng-template>\n</bizdoc-designer-element>\n<ng-template #ruleform let-form>\n <div [formGroup]=\"form\" class=\"column\">\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Title'|translate}}</mat-label>\n <input matInput formControlName=\"title\" required />\n @if (form.controls.title.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n }\n </mat-form-field>\n \n <mat-form-field class=\"flex\">\n <mat-label>{{'Name'|translate}}</mat-label>\n <input matInput formControlName=\"name\" required />\n @if (form.controls.name.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n }\n </mat-form-field>\n </div>\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i6.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i14.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i16.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: i17.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: i18.EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: i18.WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: i18.DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "view", "context"], outputs: ["continue", "back", "save"] }, { kind: "pipe", type: i19.LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: i20.L18nPipe, name: "l18n" }, { kind: "pipe", type: i20.TranslatePipe, name: "translate" }] }); }
|
150
149
|
}
|
151
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: FormDesignComponent, decorators: [{
|
152
151
|
type: Component,
|
153
|
-
args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [view]=\"view\" (back)=\"view = null\" [context]=\"context\">\
|
154
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.PanesRouter }, { type: i3.SystemService }, { type: i4.SessionService }, { type: i0.Injector }, { type: i5.TranslateService }, { type: i0.ElementRef }, { type:
|
152
|
+
args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [view]=\"view\" (back)=\"view = null\" [context]=\"context\">\n <ng-template bizdocContent>\n @if (usage) {\n <ejs-sparkline width='250px' height='200px'\n type=\"Line\"\n [id]=\"model.name\"\n [fill]=\"primary\"\n [dataSource]=\"usage\"\n xName=\"date\"\n yName=\"count\"\n lineWidth=\"2\"\n valueType=\"DateTime\"\n [locale]=\"locale\"\n [markerSettings]=\"markerSettings\"\n [tooltipSettings]=\"tooltipSettings\"\n (tooltipInitialize)=\"tooltipInitialize($event)\"\n [enableRtl]=\"enableRtl\">\n </ejs-sparkline>\n }\n <div class=\"row\">\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #options>\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\n </mat-menu>\n </div>\n </ng-template>\n <!--edit-->\n <ng-template bizdocEditContent>\n <div [formGroup]=\"form\" class=\"column\">\n <div class=\"row flex\" [formGroup]=\"format\">\n <mat-form-field>\n <mat-label>{{'Prefix'|translate}}</mat-label>\n <input matInput formControlName=\"prefix\" />\n </mat-form-field>\n \n <mat-form-field class=\"flex\">\n <mat-label>{{'Digits'|translate}}</mat-label>\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\n </mat-form-field>\n \n <mat-form-field>\n <mat-label>{{'Suffix'|translate}}</mat-label>\n <input matInput formControlName=\"suffix\" />\n </mat-form-field>\n </div>\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\n @if (guides.length) {\n <mat-form-field>\n <mat-label>{{'Guide'|translate}}</mat-label>\n <mat-select formControlName=\"guide\">\n <mat-option>{{'None'|translate}}</mat-option>\n @for (g of guides; track g) {\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (cubes.length) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select formControlName=\"cubes\" multiple>\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\n }\n </mat-select>\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\n </mat-form-field>\n }\n <!--Rules-->\n <h2 class=\"mat-h2 row\">\n {{'Rules'|translate}}\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', ruleform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n </h2>\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\n @for (r of rules.controls; track r; let index = $index) {\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\n <td class=\"mat-mdc-cell\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n </td>\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\n {{r.controls.title.value}}\n </td>\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n <button mat-icon-button (click)=\"edit(r, 'Rule', ruleform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n </div>\n </ng-template>\n</bizdoc-designer-element>\n<ng-template #ruleform let-form>\n <div [formGroup]=\"form\" class=\"column\">\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Title'|translate}}</mat-label>\n <input matInput formControlName=\"title\" required />\n @if (form.controls.title.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n }\n </mat-form-field>\n \n <mat-form-field class=\"flex\">\n <mat-label>{{'Name'|translate}}</mat-label>\n <input matInput formControlName=\"name\" required />\n @if (form.controls.name.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n }\n </mat-form-field>\n </div>\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n </div>\n</ng-template>\n" }]
|
153
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.PanesRouter }, { type: i3.SystemService }, { type: i4.SessionService }, { type: i0.Injector }, { type: i5.TranslateService }, { type: i0.ElementRef }, { type: i21.DesignerRef, decorators: [{
|
155
154
|
type: Inject,
|
156
155
|
args: [DesignerRef]
|
157
156
|
}] }] });
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2FyY2hpdGVjdHVyZS9lbGVtZW50cy9mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vYXJjaGl0ZWN0dXJlL2VsZW1lbnRzL2Zvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBZ0MsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSw0QkFBNEI7SUEwQ25FLFlBQVksRUFBZSxFQUNqQixPQUFvQixFQUNwQixRQUF1QixFQUN2QixRQUF3QixFQUN4QixTQUFtQixFQUNuQixVQUE0QixFQUNwQyxPQUF3QixFQUNILEdBQWdCO1FBQ3JDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBUGhCLFlB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MUQsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0ExSFUsbUJBQW1CLHFOQWlEcEIsV0FBVztrR0FqRFYsbUJBQW1CLDJFQ2ZoQyxtMEtBc0dBOzsyRkR2RmEsbUJBQW1CO2tCQUQvQixTQUFTOzs7MEJBa0RMLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQXhpc1NldHRpbmdzTW9kZWwsIElUb29sdGlwUmVuZGVyaW5nRXZlbnRBcmdzLCBMaW5lU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lTWFya2VyU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lVG9vbHRpcFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItY2hhcnRzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN5c3RlbVNlcnZpY2UsIFJhbmdlSW5mbyB9IGZyb20gXCIuLi8uLi9zeXN0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lclR5cGVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Rlc2lnbmVyLmJhc2VcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJSZWYsIEVsZW1lbnRJbmZvLCBQZXJtaXNzaW9uTW9kZWwsIGxvY2FsaXplU3RyaW5nLCBwcm9ncmFtTmFtZSB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgRm9ybUludml0ZURpYWxvZyB9IGZyb20gXCIuL2Zvcm0taW52aXRlLmRpYWxvZ1wiO1xyXG5pbXBvcnQgeyBPcGVuUG9saWN5IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW50ZXJuYXRpb25hbGl6YXRpb24gfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWJhc2VcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ2Zvcm0uY29tcG9uZW50Lmh0bWwnIH0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtRGVzaWduQ29tcG9uZW50IGV4dGVuZHMgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgcnVsZXMgPSB0aGlzLl9mYi5hcnJheShbXSk7XHJcbiAgcmVhZG9ubHkgZm9ybWF0ID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgcHJlZml4OiBudWxsLFxyXG4gICAgc3VmZml4OiBudWxsLFxyXG4gICAgZGlnaXRzOiBudWxsXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHJ1bGVzOiB0aGlzLnJ1bGVzLFxyXG4gICAgZ3VpZGU6IG51bGwsXHJcbiAgICBmb3JtYXQ6IG51bGwsXHJcbiAgICBncm91cDogbnVsbCxcclxuICAgIGRlc2NyaXB0aW9uOiBudWxsLFxyXG4gICAgY3ViZXM6IG51bGxcclxuICB9KTtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gIHJlYWRvbmx5IGF4aXNTZXR0aW5ncyA9IHtcclxuICAgIGxpbmVTZXR0aW5nczoge1xyXG4gICAgICBvcGFjaXR5OiAuNSxcclxuICAgICAgd2lkdGg6IC41XHJcbiAgICB9IGFzIExpbmVTZXR0aW5nc01vZGVsLFxyXG4gIH0gYXMgQXhpc1NldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgbWFya2VyU2V0dGluZ3MgPSB7XHJcbiAgICB2aXNpYmxlOiBbJ05vbmUnXSxcclxuICAgIHNpemU6IDEuNSxcclxuICAgIGZpbGw6IHRoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KCksXHJcbiAgfSBhcyBTcGFya2xpbmVNYXJrZXJTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IHRvb2x0aXBTZXR0aW5ncyA9IHtcclxuICAgIHZpc2libGU6IHRydWUsXHJcbiAgICBmb3JtYXQ6ICcke2RhdGV9JyxcclxuICAgIHRyYWNrTGluZVNldHRpbmdzOiB7XHJcbiAgICAgIHZpc2libGU6IHRydWVcclxuICAgIH1cclxuICB9IGFzIFNwYXJrbGluZVRvb2x0aXBTZXR0aW5nc01vZGVsO1xyXG4gIHVzYWdlOiBSYW5nZUluZm9bXTtcclxuICBwcmltYXJ5ID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgcmVhZG9ubHkgZW5hYmxlUnRsID0gdGhpcy5fc2Vzc2lvbi5pbnZlcnNlO1xyXG4gIGxvY2FsZTogc3RyaW5nO1xyXG4gIGd1aWRlczogRWxlbWVudEluZm9bXTtcclxuICBjdWJlczogRWxlbWVudEluZm9bXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnRsOiBJbnRlcm5hdGlvbmFsaXphdGlvbiA9IG5ldyBJbnRlcm5hdGlvbmFsaXphdGlvbigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBlbGVtZW50OiBFbGVtZW50UmVmPGFueT4sXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSByZWY6IERlc2lnbmVyUmVmKSB7XHJcbiAgICBzdXBlcihmYiwgZWxlbWVudCwgcmVmKTtcclxuICAgIHRoaXMubG9jYWxlID0gX3Nlc3Npb24ubGFuZ3VhZ2U7XHJcbiAgICB0aGlzLl9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgIHRoaXMudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgICAgdGhpcy5wcmltYXJ5ID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICd3aWRnZXQnKVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnJhbmdlKHRoaXMubW9kZWwubmFtZSkuc3Vic2NyaWJlKHIgPT5cclxuICAgICAgICAvL25ldyBTcGFya2xpbmUoe1xyXG4gICAgICAgIC8vICBkYXRhTGFiZWxSZW5kZXJpbmc6IHRoaXMuZGF0YUxhYmVsUmVuZGVyaW5nLmJpbmQodGhpcylcclxuICAgICAgICAvL30sIHRoaXMudXNhZ2UubmF0aXZlRWxlbWVudClcclxuICAgICAgICB0aGlzLnVzYWdlID0gcik7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RlbC5ydWxlcz8uXHJcbiAgICAgICAgZm9yRWFjaChyID0+IHRoaXMucnVsZXMucHVzaCh0aGlzLm5ld1J1bGUociksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgICAgIGNvbnN0IHsgZm9ybWF0IH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgICBpZiAoZm9ybWF0KSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXgxID0gZm9ybWF0LmluZGV4T2YoJ3snKSxcclxuICAgICAgICAgIGluZGV4MiA9IGZvcm1hdC5sYXN0SW5kZXhPZignfScpLFxyXG4gICAgICAgICAgaW5kZXgzID0gZm9ybWF0LmluZGV4T2YoJzonLCBpbmRleDEpO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0LnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgcHJlZml4OiBpbmRleDEgPiAwID8gZm9ybWF0LnN1YnN0cmluZygwLCBpbmRleDEpIDogbnVsbCxcclxuICAgICAgICAgIGRpZ2l0czogaW5kZXgyID4gaW5kZXgxICsgMiAmJiBpbmRleDMgPyBwYXJzZUludChmb3JtYXQuc3Vic3RyaW5nKGluZGV4MyArIDIsIGluZGV4MikpIDogbnVsbCxcclxuICAgICAgICAgIHN1ZmZpeDogaW5kZXgyIDwgZm9ybWF0Lmxlbmd0aCA/IGZvcm1hdC5zdWJzdHJpbmcoaW5kZXgyICsgMSkgOiBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtYXQudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZShmID0+IHtcclxuICAgICAgICBsZXQgZm9ybWF0ID0gZi5wcmVmaXggYXMgc3RyaW5nIHx8ICh0aGlzLmZvcm0uZ2V0KCd0aXRsZScpLnZhbHVlIGFzIHN0cmluZyk7XHJcbiAgICAgICAgaWYgKGYuZGlnaXRzKSBmb3JtYXQgKz0gYHswOkQke2YuZGlnaXRzfX1gO1xyXG4gICAgICAgIGlmIChmLnN1ZmZpeCkgZm9ybWF0ICs9IGYuc3VmZml4O1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2Zvcm1hdCcpLnNldFZhbHVlKGZvcm1hdCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm1vZGVsLnJlc291cmNlVHlwZSAmJiB0aGlzLmRpc2FibGUoJ2dyb3VwJywgJ2Rlc2NyaXB0aW9uJyk7XHJcbiAgICAgIHRoaXMuX3JlZi51bmxvY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5lbmFibGUoJ2dyb3VwJywgJ2Rlc2NyaXB0aW9uJykpO1xyXG4gICAgICB0aGlzLmd1aWRlcyA9IHRoaXMuX3JlZi5kZXNpZ25lci5ndWlkZXM7XHJcbiAgICAgIHRoaXMuY3ViZXMgPSB0aGlzLl9yZWYuZGVzaWduZXIuY3ViZXM7XHJcbiAgICB9XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuICB0b29sdGlwSW5pdGlhbGl6ZShldnQ6IElUb29sdGlwUmVuZGVyaW5nRXZlbnRBcmdzKSB7XHJcbiAgICBldnQudGV4dCA9IFt0aGlzLl9pbnRsLmZvcm1hdERhdGUodGhpcy5faW50bC5wYXJzZURhdGUoZXZ0LnRleHRbMF0sIHsgZm9ybWF0OiAnRUVFIE1NTSBkZCB5eXl5JyB9KSldO1xyXG4gIH1cclxuICBuZXdSdWxlKHJ1bGU/OiBQZXJtaXNzaW9uTW9kZWwpOiBhbnkge1xyXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuX2ZiLmNvbnRyb2wocnVsZT8ubmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHRpdGxlID0gdGhpcy5fZmIuY29udHJvbChydWxlPy50aXRsZSk7XHJcbiAgICAhcnVsZSAmJiB0aXRsZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHYgPT4gbmFtZS5zZXRWYWx1ZShwcm9ncmFtTmFtZSh2KSkpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgbmFtZSxcclxuICAgICAgdGl0bGUsXHJcbiAgICAgIHJvbGVzOiBydWxlPy5yb2xlcyxcclxuICAgICAgcnVsZTogcnVsZT8ucnVsZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBpbnZpdGUoKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoRm9ybUludml0ZURpYWxvZywge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGlhbG9nLFxyXG4gICAgICBpY29uOiB0aGlzLm1vZGVsLmljb24sXHJcbiAgICAgIHRpdGxlOiBsb2NhbGl6ZVN0cmluZyh0aGlzLm1vZGVsLnRpdGxlKSxcclxuICAgICAgZ3JvdXA6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ludml0ZScpLFxyXG4gICAgICBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbXSwgcGFyZW50OiB0aGlzLl9pbmplY3RvciB9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgZGlhZ3JhbSgpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2FkbWluL2Zvcm1zJywgdGhpcy5tb2RlbC5uYW1lXSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxiaXpkb2MtZGVzaWduZXItZWxlbWVudCBbZm9ybV09XCJmb3JtXCIgW3ByaXZpbGVnZXNdPVwidHJ1ZVwiIFtpY29uXT1cInRydWVcIiBbdmlld109XCJ2aWV3XCIgKGJhY2spPVwidmlldyA9IG51bGxcIiBbY29udGV4dF09XCJjb250ZXh0XCI+XHJcbiAgPG5nLXRlbXBsYXRlIGJpemRvY0NvbnRlbnQ+XHJcbiAgICA8ZWpzLXNwYXJrbGluZSAqbmdJZj1cInVzYWdlXCIgd2lkdGg9JzI1MHB4JyBoZWlnaHQ9JzIwMHB4J1xyXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cIkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2lkXT1cIm1vZGVsLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2ZpbGxdPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJ1c2FnZVwiXHJcbiAgICAgICAgICAgICAgICAgICB4TmFtZT1cImRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgeU5hbWU9XCJjb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICBsaW5lV2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgIHZhbHVlVHlwZT1cIkRhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcclxuICAgICAgICAgICAgICAgICAgIFttYXJrZXJTZXR0aW5nc109XCJtYXJrZXJTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICBbdG9vbHRpcFNldHRpbmdzXT1cInRvb2x0aXBTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAodG9vbHRpcEluaXRpYWxpemUpPVwidG9vbHRpcEluaXRpYWxpemUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZW5hYmxlUnRsXT1cImVuYWJsZVJ0bFwiPlxyXG4gICAgPC9lanMtc3BhcmtsaW5lPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGlhZ3JhbSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1dvcmtmbG93J3x0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwibW9kZWwuZHJhZnRcIj48bWF0LWljb24+c2NoZW1hPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwib3B0aW9uc1wiIFtkaXNhYmxlZF09XCJtb2RlbC5kcmFmdFwiPjxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8bWF0LW1lbnUgI29wdGlvbnM+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJpbnZpdGUoKVwiPnt7J0ludml0ZSd8bDE4bn19PC9idXR0b24+XHJcbiAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDwhLS1lZGl0LS0+XHJcbiAgPG5nLXRlbXBsYXRlIGJpemRvY0VkaXRDb250ZW50PlxyXG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGZsZXhcIiBbZm9ybUdyb3VwXT1cImZvcm1hdFwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snUHJlZml4J3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInByZWZpeFwiIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J0RpZ2l0cyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkaWdpdHNcIiBtYXhsZW5ndGg9XCIyXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snU3VmZml4J3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInN1ZmZpeFwiIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxiaXpkb2MtbG9jYWxpemVkLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJncm91cFwiIFtwbGFjZWhvbGRlcl09XCInR3JvdXAnfHRyYW5zbGF0ZVwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XHJcbiAgICAgIDxiaXpkb2MtbG9jYWxpemVkLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIFtwbGFjZWhvbGRlcl09XCInRGVzY3JpcHRpb24nfHRyYW5zbGF0ZVwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImd1aWRlcy5sZW5ndGhcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7J0d1aWRlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImd1aWRlXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbj57eydOb25lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBnIG9mIGd1aWRlc1wiIFt2YWx1ZV09XCJnLm5hbWVcIj57e2cudGl0bGUgfGxvY2FsaXplZFN0cmluZ319PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiY3ViZXMubGVuZ3RoXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eydDdWJlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImN1YmVzXCIgbXVsdGlwbGU+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYyBvZiBjdWJlc1wiIFt2YWx1ZV09XCJjLm5hbWVcIj57e2MudGl0bGUgfGxvY2FsaXplZFN0cmluZ319PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8bWF0LWhpbnQ+e3snRm9ybUN1YmVIZWxwJ3x0cmFuc2xhdGV9fTwvbWF0LWhpbnQ+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwhLS1SdWxlcy0tPlxyXG4gICAgICA8aDIgY2xhc3M9XCJtYXQtaDIgcm93XCI+XHJcbiAgICAgICAge3snUnVsZXMnfHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGQocnVsZXMsIG5ld1J1bGUoKSwgJ1J1bGUnLCBydWxlZm9ybSlcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmFkZF9jaXJjbGVfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvaDI+XHJcbiAgICAgIDx0YWJsZSBmb3JtQXJyYXlOYW1lPVwicnVsZXNcIiBjbGFzcz1cIm1hdC1tZGMtdGFibGVcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCBydWxlcylcIj5cclxuICAgICAgICA8dHIgY2xhc3M9XCJtYXQtbWRjLXJvd1wiICpuZ0Zvcj1cImxldCByIG9mIHJ1bGVzLmNvbnRyb2xzOyBpbmRleCBhcyBpbmRleFwiIFtmb3JtR3JvdXBdPVwiclwiIGNka0RyYWc+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGxcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNka0RyYWdIYW5kbGU+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbCBmbGV4XCIgd2lkdGg9XCI5OSVcIj5cclxuICAgICAgICAgICAge3tyLmdldCgndGl0bGUnKS52YWx1ZX19XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlO1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZWRpdChyLCAnUnVsZScsIHJ1bGVmb3JtKVwiIFtiaXpkb2NUb29sdGlwXT1cIidFZGl0J3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicnVsZXMucmVtb3ZlQXQoaW5kZXgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlbW92ZSd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9iaXpkb2MtZGVzaWduZXItZWxlbWVudD5cclxuPG5nLXRlbXBsYXRlICNydWxlZm9ybSBsZXQtZm9ybT5cclxuICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7J1RpdGxlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uZ2V0KCd0aXRsZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1RpdGxlJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICZuYnNwO1xyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eydOYW1lJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcmVxdWlyZWQgLz5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdOYW1lJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxiaXpkb2MtZGVzaWduZXItcHJpdmlsZWdlcyBbZm9ybV09XCJmb3JtXCI+PC9iaXpkb2MtZGVzaWduZXItcHJpdmlsZWdlcz5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2FyY2hpdGVjdHVyZS9lbGVtZW50cy9mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vYXJjaGl0ZWN0dXJlL2VsZW1lbnRzL2Zvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXhELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQWdDLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSw0QkFBNEI7SUEwQ25FLFlBQVksRUFBZSxFQUNqQixPQUFvQixFQUNwQixRQUF1QixFQUN2QixRQUF3QixFQUN4QixTQUFtQixFQUNuQixVQUE0QixFQUNwQyxPQUF3QixFQUNILEdBQWdCO1FBQ3JDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBUGhCLFlB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VztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQTFIVSxtQkFBbUIscU5BaURwQixXQUFXO2tHQWpEVixtQkFBbUIsMkVDZmhDLDZzS0FzSEE7OzJGRHZHYSxtQkFBbUI7a0JBRC9CLFNBQVM7OzswQkFrREwsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEF4aXNTZXR0aW5nc01vZGVsLCBJVG9vbHRpcFJlbmRlcmluZ0V2ZW50QXJncywgTGluZVNldHRpbmdzTW9kZWwsIFNwYXJrbGluZU1hcmtlclNldHRpbmdzTW9kZWwsIFNwYXJrbGluZVRvb2x0aXBTZXR0aW5nc01vZGVsIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlLCBSYW5nZUluZm8gfSBmcm9tIFwiLi4vLi4vc3lzdGVtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuLi9kZXNpZ25lci5iYXNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50SW5mbywgUGVybWlzc2lvbk1vZGVsLCBsb2NhbGl6ZVN0cmluZywgcHJvZ3JhbU5hbWUgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEZvcm1JbnZpdGVEaWFsb2cgfSBmcm9tIFwiLi9mb3JtLWludml0ZS5kaWFsb2dcIjtcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdmb3JtLmNvbXBvbmVudC5odG1sJyB9KVxyXG5leHBvcnQgY2xhc3MgRm9ybURlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IHJ1bGVzID0gdGhpcy5fZmIuYXJyYXk8Rm9ybUdyb3VwPihbXSk7XHJcbiAgcmVhZG9ubHkgZm9ybWF0ID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgcHJlZml4OiBudWxsLFxyXG4gICAgc3VmZml4OiBudWxsLFxyXG4gICAgZGlnaXRzOiBudWxsXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHJ1bGVzOiB0aGlzLnJ1bGVzLFxyXG4gICAgZ3VpZGU6IG51bGwsXHJcbiAgICBmb3JtYXQ6IG51bGwsXHJcbiAgICBncm91cDogbnVsbCxcclxuICAgIGRlc2NyaXB0aW9uOiBudWxsLFxyXG4gICAgY3ViZXM6IG51bGxcclxuICB9KTtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gIHJlYWRvbmx5IGF4aXNTZXR0aW5ncyA9IHtcclxuICAgIGxpbmVTZXR0aW5nczoge1xyXG4gICAgICBvcGFjaXR5OiAuNSxcclxuICAgICAgd2lkdGg6IC41XHJcbiAgICB9IGFzIExpbmVTZXR0aW5nc01vZGVsLFxyXG4gIH0gYXMgQXhpc1NldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgbWFya2VyU2V0dGluZ3MgPSB7XHJcbiAgICB2aXNpYmxlOiBbJ05vbmUnXSxcclxuICAgIHNpemU6IDEuNSxcclxuICAgIGZpbGw6IHRoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KCksXHJcbiAgfSBhcyBTcGFya2xpbmVNYXJrZXJTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IHRvb2x0aXBTZXR0aW5ncyA9IHtcclxuICAgIHZpc2libGU6IHRydWUsXHJcbiAgICBmb3JtYXQ6ICcke2RhdGV9JyxcclxuICAgIHRyYWNrTGluZVNldHRpbmdzOiB7XHJcbiAgICAgIHZpc2libGU6IHRydWVcclxuICAgIH1cclxuICB9IGFzIFNwYXJrbGluZVRvb2x0aXBTZXR0aW5nc01vZGVsO1xyXG4gIHVzYWdlOiBSYW5nZUluZm9bXTtcclxuICBwcmltYXJ5ID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgcmVhZG9ubHkgZW5hYmxlUnRsID0gdGhpcy5fc2Vzc2lvbi5pbnZlcnNlO1xyXG4gIGxvY2FsZTogc3RyaW5nO1xyXG4gIGd1aWRlczogRWxlbWVudEluZm9bXTtcclxuICBjdWJlczogRWxlbWVudEluZm9bXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnRsOiBJbnRlcm5hdGlvbmFsaXphdGlvbiA9IG5ldyBJbnRlcm5hdGlvbmFsaXphdGlvbigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBlbGVtZW50OiBFbGVtZW50UmVmPGFueT4sXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSByZWY6IERlc2lnbmVyUmVmKSB7XHJcbiAgICBzdXBlcihmYiwgZWxlbWVudCwgcmVmKTtcclxuICAgIHRoaXMubG9jYWxlID0gX3Nlc3Npb24ubGFuZ3VhZ2U7XHJcbiAgICB0aGlzLl9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgIHRoaXMudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgICAgdGhpcy5wcmltYXJ5ID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICd3aWRnZXQnKVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnJhbmdlKHRoaXMubW9kZWwubmFtZSkuc3Vic2NyaWJlKHIgPT5cclxuICAgICAgICAvL25ldyBTcGFya2xpbmUoe1xyXG4gICAgICAgIC8vICBkYXRhTGFiZWxSZW5kZXJpbmc6IHRoaXMuZGF0YUxhYmVsUmVuZGVyaW5nLmJpbmQodGhpcylcclxuICAgICAgICAvL30sIHRoaXMudXNhZ2UubmF0aXZlRWxlbWVudClcclxuICAgICAgICB0aGlzLnVzYWdlID0gcik7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RlbC5ydWxlcz8uXHJcbiAgICAgICAgZm9yRWFjaChyID0+IHRoaXMucnVsZXMucHVzaCh0aGlzLm5ld1J1bGUociksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgICAgIGNvbnN0IHsgZm9ybWF0IH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgICBpZiAoZm9ybWF0KSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXgxID0gZm9ybWF0LmluZGV4T2YoJ3snKSxcclxuICAgICAgICAgIGluZGV4MiA9IGZvcm1hdC5sYXN0SW5kZXhPZignfScpLFxyXG4gICAgICAgICAgaW5kZXgzID0gZm9ybWF0LmluZGV4T2YoJzonLCBpbmRleDEpO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0LnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgcHJlZml4OiBpbmRleDEgPiAwID8gZm9ybWF0LnN1YnN0cmluZygwLCBpbmRleDEpIDogbnVsbCxcclxuICAgICAgICAgIGRpZ2l0czogaW5kZXgyID4gaW5kZXgxICsgMiAmJiBpbmRleDMgPyBwYXJzZUludChmb3JtYXQuc3Vic3RyaW5nKGluZGV4MyArIDIsIGluZGV4MikpIDogbnVsbCxcclxuICAgICAgICAgIHN1ZmZpeDogaW5kZXgyIDwgZm9ybWF0Lmxlbmd0aCA/IGZvcm1hdC5zdWJzdHJpbmcoaW5kZXgyICsgMSkgOiBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtYXQudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZShmID0+IHtcclxuICAgICAgICBsZXQgZm9ybWF0ID0gZi5wcmVmaXggYXMgc3RyaW5nIHx8IGxvY2FsaXplU3RyaW5nKHRoaXMubW9kZWwudGl0bGUpO1xyXG4gICAgICAgIGlmIChmLmRpZ2l0cykgZm9ybWF0ICs9IGB7MDpEJHtmLmRpZ2l0c319YDtcclxuICAgICAgICBpZiAoZi5zdWZmaXgpIGZvcm1hdCArPSBmLnN1ZmZpeDtcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZm9ybWF0LnNldFZhbHVlKGZvcm1hdCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm1vZGVsLnJlc291cmNlVHlwZSAmJiB0aGlzLmRpc2FibGUoJ2dyb3VwJywgJ2Rlc2NyaXB0aW9uJyk7XHJcbiAgICAgIHRoaXMuX3JlZi51bmxvY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5lbmFibGUoJ2dyb3VwJywgJ2Rlc2NyaXB0aW9uJykpO1xyXG4gICAgICB0aGlzLmd1aWRlcyA9IHRoaXMuX3JlZi5kZXNpZ25lci5ndWlkZXM7XHJcbiAgICAgIHRoaXMuY3ViZXMgPSB0aGlzLl9yZWYuZGVzaWduZXIuY3ViZXM7XHJcbiAgICB9XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuICB0b29sdGlwSW5pdGlhbGl6ZShldnQ6IElUb29sdGlwUmVuZGVyaW5nRXZlbnRBcmdzKSB7XHJcbiAgICBldnQudGV4dCA9IFt0aGlzLl9pbnRsLmZvcm1hdERhdGUodGhpcy5faW50bC5wYXJzZURhdGUoZXZ0LnRleHRbMF0sIHsgZm9ybWF0OiAnRUVFIE1NTSBkZCB5eXl5JyB9KSldO1xyXG4gIH1cclxuICBuZXdSdWxlKHJ1bGU/OiBQZXJtaXNzaW9uTW9kZWwpOiBhbnkge1xyXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuX2ZiLmNvbnRyb2wocnVsZT8ubmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHRpdGxlID0gdGhpcy5fZmIuY29udHJvbChydWxlPy50aXRsZSk7XHJcbiAgICAhcnVsZSAmJiB0aXRsZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHYgPT4gbmFtZS5zZXRWYWx1ZShwcm9ncmFtTmFtZSh2KSkpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgbmFtZSxcclxuICAgICAgdGl0bGUsXHJcbiAgICAgIHJvbGVzOiBydWxlPy5yb2xlcyxcclxuICAgICAgcnVsZTogcnVsZT8ucnVsZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBpbnZpdGUoKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoRm9ybUludml0ZURpYWxvZywge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGlhbG9nLFxyXG4gICAgICBpY29uOiB0aGlzLm1vZGVsLmljb24sXHJcbiAgICAgIHRpdGxlOiBsb2NhbGl6ZVN0cmluZyh0aGlzLm1vZGVsLnRpdGxlKSxcclxuICAgICAgZ3JvdXA6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ludml0ZScpLFxyXG4gICAgICBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbXSwgcGFyZW50OiB0aGlzLl9pbmplY3RvciB9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgZGlhZ3JhbSgpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2FkbWluL2Zvcm1zJywgdGhpcy5tb2RlbC5uYW1lXSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxiaXpkb2MtZGVzaWduZXItZWxlbWVudCBbZm9ybV09XCJmb3JtXCIgW3ByaXZpbGVnZXNdPVwidHJ1ZVwiIFtpY29uXT1cInRydWVcIiBbdmlld109XCJ2aWV3XCIgKGJhY2spPVwidmlldyA9IG51bGxcIiBbY29udGV4dF09XCJjb250ZXh0XCI+XG4gIDxuZy10ZW1wbGF0ZSBiaXpkb2NDb250ZW50PlxuICAgIEBpZiAodXNhZ2UpIHtcbiAgICAgIDxlanMtc3BhcmtsaW5lIHdpZHRoPScyNTBweCcgaGVpZ2h0PScyMDBweCdcbiAgICAgICAgdHlwZT1cIkxpbmVcIlxuICAgICAgICBbaWRdPVwibW9kZWwubmFtZVwiXG4gICAgICAgIFtmaWxsXT1cInByaW1hcnlcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJ1c2FnZVwiXG4gICAgICAgIHhOYW1lPVwiZGF0ZVwiXG4gICAgICAgIHlOYW1lPVwiY291bnRcIlxuICAgICAgICBsaW5lV2lkdGg9XCIyXCJcbiAgICAgICAgdmFsdWVUeXBlPVwiRGF0ZVRpbWVcIlxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgIFttYXJrZXJTZXR0aW5nc109XCJtYXJrZXJTZXR0aW5nc1wiXG4gICAgICAgIFt0b29sdGlwU2V0dGluZ3NdPVwidG9vbHRpcFNldHRpbmdzXCJcbiAgICAgICAgKHRvb2x0aXBJbml0aWFsaXplKT1cInRvb2x0aXBJbml0aWFsaXplKCRldmVudClcIlxuICAgICAgICBbZW5hYmxlUnRsXT1cImVuYWJsZVJ0bFwiPlxuICAgICAgPC9lanMtc3BhcmtsaW5lPlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGlhZ3JhbSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1dvcmtmbG93J3x0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwibW9kZWwuZHJhZnRcIj48bWF0LWljb24+c2NoZW1hPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zXCIgW2Rpc2FibGVkXT1cIm1vZGVsLmRyYWZ0XCI+PG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICA8bWF0LW1lbnUgI29wdGlvbnM+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiaW52aXRlKClcIj57eydJbnZpdGUnfGwxOG59fTwvYnV0dG9uPlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPCEtLWVkaXQtLT5cbiAgPG5nLXRlbXBsYXRlIGJpemRvY0VkaXRDb250ZW50PlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmxleFwiIFtmb3JtR3JvdXBdPVwiZm9ybWF0XCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J1ByZWZpeCd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicHJlZml4XCIgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgJm5ic3A7XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J0RpZ2l0cyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGlnaXRzXCIgbWF4bGVuZ3RoPVwiMlwiIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICZuYnNwO1xuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1sYWJlbD57eydTdWZmaXgnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInN1ZmZpeFwiIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxiaXpkb2MtbG9jYWxpemVkLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJncm91cFwiIFtwbGFjZWhvbGRlcl09XCInR3JvdXAnfHRyYW5zbGF0ZVwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XG4gICAgICA8Yml6ZG9jLWxvY2FsaXplZC1zdHJpbmcgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiBbcGxhY2Vob2xkZXJdPVwiJ0Rlc2NyaXB0aW9uJ3x0cmFuc2xhdGVcIj48L2JpemRvYy1sb2NhbGl6ZWQtc3RyaW5nPlxuICAgICAgQGlmIChndWlkZXMubGVuZ3RoKSB7XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J0d1aWRlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImd1aWRlXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbj57eydOb25lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIEBmb3IgKGcgb2YgZ3VpZGVzOyB0cmFjayBnKSB7XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJnLm5hbWVcIj57e2cudGl0bGUgfGxvY2FsaXplZFN0cmluZ319PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIH1cbiAgICAgIEBpZiAoY3ViZXMubGVuZ3RoKSB7XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J0N1YmUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY3ViZXNcIiBtdWx0aXBsZT5cbiAgICAgICAgICAgIEBmb3IgKGMgb2YgY3ViZXM7IHRyYWNrIGMpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImMubmFtZVwiPnt7Yy50aXRsZSB8bG9jYWxpemVkU3RyaW5nfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgIDxtYXQtaGludD57eydGb3JtQ3ViZUhlbHAnfHRyYW5zbGF0ZX19PC9tYXQtaGludD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIH1cbiAgICAgIDwhLS1SdWxlcy0tPlxuICAgICAgPGgyIGNsYXNzPVwibWF0LWgyIHJvd1wiPlxuICAgICAgICB7eydSdWxlcyd8dHJhbnNsYXRlfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYWRkKHJ1bGVzLCBuZXdSdWxlKCksICdSdWxlJywgcnVsZWZvcm0pXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0FkZCd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5hZGRfY2lyY2xlX291dGxpbmU8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgPC9oMj5cbiAgICAgIDx0YWJsZSBmb3JtQXJyYXlOYW1lPVwicnVsZXNcIiBjbGFzcz1cIm1hdC1tZGMtdGFibGVcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCBydWxlcylcIj5cbiAgICAgICAgQGZvciAociBvZiBydWxlcy5jb250cm9sczsgdHJhY2sgcjsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgPHRyIGNsYXNzPVwibWF0LW1kYy1yb3dcIiBbZm9ybUdyb3VwXT1cInJcIiBjZGtEcmFnPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjZGtEcmFnSGFuZGxlPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGwgZmxleFwiIHdpZHRoPVwiOTklXCI+XG4gICAgICAgICAgICAgIHt7ci5jb250cm9scy50aXRsZS52YWx1ZX19XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlO1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZWRpdChyLCAnUnVsZScsIHJ1bGVmb3JtKVwiIFtiaXpkb2NUb29sdGlwXT1cIidFZGl0J3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicnVsZXMucmVtb3ZlQXQoaW5kZXgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlbW92ZSd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICB9XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9iaXpkb2MtZGVzaWduZXItZWxlbWVudD5cbjxuZy10ZW1wbGF0ZSAjcnVsZWZvcm0gbGV0LWZvcm0+XG4gIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3snVGl0bGUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgIEBpZiAoZm9ybS5jb250cm9scy50aXRsZS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICA8bWF0LWVycm9yIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdUaXRsZSd8dHJhbnNsYXRlKVwiPjwvbWF0LWVycm9yPlxuICAgICAgICB9XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgJm5ic3A7XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiByZXF1aXJlZCAvPlxuICAgICAgICBAaWYgKGZvcm0uY29udHJvbHMubmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICA8bWF0LWVycm9yIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdOYW1lJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gICAgPGJpemRvYy1kZXNpZ25lci1wcml2aWxlZ2VzIFtmb3JtXT1cImZvcm1cIj48L2JpemRvYy1kZXNpZ25lci1wcml2aWxlZ2VzPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|