@verisoft/ui-govcz 18.7.0 → 18.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -56
- package/assets/i18n/cs.json +8 -8
- package/assets/i18n/en.json +8 -8
- package/assets/icons/components/24-7.svg +12 -12
- package/assets/icons/components/NO-ICON.svg +2 -2
- package/assets/icons/components/add.svg +5 -5
- package/assets/icons/components/all.svg +3 -3
- package/assets/icons/components/arrival.svg +12 -12
- package/assets/icons/components/arrow-left.svg +2 -2
- package/assets/icons/components/arrow-right.svg +2 -2
- package/assets/icons/components/bars.svg +2 -2
- package/assets/icons/components/bell.svg +4 -4
- package/assets/icons/components/big-help.svg +12 -12
- package/assets/icons/components/book.svg +10 -10
- package/assets/icons/components/bookmarks.svg +11 -11
- package/assets/icons/components/box-arrow-up-right.svg +11 -11
- package/assets/icons/components/business-file.svg +14 -14
- package/assets/icons/components/businessman.svg +3 -3
- package/assets/icons/components/cactus.svg +14 -14
- package/assets/icons/components/calendar.svg +2 -2
- package/assets/icons/components/camera.svg +5 -5
- package/assets/icons/components/car.svg +5 -5
- package/assets/icons/components/card-400.svg +10 -10
- package/assets/icons/components/card-401.svg +10 -10
- package/assets/icons/components/card-403.svg +10 -10
- package/assets/icons/components/card-404.svg +10 -10
- package/assets/icons/components/card-500.svg +10 -10
- package/assets/icons/components/card-502.svg +10 -10
- package/assets/icons/components/card-503.svg +12 -12
- package/assets/icons/components/card-504.svg +15 -15
- package/assets/icons/components/caret-right-fill.svg +3 -3
- package/assets/icons/components/certification.svg +14 -14
- package/assets/icons/components/chamber-deputies-cr.svg +11 -11
- package/assets/icons/components/chamber-deputies.svg +13 -13
- package/assets/icons/components/chat.svg +11 -11
- package/assets/icons/components/check-circle.svg +3 -3
- package/assets/icons/components/check-lg.svg +3 -3
- package/assets/icons/components/chevron-double-left.svg +4 -4
- package/assets/icons/components/chevron-double-right.svg +4 -4
- package/assets/icons/components/chevron-down.svg +3 -3
- package/assets/icons/components/chevron-left.svg +3 -3
- package/assets/icons/components/chevron-right.svg +3 -3
- package/assets/icons/components/chevron-up.svg +3 -3
- package/assets/icons/components/cities.svg +17 -17
- package/assets/icons/components/city-office.svg +17 -17
- package/assets/icons/components/coins.svg +14 -14
- package/assets/icons/components/communication.svg +4 -4
- package/assets/icons/components/confusion.svg +8 -8
- package/assets/icons/components/contact.svg +6 -6
- package/assets/icons/components/copy.svg +10 -10
- package/assets/icons/components/court.svg +5 -5
- package/assets/icons/components/covid.svg +5 -5
- package/assets/icons/components/czech-lion.svg +133 -133
- package/assets/icons/components/dash-lg.svg +3 -3
- package/assets/icons/components/diagram.svg +2 -2
- package/assets/icons/components/digital.svg +10 -10
- package/assets/icons/components/disability.svg +5 -5
- package/assets/icons/components/doc-agreement.svg +7 -7
- package/assets/icons/components/doc-basic-info.svg +18 -18
- package/assets/icons/components/doc-business.svg +8 -8
- package/assets/icons/components/doc-car-point-list.svg +16 -16
- package/assets/icons/components/doc-diploma.svg +17 -17
- package/assets/icons/components/doc-driver-info.svg +8 -8
- package/assets/icons/components/doc-election.svg +13 -13
- package/assets/icons/components/doc-filled.svg +16 -16
- package/assets/icons/components/doc-health.svg +3 -3
- package/assets/icons/components/doc-judgment.svg +8 -8
- package/assets/icons/components/doc-patient.svg +8 -8
- package/assets/icons/components/doc-personal-info.svg +11 -11
- package/assets/icons/components/doc-petition.svg +8 -8
- package/assets/icons/components/doc-registers.svg +7 -7
- package/assets/icons/components/doc-review.svg +20 -20
- package/assets/icons/components/doc-search.svg +8 -8
- package/assets/icons/components/doc-stamp.svg +15 -15
- package/assets/icons/components/doc-state.svg +13 -13
- package/assets/icons/components/doc-taxes.svg +16 -16
- package/assets/icons/components/doc-universal.svg +13 -13
- package/assets/icons/components/doc-visa.svg +14 -14
- package/assets/icons/components/documents.svg +11 -11
- package/assets/icons/components/download.svg +3 -3
- package/assets/icons/components/driver-file.svg +14 -14
- package/assets/icons/components/driver.svg +7 -7
- package/assets/icons/components/driving-licence.svg +7 -7
- package/assets/icons/components/email-notification.svg +12 -12
- package/assets/icons/components/empty-file.svg +13 -13
- package/assets/icons/components/energy.svg +11 -11
- package/assets/icons/components/envelope-fill.svg +3 -3
- package/assets/icons/components/envelope.svg +3 -3
- package/assets/icons/components/error.svg +12 -12
- package/assets/icons/components/european-parliament.svg +11 -11
- package/assets/icons/components/exclamation-lg.svg +3 -3
- package/assets/icons/components/exclamation-triangle-fill.svg +10 -10
- package/assets/icons/components/export.svg +12 -12
- package/assets/icons/components/eye.svg +4 -4
- package/assets/icons/components/family.svg +12 -12
- package/assets/icons/components/filter.svg +2 -2
- package/assets/icons/components/gear.svg +11 -11
- package/assets/icons/components/geo-alt-fill.svg +10 -10
- package/assets/icons/components/globe.svg +12 -12
- package/assets/icons/components/graduate.svg +4 -4
- package/assets/icons/components/group.svg +3 -3
- package/assets/icons/components/hand-503.svg +10 -10
- package/assets/icons/components/hand-504.svg +7 -7
- package/assets/icons/components/hand.svg +14 -14
- package/assets/icons/components/health.svg +5 -5
- package/assets/icons/components/help.svg +4 -4
- package/assets/icons/components/history.svg +4 -4
- package/assets/icons/components/holiday.svg +13 -13
- package/assets/icons/components/hourglass.svg +4 -4
- package/assets/icons/components/house-door-fill.svg +3 -3
- package/assets/icons/components/house.svg +13 -13
- package/assets/icons/components/id-card.svg +6 -6
- package/assets/icons/components/id-info.svg +9 -9
- package/assets/icons/components/id.svg +6 -6
- package/assets/icons/components/illness.svg +9 -9
- package/assets/icons/components/info-circle-fill.svg +10 -10
- package/assets/icons/components/info-circle.svg +11 -11
- package/assets/icons/components/info-list.svg +14 -14
- package/assets/icons/components/info.svg +3 -3
- package/assets/icons/components/institute-file.svg +23 -23
- package/assets/icons/components/institution.svg +10 -10
- package/assets/icons/components/job-loss.svg +4 -4
- package/assets/icons/components/job.svg +3 -3
- package/assets/icons/components/lightbulb-fill.svg +10 -10
- package/assets/icons/components/list.svg +3 -3
- package/assets/icons/components/loader.svg +3 -3
- package/assets/icons/components/login.svg +10 -10
- package/assets/icons/components/logout.svg +12 -12
- package/assets/icons/components/map.svg +11 -11
- package/assets/icons/components/mobile-phone.svg +13 -13
- package/assets/icons/components/moon.svg +10 -10
- package/assets/icons/components/mouse.svg +3 -3
- package/assets/icons/components/my-filing.svg +15 -15
- package/assets/icons/components/my-state-data.svg +19 -19
- package/assets/icons/components/new-comments.svg +6 -6
- package/assets/icons/components/newborn.svg +16 -16
- package/assets/icons/components/news.svg +20 -20
- package/assets/icons/components/packet.svg +11 -11
- package/assets/icons/components/passport.svg +7 -7
- package/assets/icons/components/pencil.svg +3 -3
- package/assets/icons/components/personal-file.svg +14 -14
- package/assets/icons/components/pet.svg +10 -10
- package/assets/icons/components/petrol-station.svg +14 -14
- package/assets/icons/components/pills.svg +4 -4
- package/assets/icons/components/plus-lg.svg +2 -2
- package/assets/icons/components/population-register.svg +12 -12
- package/assets/icons/components/port-card.svg +8 -8
- package/assets/icons/components/portal.svg +8 -8
- package/assets/icons/components/pregnant.svg +11 -11
- package/assets/icons/components/president.svg +13 -13
- package/assets/icons/components/presidential-election.svg +12 -12
- package/assets/icons/components/print-fill.svg +3 -3
- package/assets/icons/components/profile-settings.svg +13 -13
- package/assets/icons/components/property.svg +4 -4
- package/assets/icons/components/question-circle.svg +3 -3
- package/assets/icons/components/queue.svg +13 -13
- package/assets/icons/components/quotes.svg +6 -6
- package/assets/icons/components/region.svg +11 -11
- package/assets/icons/components/regional-elections-clear.svg +11 -11
- package/assets/icons/components/regional-elections.svg +12 -12
- package/assets/icons/components/register-of-persons.svg +7 -7
- package/assets/icons/components/retiree.svg +8 -8
- package/assets/icons/components/rings.svg +5 -5
- package/assets/icons/components/search.svg +10 -10
- package/assets/icons/components/senate.svg +11 -11
- package/assets/icons/components/senior.svg +4 -4
- package/assets/icons/components/settings.svg +13 -13
- package/assets/icons/components/simple-envelope.svg +3 -3
- package/assets/icons/components/sms-notification.svg +7 -7
- package/assets/icons/components/sos.svg +6 -6
- package/assets/icons/components/star-fill.svg +10 -10
- package/assets/icons/components/state-file.svg +8 -8
- package/assets/icons/components/sun.svg +10 -10
- package/assets/icons/components/telephone.svg +10 -10
- package/assets/icons/components/three-dots-vertical.svg +2 -2
- package/assets/icons/components/time.svg +4 -4
- package/assets/icons/components/tombstone.svg +7 -7
- package/assets/icons/components/trash.svg +5 -5
- package/assets/icons/components/twitter-x.svg +10 -10
- package/assets/icons/components/upload.svg +4 -4
- package/assets/icons/components/user-login.svg +13 -13
- package/assets/icons/components/user.svg +2 -2
- package/assets/icons/components/vaccine.svg +11 -11
- package/assets/icons/components/x-circle.svg +3 -3
- package/assets/icons/components/x-lg.svg +3 -3
- package/assets/icons/components/x.svg +3 -3
- package/assets/logos/v-logo.svg +4 -4
- package/{sass → assets/sass}/header.css +525 -525
- package/{sass → assets/sass}/header.scss +479 -479
- package/{sass → assets/sass}/main.scss +245 -245
- package/{sass → assets/sass}/scrollbar.scss +22 -22
- package/{sass → assets/sass}/sidemenu.css +204 -204
- package/{sass → assets/sass}/vendors/_bootstrap.scss +2 -2
- package/esm2022/index.mjs +1 -1
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +6 -6
- package/esm2022/lib/components/breadcrumb/index.mjs +1 -1
- package/esm2022/lib/components/button/button.component.mjs +6 -6
- package/esm2022/lib/components/calendar/calendar.component.mjs +6 -6
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +6 -6
- package/esm2022/lib/components/confirm-dialog/confirm-dialog.component.mjs +6 -6
- package/esm2022/lib/components/confirm-dialog/index.mjs +1 -1
- package/esm2022/lib/components/dropdown/dropdown-item.component.mjs +4 -4
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +6 -6
- package/esm2022/lib/components/dropdown/index.mjs +1 -1
- package/esm2022/lib/components/errors/error.component.mjs +5 -5
- package/esm2022/lib/components/form-field/form-field.component.mjs +6 -6
- package/esm2022/lib/components/form-field/index.mjs +1 -1
- package/esm2022/lib/components/header/header.component.mjs +6 -6
- package/esm2022/lib/components/index.mjs +1 -1
- package/esm2022/lib/components/input-group/input-group.component.mjs +6 -6
- package/esm2022/lib/components/loader/loader.component.mjs +6 -6
- package/esm2022/lib/components/multiselect/multiselect.component.mjs +6 -6
- package/esm2022/lib/components/number-input/number-input.component.mjs +6 -6
- package/esm2022/lib/components/page-header/page-header.component.mjs +5 -5
- package/esm2022/lib/components/password/index.mjs +1 -1
- package/esm2022/lib/components/password/password.component.mjs +6 -6
- package/esm2022/lib/components/radiobutton/radiobutton.component.mjs +6 -6
- package/esm2022/lib/components/search/search.component.mjs +5 -5
- package/esm2022/lib/components/section/section.component.mjs +6 -6
- package/esm2022/lib/components/shared-components/action-button-group/action-button-group.component.mjs +6 -6
- package/esm2022/lib/components/shared-components/action-button-group/components/action-button/action-button.component.mjs +5 -5
- package/esm2022/lib/components/shared-components/action-button-group/index.mjs +1 -1
- package/esm2022/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.mjs +4 -4
- package/esm2022/lib/components/shared-components/dynamic-component/dynamic-component.component.mjs +4 -4
- package/esm2022/lib/components/shared-components/feature-list/directives/feature-list-column.directive.mjs +4 -4
- package/esm2022/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.mjs +4 -4
- package/esm2022/lib/components/shared-components/feature-list/feature-list-filter.pipe.mjs +4 -4
- package/esm2022/lib/components/shared-components/feature-list/feature-list-page.component.mjs +21 -21
- package/esm2022/lib/components/shared-components/feature-list/feature-list-page.model.mjs +1 -1
- package/esm2022/lib/components/shared-components/feature-list/feature-list.component.mjs +5 -5
- package/esm2022/lib/components/shared-components/feature-list/index.mjs +1 -1
- package/esm2022/lib/components/shared-components/filter/directives/filter-field.directive.mjs +4 -4
- package/esm2022/lib/components/shared-components/filter/filter.component.mjs +6 -6
- package/esm2022/lib/components/shared-components/generic-field/generic-field.component.mjs +6 -6
- package/esm2022/lib/components/shared-components/generic-form/generic-form.component.mjs +4 -4
- package/esm2022/lib/components/side-menu/index.mjs +1 -1
- package/esm2022/lib/components/side-menu/side-menu.component.mjs +6 -6
- package/esm2022/lib/components/side-menu/side-menu.module.mjs +8 -22
- package/esm2022/lib/components/snackbar/index.mjs +1 -1
- package/esm2022/lib/components/snackbar/services/snackbar.service.mjs +4 -4
- package/esm2022/lib/components/snackbar/snackbar.component.mjs +6 -6
- package/esm2022/lib/components/snackbar/snackbar.model.mjs +1 -1
- package/esm2022/lib/components/stepper/stepper.component.mjs +6 -6
- package/esm2022/lib/components/switch/switch.component.mjs +6 -6
- package/esm2022/lib/components/tab-view/index.mjs +1 -1
- package/esm2022/lib/components/tab-view/tab-view-item.component.mjs +7 -7
- package/esm2022/lib/components/tab-view/tab-view.component.mjs +5 -5
- package/esm2022/lib/components/tab-view/tab-view.module.mjs +5 -5
- package/esm2022/lib/components/table/index.mjs +1 -1
- package/esm2022/lib/components/table/table-pagination-info.component.mjs +5 -5
- package/esm2022/lib/components/table/table.component.mjs +6 -6
- package/esm2022/lib/components/table/table.model.mjs +1 -1
- package/esm2022/lib/components/textarea/textarea.component.mjs +6 -6
- package/esm2022/lib/components/textfield/textfield.component.mjs +6 -6
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +5 -5
- package/esm2022/lib/components/tristatecheckbox/tristatecheckbox.component.mjs +6 -6
- package/esm2022/lib/index.mjs +1 -1
- package/esm2022/lib/init.service.mjs +4 -4
- package/esm2022/lib/pages/index.mjs +1 -1
- package/esm2022/lib/pages/not-authenticated/index.mjs +1 -1
- package/esm2022/lib/pages/not-authenticated/not-authenticated.component.mjs +5 -5
- package/esm2022/lib/pages/not-authorized/index.mjs +1 -1
- package/esm2022/lib/pages/not-authorized/not-authorized.component.mjs +5 -5
- package/esm2022/lib/pages/not-found/index.mjs +1 -1
- package/esm2022/lib/pages/not-found/not-found.component.mjs +5 -5
- package/esm2022/lib/pipes/color/color.pipe.mjs +4 -4
- package/esm2022/lib/pipes/index.mjs +1 -1
- package/esm2022/lib/pipes/multiselect/multiselect-options.pipe.mjs +4 -4
- package/esm2022/lib/pipes/size/size.pipe.mjs +4 -4
- package/fesm2022/verisoft-ui-govcz.mjs +251 -265
- package/fesm2022/verisoft-ui-govcz.mjs.map +1 -1
- package/package.json +5 -7
|
@@ -263,15 +263,15 @@ export class TableComponent {
|
|
|
263
263
|
direction: x.sortDirection,
|
|
264
264
|
}));
|
|
265
265
|
}
|
|
266
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
267
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
266
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
267
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TableComponent, isStandalone: true, selector: "v-table", inputs: { sorters: "sorters", data: "data", total: "total", filter: "filter", extraFilter: "extraFilter", loading: "loading", scrollable: "scrollable", pageSize: "pageSize", currentPage: "currentPage", showPaginator: "showPaginator", userTableWrapper: "userTableWrapper", sortMultiple: "sortMultiple", lazy: "lazy", selectionMode: "selectionMode", selection: "selection", showPageSizePicker: "showPageSizePicker", entityKey: "entityKey", customRoute: "customRoute", disableCustomClicks: "disableCustomClicks", tableName: "tableName", size: "size", showActionButtons: "showActionButtons", maximumColumnLength: "maximumColumnLength", columns: "columns" }, outputs: { selectionChange: "selectionChange", lazyLoad: "lazyLoad", download: "download", delete: "delete", save: "save" }, providers: [
|
|
268
268
|
{
|
|
269
269
|
provide: TABLE_COMPONENT_TOKEN,
|
|
270
270
|
useExisting: TableComponent,
|
|
271
271
|
},
|
|
272
|
-
], queries: [{ propertyName: "rowDetailTemplate", first: true, predicate: ["rowDetail"], descendants: true }, { propertyName: "rowDetailButtonTemplate", first: true, predicate: ["rowDetailButton"], descendants: true }, { propertyName: "viewColumns", predicate: TABLE_COLUMN_PROVIDER }], usesOnChanges: true, ngImport: i0, template: "@if (selectionMode === 'multiple' && showActionButtons) {\r\n<gov-flex\r\n class=\"gov-table-complex__actions mt-2\"\r\n justify-content=\"space-between\"\r\n align-items=\"center\"\r\n>\r\n <div class=\"gov-table-complex__records-selected\">\r\n {{ selectedCount }} {{ ('TABLES.CHOSEN_RECORDS' | translate) ?? 'chosen records'}}\r\n </div>\r\n <div>\r\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"delete.emit(selected)\">\r\n {{ ('BUTTONS.DELETE' | translate) ?? 'Delete'}}\r\n </gov-button>\r\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"save.emit(selected)\">\r\n {{ ('BUTTONS.SAVE' | translate) ?? 'Save'}}\r\n </gov-button>\r\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"download.emit(selected)\">\r\n {{ ('BUTTONS.DOWNLOAD' | translate) ?? 'Download'}}\r\n </gov-button>\r\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"deselectAll()\">\r\n {{ ('BUTTONS.CANCEL' | translate) ?? 'Cancel'}}\r\n </gov-button>\r\n </div>\r\n</gov-flex>\r\n}\r\n\r\n<div\r\n class=\" v-table gov-table\"\r\n [attr.size]=\"size | govSize\"\r\n>\r\n <table class=\"v-table__table\">\r\n <thead class=\"v-table__head\">\r\n <tr class=\"v-table__header\">\r\n @if (this.rowDetailTemplate) {\r\n <th></th>\r\n } @if (selectionMode === 'multiple') {\r\n <th scope=\"col\">\r\n <gov-form-checkbox\r\n [checked]=\"allSelected\"\r\n (gov-change)=\"toggleAll($event)\"\r\n />\r\n </th>\r\n }\r\n @for (column of tableColumns; track column; let index = $index) {\r\n @if (column.visible && column.forceVisibility !== 'hidden') {\r\n <th\r\n scope=\"col\"\r\n [style]=\"{'text-align': column.textAlign}\"\r\n >\r\n <span\r\n class=\"gov-table--fit-width\"\r\n [class.v-table__sortable]=\"column.sortable\"\r\n [class.v-table__sortable--desc]=\"column.sortable && column.sortDirection === 'desc'\"\r\n [class.v-table__sortable--asc]=\"column.sortable && column.sortDirection === 'asc'\"\r\n (click)=\"sortColumn(column)\"\r\n >\r\n {{ column.headerGetter(column.id, index) | translate }}\r\n </span>\r\n </th>\r\n } @if (this.rowDetailButtonTemplate) {\r\n <th></th>\r\n }}\r\n </tr>\r\n </thead>\r\n @if (loading) {\r\n <v-loader />\r\n } @else {\r\n <tbody class=\"v-table__body\">\r\n @for (data of tableRowView; track data.id; let rowIndex = $index) {\r\n <tr\r\n class=\"v-table__row\"\r\n [class.gov-table--highlight]=\"data.selected && selectionMode\"\r\n (click)=\"selectRow(data, $event)\"\r\n (dblclick)=\"navigate(data, $event)\"\r\n (mousedown)=\"navigateNewWindow(data, $event)\"\r\n >\r\n @if (this.rowDetailTemplate) {\r\n <td>\r\n <gov-button\r\n [size]=\"size | govSize\"\r\n color=\"primary\"\r\n type=\"solid\"\r\n (gov-click)=\"toggleDetail(data)\"\r\n >\r\n <gov-icon\r\n [name]=\"data.expanded ? 'chevron-up' : 'chevron-down'\"\r\n [size]=\"size | govSize\"\r\n slot=\"icon-start\"\r\n ></gov-icon>\r\n </gov-button>\r\n </td>\r\n } @if (selectionMode === 'multiple') {\r\n <td class=\"gov-table--fit-content gov-table--border-right\">\r\n <gov-form-checkbox\r\n no-label\r\n [checked]=\"data.selected\"\r\n [size]=\"size | govSize\"\r\n (gov-change)=\"selectRowCheckbox(data, $event)\"\r\n ></gov-form-checkbox>\r\n </td>\r\n }\r\n @for (column of tableColumns; track column; let columnIndex = $index) {\r\n @if (column.visible && column.forceVisibility !== 'hidden') {\r\n <td\r\n [style]=\"{'text-align': column.textAlign}\"\r\n [class]=\"column.columnClass!\"\r\n [class.v-auto-cell]=\"column.template\"\r\n >\r\n @if (column.template) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n column.template;\r\n context: { $implicit: data.row }\r\n \"\r\n ></ng-container>\r\n } @else {\r\n <span\r\n [queryParams]=\"column.queryParams ? column.queryParams : undefined\"\r\n [routerLink]=\"column.routerLink ? column.routerLink(data.row) : undefined\"\r\n [innerHTML]=\"truncate(column.valueGetter(data.row, rowIndex))\"\r\n [attr.title]=\"\r\n column.valueGetter(data.row, rowIndex).length > maximumColumnLength\r\n ? column.valueGetter(data.row, rowIndex)\r\n : null\r\n \"\r\n ></span>\r\n }\r\n </td>\r\n @if (this.rowDetailButtonTemplate) {\r\n <td scope=\"\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n this.rowDetailButtonTemplate;\r\n context: { $implicit: data.row }\r\n \"\r\n ></ng-container>\r\n </td>\r\n }}}\r\n </tr>\r\n @if (this.rowDetailTemplate && data.expanded) {\r\n <tr>\r\n <td [attr.colspan]=\"tableColumns.length + 1\">\r\n <ng-container\r\n class=\"w-100\"\r\n *ngTemplateOutlet=\"\r\n this.rowDetailTemplate;\r\n context: { $implicit: data.row }\r\n \"\r\n ></ng-container>\r\n </td>\r\n </tr>\r\n } } @if (!tableRows.length && !loading){\r\n <td [attr.colspan]=\"tableColumns.length\">\r\n <gov-empty align=\"center\" [size]=\"size | govSize\">\r\n <gov-icon slot=\"icon\" name=\"empty-file\" type=\"colored\"/>\r\n <p slot=\"headline\">\r\n {{ ('TABLES.EMPTY' | translate) ?? 'No records were found!' }}\r\n </p>\r\n </gov-empty>\r\n </td>\r\n }\r\n </tbody>\r\n }\r\n </table>\r\n @if(showPaginator) {\r\n <div class=\"v-table__paginator d-flex pt-3 pb-3\">\r\n @if (tableRows.length) {\r\n <div class=\"mt-2\">\r\n <v-table-pagination-info\r\n [showingText]=\"'TABLES.PAGINATION.SHOWING' | translate\"\r\n [toText]=\"'TABLES.PAGINATION.TO' | translate\"\r\n [ofText]=\"'TABLES.PAGINATION.OF' | translate\"\r\n [entriesText]=\"'TABLES.PAGINATION.ENTRIES' | translate\"\r\n [currentPage]=\"currentPage\"\r\n [pageSize]=\"pageSize\"\r\n [total]=\"total\"\r\n />\r\n </div>\r\n <div class=\"ms-4\">\r\n <gov-form-select\r\n [options]=\"pageSizeOptions\"\r\n [value]=\"govPageSize\"\r\n (gov-change)=\"changePageSize($event)\"\r\n ></gov-form-select>\r\n </div>\r\n }\r\n <div class=\"ms-4\">\r\n <gov-pagination\r\n [current]=\"currentPage\"\r\n [pageSize]=\"pageSize\"\r\n [total]=\"total\"\r\n [type]=\"'button'\"\r\n (gov-page)=\"changePage($event)\"\r\n ></gov-pagination>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.v-table{position:relative;height:100%;display:flex;flex-direction:column}.v-table__sortable{color:var(--text-primary-color);text-decoration:underline;transition:color .15s ease-in-out;cursor:pointer}.v-table__sortable:after{content:\"\\2191\\2193\";margin-left:.5rem;text-decoration:none;display:inline-block}.v-table__sortable--asc:after{content:\"\\2191\"}.v-table__sortable--desc:after{content:\"\\2193\"}.v-table__header{background-color:var(--background-block-primary);position:sticky;top:0;z-index:2}.v-table__table{width:100%}.v-table__paginator{background-color:var(--background-neutral-white);justify-content:end;position:sticky;bottom:0;z-index:3}.gov-table{width:100%;overflow-x:auto}.gov-table table{table-layout:auto;min-width:100%;border-collapse:collapse}.gov-table table tr.gov-table--highlight td{background-color:var(--background-primary-subtle)}.gov-table table th,.gov-table table td{border-bottom:1px solid var(--border-subtlest);text-align:left}.gov-table table th.gov-table--align-right,.gov-table table td.gov-table--align-right{text-align:right}.gov-table table th.gov-table--vertical-align-top,.gov-table table td.gov-table--vertical-align-top{vertical-align:top}.gov-table table th.gov-table--border-right,.gov-table table td.gov-table--border-right{border-right:1px solid var(--border-subtlest)}.gov-table table th.gov-table--border-left,.gov-table table td.gov-table--border-left{border-left:1px solid var(--border-subtlest)}.gov-table table th.gov-table--border-bottom-none,.gov-table table td.gov-table--border-bottom-none{border-bottom:none}.gov-table table th.gov-table--nowrap,.gov-table table td.gov-table--nowrap{white-space:nowrap}.gov-table table th.gov-table--fit-width,.gov-table table td.gov-table--fit-width{width:1px}.gov-table table th{color:var(--text-primary);background-color:var(--background-neutral-subtlest)}.gov-table table td{background-color:var(--background-neutral-white)}.gov-table table tr.open td{padding:var(--spacing-s) var(--spacing-m)}.gov-table summary::-webkit-details-marker{display:none}.gov-table[size=s] table{border-bottom-left-radius:var(--corner-radius-s);border-bottom-right-radius:var(--corner-radius-s)}.gov-table[size=s] table th,.gov-table[size=s] table td{height:var(--height-2xl);padding:0 var(--spacing-s);font-size:var(--font-size-body-s);line-height:150%;font-weight:400}.gov-table[size=s] table th{font-weight:700}.gov-table[size=m] table{border-bottom-left-radius:var(--corner-radius-m);border-bottom-right-radius:var(--corner-radius-m)}.gov-table[size=m] table th,.gov-table[size=m] table td{height:var(--height-3xl);padding:0 var(--spacing-m);font-size:var(--font-size-body-m);line-height:150%;font-weight:400}.gov-table[size=m] table th{font-weight:700}.gov-table[size=l] table{border-bottom-left-radius:var(--corner-radius-l);border-bottom-right-radius:var(--corner-radius-l)}.gov-table[size=l] table th,.gov-table[size=l] table td{height:var(--height-4xl);padding:0 var(--spacing-l);font-size:var(--font-size-body-l);line-height:150%;font-weight:400}.gov-table[size=l] table th{font-weight:700}.gov-table-complex__name,.gov-table-complex__description{margin:0;color:var(--text-primary)}.gov-table-complex__actions{color:var(--text-white-fixed);background-color:var(--background-primary);padding:var(--spacing-xs) var(--spacing-s)}.gov-table-complex__per-page{width:185px;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: GovDesignSystemModule }, { kind: "component", type: i3.GovButton, selector: "gov-button", inputs: ["color", "disabled", "download", "expanded", "focusable", "href", "hreflang", "identifier", "loading", "name", "nativeType", "referrerpolicy", "rel", "size", "target", "type"] }, { kind: "component", type: i3.GovEmpty, selector: "gov-empty", inputs: ["size"] }, { kind: "component", type: i3.GovFlex, selector: "gov-flex", inputs: ["alignContent", "alignItems", "alignSelf", "direction", "justifyContent", "wrap"] }, { kind: "component", type: i3.GovFormCheckbox, selector: "gov-form-checkbox", inputs: ["checked", "disabled", "identifier", "indeterminate", "invalid", "name", "noLabel", "required", "size", "value"] }, { kind: "component", type: i3.GovFormSelect, selector: "gov-form-select", inputs: ["disabled", "identifier", "invalid", "name", "options", "required", "size", "success", "value"] }, { kind: "component", type: i3.GovIcon, selector: "gov-icon", inputs: ["color", "name", "size", "type"] }, { kind: "component", type: i3.GovPagination, selector: "gov-pagination", inputs: ["accessiblePageLabel", "accessibleSelectLabel", "color", "current", "labelEnd", "labelNext", "labelPrev", "labelStart", "link", "maxPages", "pageSize", "selectIdentifier", "size", "total", "type"] }, { kind: "directive", type: i3.BooleanValueAccessor, selector: "gov-form-checkbox,gov-form-switch" }, { kind: "directive", type: i3.SelectValueAccessor, selector: "gov-form-select, gov-form-multi-select" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: GovSizePipe, name: "govSize" }, { kind: "component", type: LoaderComponent, selector: "v-loader", inputs: ["size", "message"] }, { kind: "component", type: TablePaginationInfoComponent, selector: "v-table-pagination-info", inputs: ["showingText", "toText", "ofText", "entriesText", "currentPage", "pageSize", "total"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
272
|
+
], queries: [{ propertyName: "rowDetailTemplate", first: true, predicate: ["rowDetail"], descendants: true }, { propertyName: "rowDetailButtonTemplate", first: true, predicate: ["rowDetailButton"], descendants: true }, { propertyName: "viewColumns", predicate: TABLE_COLUMN_PROVIDER }], usesOnChanges: true, ngImport: i0, template: "@if (selectionMode === 'multiple' && showActionButtons) {\n<gov-flex\n class=\"gov-table-complex__actions mt-2\"\n justify-content=\"space-between\"\n align-items=\"center\"\n>\n <div class=\"gov-table-complex__records-selected\">\n {{ selectedCount }} {{ ('TABLES.CHOSEN_RECORDS' | translate) ?? 'chosen records'}}\n </div>\n <div>\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"delete.emit(selected)\">\n {{ ('BUTTONS.DELETE' | translate) ?? 'Delete'}}\n </gov-button>\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"save.emit(selected)\">\n {{ ('BUTTONS.SAVE' | translate) ?? 'Save'}}\n </gov-button>\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"download.emit(selected)\">\n {{ ('BUTTONS.DOWNLOAD' | translate) ?? 'Download'}}\n </gov-button>\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"deselectAll()\">\n {{ ('BUTTONS.CANCEL' | translate) ?? 'Cancel'}}\n </gov-button>\n </div>\n</gov-flex>\n}\n\n<div\n class=\" v-table gov-table\"\n [attr.size]=\"size | govSize\"\n>\n <table class=\"v-table__table\">\n <thead class=\"v-table__head\">\n <tr class=\"v-table__header\">\n @if (this.rowDetailTemplate) {\n <th></th>\n } @if (selectionMode === 'multiple') {\n <th scope=\"col\">\n <gov-form-checkbox\n [checked]=\"allSelected\"\n (gov-change)=\"toggleAll($event)\"\n />\n </th>\n }\n @for (column of tableColumns; track column; let index = $index) {\n @if (column.visible && column.forceVisibility !== 'hidden') {\n <th\n scope=\"col\"\n [style]=\"{'text-align': column.textAlign}\"\n >\n <span\n class=\"gov-table--fit-width\"\n [class.v-table__sortable]=\"column.sortable\"\n [class.v-table__sortable--desc]=\"column.sortable && column.sortDirection === 'desc'\"\n [class.v-table__sortable--asc]=\"column.sortable && column.sortDirection === 'asc'\"\n (click)=\"sortColumn(column)\"\n >\n {{ column.headerGetter(column.id, index) | translate }}\n </span>\n </th>\n } @if (this.rowDetailButtonTemplate) {\n <th></th>\n }}\n </tr>\n </thead>\n @if (loading) {\n <v-loader />\n } @else {\n <tbody class=\"v-table__body\">\n @for (data of tableRowView; track data.id; let rowIndex = $index) {\n <tr\n class=\"v-table__row\"\n [class.gov-table--highlight]=\"data.selected && selectionMode\"\n (click)=\"selectRow(data, $event)\"\n (dblclick)=\"navigate(data, $event)\"\n (mousedown)=\"navigateNewWindow(data, $event)\"\n >\n @if (this.rowDetailTemplate) {\n <td>\n <gov-button\n [size]=\"size | govSize\"\n color=\"primary\"\n type=\"solid\"\n (gov-click)=\"toggleDetail(data)\"\n >\n <gov-icon\n [name]=\"data.expanded ? 'chevron-up' : 'chevron-down'\"\n [size]=\"size | govSize\"\n slot=\"icon-start\"\n ></gov-icon>\n </gov-button>\n </td>\n } @if (selectionMode === 'multiple') {\n <td class=\"gov-table--fit-content gov-table--border-right\">\n <gov-form-checkbox\n no-label\n [checked]=\"data.selected\"\n [size]=\"size | govSize\"\n (gov-change)=\"selectRowCheckbox(data, $event)\"\n ></gov-form-checkbox>\n </td>\n }\n @for (column of tableColumns; track column; let columnIndex = $index) {\n @if (column.visible && column.forceVisibility !== 'hidden') {\n <td\n [style]=\"{'text-align': column.textAlign}\"\n [class]=\"column.columnClass!\"\n [class.v-auto-cell]=\"column.template\"\n >\n @if (column.template) {\n <ng-container\n *ngTemplateOutlet=\"\n column.template;\n context: { $implicit: data.row }\n \"\n ></ng-container>\n } @else {\n <span\n [queryParams]=\"column.queryParams ? column.queryParams : undefined\"\n [routerLink]=\"column.routerLink ? column.routerLink(data.row) : undefined\"\n [innerHTML]=\"truncate(column.valueGetter(data.row, rowIndex))\"\n [attr.title]=\"\n column.valueGetter(data.row, rowIndex).length > maximumColumnLength\n ? column.valueGetter(data.row, rowIndex)\n : null\n \"\n ></span>\n }\n </td>\n @if (this.rowDetailButtonTemplate) {\n <td scope=\"\">\n <ng-container\n *ngTemplateOutlet=\"\n this.rowDetailButtonTemplate;\n context: { $implicit: data.row }\n \"\n ></ng-container>\n </td>\n }}}\n </tr>\n @if (this.rowDetailTemplate && data.expanded) {\n <tr>\n <td [attr.colspan]=\"tableColumns.length + 1\">\n <ng-container\n class=\"w-100\"\n *ngTemplateOutlet=\"\n this.rowDetailTemplate;\n context: { $implicit: data.row }\n \"\n ></ng-container>\n </td>\n </tr>\n } } @if (!tableRows.length && !loading){\n <td [attr.colspan]=\"tableColumns.length\">\n <gov-empty align=\"center\" [size]=\"size | govSize\">\n <gov-icon slot=\"icon\" name=\"empty-file\" type=\"colored\"/>\n <p slot=\"headline\">\n {{ ('TABLES.EMPTY' | translate) ?? 'No records were found!' }}\n </p>\n </gov-empty>\n </td>\n }\n </tbody>\n }\n </table>\n @if(showPaginator) {\n <div class=\"v-table__paginator d-flex pt-3 pb-3\">\n @if (tableRows.length) {\n <div class=\"mt-2\">\n <v-table-pagination-info\n [showingText]=\"'TABLES.PAGINATION.SHOWING' | translate\"\n [toText]=\"'TABLES.PAGINATION.TO' | translate\"\n [ofText]=\"'TABLES.PAGINATION.OF' | translate\"\n [entriesText]=\"'TABLES.PAGINATION.ENTRIES' | translate\"\n [currentPage]=\"currentPage\"\n [pageSize]=\"pageSize\"\n [total]=\"total\"\n />\n </div>\n <div class=\"ms-4\">\n <gov-form-select\n [options]=\"pageSizeOptions\"\n [value]=\"govPageSize\"\n (gov-change)=\"changePageSize($event)\"\n ></gov-form-select>\n </div>\n }\n <div class=\"ms-4\">\n <gov-pagination\n [current]=\"currentPage\"\n [pageSize]=\"pageSize\"\n [total]=\"total\"\n [type]=\"'button'\"\n (gov-page)=\"changePage($event)\"\n ></gov-pagination>\n </div>\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.v-table{position:relative;height:100%;display:flex;flex-direction:column}.v-table__sortable{color:var(--text-primary-color);text-decoration:underline;transition:color .15s ease-in-out;cursor:pointer}.v-table__sortable:after{content:\"\\2191\\2193\";margin-left:.5rem;text-decoration:none;display:inline-block}.v-table__sortable--asc:after{content:\"\\2191\"}.v-table__sortable--desc:after{content:\"\\2193\"}.v-table__header{background-color:var(--background-block-primary);position:sticky;top:0;z-index:2}.v-table__table{width:100%}.v-table__paginator{background-color:var(--background-neutral-white);justify-content:end;position:sticky;bottom:0;z-index:3}.gov-table{width:100%;overflow-x:auto}.gov-table table{table-layout:auto;min-width:100%;border-collapse:collapse}.gov-table table tr.gov-table--highlight td{background-color:var(--background-primary-subtle)}.gov-table table th,.gov-table table td{border-bottom:1px solid var(--border-subtlest);text-align:left}.gov-table table th.gov-table--align-right,.gov-table table td.gov-table--align-right{text-align:right}.gov-table table th.gov-table--vertical-align-top,.gov-table table td.gov-table--vertical-align-top{vertical-align:top}.gov-table table th.gov-table--border-right,.gov-table table td.gov-table--border-right{border-right:1px solid var(--border-subtlest)}.gov-table table th.gov-table--border-left,.gov-table table td.gov-table--border-left{border-left:1px solid var(--border-subtlest)}.gov-table table th.gov-table--border-bottom-none,.gov-table table td.gov-table--border-bottom-none{border-bottom:none}.gov-table table th.gov-table--nowrap,.gov-table table td.gov-table--nowrap{white-space:nowrap}.gov-table table th.gov-table--fit-width,.gov-table table td.gov-table--fit-width{width:1px}.gov-table table th{color:var(--text-primary);background-color:var(--background-neutral-subtlest)}.gov-table table td{background-color:var(--background-neutral-white)}.gov-table table tr.open td{padding:var(--spacing-s) var(--spacing-m)}.gov-table summary::-webkit-details-marker{display:none}.gov-table[size=s] table{border-bottom-left-radius:var(--corner-radius-s);border-bottom-right-radius:var(--corner-radius-s)}.gov-table[size=s] table th,.gov-table[size=s] table td{height:var(--height-2xl);padding:0 var(--spacing-s);font-size:var(--font-size-body-s);line-height:150%;font-weight:400}.gov-table[size=s] table th{font-weight:700}.gov-table[size=m] table{border-bottom-left-radius:var(--corner-radius-m);border-bottom-right-radius:var(--corner-radius-m)}.gov-table[size=m] table th,.gov-table[size=m] table td{height:var(--height-3xl);padding:0 var(--spacing-m);font-size:var(--font-size-body-m);line-height:150%;font-weight:400}.gov-table[size=m] table th{font-weight:700}.gov-table[size=l] table{border-bottom-left-radius:var(--corner-radius-l);border-bottom-right-radius:var(--corner-radius-l)}.gov-table[size=l] table th,.gov-table[size=l] table td{height:var(--height-4xl);padding:0 var(--spacing-l);font-size:var(--font-size-body-l);line-height:150%;font-weight:400}.gov-table[size=l] table th{font-weight:700}.gov-table-complex__name,.gov-table-complex__description{margin:0;color:var(--text-primary)}.gov-table-complex__actions{color:var(--text-white-fixed);background-color:var(--background-primary);padding:var(--spacing-xs) var(--spacing-s)}.gov-table-complex__per-page{width:185px;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: GovDesignSystemModule }, { kind: "component", type: i3.GovButton, selector: "gov-button", inputs: ["color", "disabled", "download", "expanded", "focusable", "href", "hreflang", "identifier", "loading", "name", "nativeType", "referrerpolicy", "rel", "size", "target", "type"] }, { kind: "component", type: i3.GovEmpty, selector: "gov-empty", inputs: ["size"] }, { kind: "component", type: i3.GovFlex, selector: "gov-flex", inputs: ["alignContent", "alignItems", "alignSelf", "direction", "justifyContent", "wrap"] }, { kind: "component", type: i3.GovFormCheckbox, selector: "gov-form-checkbox", inputs: ["checked", "disabled", "identifier", "indeterminate", "invalid", "name", "noLabel", "required", "size", "value"] }, { kind: "component", type: i3.GovFormSelect, selector: "gov-form-select", inputs: ["disabled", "identifier", "invalid", "name", "options", "required", "size", "success", "value"] }, { kind: "component", type: i3.GovIcon, selector: "gov-icon", inputs: ["color", "name", "size", "type"] }, { kind: "component", type: i3.GovPagination, selector: "gov-pagination", inputs: ["accessiblePageLabel", "accessibleSelectLabel", "color", "current", "labelEnd", "labelNext", "labelPrev", "labelStart", "link", "maxPages", "pageSize", "selectIdentifier", "size", "total", "type"] }, { kind: "directive", type: i3.BooleanValueAccessor, selector: "gov-form-checkbox,gov-form-switch" }, { kind: "directive", type: i3.SelectValueAccessor, selector: "gov-form-select, gov-form-multi-select" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: GovSizePipe, name: "govSize" }, { kind: "component", type: LoaderComponent, selector: "v-loader", inputs: ["size", "message"] }, { kind: "component", type: TablePaginationInfoComponent, selector: "v-table-pagination-info", inputs: ["showingText", "toText", "ofText", "entriesText", "currentPage", "pageSize", "total"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
273
273
|
}
|
|
274
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, decorators: [{
|
|
275
275
|
type: Component,
|
|
276
276
|
args: [{ selector: 'v-table', standalone: true, imports: [
|
|
277
277
|
CommonModule,
|
|
@@ -287,7 +287,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
287
287
|
provide: TABLE_COMPONENT_TOKEN,
|
|
288
288
|
useExisting: TableComponent,
|
|
289
289
|
},
|
|
290
|
-
], template: "@if (selectionMode === 'multiple' && showActionButtons) {\r\n<gov-flex\r\n class=\"gov-table-complex__actions mt-2\"\r\n justify-content=\"space-between\"\r\n align-items=\"center\"\r\n>\r\n <div class=\"gov-table-complex__records-selected\">\r\n {{ selectedCount }} {{ ('TABLES.CHOSEN_RECORDS' | translate) ?? 'chosen records'}}\r\n </div>\r\n <div>\r\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"delete.emit(selected)\">\r\n {{ ('BUTTONS.DELETE' | translate) ?? 'Delete'}}\r\n </gov-button>\r\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"save.emit(selected)\">\r\n {{ ('BUTTONS.SAVE' | translate) ?? 'Save'}}\r\n </gov-button>\r\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"download.emit(selected)\">\r\n {{ ('BUTTONS.DOWNLOAD' | translate) ?? 'Download'}}\r\n </gov-button>\r\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"deselectAll()\">\r\n {{ ('BUTTONS.CANCEL' | translate) ?? 'Cancel'}}\r\n </gov-button>\r\n </div>\r\n</gov-flex>\r\n}\r\n\r\n<div\r\n class=\" v-table gov-table\"\r\n [attr.size]=\"size | govSize\"\r\n>\r\n <table class=\"v-table__table\">\r\n <thead class=\"v-table__head\">\r\n <tr class=\"v-table__header\">\r\n @if (this.rowDetailTemplate) {\r\n <th></th>\r\n } @if (selectionMode === 'multiple') {\r\n <th scope=\"col\">\r\n <gov-form-checkbox\r\n [checked]=\"allSelected\"\r\n (gov-change)=\"toggleAll($event)\"\r\n />\r\n </th>\r\n }\r\n @for (column of tableColumns; track column; let index = $index) {\r\n @if (column.visible && column.forceVisibility !== 'hidden') {\r\n <th\r\n scope=\"col\"\r\n [style]=\"{'text-align': column.textAlign}\"\r\n >\r\n <span\r\n class=\"gov-table--fit-width\"\r\n [class.v-table__sortable]=\"column.sortable\"\r\n [class.v-table__sortable--desc]=\"column.sortable && column.sortDirection === 'desc'\"\r\n [class.v-table__sortable--asc]=\"column.sortable && column.sortDirection === 'asc'\"\r\n (click)=\"sortColumn(column)\"\r\n >\r\n {{ column.headerGetter(column.id, index) | translate }}\r\n </span>\r\n </th>\r\n } @if (this.rowDetailButtonTemplate) {\r\n <th></th>\r\n }}\r\n </tr>\r\n </thead>\r\n @if (loading) {\r\n <v-loader />\r\n } @else {\r\n <tbody class=\"v-table__body\">\r\n @for (data of tableRowView; track data.id; let rowIndex = $index) {\r\n <tr\r\n class=\"v-table__row\"\r\n [class.gov-table--highlight]=\"data.selected && selectionMode\"\r\n (click)=\"selectRow(data, $event)\"\r\n (dblclick)=\"navigate(data, $event)\"\r\n (mousedown)=\"navigateNewWindow(data, $event)\"\r\n >\r\n @if (this.rowDetailTemplate) {\r\n <td>\r\n <gov-button\r\n [size]=\"size | govSize\"\r\n color=\"primary\"\r\n type=\"solid\"\r\n (gov-click)=\"toggleDetail(data)\"\r\n >\r\n <gov-icon\r\n [name]=\"data.expanded ? 'chevron-up' : 'chevron-down'\"\r\n [size]=\"size | govSize\"\r\n slot=\"icon-start\"\r\n ></gov-icon>\r\n </gov-button>\r\n </td>\r\n } @if (selectionMode === 'multiple') {\r\n <td class=\"gov-table--fit-content gov-table--border-right\">\r\n <gov-form-checkbox\r\n no-label\r\n [checked]=\"data.selected\"\r\n [size]=\"size | govSize\"\r\n (gov-change)=\"selectRowCheckbox(data, $event)\"\r\n ></gov-form-checkbox>\r\n </td>\r\n }\r\n @for (column of tableColumns; track column; let columnIndex = $index) {\r\n @if (column.visible && column.forceVisibility !== 'hidden') {\r\n <td\r\n [style]=\"{'text-align': column.textAlign}\"\r\n [class]=\"column.columnClass!\"\r\n [class.v-auto-cell]=\"column.template\"\r\n >\r\n @if (column.template) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n column.template;\r\n context: { $implicit: data.row }\r\n \"\r\n ></ng-container>\r\n } @else {\r\n <span\r\n [queryParams]=\"column.queryParams ? column.queryParams : undefined\"\r\n [routerLink]=\"column.routerLink ? column.routerLink(data.row) : undefined\"\r\n [innerHTML]=\"truncate(column.valueGetter(data.row, rowIndex))\"\r\n [attr.title]=\"\r\n column.valueGetter(data.row, rowIndex).length > maximumColumnLength\r\n ? column.valueGetter(data.row, rowIndex)\r\n : null\r\n \"\r\n ></span>\r\n }\r\n </td>\r\n @if (this.rowDetailButtonTemplate) {\r\n <td scope=\"\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n this.rowDetailButtonTemplate;\r\n context: { $implicit: data.row }\r\n \"\r\n ></ng-container>\r\n </td>\r\n }}}\r\n </tr>\r\n @if (this.rowDetailTemplate && data.expanded) {\r\n <tr>\r\n <td [attr.colspan]=\"tableColumns.length + 1\">\r\n <ng-container\r\n class=\"w-100\"\r\n *ngTemplateOutlet=\"\r\n this.rowDetailTemplate;\r\n context: { $implicit: data.row }\r\n \"\r\n ></ng-container>\r\n </td>\r\n </tr>\r\n } } @if (!tableRows.length && !loading){\r\n <td [attr.colspan]=\"tableColumns.length\">\r\n <gov-empty align=\"center\" [size]=\"size | govSize\">\r\n <gov-icon slot=\"icon\" name=\"empty-file\" type=\"colored\"/>\r\n <p slot=\"headline\">\r\n {{ ('TABLES.EMPTY' | translate) ?? 'No records were found!' }}\r\n </p>\r\n </gov-empty>\r\n </td>\r\n }\r\n </tbody>\r\n }\r\n </table>\r\n @if(showPaginator) {\r\n <div class=\"v-table__paginator d-flex pt-3 pb-3\">\r\n @if (tableRows.length) {\r\n <div class=\"mt-2\">\r\n <v-table-pagination-info\r\n [showingText]=\"'TABLES.PAGINATION.SHOWING' | translate\"\r\n [toText]=\"'TABLES.PAGINATION.TO' | translate\"\r\n [ofText]=\"'TABLES.PAGINATION.OF' | translate\"\r\n [entriesText]=\"'TABLES.PAGINATION.ENTRIES' | translate\"\r\n [currentPage]=\"currentPage\"\r\n [pageSize]=\"pageSize\"\r\n [total]=\"total\"\r\n />\r\n </div>\r\n <div class=\"ms-4\">\r\n <gov-form-select\r\n [options]=\"pageSizeOptions\"\r\n [value]=\"govPageSize\"\r\n (gov-change)=\"changePageSize($event)\"\r\n ></gov-form-select>\r\n </div>\r\n }\r\n <div class=\"ms-4\">\r\n <gov-pagination\r\n [current]=\"currentPage\"\r\n [pageSize]=\"pageSize\"\r\n [total]=\"total\"\r\n [type]=\"'button'\"\r\n (gov-page)=\"changePage($event)\"\r\n ></gov-pagination>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.v-table{position:relative;height:100%;display:flex;flex-direction:column}.v-table__sortable{color:var(--text-primary-color);text-decoration:underline;transition:color .15s ease-in-out;cursor:pointer}.v-table__sortable:after{content:\"\\2191\\2193\";margin-left:.5rem;text-decoration:none;display:inline-block}.v-table__sortable--asc:after{content:\"\\2191\"}.v-table__sortable--desc:after{content:\"\\2193\"}.v-table__header{background-color:var(--background-block-primary);position:sticky;top:0;z-index:2}.v-table__table{width:100%}.v-table__paginator{background-color:var(--background-neutral-white);justify-content:end;position:sticky;bottom:0;z-index:3}.gov-table{width:100%;overflow-x:auto}.gov-table table{table-layout:auto;min-width:100%;border-collapse:collapse}.gov-table table tr.gov-table--highlight td{background-color:var(--background-primary-subtle)}.gov-table table th,.gov-table table td{border-bottom:1px solid var(--border-subtlest);text-align:left}.gov-table table th.gov-table--align-right,.gov-table table td.gov-table--align-right{text-align:right}.gov-table table th.gov-table--vertical-align-top,.gov-table table td.gov-table--vertical-align-top{vertical-align:top}.gov-table table th.gov-table--border-right,.gov-table table td.gov-table--border-right{border-right:1px solid var(--border-subtlest)}.gov-table table th.gov-table--border-left,.gov-table table td.gov-table--border-left{border-left:1px solid var(--border-subtlest)}.gov-table table th.gov-table--border-bottom-none,.gov-table table td.gov-table--border-bottom-none{border-bottom:none}.gov-table table th.gov-table--nowrap,.gov-table table td.gov-table--nowrap{white-space:nowrap}.gov-table table th.gov-table--fit-width,.gov-table table td.gov-table--fit-width{width:1px}.gov-table table th{color:var(--text-primary);background-color:var(--background-neutral-subtlest)}.gov-table table td{background-color:var(--background-neutral-white)}.gov-table table tr.open td{padding:var(--spacing-s) var(--spacing-m)}.gov-table summary::-webkit-details-marker{display:none}.gov-table[size=s] table{border-bottom-left-radius:var(--corner-radius-s);border-bottom-right-radius:var(--corner-radius-s)}.gov-table[size=s] table th,.gov-table[size=s] table td{height:var(--height-2xl);padding:0 var(--spacing-s);font-size:var(--font-size-body-s);line-height:150%;font-weight:400}.gov-table[size=s] table th{font-weight:700}.gov-table[size=m] table{border-bottom-left-radius:var(--corner-radius-m);border-bottom-right-radius:var(--corner-radius-m)}.gov-table[size=m] table th,.gov-table[size=m] table td{height:var(--height-3xl);padding:0 var(--spacing-m);font-size:var(--font-size-body-m);line-height:150%;font-weight:400}.gov-table[size=m] table th{font-weight:700}.gov-table[size=l] table{border-bottom-left-radius:var(--corner-radius-l);border-bottom-right-radius:var(--corner-radius-l)}.gov-table[size=l] table th,.gov-table[size=l] table td{height:var(--height-4xl);padding:0 var(--spacing-l);font-size:var(--font-size-body-l);line-height:150%;font-weight:400}.gov-table[size=l] table th{font-weight:700}.gov-table-complex__name,.gov-table-complex__description{margin:0;color:var(--text-primary)}.gov-table-complex__actions{color:var(--text-white-fixed);background-color:var(--background-primary);padding:var(--spacing-xs) var(--spacing-s)}.gov-table-complex__per-page{width:185px;white-space:nowrap}\n"] }]
|
|
290
|
+
], template: "@if (selectionMode === 'multiple' && showActionButtons) {\n<gov-flex\n class=\"gov-table-complex__actions mt-2\"\n justify-content=\"space-between\"\n align-items=\"center\"\n>\n <div class=\"gov-table-complex__records-selected\">\n {{ selectedCount }} {{ ('TABLES.CHOSEN_RECORDS' | translate) ?? 'chosen records'}}\n </div>\n <div>\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"delete.emit(selected)\">\n {{ ('BUTTONS.DELETE' | translate) ?? 'Delete'}}\n </gov-button>\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"save.emit(selected)\">\n {{ ('BUTTONS.SAVE' | translate) ?? 'Save'}}\n </gov-button>\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"download.emit(selected)\">\n {{ ('BUTTONS.DOWNLOAD' | translate) ?? 'Download'}}\n </gov-button>\n <gov-button color=\"primary\" size=\"s\" type=\"solid\" (gov-click)=\"deselectAll()\">\n {{ ('BUTTONS.CANCEL' | translate) ?? 'Cancel'}}\n </gov-button>\n </div>\n</gov-flex>\n}\n\n<div\n class=\" v-table gov-table\"\n [attr.size]=\"size | govSize\"\n>\n <table class=\"v-table__table\">\n <thead class=\"v-table__head\">\n <tr class=\"v-table__header\">\n @if (this.rowDetailTemplate) {\n <th></th>\n } @if (selectionMode === 'multiple') {\n <th scope=\"col\">\n <gov-form-checkbox\n [checked]=\"allSelected\"\n (gov-change)=\"toggleAll($event)\"\n />\n </th>\n }\n @for (column of tableColumns; track column; let index = $index) {\n @if (column.visible && column.forceVisibility !== 'hidden') {\n <th\n scope=\"col\"\n [style]=\"{'text-align': column.textAlign}\"\n >\n <span\n class=\"gov-table--fit-width\"\n [class.v-table__sortable]=\"column.sortable\"\n [class.v-table__sortable--desc]=\"column.sortable && column.sortDirection === 'desc'\"\n [class.v-table__sortable--asc]=\"column.sortable && column.sortDirection === 'asc'\"\n (click)=\"sortColumn(column)\"\n >\n {{ column.headerGetter(column.id, index) | translate }}\n </span>\n </th>\n } @if (this.rowDetailButtonTemplate) {\n <th></th>\n }}\n </tr>\n </thead>\n @if (loading) {\n <v-loader />\n } @else {\n <tbody class=\"v-table__body\">\n @for (data of tableRowView; track data.id; let rowIndex = $index) {\n <tr\n class=\"v-table__row\"\n [class.gov-table--highlight]=\"data.selected && selectionMode\"\n (click)=\"selectRow(data, $event)\"\n (dblclick)=\"navigate(data, $event)\"\n (mousedown)=\"navigateNewWindow(data, $event)\"\n >\n @if (this.rowDetailTemplate) {\n <td>\n <gov-button\n [size]=\"size | govSize\"\n color=\"primary\"\n type=\"solid\"\n (gov-click)=\"toggleDetail(data)\"\n >\n <gov-icon\n [name]=\"data.expanded ? 'chevron-up' : 'chevron-down'\"\n [size]=\"size | govSize\"\n slot=\"icon-start\"\n ></gov-icon>\n </gov-button>\n </td>\n } @if (selectionMode === 'multiple') {\n <td class=\"gov-table--fit-content gov-table--border-right\">\n <gov-form-checkbox\n no-label\n [checked]=\"data.selected\"\n [size]=\"size | govSize\"\n (gov-change)=\"selectRowCheckbox(data, $event)\"\n ></gov-form-checkbox>\n </td>\n }\n @for (column of tableColumns; track column; let columnIndex = $index) {\n @if (column.visible && column.forceVisibility !== 'hidden') {\n <td\n [style]=\"{'text-align': column.textAlign}\"\n [class]=\"column.columnClass!\"\n [class.v-auto-cell]=\"column.template\"\n >\n @if (column.template) {\n <ng-container\n *ngTemplateOutlet=\"\n column.template;\n context: { $implicit: data.row }\n \"\n ></ng-container>\n } @else {\n <span\n [queryParams]=\"column.queryParams ? column.queryParams : undefined\"\n [routerLink]=\"column.routerLink ? column.routerLink(data.row) : undefined\"\n [innerHTML]=\"truncate(column.valueGetter(data.row, rowIndex))\"\n [attr.title]=\"\n column.valueGetter(data.row, rowIndex).length > maximumColumnLength\n ? column.valueGetter(data.row, rowIndex)\n : null\n \"\n ></span>\n }\n </td>\n @if (this.rowDetailButtonTemplate) {\n <td scope=\"\">\n <ng-container\n *ngTemplateOutlet=\"\n this.rowDetailButtonTemplate;\n context: { $implicit: data.row }\n \"\n ></ng-container>\n </td>\n }}}\n </tr>\n @if (this.rowDetailTemplate && data.expanded) {\n <tr>\n <td [attr.colspan]=\"tableColumns.length + 1\">\n <ng-container\n class=\"w-100\"\n *ngTemplateOutlet=\"\n this.rowDetailTemplate;\n context: { $implicit: data.row }\n \"\n ></ng-container>\n </td>\n </tr>\n } } @if (!tableRows.length && !loading){\n <td [attr.colspan]=\"tableColumns.length\">\n <gov-empty align=\"center\" [size]=\"size | govSize\">\n <gov-icon slot=\"icon\" name=\"empty-file\" type=\"colored\"/>\n <p slot=\"headline\">\n {{ ('TABLES.EMPTY' | translate) ?? 'No records were found!' }}\n </p>\n </gov-empty>\n </td>\n }\n </tbody>\n }\n </table>\n @if(showPaginator) {\n <div class=\"v-table__paginator d-flex pt-3 pb-3\">\n @if (tableRows.length) {\n <div class=\"mt-2\">\n <v-table-pagination-info\n [showingText]=\"'TABLES.PAGINATION.SHOWING' | translate\"\n [toText]=\"'TABLES.PAGINATION.TO' | translate\"\n [ofText]=\"'TABLES.PAGINATION.OF' | translate\"\n [entriesText]=\"'TABLES.PAGINATION.ENTRIES' | translate\"\n [currentPage]=\"currentPage\"\n [pageSize]=\"pageSize\"\n [total]=\"total\"\n />\n </div>\n <div class=\"ms-4\">\n <gov-form-select\n [options]=\"pageSizeOptions\"\n [value]=\"govPageSize\"\n (gov-change)=\"changePageSize($event)\"\n ></gov-form-select>\n </div>\n }\n <div class=\"ms-4\">\n <gov-pagination\n [current]=\"currentPage\"\n [pageSize]=\"pageSize\"\n [total]=\"total\"\n [type]=\"'button'\"\n (gov-page)=\"changePage($event)\"\n ></gov-pagination>\n </div>\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.v-table{position:relative;height:100%;display:flex;flex-direction:column}.v-table__sortable{color:var(--text-primary-color);text-decoration:underline;transition:color .15s ease-in-out;cursor:pointer}.v-table__sortable:after{content:\"\\2191\\2193\";margin-left:.5rem;text-decoration:none;display:inline-block}.v-table__sortable--asc:after{content:\"\\2191\"}.v-table__sortable--desc:after{content:\"\\2193\"}.v-table__header{background-color:var(--background-block-primary);position:sticky;top:0;z-index:2}.v-table__table{width:100%}.v-table__paginator{background-color:var(--background-neutral-white);justify-content:end;position:sticky;bottom:0;z-index:3}.gov-table{width:100%;overflow-x:auto}.gov-table table{table-layout:auto;min-width:100%;border-collapse:collapse}.gov-table table tr.gov-table--highlight td{background-color:var(--background-primary-subtle)}.gov-table table th,.gov-table table td{border-bottom:1px solid var(--border-subtlest);text-align:left}.gov-table table th.gov-table--align-right,.gov-table table td.gov-table--align-right{text-align:right}.gov-table table th.gov-table--vertical-align-top,.gov-table table td.gov-table--vertical-align-top{vertical-align:top}.gov-table table th.gov-table--border-right,.gov-table table td.gov-table--border-right{border-right:1px solid var(--border-subtlest)}.gov-table table th.gov-table--border-left,.gov-table table td.gov-table--border-left{border-left:1px solid var(--border-subtlest)}.gov-table table th.gov-table--border-bottom-none,.gov-table table td.gov-table--border-bottom-none{border-bottom:none}.gov-table table th.gov-table--nowrap,.gov-table table td.gov-table--nowrap{white-space:nowrap}.gov-table table th.gov-table--fit-width,.gov-table table td.gov-table--fit-width{width:1px}.gov-table table th{color:var(--text-primary);background-color:var(--background-neutral-subtlest)}.gov-table table td{background-color:var(--background-neutral-white)}.gov-table table tr.open td{padding:var(--spacing-s) var(--spacing-m)}.gov-table summary::-webkit-details-marker{display:none}.gov-table[size=s] table{border-bottom-left-radius:var(--corner-radius-s);border-bottom-right-radius:var(--corner-radius-s)}.gov-table[size=s] table th,.gov-table[size=s] table td{height:var(--height-2xl);padding:0 var(--spacing-s);font-size:var(--font-size-body-s);line-height:150%;font-weight:400}.gov-table[size=s] table th{font-weight:700}.gov-table[size=m] table{border-bottom-left-radius:var(--corner-radius-m);border-bottom-right-radius:var(--corner-radius-m)}.gov-table[size=m] table th,.gov-table[size=m] table td{height:var(--height-3xl);padding:0 var(--spacing-m);font-size:var(--font-size-body-m);line-height:150%;font-weight:400}.gov-table[size=m] table th{font-weight:700}.gov-table[size=l] table{border-bottom-left-radius:var(--corner-radius-l);border-bottom-right-radius:var(--corner-radius-l)}.gov-table[size=l] table th,.gov-table[size=l] table td{height:var(--height-4xl);padding:0 var(--spacing-l);font-size:var(--font-size-body-l);line-height:150%;font-weight:400}.gov-table[size=l] table th{font-weight:700}.gov-table-complex__name,.gov-table-complex__description{margin:0;color:var(--text-primary)}.gov-table-complex__actions{color:var(--text-white-fixed);background-color:var(--background-primary);padding:var(--spacing-xs) var(--spacing-s)}.gov-table-complex__per-page{width:185px;white-space:nowrap}\n"] }]
|
|
291
291
|
}], ctorParameters: () => [], propDecorators: { viewColumns: [{
|
|
292
292
|
type: ContentChildren,
|
|
293
293
|
args: [TABLE_COLUMN_PROVIDER]
|
|
@@ -356,4 +356,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
356
356
|
}], save: [{
|
|
357
357
|
type: Output
|
|
358
358
|
}] } });
|
|
359
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktZ292Y3ovc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWdvdmN6L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBRVQsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLFNBQVMsR0FHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFFTCxXQUFXLEVBRVgsa0JBQWtCLEVBQ2xCLFNBQVMsRUFFVCxxQkFBcUIsRUFDckIsUUFBUSxFQUNSLHFCQUFxQixFQUNyQixxQkFBcUIsRUFFckIsa0JBQWtCLEVBQ2xCLFlBQVksR0FDYixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBeUJyRCxNQUFNLE9BQU8sY0FBYztJQUl6QixXQUFXLENBQWdDO0lBRzNDLGlCQUFpQixDQUFpQztJQUdsRCx1QkFBdUIsQ0FBaUM7SUFFL0MsT0FBTyxDQUFVO0lBQ2pCLElBQUksQ0FBTztJQUNYLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixNQUFNLENBQXlCO0lBQy9CLFdBQVcsQ0FBeUI7SUFDcEMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQztJQUNoQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDckIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDckIsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNiLGFBQWEsQ0FBb0M7SUFDakQsU0FBUyxHQUFRLEVBQUUsQ0FBQztJQUNwQixrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDMUIsU0FBUyxDQUFxQjtJQUM5QixXQUFXLENBQXFCO0lBQ2hDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUM1QixTQUFTLENBQVU7SUFDbkIsSUFBSSxHQUFrQixTQUFTLENBQUMsTUFBTSxDQUFDO0lBQ3ZDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUMxQixtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztJQUVyRCxJQUNJLE9BQU8sQ0FBQyxLQUE0QjtRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMxQyxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDN0MsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBQzdDLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUMzQyxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFFbEMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQixPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLFFBQVEsR0FBbUMsRUFBRSxDQUFDO0lBRXRELFlBQVksR0FBcUIsRUFBRSxDQUFDO0lBQ3BDLFNBQVMsR0FBa0IsRUFBRSxDQUFDO0lBQzlCLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25GLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNyRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNsQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVEO1FBQ0UsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRVMsVUFBVSxDQUFDLE1BQXNCO1FBQ3pDLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsb0JBQW9CLENBQ3pDLE1BQU0sQ0FBQyxhQUFhLEVBQ3BCLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUM7WUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsWUFBWTtxQkFDZCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUM7cUJBQzNCLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNiLENBQUMsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO2dCQUM5QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLO2dCQUN2QixTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVM7YUFDdkIsQ0FBQyxDQUFDLENBQUM7WUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFUyxVQUFVLENBQUMsS0FBMEQ7UUFDN0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBbUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLFNBQVMsQ0FBQyxHQUFnQixFQUFFLEtBQWlCO1FBQ3JELElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDN0MsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFUyxRQUFRLENBQUMsR0FBZ0IsRUFBRSxLQUFpQjtRQUNwRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxJQUFJLENBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUM1RixRQUFRLENBQ1QsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUVTLGlCQUFpQixDQUFDLEdBQWdCLEVBQUUsS0FBaUI7UUFDL0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxPQUFPO1FBQ1QsQ0FBQztRQUVDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFUyxTQUFTLENBQUMsS0FBcUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFUyxZQUFZLENBQUMsR0FBZ0I7UUFDckMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRVMsaUJBQWlCLENBQUMsR0FBZ0IsRUFBRSxLQUFxQztRQUNqRixHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRVMsUUFBUSxDQUFDLElBQVk7UUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUI7WUFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEtBQUs7WUFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxTQUFTLENBQUMsR0FBZ0I7UUFDaEMsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsT0FBTyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVyQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDckIsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXO1lBQ2xDLEVBQUUsT0FBTyxFQUFFO2FBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDeEUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUNwQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQ3hHLENBQUM7SUFDSixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTO2FBQ2hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzthQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqRCxNQUFNLFNBQVMsR0FDYixJQUFJLENBQUMsYUFBYSxLQUFLLGtCQUFrQixDQUFDLE1BQU07Z0JBQzlDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sYUFBYSxHQUFrQjtZQUNuQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNyQixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQzlDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sUUFBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVk7YUFDckIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUM7YUFDNUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1gsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1gsU0FBUyxFQUFxQixDQUFDLENBQUMsYUFBYTtTQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7d0dBclRVLGNBQWM7NEZBQWQsY0FBYyxpMEJBUGQ7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixXQUFXLEVBQUUsY0FBYzthQUM1QjtTQUNGLG9RQUtnQixxQkFBcUIsa0RDL0V4Qyxnb09Bc01BLGk0R0Q3SUksWUFBWSxxTUFDWixZQUFZLCtRQUNaLHFCQUFxQiw0OUNBRXJCLGVBQWUsdUZBQ2YsV0FBVyxnREFDWCxlQUFlLGtGQUNmLDRCQUE0Qjs7NEZBWW5CLGNBQWM7a0JBdkIxQixTQUFTOytCQUNFLFNBQVMsY0FDUCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZiw0QkFBNEI7cUJBQzdCLG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLGFBRXBDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsZ0JBQWdCO3lCQUM1QjtxQkFDRjt3REFNRCxXQUFXO3NCQURWLGVBQWU7dUJBQUMscUJBQXFCO2dCQUl0QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJNUMsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHekMsT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdGLE9BQU87c0JBRFYsS0FBSztnQkFVSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIGVmZmVjdCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEdvdkRlc2lnblN5c3RlbU1vZHVsZSB9IGZyb20gJ0Bnb3YtZGVzaWduLXN5c3RlbS1jZS9hbmd1bGFyJztcclxuaW1wb3J0IHtcclxuICBGb3JtQ2hlY2tib3hFdmVudCxcclxuICBGb3JtU2VsZWN0RXZlbnQsXHJcbn0gZnJvbSAnQGdvdi1kZXNpZ24tc3lzdGVtLWNlL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHtcclxuICBERUZBVUxUX1NFQVJDSF9MSU1JVCxcclxuICBMYXp5TG9hZEV2ZW50LFxyXG4gIG11bHRpU29ydCxcclxuICBTb3J0LFxyXG4gIFNvcnREaXJlY3Rpb25UeXBlLFxyXG59IGZyb20gJ0B2ZXJpc29mdC9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb2x1bW5EZWZpbml0aW9uLFxyXG4gIENvbHVtbk1vZGVsLFxyXG4gIENvbHVtblByb3ZpZGVyLFxyXG4gIERFRkFVTFRfUEFHSU5BVElPTixcclxuICBGaWVsZFNpemUsXHJcbiAgRmllbGRTaXplVHlwZSxcclxuICBNQVhfQ09MVU1OX0NIQVJfQ09VTlQsXHJcbiAgUm93TW9kZWwsXHJcbiAgVEFCTEVfQ09MVU1OX1BST1ZJREVSLFxyXG4gIFRBQkxFX0NPTVBPTkVOVF9UT0tFTixcclxuICBUYWJsZUNvcmUsXHJcbiAgVGFibGVTZWxlY3Rpb25Nb2RlLFxyXG4gIFRhYmxlU2VydmljZSxcclxufSBmcm9tICdAdmVyaXNvZnQvdWktY29yZSc7XHJcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vaWNvbnMnO1xyXG5pbXBvcnQgeyBHb3ZTaXplUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcclxuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGVyJztcclxuaW1wb3J0IHsgVGFibGVQYWdpbmF0aW9uSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtcGFnaW5hdGlvbi1pbmZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGdldE5leHRTb3J0RGlyZWN0aW9uIH0gZnJvbSAnLi90YWJsZS5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3YtdGFibGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgR292RGVzaWduU3lzdGVtTW9kdWxlLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEdvdlNpemVQaXBlLFxyXG4gICAgTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgVGFibGVQYWdpbmF0aW9uSW5mb0NvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3R5bGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5zY3NzJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVEFCTEVfQ09NUE9ORU5UX1RPS0VOLFxyXG4gICAgICB1c2VFeGlzdGluZzogVGFibGVDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudDxUPlxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBUYWJsZUNvcmU8VD5cclxue1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oVEFCTEVfQ09MVU1OX1BST1ZJREVSKVxyXG4gIHZpZXdDb2x1bW5zITogUXVlcnlMaXN0PENvbHVtblByb3ZpZGVyPFQ+PjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZCgncm93RGV0YWlsJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcm93RGV0YWlsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB9PjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZCgncm93RGV0YWlsQnV0dG9uJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcm93RGV0YWlsQnV0dG9uVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB9PjtcclxuXHJcbiAgQElucHV0KCkgc29ydGVycyE6IFNvcnRbXTtcclxuICBASW5wdXQoKSBkYXRhITogVFtdO1xyXG4gIEBJbnB1dCgpIHRvdGFsID0gMDtcclxuICBASW5wdXQoKSBmaWx0ZXI6IFBhcnRpYWw8VD4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZXh0cmFGaWx0ZXI6IFBhcnRpYWw8VD4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNjcm9sbGFibGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHBhZ2VTaXplID0gREVGQVVMVF9TRUFSQ0hfTElNSVQ7XHJcbiAgQElucHV0KCkgY3VycmVudFBhZ2UgPSAxO1xyXG4gIEBJbnB1dCgpIHNob3dQYWdpbmF0b3IgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHVzZXJUYWJsZVdyYXBwZXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNvcnRNdWx0aXBsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxhenkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3Rpb25Nb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2VsZWN0aW9uOiBUW10gPSBbXTtcclxuICBASW5wdXQoKSBzaG93UGFnZVNpemVQaWNrZXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGVudGl0eUtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZGlzYWJsZUN1c3RvbUNsaWNrcyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRhYmxlTmFtZT86IHN0cmluZztcclxuICBASW5wdXQoKSBzaXplOiBGaWVsZFNpemVUeXBlID0gRmllbGRTaXplLm1lZGl1bTtcclxuICBASW5wdXQoKSBzaG93QWN0aW9uQnV0dG9ucyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heGltdW1Db2x1bW5MZW5ndGggPSBNQVhfQ09MVU1OX0NIQVJfQ09VTlQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbHVtbnModmFsdWU6IENvbHVtbkRlZmluaXRpb248VD5bXSkge1xyXG4gICAgdGhpcy5fY29sdW1ucyA9IHZhbHVlO1xyXG4gICAgdGhpcy51cGRhdGVDb2x1bW5Nb2RlbHMoKTtcclxuICB9XHJcblxyXG4gIGdldCBjb2x1bW5zKCk6IENvbHVtbkRlZmluaXRpb248VD5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcclxuICBAT3V0cHV0KCkgbGF6eUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPExhenlMb2FkRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dNb2RlbDxUPltdPigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd01vZGVsPFQ+W10+KCk7XHJcbiAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd01vZGVsPFQ+W10+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfY29sdW1uczogQ29sdW1uRGVmaW5pdGlvbjxULCBrZXlvZiBUPltdID0gW107XHJcblxyXG4gIHRhYmxlQ29sdW1uczogQ29sdW1uTW9kZWw8VD5bXSA9IFtdO1xyXG4gIHRhYmxlUm93czogUm93TW9kZWw8VD5bXSA9IFtdO1xyXG4gIHBhZ2VTaXplT3B0aW9ucyA9IERFRkFVTFRfUEFHSU5BVElPTi5tYXAoKHg6IG51bWJlcikgPT4gKHsgdmFsdWU6IHgudG9TdHJpbmcoKSB9KSk7XHJcbiAgYWxsU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBpY29ucyA9IEljb25zO1xyXG5cclxuICBnZXQgZ292UGFnZVNpemUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYWdlU2l6ZS50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRhYmxlUm93VmlldygpOiBSb3dNb2RlbDxUPltdIHtcclxuICAgIGlmICh0aGlzLmxhenkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudGFibGVSb3dzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc3RhcnQgPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdlU2l6ZTtcclxuICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLnBhZ2VTaXplO1xyXG4gICAgICByZXR1cm4gdGhpcy50YWJsZVJvd3Muc2xpY2Uoc3RhcnQsIGVuZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWQoKTogUm93TW9kZWw8VD5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJvd3MuZmlsdGVyKHIgPT4gci5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlYWN0VG9TaWduYWxzKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2RhdGEnXSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVJvd01vZGVscygpO1xyXG4gICAgICBpZiAoIXRoaXMubGF6eSAmJiB0aGlzLmRhdGEpIHtcclxuICAgICAgICB0aGlzLnRvdGFsID0gdGhpcy5kYXRhLmxlbmd0aDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzWydzZWxlY3Rpb24nXSkge1xyXG4gICAgICB0aGlzLnNlbGVjdFNlbGVjdGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXNbJ2ZpbHRlciddKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52aWV3Q29sdW1ucz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29sdW1uTW9kZWxzKCk7XHJcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNvcnRDb2x1bW4oY29sdW1uOiBDb2x1bW5Nb2RlbDxUPikge1xyXG4gICAgaWYgKGNvbHVtbi5zb3J0YWJsZSkge1xyXG4gICAgICBjb2x1bW4uc29ydERpcmVjdGlvbiA9IGdldE5leHRTb3J0RGlyZWN0aW9uKFxyXG4gICAgICAgIGNvbHVtbi5zb3J0RGlyZWN0aW9uLFxyXG4gICAgICAgIHRoaXMuc29ydE11bHRpcGxlXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuc29ydE11bHRpcGxlKSB7XHJcbiAgICAgICAgdGhpcy50YWJsZUNvbHVtbnNcclxuICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHggIT09IGNvbHVtbilcclxuICAgICAgICAgIC5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIHguc29ydERpcmVjdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBzb3J0czogU29ydFtdID0gdGhpcy5nZXRTb3J0cygpLm1hcCgoeCkgPT4gKHtcclxuICAgICAgICBmaWVsZDogJ3Jvdy4nICsgeC5maWVsZCxcclxuICAgICAgICBkaXJlY3Rpb246IHguZGlyZWN0aW9uLFxyXG4gICAgICB9KSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMubGF6eSkge1xyXG4gICAgICAgIHRoaXMudGFibGVSb3dzID0gbXVsdGlTb3J0KHRoaXMudGFibGVSb3dzLCBzb3J0cyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5maXJlTGF6eUxvYWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNoYW5nZVBhZ2UoZXZlbnQ6IHsgZGV0YWlsOiB7IHBhZ2luYXRpb246IHsgY3VycmVudFBhZ2U6IG51bWJlciB9IH0gfSkge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IGV2ZW50LmRldGFpbC5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlO1xyXG4gICAgdGhpcy5maXJlTGF6eUxvYWQoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjaGFuZ2VQYWdlU2l6ZShldmVudDogQ3VzdG9tRXZlbnQ8Rm9ybVNlbGVjdEV2ZW50Pikge1xyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IHBhcnNlSW50KGV2ZW50LmRldGFpbC52YWx1ZSk7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMuZmlyZUxhenlMb2FkKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2VsZWN0Um93KHJvdzogUm93TW9kZWw8VD4sIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGUocm93LCBldmVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICByb3cuc2VsZWN0ZWQgPSAhcm93LnNlbGVjdGVkO1xyXG4gICAgICB0aGlzLnRhYmxlUm93cy5mb3JFYWNoKCh4KSA9PiAoeCAhPT0gcm93ID8gKHguc2VsZWN0ZWQgPSBmYWxzZSkgOiBudWxsKSk7XHJcbiAgICAgIHRoaXMuZmlyZVNlbGVjdGlvbkNoYW5nZSgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScpIHtcclxuICAgICAgcm93LnNlbGVjdGVkID0gIXJvdy5zZWxlY3RlZDtcclxuICAgICAgdGhpcy5maXJlU2VsZWN0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbmF2aWdhdGUocm93OiBSb3dNb2RlbDxUPiwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVDdXN0b21DbGlja3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCB0YXJnZXRVcmwgPSB0aGlzLmNyZWF0ZVVybChyb3cpO1xyXG5cclxuICAgIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgd2luZG93Lm9wZW4oXHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbdGFyZ2V0VXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pKSxcclxuICAgICAgICAgICdfYmxhbmsnXHJcbiAgICAgICAgKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGFyZ2V0VXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG5hdmlnYXRlTmV3V2luZG93KHJvdzogUm93TW9kZWw8VD4sIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgaWYgKHRoaXMuZGlzYWJsZUN1c3RvbUNsaWNrcyB8fCBldmVudC5idXR0b24gIT09IDEpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IHRhcmdldFVybCA9IHRoaXMuY3JlYXRlVXJsKHJvdyk7XHJcblxyXG4gICAgd2luZG93Lm9wZW4odGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW3RhcmdldFVybF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KSksICdfYmxhbmsnKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0b2dnbGVBbGwoZXZlbnQ6IEN1c3RvbUV2ZW50PEZvcm1DaGVja2JveEV2ZW50Pikge1xyXG4gICAgdGhpcy5hbGxTZWxlY3RlZCA9IGV2ZW50LmRldGFpbC5jaGVja2VkO1xyXG4gICAgdGhpcy50YWJsZVJvd3MuZm9yRWFjaCgoeCkgPT4gKHguc2VsZWN0ZWQgPSB0aGlzLmFsbFNlbGVjdGVkKSk7XHJcbiAgICB0aGlzLmZpcmVTZWxlY3Rpb25DaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0b2dnbGVEZXRhaWwocm93OiBSb3dNb2RlbDxUPikge1xyXG4gICAgcm93LmV4cGFuZGVkID0gIXJvdy5leHBhbmRlZDtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNlbGVjdFJvd0NoZWNrYm94KHJvdzogUm93TW9kZWw8VD4sIGV2ZW50OiBDdXN0b21FdmVudDxGb3JtQ2hlY2tib3hFdmVudD4pIHtcclxuICAgIHJvdy5zZWxlY3RlZCA9IGV2ZW50LmRldGFpbC5jaGVja2VkO1xyXG4gICAgdGhpcy5hbGxTZWxlY3RlZCA9IHRoaXMudGFibGVSb3dzLmV2ZXJ5KCh4KSA9PiB4LnNlbGVjdGVkKTtcclxuICAgIHRoaXMuZmlyZVNlbGVjdGlvbkNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRydW5jYXRlKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGV4dC5sZW5ndGggPiB0aGlzLm1heGltdW1Db2x1bW5MZW5ndGhcclxuICAgICAgPyB0ZXh0LnNsaWNlKDAsIHRoaXMubWF4aW11bUNvbHVtbkxlbmd0aCkgKyAnLi4uJ1xyXG4gICAgICA6IHRleHQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZGVzZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLmFsbFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnRhYmxlUm93cy5mb3JFYWNoKHggPT4gKHguc2VsZWN0ZWQgPSB0aGlzLmFsbFNlbGVjdGVkKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVVybChyb3c6IFJvd01vZGVsPFQ+KTogc3RyaW5nIHtcclxuICAgIGlmIChyb3cuY3VzdG9tUm91dGUpIHtcclxuICAgICAgcmV0dXJuIHJvdy5jdXN0b21Sb3V0ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcm93LmlkLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWN0VG9TaWduYWxzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVsb2FkID0gdGhpcy5zZXJ2aWNlLnJlbG9hZCgpO1xyXG5cclxuICAgIGlmICh0eXBlb2YgcmVsb2FkID09PSAnc3ltYm9sJykge1xyXG4gICAgICB0aGlzLmZpcmVMYXp5TG9hZCgpO1xyXG4gICAgfSBlbHNlIGlmIChyZWxvYWQubmFtZSA9PT0gdGhpcy50YWJsZU5hbWUpIHtcclxuICAgICAgdGhpcy5maXJlTGF6eUxvYWQoKVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGVzZWxlY3RBbGwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ29sdW1uTW9kZWxzKCkge1xyXG4gICAgY29uc3Qgdmlld0NvbHVtbnMgPSB0aGlzLnZpZXdDb2x1bW5zXHJcbiAgICAgID8udG9BcnJheSgpXHJcbiAgICAgIC5tYXAoKHgpID0+IHguZ2V0RGVmaW5pdGlvbigpKTtcclxuICAgIHRoaXMudGFibGVDb2x1bW5zID0gWy4uLih0aGlzLl9jb2x1bW5zID8/IFtdKSwgLi4uKHZpZXdDb2x1bW5zID8/IFtdKV0ubWFwKFxyXG4gICAgICAoeCkgPT4gbmV3IENvbHVtbk1vZGVsKHgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVSb3dNb2RlbHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRhYmxlUm93cyA9ICh0aGlzLmRhdGEgPz8gW10pLm1hcChcclxuICAgICAgKHgpID0+IG5ldyBSb3dNb2RlbCh4LCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRoaXMuY3VzdG9tUm91dGUsIHRoaXMuZW50aXR5S2V5KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlyZVNlbGVjdGlvbkNoYW5nZSgpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IHRoaXMudGFibGVSb3dzXHJcbiAgICAgIC5maWx0ZXIoKHgpID0+IHguc2VsZWN0ZWQpXHJcbiAgICAgIC5tYXAoKHgpID0+IHgucm93KTtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoc2VsZWN0ZWRSb3dzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VsZWN0U2VsZWN0ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24/Lmxlbmd0aCAmJiB0aGlzLnNlbGVjdGlvbk1vZGUpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0aW9uID1cclxuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFRhYmxlU2VsZWN0aW9uTW9kZS5zaW5nbGVcclxuICAgICAgICAgID8gW3RoaXMuc2VsZWN0aW9uWzBdXVxyXG4gICAgICAgICAgOiB0aGlzLnNlbGVjdGlvbjtcclxuICAgICAgY29uc3Qgc2VsZWN0aW9uU2V0ID0gbmV3IFNldChzZWxlY3Rpb24pO1xyXG4gICAgICB0aGlzLnRhYmxlUm93cy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHNlbGVjdGlvblNldC5oYXMoaXRlbS5yb3cpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuYWxsU2VsZWN0ZWQgPSB0aGlzLnRhYmxlUm93cy5ldmVyeSgoeCkgPT4geC5zZWxlY3RlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpcmVMYXp5TG9hZCgpIHtcclxuICAgIGNvbnN0IGxhenlMb2FkRXZlbnQ6IExhenlMb2FkRXZlbnQgPSB7XHJcbiAgICAgIHNvcnQ6IHRoaXMuZ2V0U29ydHMoKSxcclxuICAgICAgb2Zmc2V0OiAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgbGltaXQ6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgIGZpbHRlcjogdGhpcy5maWx0ZXIsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubGF6eUxvYWQuZW1pdChsYXp5TG9hZEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRmlsdGVyKCkge1xyXG4gICAgdGhpcy5maXJlTGF6eUxvYWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U29ydHMoKTogU29ydFtdIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1uc1xyXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LnNvcnRhYmxlICYmIHguc29ydERpcmVjdGlvbilcclxuICAgICAgLm1hcCgoeCkgPT4gKHtcclxuICAgICAgICBmaWVsZDogeC5pZCxcclxuICAgICAgICBkaXJlY3Rpb246IDxTb3J0RGlyZWN0aW9uVHlwZT54LnNvcnREaXJlY3Rpb24sXHJcbiAgICAgIH0pKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChzZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnICYmIHNob3dBY3Rpb25CdXR0b25zKSB7XHJcbjxnb3YtZmxleFxyXG4gIGNsYXNzPVwiZ292LXRhYmxlLWNvbXBsZXhfX2FjdGlvbnMgbXQtMlwiXHJcbiAganVzdGlmeS1jb250ZW50PVwic3BhY2UtYmV0d2VlblwiXHJcbiAgYWxpZ24taXRlbXM9XCJjZW50ZXJcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImdvdi10YWJsZS1jb21wbGV4X19yZWNvcmRzLXNlbGVjdGVkXCI+XHJcbiAgICB7eyBzZWxlY3RlZENvdW50IH19IHt7ICgnVEFCTEVTLkNIT1NFTl9SRUNPUkRTJyB8IHRyYW5zbGF0ZSkgPz8gJ2Nob3NlbiByZWNvcmRzJ319XHJcbiAgPC9kaXY+XHJcbiAgPGRpdj5cclxuICAgIDxnb3YtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJzXCIgdHlwZT1cInNvbGlkXCIgKGdvdi1jbGljayk9XCJkZWxldGUuZW1pdChzZWxlY3RlZClcIj5cclxuICAgICAge3sgKCdCVVRUT05TLkRFTEVURScgfCB0cmFuc2xhdGUpID8/ICdEZWxldGUnfX1cclxuICAgIDwvZ292LWJ1dHRvbj5cclxuICAgIDxnb3YtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJzXCIgdHlwZT1cInNvbGlkXCIgKGdvdi1jbGljayk9XCJzYXZlLmVtaXQoc2VsZWN0ZWQpXCI+XHJcbiAgICAgIHt7ICgnQlVUVE9OUy5TQVZFJyB8IHRyYW5zbGF0ZSkgPz8gJ1NhdmUnfX1cclxuICAgIDwvZ292LWJ1dHRvbj5cclxuICAgIDxnb3YtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJzXCIgdHlwZT1cInNvbGlkXCIgKGdvdi1jbGljayk9XCJkb3dubG9hZC5lbWl0KHNlbGVjdGVkKVwiPlxyXG4gICAgICB7eyAoJ0JVVFRPTlMuRE9XTkxPQUQnIHwgdHJhbnNsYXRlKSA/PyAnRG93bmxvYWQnfX1cclxuICAgIDwvZ292LWJ1dHRvbj5cclxuICAgIDxnb3YtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJzXCIgdHlwZT1cInNvbGlkXCIgKGdvdi1jbGljayk9XCJkZXNlbGVjdEFsbCgpXCI+XHJcbiAgICAgIHt7ICgnQlVUVE9OUy5DQU5DRUwnIHwgdHJhbnNsYXRlKSA/PyAnQ2FuY2VsJ319XHJcbiAgICA8L2dvdi1idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZ292LWZsZXg+XHJcbn1cclxuXHJcbjxkaXZcclxuICBjbGFzcz1cIiB2LXRhYmxlIGdvdi10YWJsZVwiXHJcbiAgW2F0dHIuc2l6ZV09XCJzaXplIHwgZ292U2l6ZVwiXHJcbj5cclxuICA8dGFibGUgY2xhc3M9XCJ2LXRhYmxlX190YWJsZVwiPlxyXG4gICAgPHRoZWFkIGNsYXNzPVwidi10YWJsZV9faGVhZFwiPlxyXG4gICAgICA8dHIgY2xhc3M9XCJ2LXRhYmxlX19oZWFkZXJcIj5cclxuICAgICAgICBAaWYgKHRoaXMucm93RGV0YWlsVGVtcGxhdGUpIHtcclxuICAgICAgICAgIDx0aD48L3RoPlxyXG4gICAgICAgIH0gQGlmIChzZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+XHJcbiAgICAgICAgICA8Z292LWZvcm0tY2hlY2tib3hcclxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiYWxsU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAoZ292LWNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgKGNvbHVtbiBvZiB0YWJsZUNvbHVtbnM7IHRyYWNrIGNvbHVtbjsgbGV0IGluZGV4ID0gJGluZGV4KSB7XHJcbiAgICAgICAgQGlmIChjb2x1bW4udmlzaWJsZSAmJiBjb2x1bW4uZm9yY2VWaXNpYmlsaXR5ICE9PSAnaGlkZGVuJykge1xyXG4gICAgICAgIDx0aFxyXG4gICAgICAgICAgc2NvcGU9XCJjb2xcIlxyXG4gICAgICAgICAgW3N0eWxlXT1cInsndGV4dC1hbGlnbic6IGNvbHVtbi50ZXh0QWxpZ259XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBjbGFzcz1cImdvdi10YWJsZS0tZml0LXdpZHRoXCJcclxuICAgICAgICAgICAgW2NsYXNzLnYtdGFibGVfX3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy52LXRhYmxlX19zb3J0YWJsZS0tZGVzY109XCJjb2x1bW4uc29ydGFibGUgJiYgY29sdW1uLnNvcnREaXJlY3Rpb24gPT09ICdkZXNjJ1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy52LXRhYmxlX19zb3J0YWJsZS0tYXNjXT1cImNvbHVtbi5zb3J0YWJsZSAmJiBjb2x1bW4uc29ydERpcmVjdGlvbiA9PT0gJ2FzYydcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic29ydENvbHVtbihjb2x1bW4pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY29sdW1uLmhlYWRlckdldHRlcihjb2x1bW4uaWQsIGluZGV4KSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgICAgfSBAaWYgKHRoaXMucm93RGV0YWlsQnV0dG9uVGVtcGxhdGUpIHtcclxuICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICB9fVxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90aGVhZD5cclxuICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICA8di1sb2FkZXIgLz5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgPHRib2R5IGNsYXNzPVwidi10YWJsZV9fYm9keVwiPlxyXG4gICAgICBAZm9yIChkYXRhIG9mIHRhYmxlUm93VmlldzsgdHJhY2sgZGF0YS5pZDsgbGV0IHJvd0luZGV4ID0gJGluZGV4KSB7XHJcbiAgICAgIDx0clxyXG4gICAgICAgIGNsYXNzPVwidi10YWJsZV9fcm93XCJcclxuICAgICAgICBbY2xhc3MuZ292LXRhYmxlLS1oaWdobGlnaHRdPVwiZGF0YS5zZWxlY3RlZCAmJiBzZWxlY3Rpb25Nb2RlXCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Um93KGRhdGEsICRldmVudClcIlxyXG4gICAgICAgIChkYmxjbGljayk9XCJuYXZpZ2F0ZShkYXRhLCAkZXZlbnQpXCJcclxuICAgICAgICAobW91c2Vkb3duKT1cIm5hdmlnYXRlTmV3V2luZG93KGRhdGEsICRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQGlmICh0aGlzLnJvd0RldGFpbFRlbXBsYXRlKSB7XHJcbiAgICAgICAgPHRkPlxyXG4gICAgICAgICAgPGdvdi1idXR0b25cclxuICAgICAgICAgICAgW3NpemVdPVwic2l6ZSB8IGdvdlNpemVcIlxyXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICB0eXBlPVwic29saWRcIlxyXG4gICAgICAgICAgICAoZ292LWNsaWNrKT1cInRvZ2dsZURldGFpbChkYXRhKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxnb3YtaWNvblxyXG4gICAgICAgICAgICAgIFtuYW1lXT1cImRhdGEuZXhwYW5kZWQgPyAnY2hldnJvbi11cCcgOiAnY2hldnJvbi1kb3duJ1wiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwic2l6ZSB8IGdvdlNpemVcIlxyXG4gICAgICAgICAgICAgIHNsb3Q9XCJpY29uLXN0YXJ0XCJcclxuICAgICAgICAgICAgPjwvZ292LWljb24+XHJcbiAgICAgICAgICA8L2dvdi1idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICB9IEBpZiAoc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgIDx0ZCBjbGFzcz1cImdvdi10YWJsZS0tZml0LWNvbnRlbnQgZ292LXRhYmxlLS1ib3JkZXItcmlnaHRcIj5cclxuICAgICAgICAgIDxnb3YtZm9ybS1jaGVja2JveFxyXG4gICAgICAgICAgICBuby1sYWJlbFxyXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJkYXRhLnNlbGVjdGVkXCJcclxuICAgICAgICAgICAgW3NpemVdPVwic2l6ZSB8IGdvdlNpemVcIlxyXG4gICAgICAgICAgICAoZ292LWNoYW5nZSk9XCJzZWxlY3RSb3dDaGVja2JveChkYXRhLCAkZXZlbnQpXCJcclxuICAgICAgICAgID48L2dvdi1mb3JtLWNoZWNrYm94PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgKGNvbHVtbiBvZiB0YWJsZUNvbHVtbnM7IHRyYWNrIGNvbHVtbjsgbGV0IGNvbHVtbkluZGV4ID0gJGluZGV4KSB7XHJcbiAgICAgICAgQGlmIChjb2x1bW4udmlzaWJsZSAmJiBjb2x1bW4uZm9yY2VWaXNpYmlsaXR5ICE9PSAnaGlkZGVuJykge1xyXG4gICAgICAgIDx0ZFxyXG4gICAgICAgICAgW3N0eWxlXT1cInsndGV4dC1hbGlnbic6IGNvbHVtbi50ZXh0QWxpZ259XCJcclxuICAgICAgICAgIFtjbGFzc109XCJjb2x1bW4uY29sdW1uQ2xhc3MhXCJcclxuICAgICAgICAgIFtjbGFzcy52LWF1dG8tY2VsbF09XCJjb2x1bW4udGVtcGxhdGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEBpZiAoY29sdW1uLnRlbXBsYXRlKSB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgY29sdW1uLnRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhLnJvdyB9XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJjb2x1bW4ucXVlcnlQYXJhbXMgPyBjb2x1bW4ucXVlcnlQYXJhbXMgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJjb2x1bW4ucm91dGVyTGluayA/IGNvbHVtbi5yb3V0ZXJMaW5rKGRhdGEucm93KSA6IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwidHJ1bmNhdGUoY29sdW1uLnZhbHVlR2V0dGVyKGRhdGEucm93LCByb3dJbmRleCkpXCJcclxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiXHJcbiAgICAgICAgICAgICAgY29sdW1uLnZhbHVlR2V0dGVyKGRhdGEucm93LCByb3dJbmRleCkubGVuZ3RoID4gbWF4aW11bUNvbHVtbkxlbmd0aFxyXG4gICAgICAgICAgICAgICAgPyBjb2x1bW4udmFsdWVHZXR0ZXIoZGF0YS5yb3csIHJvd0luZGV4KVxyXG4gICAgICAgICAgICAgICAgOiBudWxsXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgQGlmICh0aGlzLnJvd0RldGFpbEJ1dHRvblRlbXBsYXRlKSB7XHJcbiAgICAgICAgPHRkIHNjb3BlPVwiXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgdGhpcy5yb3dEZXRhaWxCdXR0b25UZW1wbGF0ZTtcclxuICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogZGF0YS5yb3cgfVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgfX19XHJcbiAgICAgIDwvdHI+XHJcbiAgICAgIEBpZiAodGhpcy5yb3dEZXRhaWxUZW1wbGF0ZSAmJiBkYXRhLmV4cGFuZGVkKSB7XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJ0YWJsZUNvbHVtbnMubGVuZ3RoICsgMVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICBjbGFzcz1cInctMTAwXCJcclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICB0aGlzLnJvd0RldGFpbFRlbXBsYXRlO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhLnJvdyB9XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgICAgfSB9IEBpZiAoIXRhYmxlUm93cy5sZW5ndGggJiYgIWxvYWRpbmcpe1xyXG4gICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJ0YWJsZUNvbHVtbnMubGVuZ3RoXCI+XHJcbiAgICAgICAgPGdvdi1lbXB0eSBhbGlnbj1cImNlbnRlclwiIFtzaXplXT1cInNpemUgfCBnb3ZTaXplXCI+XHJcbiAgICAgICAgICA8Z292LWljb24gc2xvdD1cImljb25cIiBuYW1lPVwiZW1wdHktZmlsZVwiIHR5cGU9XCJjb2xvcmVkXCIvPlxyXG4gICAgICAgICAgPHAgc2xvdD1cImhlYWRsaW5lXCI+XHJcbiAgICAgICAgICAgIHt7ICgnVEFCTEVTLkVNUFRZJyB8IHRyYW5zbGF0ZSkgPz8gJ05vIHJlY29yZHMgd2VyZSBmb3VuZCEnIH19XHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9nb3YtZW1wdHk+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIH1cclxuICAgIDwvdGJvZHk+XHJcbiAgfVxyXG4gIDwvdGFibGU+XHJcbiAgQGlmKHNob3dQYWdpbmF0b3IpIHtcclxuICA8ZGl2IGNsYXNzPVwidi10YWJsZV9fcGFnaW5hdG9yIGQtZmxleCBwdC0zIHBiLTNcIj5cclxuICAgIEBpZiAodGFibGVSb3dzLmxlbmd0aCkge1xyXG4gICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgPHYtdGFibGUtcGFnaW5hdGlvbi1pbmZvXHJcbiAgICAgICAgW3Nob3dpbmdUZXh0XT1cIidUQUJMRVMuUEFHSU5BVElPTi5TSE9XSU5HJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3RvVGV4dF09XCInVEFCTEVTLlBBR0lOQVRJT04uVE8nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbb2ZUZXh0XT1cIidUQUJMRVMuUEFHSU5BVElPTi5PRicgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtlbnRyaWVzVGV4dF09XCInVEFCTEVTLlBBR0lOQVRJT04uRU5UUklFUycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZVwiXHJcbiAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgICBbdG90YWxdPVwidG90YWxcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXMtNFwiPlxyXG4gICAgICA8Z292LWZvcm0tc2VsZWN0XHJcbiAgICAgICAgW29wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcclxuICAgICAgICBbdmFsdWVdPVwiZ292UGFnZVNpemVcIlxyXG4gICAgICAgIChnb3YtY2hhbmdlKT1cImNoYW5nZVBhZ2VTaXplKCRldmVudClcIlxyXG4gICAgICA+PC9nb3YtZm9ybS1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXYgY2xhc3M9XCJtcy00XCI+XHJcbiAgICAgIDxnb3YtcGFnaW5hdGlvblxyXG4gICAgICAgIFtjdXJyZW50XT1cImN1cnJlbnRQYWdlXCJcclxuICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgIFt0b3RhbF09XCJ0b3RhbFwiXHJcbiAgICAgICAgW3R5cGVdPVwiJ2J1dHRvbidcIlxyXG4gICAgICAgIChnb3YtcGFnZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIlxyXG4gICAgICA+PC9nb3YtcGFnaW5hdGlvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
359
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktZ292Y3ovc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWdvdmN6L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBRVQsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLFNBQVMsR0FHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFFTCxXQUFXLEVBRVgsa0JBQWtCLEVBQ2xCLFNBQVMsRUFFVCxxQkFBcUIsRUFDckIsUUFBUSxFQUNSLHFCQUFxQixFQUNyQixxQkFBcUIsRUFFckIsa0JBQWtCLEVBQ2xCLFlBQVksR0FDYixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFB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QUFLO2dCQUdGLE9BQU87c0JBRFYsS0FBSztnQkFVSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgZWZmZWN0LFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBHb3ZEZXNpZ25TeXN0ZW1Nb2R1bGUgfSBmcm9tICdAZ292LWRlc2lnbi1zeXN0ZW0tY2UvYW5ndWxhcic7XG5pbXBvcnQge1xuICBGb3JtQ2hlY2tib3hFdmVudCxcbiAgRm9ybVNlbGVjdEV2ZW50LFxufSBmcm9tICdAZ292LWRlc2lnbi1zeXN0ZW0tY2UvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIERFRkFVTFRfU0VBUkNIX0xJTUlULFxuICBMYXp5TG9hZEV2ZW50LFxuICBtdWx0aVNvcnQsXG4gIFNvcnQsXG4gIFNvcnREaXJlY3Rpb25UeXBlLFxufSBmcm9tICdAdmVyaXNvZnQvY29yZSc7XG5pbXBvcnQge1xuICBDb2x1bW5EZWZpbml0aW9uLFxuICBDb2x1bW5Nb2RlbCxcbiAgQ29sdW1uUHJvdmlkZXIsXG4gIERFRkFVTFRfUEFHSU5BVElPTixcbiAgRmllbGRTaXplLFxuICBGaWVsZFNpemVUeXBlLFxuICBNQVhfQ09MVU1OX0NIQVJfQ09VTlQsXG4gIFJvd01vZGVsLFxuICBUQUJMRV9DT0xVTU5fUFJPVklERVIsXG4gIFRBQkxFX0NPTVBPTkVOVF9UT0tFTixcbiAgVGFibGVDb3JlLFxuICBUYWJsZVNlbGVjdGlvbk1vZGUsXG4gIFRhYmxlU2VydmljZSxcbn0gZnJvbSAnQHZlcmlzb2Z0L3VpLWNvcmUnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi9pY29ucyc7XG5pbXBvcnQgeyBHb3ZTaXplUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRlcic7XG5pbXBvcnQgeyBUYWJsZVBhZ2luYXRpb25JbmZvQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wYWdpbmF0aW9uLWluZm8uY29tcG9uZW50JztcbmltcG9ydCB7IGdldE5leHRTb3J0RGlyZWN0aW9uIH0gZnJvbSAnLi90YWJsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3YtdGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBHb3ZEZXNpZ25TeXN0ZW1Nb2R1bGUsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgR292U2l6ZVBpcGUsXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIFRhYmxlUGFnaW5hdGlvbkluZm9Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdHlsZVVybDogJy4vdGFibGUuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBUQUJMRV9DT01QT05FTlRfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogVGFibGVDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIFRhYmxlQ29yZTxUPlxue1xuICBAQ29udGVudENoaWxkcmVuKFRBQkxFX0NPTFVNTl9QUk9WSURFUilcbiAgdmlld0NvbHVtbnMhOiBRdWVyeUxpc3Q8Q29sdW1uUHJvdmlkZXI8VD4+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ3Jvd0RldGFpbCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICByb3dEZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ3Jvd0RldGFpbEJ1dHRvbicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICByb3dEZXRhaWxCdXR0b25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+O1xuXG4gIEBJbnB1dCgpIHNvcnRlcnMhOiBTb3J0W107XG4gIEBJbnB1dCgpIGRhdGEhOiBUW107XG4gIEBJbnB1dCgpIHRvdGFsID0gMDtcbiAgQElucHV0KCkgZmlsdGVyOiBQYXJ0aWFsPFQ+IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBleHRyYUZpbHRlcjogUGFydGlhbDxUPiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBzY3JvbGxhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcGFnZVNpemUgPSBERUZBVUxUX1NFQVJDSF9MSU1JVDtcbiAgQElucHV0KCkgY3VycmVudFBhZ2UgPSAxO1xuICBASW5wdXQoKSBzaG93UGFnaW5hdG9yID0gdHJ1ZTtcbiAgQElucHV0KCkgdXNlclRhYmxlV3JhcHBlciA9IHRydWU7XG4gIEBJbnB1dCgpIHNvcnRNdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBsYXp5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2VsZWN0aW9uOiBUW10gPSBbXTtcbiAgQElucHV0KCkgc2hvd1BhZ2VTaXplUGlja2VyID0gdHJ1ZTtcbiAgQElucHV0KCkgZW50aXR5S2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGN1c3RvbVJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRpc2FibGVDdXN0b21DbGlja3MgPSBmYWxzZTtcbiAgQElucHV0KCkgdGFibGVOYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBzaXplOiBGaWVsZFNpemVUeXBlID0gRmllbGRTaXplLm1lZGl1bTtcbiAgQElucHV0KCkgc2hvd0FjdGlvbkJ1dHRvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4aW11bUNvbHVtbkxlbmd0aCA9IE1BWF9DT0xVTU5fQ0hBUl9DT1VOVDtcblxuICBASW5wdXQoKVxuICBzZXQgY29sdW1ucyh2YWx1ZTogQ29sdW1uRGVmaW5pdGlvbjxUPltdKSB7XG4gICAgdGhpcy5fY29sdW1ucyA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlQ29sdW1uTW9kZWxzKCk7XG4gIH1cblxuICBnZXQgY29sdW1ucygpOiBDb2x1bW5EZWZpbml0aW9uPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zO1xuICB9XG5cbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuICBAT3V0cHV0KCkgbGF6eUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPExhenlMb2FkRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8Um93TW9kZWw8VD5bXT4oKTtcbiAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Um93TW9kZWw8VD5bXT4oKTtcbiAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd01vZGVsPFQ+W10+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2UgPSBpbmplY3QoVGFibGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfY29sdW1uczogQ29sdW1uRGVmaW5pdGlvbjxULCBrZXlvZiBUPltdID0gW107XG5cbiAgdGFibGVDb2x1bW5zOiBDb2x1bW5Nb2RlbDxUPltdID0gW107XG4gIHRhYmxlUm93czogUm93TW9kZWw8VD5bXSA9IFtdO1xuICBwYWdlU2l6ZU9wdGlvbnMgPSBERUZBVUxUX1BBR0lOQVRJT04ubWFwKCh4OiBudW1iZXIpID0+ICh7IHZhbHVlOiB4LnRvU3RyaW5nKCkgfSkpO1xuICBhbGxTZWxlY3RlZCA9IGZhbHNlO1xuICBpY29ucyA9IEljb25zO1xuXG4gIGdldCBnb3ZQYWdlU2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlU2l6ZS50b1N0cmluZygpO1xuICB9XG5cbiAgZ2V0IHRhYmxlUm93VmlldygpOiBSb3dNb2RlbDxUPltdIHtcbiAgICBpZiAodGhpcy5sYXp5KSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJsZVJvd3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemU7XG4gICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMucGFnZVNpemU7XG4gICAgICByZXR1cm4gdGhpcy50YWJsZVJvd3Muc2xpY2Uoc3RhcnQsIGVuZCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlbGVjdGVkKCk6IFJvd01vZGVsPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlUm93cy5maWx0ZXIociA9PiByLnNlbGVjdGVkKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQubGVuZ3RoO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMucmVhY3RUb1NpZ25hbHMoKTtcbiAgICB9KVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlUm93TW9kZWxzKCk7XG4gICAgICBpZiAoIXRoaXMubGF6eSAmJiB0aGlzLmRhdGEpIHtcbiAgICAgICAgdGhpcy50b3RhbCA9IHRoaXMuZGF0YS5sZW5ndGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGlvbiddKSB7XG4gICAgICB0aGlzLnNlbGVjdFNlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ2ZpbHRlciddKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52aWV3Q29sdW1ucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbHVtbk1vZGVscygpO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNvcnRDb2x1bW4oY29sdW1uOiBDb2x1bW5Nb2RlbDxUPikge1xuICAgIGlmIChjb2x1bW4uc29ydGFibGUpIHtcbiAgICAgIGNvbHVtbi5zb3J0RGlyZWN0aW9uID0gZ2V0TmV4dFNvcnREaXJlY3Rpb24oXG4gICAgICAgIGNvbHVtbi5zb3J0RGlyZWN0aW9uLFxuICAgICAgICB0aGlzLnNvcnRNdWx0aXBsZVxuICAgICAgKTtcblxuICAgICAgaWYgKCF0aGlzLnNvcnRNdWx0aXBsZSkge1xuICAgICAgICB0aGlzLnRhYmxlQ29sdW1uc1xuICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHggIT09IGNvbHVtbilcbiAgICAgICAgICAuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICAgICAgeC5zb3J0RGlyZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzb3J0czogU29ydFtdID0gdGhpcy5nZXRTb3J0cygpLm1hcCgoeCkgPT4gKHtcbiAgICAgICAgZmllbGQ6ICdyb3cuJyArIHguZmllbGQsXG4gICAgICAgIGRpcmVjdGlvbjogeC5kaXJlY3Rpb24sXG4gICAgICB9KSk7XG5cbiAgICAgIGlmICghdGhpcy5sYXp5KSB7XG4gICAgICAgIHRoaXMudGFibGVSb3dzID0gbXVsdGlTb3J0KHRoaXMudGFibGVSb3dzLCBzb3J0cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpcmVMYXp5TG9hZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjaGFuZ2VQYWdlKGV2ZW50OiB7IGRldGFpbDogeyBwYWdpbmF0aW9uOiB7IGN1cnJlbnRQYWdlOiBudW1iZXIgfSB9IH0pIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gZXZlbnQuZGV0YWlsLnBhZ2luYXRpb24uY3VycmVudFBhZ2U7XG4gICAgdGhpcy5maXJlTGF6eUxvYWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGFuZ2VQYWdlU2l6ZShldmVudDogQ3VzdG9tRXZlbnQ8Rm9ybVNlbGVjdEV2ZW50Pikge1xuICAgIHRoaXMucGFnZVNpemUgPSBwYXJzZUludChldmVudC5kZXRhaWwudmFsdWUpO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMuZmlyZUxhenlMb2FkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0Um93KHJvdzogUm93TW9kZWw8VD4sIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkge1xuICAgICAgdGhpcy5uYXZpZ2F0ZShyb3csIGV2ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgcm93LnNlbGVjdGVkID0gIXJvdy5zZWxlY3RlZDtcbiAgICAgIHRoaXMudGFibGVSb3dzLmZvckVhY2goKHgpID0+ICh4ICE9PSByb3cgPyAoeC5zZWxlY3RlZCA9IGZhbHNlKSA6IG51bGwpKTtcbiAgICAgIHRoaXMuZmlyZVNlbGVjdGlvbkNoYW5nZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICByb3cuc2VsZWN0ZWQgPSAhcm93LnNlbGVjdGVkO1xuICAgICAgdGhpcy5maXJlU2VsZWN0aW9uQ2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG5hdmlnYXRlKHJvdzogUm93TW9kZWw8VD4sIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUN1c3RvbUNsaWNrcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdGFyZ2V0VXJsID0gdGhpcy5jcmVhdGVVcmwocm93KTtcblxuICAgIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB3aW5kb3cub3BlbihcbiAgICAgICAgICB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbdGFyZ2V0VXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pKSxcbiAgICAgICAgICAnX2JsYW5rJ1xuICAgICAgICApO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0YXJnZXRVcmxdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG5hdmlnYXRlTmV3V2luZG93KHJvdzogUm93TW9kZWw8VD4sIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gIGlmICh0aGlzLmRpc2FibGVDdXN0b21DbGlja3MgfHwgZXZlbnQuYnV0dG9uICE9PSAxKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHRhcmdldFVybCA9IHRoaXMuY3JlYXRlVXJsKHJvdyk7XG5cbiAgICB3aW5kb3cub3Blbih0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbdGFyZ2V0VXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pKSwgJ19ibGFuaycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZUFsbChldmVudDogQ3VzdG9tRXZlbnQ8Rm9ybUNoZWNrYm94RXZlbnQ+KSB7XG4gICAgdGhpcy5hbGxTZWxlY3RlZCA9IGV2ZW50LmRldGFpbC5jaGVja2VkO1xuICAgIHRoaXMudGFibGVSb3dzLmZvckVhY2goKHgpID0+ICh4LnNlbGVjdGVkID0gdGhpcy5hbGxTZWxlY3RlZCkpO1xuICAgIHRoaXMuZmlyZVNlbGVjdGlvbkNoYW5nZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZURldGFpbChyb3c6IFJvd01vZGVsPFQ+KSB7XG4gICAgcm93LmV4cGFuZGVkID0gIXJvdy5leHBhbmRlZDtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RSb3dDaGVja2JveChyb3c6IFJvd01vZGVsPFQ+LCBldmVudDogQ3VzdG9tRXZlbnQ8Rm9ybUNoZWNrYm94RXZlbnQ+KSB7XG4gICAgcm93LnNlbGVjdGVkID0gZXZlbnQuZGV0YWlsLmNoZWNrZWQ7XG4gICAgdGhpcy5hbGxTZWxlY3RlZCA9IHRoaXMudGFibGVSb3dzLmV2ZXJ5KCh4KSA9PiB4LnNlbGVjdGVkKTtcbiAgICB0aGlzLmZpcmVTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cnVuY2F0ZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0Lmxlbmd0aCA+IHRoaXMubWF4aW11bUNvbHVtbkxlbmd0aFxuICAgICAgPyB0ZXh0LnNsaWNlKDAsIHRoaXMubWF4aW11bUNvbHVtbkxlbmd0aCkgKyAnLi4uJ1xuICAgICAgOiB0ZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlc2VsZWN0QWxsKCkge1xuICAgIHRoaXMuYWxsU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRhYmxlUm93cy5mb3JFYWNoKHggPT4gKHguc2VsZWN0ZWQgPSB0aGlzLmFsbFNlbGVjdGVkKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVVybChyb3c6IFJvd01vZGVsPFQ+KTogc3RyaW5nIHtcbiAgICBpZiAocm93LmN1c3RvbVJvdXRlKSB7XG4gICAgICByZXR1cm4gcm93LmN1c3RvbVJvdXRlO1xuICAgIH1cblxuICAgIHJldHVybiByb3cuaWQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhY3RUb1NpZ25hbHMoKTogdm9pZCB7XG4gICAgY29uc3QgcmVsb2FkID0gdGhpcy5zZXJ2aWNlLnJlbG9hZCgpO1xuXG4gICAgaWYgKHR5cGVvZiByZWxvYWQgPT09ICdzeW1ib2wnKSB7XG4gICAgICB0aGlzLmZpcmVMYXp5TG9hZCgpO1xuICAgIH0gZWxzZSBpZiAocmVsb2FkLm5hbWUgPT09IHRoaXMudGFibGVOYW1lKSB7XG4gICAgICB0aGlzLmZpcmVMYXp5TG9hZCgpXG4gICAgfVxuXG4gICAgdGhpcy5kZXNlbGVjdEFsbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2x1bW5Nb2RlbHMoKSB7XG4gICAgY29uc3Qgdmlld0NvbHVtbnMgPSB0aGlzLnZpZXdDb2x1bW5zXG4gICAgICA/LnRvQXJyYXkoKVxuICAgICAgLm1hcCgoeCkgPT4geC5nZXREZWZpbml0aW9uKCkpO1xuICAgIHRoaXMudGFibGVDb2x1bW5zID0gWy4uLih0aGlzLl9jb2x1bW5zID8/IFtdKSwgLi4uKHZpZXdDb2x1bW5zID8/IFtdKV0ubWFwKFxuICAgICAgKHgpID0+IG5ldyBDb2x1bW5Nb2RlbCh4KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJvd01vZGVscygpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlUm93cyA9ICh0aGlzLmRhdGEgPz8gW10pLm1hcChcbiAgICAgICh4KSA9PiBuZXcgUm93TW9kZWwoeCwgZmFsc2UsIGZhbHNlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0aGlzLmN1c3RvbVJvdXRlLCB0aGlzLmVudGl0eUtleSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaXJlU2VsZWN0aW9uQ2hhbmdlKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IHRoaXMudGFibGVSb3dzXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LnNlbGVjdGVkKVxuICAgICAgLm1hcCgoeCkgPT4geC5yb3cpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoc2VsZWN0ZWRSb3dzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0U2VsZWN0ZWQoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uPy5sZW5ndGggJiYgdGhpcy5zZWxlY3Rpb25Nb2RlKSB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPVxuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFRhYmxlU2VsZWN0aW9uTW9kZS5zaW5nbGVcbiAgICAgICAgICA/IFt0aGlzLnNlbGVjdGlvblswXV1cbiAgICAgICAgICA6IHRoaXMuc2VsZWN0aW9uO1xuICAgICAgY29uc3Qgc2VsZWN0aW9uU2V0ID0gbmV3IFNldChzZWxlY3Rpb24pO1xuICAgICAgdGhpcy50YWJsZVJvd3MuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLnNlbGVjdGVkID0gc2VsZWN0aW9uU2V0LmhhcyhpdGVtLnJvdyk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5hbGxTZWxlY3RlZCA9IHRoaXMudGFibGVSb3dzLmV2ZXJ5KCh4KSA9PiB4LnNlbGVjdGVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpcmVMYXp5TG9hZCgpIHtcbiAgICBjb25zdCBsYXp5TG9hZEV2ZW50OiBMYXp5TG9hZEV2ZW50ID0ge1xuICAgICAgc29ydDogdGhpcy5nZXRTb3J0cygpLFxuICAgICAgb2Zmc2V0OiAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdlU2l6ZSxcbiAgICAgIGxpbWl0OiB0aGlzLnBhZ2VTaXplLFxuICAgICAgZmlsdGVyOiB0aGlzLmZpbHRlcixcbiAgICB9O1xuXG4gICAgdGhpcy5sYXp5TG9hZC5lbWl0KGxhenlMb2FkRXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGaWx0ZXIoKSB7XG4gICAgdGhpcy5maXJlTGF6eUxvYWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U29ydHMoKTogU29ydFtdIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUNvbHVtbnNcbiAgICAgIC5maWx0ZXIoKHgpID0+IHguc29ydGFibGUgJiYgeC5zb3J0RGlyZWN0aW9uKVxuICAgICAgLm1hcCgoeCkgPT4gKHtcbiAgICAgICAgZmllbGQ6IHguaWQsXG4gICAgICAgIGRpcmVjdGlvbjogPFNvcnREaXJlY3Rpb25UeXBlPnguc29ydERpcmVjdGlvbixcbiAgICAgIH0pKTtcbiAgfVxufVxuIiwiQGlmIChzZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnICYmIHNob3dBY3Rpb25CdXR0b25zKSB7XG48Z292LWZsZXhcbiAgY2xhc3M9XCJnb3YtdGFibGUtY29tcGxleF9fYWN0aW9ucyBtdC0yXCJcbiAganVzdGlmeS1jb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gIGFsaWduLWl0ZW1zPVwiY2VudGVyXCJcbj5cbiAgPGRpdiBjbGFzcz1cImdvdi10YWJsZS1jb21wbGV4X19yZWNvcmRzLXNlbGVjdGVkXCI+XG4gICAge3sgc2VsZWN0ZWRDb3VudCB9fSB7eyAoJ1RBQkxFUy5DSE9TRU5fUkVDT1JEUycgfCB0cmFuc2xhdGUpID8/ICdjaG9zZW4gcmVjb3Jkcyd9fVxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8Z292LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBzaXplPVwic1wiIHR5cGU9XCJzb2xpZFwiIChnb3YtY2xpY2spPVwiZGVsZXRlLmVtaXQoc2VsZWN0ZWQpXCI+XG4gICAgICB7eyAoJ0JVVFRPTlMuREVMRVRFJyB8IHRyYW5zbGF0ZSkgPz8gJ0RlbGV0ZSd9fVxuICAgIDwvZ292LWJ1dHRvbj5cbiAgICA8Z292LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBzaXplPVwic1wiIHR5cGU9XCJzb2xpZFwiIChnb3YtY2xpY2spPVwic2F2ZS5lbWl0KHNlbGVjdGVkKVwiPlxuICAgICAge3sgKCdCVVRUT05TLlNBVkUnIHwgdHJhbnNsYXRlKSA/PyAnU2F2ZSd9fVxuICAgIDwvZ292LWJ1dHRvbj5cbiAgICA8Z292LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBzaXplPVwic1wiIHR5cGU9XCJzb2xpZFwiIChnb3YtY2xpY2spPVwiZG93bmxvYWQuZW1pdChzZWxlY3RlZClcIj5cbiAgICAgIHt7ICgnQlVUVE9OUy5ET1dOTE9BRCcgfCB0cmFuc2xhdGUpID8/ICdEb3dubG9hZCd9fVxuICAgIDwvZ292LWJ1dHRvbj5cbiAgICA8Z292LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBzaXplPVwic1wiIHR5cGU9XCJzb2xpZFwiIChnb3YtY2xpY2spPVwiZGVzZWxlY3RBbGwoKVwiPlxuICAgICAge3sgKCdCVVRUT05TLkNBTkNFTCcgfCB0cmFuc2xhdGUpID8/ICdDYW5jZWwnfX1cbiAgICA8L2dvdi1idXR0b24+XG4gIDwvZGl2PlxuPC9nb3YtZmxleD5cbn1cblxuPGRpdlxuICBjbGFzcz1cIiB2LXRhYmxlIGdvdi10YWJsZVwiXG4gIFthdHRyLnNpemVdPVwic2l6ZSB8IGdvdlNpemVcIlxuPlxuICA8dGFibGUgY2xhc3M9XCJ2LXRhYmxlX190YWJsZVwiPlxuICAgIDx0aGVhZCBjbGFzcz1cInYtdGFibGVfX2hlYWRcIj5cbiAgICAgIDx0ciBjbGFzcz1cInYtdGFibGVfX2hlYWRlclwiPlxuICAgICAgICBAaWYgKHRoaXMucm93RGV0YWlsVGVtcGxhdGUpIHtcbiAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgfSBAaWYgKHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGdvdi1mb3JtLWNoZWNrYm94XG4gICAgICAgICAgICBbY2hlY2tlZF09XCJhbGxTZWxlY3RlZFwiXG4gICAgICAgICAgICAoZ292LWNoYW5nZSk9XCJ0b2dnbGVBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC90aD5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChjb2x1bW4gb2YgdGFibGVDb2x1bW5zOyB0cmFjayBjb2x1bW47IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICBAaWYgKGNvbHVtbi52aXNpYmxlICYmIGNvbHVtbi5mb3JjZVZpc2liaWxpdHkgIT09ICdoaWRkZW4nKSB7XG4gICAgICAgIDx0aFxuICAgICAgICAgIHNjb3BlPVwiY29sXCJcbiAgICAgICAgICBbc3R5bGVdPVwieyd0ZXh0LWFsaWduJzogY29sdW1uLnRleHRBbGlnbn1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZ292LXRhYmxlLS1maXQtd2lkdGhcIlxuICAgICAgICAgICAgW2NsYXNzLnYtdGFibGVfX3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgICAgICBbY2xhc3Mudi10YWJsZV9fc29ydGFibGUtLWRlc2NdPVwiY29sdW1uLnNvcnRhYmxlICYmIGNvbHVtbi5zb3J0RGlyZWN0aW9uID09PSAnZGVzYydcIlxuICAgICAgICAgICAgW2NsYXNzLnYtdGFibGVfX3NvcnRhYmxlLS1hc2NdPVwiY29sdW1uLnNvcnRhYmxlICYmIGNvbHVtbi5zb3J0RGlyZWN0aW9uID09PSAnYXNjJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwic29ydENvbHVtbihjb2x1bW4pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBjb2x1bW4uaGVhZGVyR2V0dGVyKGNvbHVtbi5pZCwgaW5kZXgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3RoPlxuICAgICAgICB9IEBpZiAodGhpcy5yb3dEZXRhaWxCdXR0b25UZW1wbGF0ZSkge1xuICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgfX1cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICBAaWYgKGxvYWRpbmcpIHtcbiAgICAgIDx2LWxvYWRlciAvPlxuICAgIH0gQGVsc2Uge1xuICAgIDx0Ym9keSBjbGFzcz1cInYtdGFibGVfX2JvZHlcIj5cbiAgICAgIEBmb3IgKGRhdGEgb2YgdGFibGVSb3dWaWV3OyB0cmFjayBkYXRhLmlkOyBsZXQgcm93SW5kZXggPSAkaW5kZXgpIHtcbiAgICAgIDx0clxuICAgICAgICBjbGFzcz1cInYtdGFibGVfX3Jvd1wiXG4gICAgICAgIFtjbGFzcy5nb3YtdGFibGUtLWhpZ2hsaWdodF09XCJkYXRhLnNlbGVjdGVkICYmIHNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Um93KGRhdGEsICRldmVudClcIlxuICAgICAgICAoZGJsY2xpY2spPVwibmF2aWdhdGUoZGF0YSwgJGV2ZW50KVwiXG4gICAgICAgIChtb3VzZWRvd24pPVwibmF2aWdhdGVOZXdXaW5kb3coZGF0YSwgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIEBpZiAodGhpcy5yb3dEZXRhaWxUZW1wbGF0ZSkge1xuICAgICAgICA8dGQ+XG4gICAgICAgICAgPGdvdi1idXR0b25cbiAgICAgICAgICAgIFtzaXplXT1cInNpemUgfCBnb3ZTaXplXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICB0eXBlPVwic29saWRcIlxuICAgICAgICAgICAgKGdvdi1jbGljayk9XCJ0b2dnbGVEZXRhaWwoZGF0YSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxnb3YtaWNvblxuICAgICAgICAgICAgICBbbmFtZV09XCJkYXRhLmV4cGFuZGVkID8gJ2NoZXZyb24tdXAnIDogJ2NoZXZyb24tZG93bidcIlxuICAgICAgICAgICAgICBbc2l6ZV09XCJzaXplIHwgZ292U2l6ZVwiXG4gICAgICAgICAgICAgIHNsb3Q9XCJpY29uLXN0YXJ0XCJcbiAgICAgICAgICAgID48L2dvdi1pY29uPlxuICAgICAgICAgIDwvZ292LWJ1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgfSBAaWYgKHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgPHRkIGNsYXNzPVwiZ292LXRhYmxlLS1maXQtY29udGVudCBnb3YtdGFibGUtLWJvcmRlci1yaWdodFwiPlxuICAgICAgICAgIDxnb3YtZm9ybS1jaGVja2JveFxuICAgICAgICAgICAgbm8tbGFiZWxcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImRhdGEuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgW3NpemVdPVwic2l6ZSB8IGdvdlNpemVcIlxuICAgICAgICAgICAgKGdvdi1jaGFuZ2UpPVwic2VsZWN0Um93Q2hlY2tib3goZGF0YSwgJGV2ZW50KVwiXG4gICAgICAgICAgPjwvZ292LWZvcm0tY2hlY2tib3g+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAoY29sdW1uIG9mIHRhYmxlQ29sdW1uczsgdHJhY2sgY29sdW1uOyBsZXQgY29sdW1uSW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgQGlmIChjb2x1bW4udmlzaWJsZSAmJiBjb2x1bW4uZm9yY2VWaXNpYmlsaXR5ICE9PSAnaGlkZGVuJykge1xuICAgICAgICA8dGRcbiAgICAgICAgICBbc3R5bGVdPVwieyd0ZXh0LWFsaWduJzogY29sdW1uLnRleHRBbGlnbn1cIlxuICAgICAgICAgIFtjbGFzc109XCJjb2x1bW4uY29sdW1uQ2xhc3MhXCJcbiAgICAgICAgICBbY2xhc3Mudi1hdXRvLWNlbGxdPVwiY29sdW1uLnRlbXBsYXRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoY29sdW1uLnRlbXBsYXRlKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgY29sdW1uLnRlbXBsYXRlO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogZGF0YS5yb3cgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJjb2x1bW4ucXVlcnlQYXJhbXMgPyBjb2x1bW4ucXVlcnlQYXJhbXMgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiY29sdW1uLnJvdXRlckxpbmsgPyBjb2x1bW4ucm91dGVyTGluayhkYXRhLnJvdykgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0cnVuY2F0ZShjb2x1bW4udmFsdWVHZXR0ZXIoZGF0YS5yb3csIHJvd0luZGV4KSlcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiXG4gICAgICAgICAgICAgIGNvbHVtbi52YWx1ZUdldHRlcihkYXRhLnJvdywgcm93SW5kZXgpLmxlbmd0aCA+IG1heGltdW1Db2x1bW5MZW5ndGhcbiAgICAgICAgICAgICAgICA/IGNvbHVtbi52YWx1ZUdldHRlcihkYXRhLnJvdywgcm93SW5kZXgpXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RkPlxuICAgICAgICBAaWYgKHRoaXMucm93RGV0YWlsQnV0dG9uVGVtcGxhdGUpIHtcbiAgICAgICAgPHRkIHNjb3BlPVwiXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgdGhpcy5yb3dEZXRhaWxCdXR0b25UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEucm93IH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RkPlxuICAgICAgICB9fX1cbiAgICAgIDwvdHI+XG4gICAgICBAaWYgKHRoaXMucm93RGV0YWlsVGVtcGxhdGUgJiYgZGF0YS5leHBhbmRlZCkge1xuICAgICAgPHRyPlxuICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJ0YWJsZUNvbHVtbnMubGVuZ3RoICsgMVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIGNsYXNzPVwidy0xMDBcIlxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgdGhpcy5yb3dEZXRhaWxUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEucm93IH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIH0gfSBAaWYgKCF0YWJsZVJvd3MubGVuZ3RoICYmICFsb2FkaW5nKXtcbiAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cInRhYmxlQ29sdW1ucy5sZW5ndGhcIj5cbiAgICAgICAgPGdvdi1lbXB0eSBhbGlnbj1cImNlbnRlclwiIFtzaXplXT1cInNpemUgfCBnb3ZTaXplXCI+XG4gICAgICAgICAgPGdvdi1pY29uIHNsb3Q9XCJpY29uXCIgbmFtZT1cImVtcHR5LWZpbGVcIiB0eXBlPVwiY29sb3JlZFwiLz5cbiAgICAgICAgICA8cCBzbG90PVwiaGVhZGxpbmVcIj5cbiAgICAgICAgICAgIHt7ICgnVEFCTEVTLkVNUFRZJyB8IHRyYW5zbGF0ZSkgPz8gJ05vIHJlY29yZHMgd2VyZSBmb3VuZCEnIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2dvdi1lbXB0eT5cbiAgICAgIDwvdGQ+XG4gICAgICB9XG4gICAgPC90Ym9keT5cbiAgfVxuICA8L3RhYmxlPlxuICBAaWYoc2hvd1BhZ2luYXRvcikge1xuICA8ZGl2IGNsYXNzPVwidi10YWJsZV9fcGFnaW5hdG9yIGQtZmxleCBwdC0zIHBiLTNcIj5cbiAgICBAaWYgKHRhYmxlUm93cy5sZW5ndGgpIHtcbiAgICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxuICAgICAgPHYtdGFibGUtcGFnaW5hdGlvbi1pbmZvXG4gICAgICAgIFtzaG93aW5nVGV4dF09XCInVEFCTEVTLlBBR0lOQVRJT04uU0hPV0lORycgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbdG9UZXh0XT1cIidUQUJMRVMuUEFHSU5BVElPTi5UTycgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbb2ZUZXh0XT1cIidUQUJMRVMuUEFHSU5BVElPTi5PRicgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbZW50cmllc1RleHRdPVwiJ1RBQkxFUy5QQUdJTkFUSU9OLkVOVFJJRVMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgICAgW3RvdGFsXT1cInRvdGFsXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1zLTRcIj5cbiAgICAgIDxnb3YtZm9ybS1zZWxlY3RcbiAgICAgICAgW29wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgICAgICAgW3ZhbHVlXT1cImdvdlBhZ2VTaXplXCJcbiAgICAgICAgKGdvdi1jaGFuZ2UpPVwiY2hhbmdlUGFnZVNpemUoJGV2ZW50KVwiXG4gICAgICA+PC9nb3YtZm9ybS1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJtcy00XCI+XG4gICAgICA8Z292LXBhZ2luYXRpb25cbiAgICAgICAgW2N1cnJlbnRdPVwiY3VycmVudFBhZ2VcIlxuICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgICAgICBbdG90YWxdPVwidG90YWxcIlxuICAgICAgICBbdHlwZV09XCInYnV0dG9uJ1wiXG4gICAgICAgIChnb3YtcGFnZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIlxuICAgICAgPjwvZ292LXBhZ2luYXRpb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -11,4 +11,4 @@ export function createCustomRoute(row, entityKey, customRoute) {
|
|
|
11
11
|
? customRoute + row[entityKey]
|
|
12
12
|
: undefined;
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1nb3Zjei9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLGFBQTRDLEVBQzVDLFVBQVUsR0FBRyxLQUFLO0lBRWxCLE9BQU8sVUFBVSxJQUFJLGFBQWEsS0FBSyxhQUFhLENBQUMsSUFBSTtRQUN2RCxDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxDQUFDLGFBQWEsSUFBSSxhQUFhLEtBQUssYUFBYSxDQUFDLElBQUk7WUFDeEQsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHO1lBQ25CLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0FBQ3pCLENBQUM7QUFDRCxNQUFNLFVBQVUsaUJBQWlCLENBQUksR0FBTSxFQUFFLFNBQWtCLEVBQUUsV0FBb0I7SUFDbkYsT0FBTyxXQUFXLElBQUksU0FBUztRQUM3QixDQUFDLENBQUMsV0FBVyxHQUFJLEdBQWlDLENBQUMsU0FBUyxDQUFDO1FBQzdELENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvcnREaXJlY3Rpb24sIFNvcnREaXJlY3Rpb25UeXBlIH0gZnJvbSAnQHZlcmlzb2Z0L2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dFNvcnREaXJlY3Rpb24oXG4gIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb25UeXBlIHwgdW5kZWZpbmVkLFxuICBpc051bGxhYmxlID0gZmFsc2Vcbik6IFNvcnREaXJlY3Rpb25UeXBlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGlzTnVsbGFibGUgJiYgc29ydERpcmVjdGlvbiA9PT0gU29ydERpcmVjdGlvbi5kZXNjXG4gICAgPyB1bmRlZmluZWRcbiAgICA6ICFzb3J0RGlyZWN0aW9uIHx8IHNvcnREaXJlY3Rpb24gPT09IFNvcnREaXJlY3Rpb24uZGVzY1xuICAgID8gU29ydERpcmVjdGlvbi5hc2NcbiAgICA6IFNvcnREaXJlY3Rpb24uZGVzYztcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDdXN0b21Sb3V0ZTxUPihyb3c6IFQsIGVudGl0eUtleT86IHN0cmluZywgY3VzdG9tUm91dGU/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGN1c3RvbVJvdXRlICYmIGVudGl0eUtleVxuICAgID8gY3VzdG9tUm91dGUgKyAocm93IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pW2VudGl0eUtleV1cbiAgICA6IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
@@ -32,15 +32,15 @@ export class TextareaComponent extends BaseFormInputComponent {
|
|
|
32
32
|
constructor(ngControl) {
|
|
33
33
|
super(ngControl);
|
|
34
34
|
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TextareaComponent, isStandalone: true, selector: "v-textarea", inputs: { floatLabel: "floatLabel", type: "type", minlength: "minlength", maxlength: "maxlength", prefix: "prefix", sufix: "sufix", message: "message", name: "name", role: "role", size: "size", icon: "icon", iconPos: "iconPos", labelSlot: "labelSlot", messageSlot: "messageSlot", rows: "rows", cols: "cols" }, providers: [
|
|
37
37
|
{
|
|
38
38
|
provide: TEXTAREA_COMPONENT_TOKEN,
|
|
39
39
|
useExisting: TextareaComponent,
|
|
40
40
|
},
|
|
41
|
-
], usesInheritance: true, ngImport: i0, template: "<gov-form-control class=\"mb-3\">\
|
|
41
|
+
], usesInheritance: true, ngImport: i0, template: "<gov-form-control class=\"mb-3\">\n @if (label) {\n <gov-form-label \n [slot]=\"labelSlot\"\n [size]=\"size | govSize\"\n >\n {{ label | translate }}\n </gov-form-label>\n }\n <gov-form-group>\n <gov-form-input [type]=\"type\"\n [formControl]=\"formControl\"\n [minlength]=\"minlength\" \n [maxlength]=\"maxlength\" \n [size]='size | govSize' \n [name]='name' \n [role]='role'\n [required]=\"required\"\n [readonly]=\"readonly\"\n [invalid]=\"ngControl?.errors ? true : false\"\n [multiline]=\"true\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n >\n @if (icon) {\n <gov-icon\n [name]=\"icon\"\n [slot]=\"iconPos === 'left' ? 'icon-start' : 'icon-end'\"\n />\n } @if (prefix) {\n <p slot=\"prefix\">\n {{ prefix }}\n </p>\n } @if (sufix) {\n <p slot=\"sufix\">\n {{ sufix }}\n </p>\n }\n </gov-form-input>\n </gov-form-group>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n @if (message) {\n <gov-form-message \n [slot]=\"messageSlot\" \n color=\"neutral\"\n >\n {{ message | translate }}\n </gov-form-message>\n }\n</gov-form-control>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { 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: "ngmodule", type: GovDesignSystemModule }, { kind: "component", type: i2.GovFormControl, selector: "gov-form-control", inputs: ["disabled", "fieldset", "identifier", "invalid", "size", "success"] }, { kind: "component", type: i2.GovFormGroup, selector: "gov-form-group", inputs: ["gap", "orientation"] }, { kind: "component", type: i2.GovFormInput, selector: "gov-form-input", inputs: ["accessibleHidePasswordLabel", "accessibleShowPasswordLabel", "autocomplete", "autocorrect", "cols", "disabled", "identifier", "inputLang", "inputType", "invalid", "max", "maxlength", "min", "minlength", "multiline", "name", "placeholder", "readonly", "required", "role", "rows", "size", "spellcheck", "success", "type", "value"] }, { kind: "component", type: i2.GovFormLabel, selector: "gov-form-label", inputs: ["identifier", "legend", "required", "size"] }, { kind: "component", type: i2.GovFormMessage, selector: "gov-form-message", inputs: ["color", "size"] }, { kind: "component", type: i2.GovIcon, selector: "gov-icon", inputs: ["color", "name", "size", "type"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "gov-form-input:not([input-type=number]),gov-form-autocomplete" }, { kind: "pipe", type: GovSizePipe, name: "govSize" }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
42
42
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
45
|
args: [{ selector: 'v-textarea', standalone: true, imports: [
|
|
46
46
|
CommonModule,
|
|
@@ -54,7 +54,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
54
54
|
provide: TEXTAREA_COMPONENT_TOKEN,
|
|
55
55
|
useExisting: TextareaComponent,
|
|
56
56
|
},
|
|
57
|
-
], template: "<gov-form-control class=\"mb-3\">\
|
|
57
|
+
], template: "<gov-form-control class=\"mb-3\">\n @if (label) {\n <gov-form-label \n [slot]=\"labelSlot\"\n [size]=\"size | govSize\"\n >\n {{ label | translate }}\n </gov-form-label>\n }\n <gov-form-group>\n <gov-form-input [type]=\"type\"\n [formControl]=\"formControl\"\n [minlength]=\"minlength\" \n [maxlength]=\"maxlength\" \n [size]='size | govSize' \n [name]='name' \n [role]='role'\n [required]=\"required\"\n [readonly]=\"readonly\"\n [invalid]=\"ngControl?.errors ? true : false\"\n [multiline]=\"true\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n >\n @if (icon) {\n <gov-icon\n [name]=\"icon\"\n [slot]=\"iconPos === 'left' ? 'icon-start' : 'icon-end'\"\n />\n } @if (prefix) {\n <p slot=\"prefix\">\n {{ prefix }}\n </p>\n } @if (sufix) {\n <p slot=\"sufix\">\n {{ sufix }}\n </p>\n }\n </gov-form-input>\n </gov-form-group>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n @if (message) {\n <gov-form-message \n [slot]=\"messageSlot\" \n color=\"neutral\"\n >\n {{ message | translate }}\n </gov-form-message>\n }\n</gov-form-control>\n" }]
|
|
58
58
|
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
59
59
|
type: Optional
|
|
60
60
|
}, {
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
92
92
|
}], cols: [{
|
|
93
93
|
type: Input
|
|
94
94
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktZ292Y3ovc3JjL2xpYi9jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWdvdmN6L3NyYy9saWIvY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFNBQVMsRUFDVCxtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLFNBQVMsRUFDVCxzQkFBc0IsRUFFdEIsU0FBUyxFQUVULFlBQVksRUFFWixZQUFZLEVBQ1osd0JBQXdCLEdBQ3pCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBc0IzQyxNQUFNLE9BQU8saUJBQ1gsU0FBUSxzQkFBc0I7SUFHckIsVUFBVSxDQUFXO0lBQ3JCLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDZCxTQUFTLEdBQUcsTUFBTSxDQUFDO0lBQ25CLE1BQU0sQ0FBVTtJQUNoQixLQUFLLENBQVU7SUFDZixPQUFPLENBQVU7SUFDakIsSUFBSSxDQUFXO0lBQ2YsSUFBSSxDQUFXO0lBQ2YsSUFBSSxHQUFrQixTQUFTLENBQUMsTUFBTSxDQUFDO0lBQ3ZDLElBQUksQ0FBVTtJQUNkLE9BQU8sR0FBcUIsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUMvQyxTQUFTLEdBQXFCLFlBQVksQ0FBQyxHQUFHLENBQUM7SUFDL0MsV0FBVyxHQUFxQixZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3BELElBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRWxCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFZCxZQUFnQyxTQUFvQjtRQUNsRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkIsQ0FBQzt1R0F6QlUsaUJBQWlCOzJGQUFqQixpQkFBaUIsK1dBUGpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsV0FBVyxFQUFFLGlCQUFpQjthQUMvQjtTQUNGLGlEQ2pESCw0N0NBa0RBLHlERGhCSSxZQUFZLDhCQUNaLG1CQUFtQiw0MUJBQ25CLHFCQUFxQiwrb0NBQ3JCLFdBQVcsZ0RBQ1gsY0FBYyxtSEFDZCxlQUFlOzsyRkFZTixpQkFBaUI7a0JBckI3QixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7cUJBQ2hCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSx3QkFBd0I7NEJBQ2pDLFdBQVcsbUJBQW1CO3lCQUMvQjtxQkFDRjs7MEJBeUJZLFFBQVE7OzBCQUFJLElBQUk7eUNBbkJwQixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5nQ29udHJvbCxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgR292RGVzaWduU3lzdGVtTW9kdWxlIH0gZnJvbSAnQGdvdi1kZXNpZ24tc3lzdGVtLWNlL2FuZ3VsYXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBUZXh0ZmllbGRDb3JlLFxuICBGaWVsZFR5cGUsXG4gIEJhc2VGb3JtSW5wdXRDb21wb25lbnQsXG4gIEZpZWxkU2l6ZVR5cGUsXG4gIEZpZWxkU2l6ZSxcbiAgSWNvblBvc2l0aW9uVHlwZSxcbiAgSWNvblBvc2l0aW9uLFxuICBTbG90UG9zaXRpb25UeXBlLFxuICBTbG90UG9zaXRpb24sXG4gIFRFWFRBUkVBX0NPTVBPTkVOVF9UT0tFTixcbn0gZnJvbSAnQHZlcmlzb2Z0L3VpLWNvcmUnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi9pY29ucyc7XG5pbXBvcnQgeyBHb3ZTaXplUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZXJyb3JzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3YtdGV4dGFyZWEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgR292RGVzaWduU3lzdGVtTW9kdWxlLFxuICAgIEdvdlNpemVQaXBlLFxuICAgIEVycm9yQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRFWFRBUkVBX0NPTVBPTkVOVF9UT0tFTixcbiAgICAgIHVzZUV4aXN0aW5nOiBUZXh0YXJlYUNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0YXJlYUNvbXBvbmVudFxuICBleHRlbmRzIEJhc2VGb3JtSW5wdXRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVGV4dGZpZWxkQ29yZVxue1xuICBASW5wdXQoKSBmbG9hdExhYmVsITogYm9vbGVhbjtcbiAgQElucHV0KCkgdHlwZSA9IEZpZWxkVHlwZS50ZXh0O1xuICBASW5wdXQoKSBtaW5sZW5ndGggPSAwO1xuICBASW5wdXQoKSBtYXhsZW5ndGggPSA1MjQyODg7XG4gIEBJbnB1dCgpIHByZWZpeCE6IHN0cmluZztcbiAgQElucHV0KCkgc3VmaXghOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1lc3NhZ2UhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWUhIDogc3RyaW5nO1xuICBASW5wdXQoKSByb2xlISA6IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZTogRmllbGRTaXplVHlwZSA9IEZpZWxkU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGljb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25Qb3M6IEljb25Qb3NpdGlvblR5cGUgPSBJY29uUG9zaXRpb24ucmlnaHQ7XG4gIEBJbnB1dCgpIGxhYmVsU2xvdDogU2xvdFBvc2l0aW9uVHlwZSA9IFNsb3RQb3NpdGlvbi50b3A7XG4gIEBJbnB1dCgpIG1lc3NhZ2VTbG90OiBTbG90UG9zaXRpb25UeXBlID0gU2xvdFBvc2l0aW9uLmJvdHRvbTtcbiAgQElucHV0KCkgcm93cyA9IDA7XG4gIEBJbnB1dCgpIGNvbHMgPSAwO1xuXG4gIGljb25zID0gSWNvbnM7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xuICAgIHN1cGVyKG5nQ29udHJvbCk7XG4gIH1cbn1cbiIsIjxnb3YtZm9ybS1jb250cm9sIGNsYXNzPVwibWItM1wiPlxuICAgIEBpZiAobGFiZWwpIHtcbiAgICA8Z292LWZvcm0tbGFiZWwgXG4gICAgICAgIFtzbG90XT1cImxhYmVsU2xvdFwiXG4gICAgICAgIFtzaXplXT1cInNpemUgfCBnb3ZTaXplXCJcbiAgICA+XG4gICAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgPC9nb3YtZm9ybS1sYWJlbD5cbiAgICB9XG4gICAgPGdvdi1mb3JtLWdyb3VwPlxuICAgICAgICA8Z292LWZvcm0taW5wdXQgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgW21pbmxlbmd0aF09XCJtaW5sZW5ndGhcIiBcbiAgICAgICAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCIgXG4gICAgICAgICAgICBbc2l6ZV09J3NpemUgfCBnb3ZTaXplJyAgXG4gICAgICAgICAgICBbbmFtZV09J25hbWUnIFxuICAgICAgICAgICAgW3JvbGVdPSdyb2xlJ1xuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICBbaW52YWxpZF09XCJuZ0NvbnRyb2w/LmVycm9ycyA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgICAgICBbbXVsdGlsaW5lXT1cInRydWVcIlxuICAgICAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgICAgICBbY29sc109XCJjb2xzXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChpY29uKSB7XG4gICAgICAgICAgICA8Z292LWljb25cbiAgICAgICAgICAgICAgICBbbmFtZV09XCJpY29uXCJcbiAgICAgICAgICAgICAgICBbc2xvdF09XCJpY29uUG9zID09PSAnbGVmdCcgPyAnaWNvbi1zdGFydCcgOiAnaWNvbi1lbmQnXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9IEBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICA8cCBzbG90PVwicHJlZml4XCI+XG4gICAgICAgICAgICAgICAge3sgcHJlZml4IH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICB9IEBpZiAoc3VmaXgpIHtcbiAgICAgICAgICAgIDxwIHNsb3Q9XCJzdWZpeFwiPlxuICAgICAgICAgICAgICAgIHt7IHN1Zml4IH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZ292LWZvcm0taW5wdXQ+XG4gICAgPC9nb3YtZm9ybS1ncm91cD5cbiAgICA8di12YWxpZGF0aW9uLW1lc3NhZ2UgW25nQ29udHJvbF09XCJuZ0NvbnRyb2xcIj48L3YtdmFsaWRhdGlvbi1tZXNzYWdlPlxuICAgIEBpZiAobWVzc2FnZSkge1xuICAgIDxnb3YtZm9ybS1tZXNzYWdlIFxuICAgICAgICBbc2xvdF09XCJtZXNzYWdlU2xvdFwiIFxuICAgICAgICBjb2xvcj1cIm5ldXRyYWxcIlxuICAgICAgICA+XG4gICAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2dvdi1mb3JtLW1lc3NhZ2U+XG4gICAgfVxuPC9nb3YtZm9ybS1jb250cm9sPlxuIl19
|
|
@@ -58,15 +58,15 @@ export class TextfieldComponent extends BaseFormInputComponent {
|
|
|
58
58
|
this.formControl.addValidators(validators);
|
|
59
59
|
this.formControl.updateValueAndValidity({ onlySelf: true, emitEvent: true });
|
|
60
60
|
}
|
|
61
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
62
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
61
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextfieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TextfieldComponent, isStandalone: true, selector: "v-textfield", inputs: { floatLabel: "floatLabel", type: "type", minlength: "minlength", maxlength: "maxlength", min: "min", max: "max", prefix: "prefix", sufix: "sufix", message: "message", name: "name", role: "role", size: "size", icon: "icon", iconPos: "iconPos", labelSlot: "labelSlot", errorSlot: "errorSlot", messageSlot: "messageSlot" }, providers: [
|
|
63
63
|
{
|
|
64
64
|
provide: TEXTFIELD_COMPONENT_TOKEN,
|
|
65
65
|
useExisting: TextfieldComponent,
|
|
66
66
|
},
|
|
67
|
-
], usesInheritance: true, ngImport: i0, template: "<gov-form-control class=\"mb-3\">\
|
|
67
|
+
], usesInheritance: true, ngImport: i0, template: "<gov-form-control class=\"mb-3\">\n @if (label) {\n <gov-form-label\n [slot]=\"labelSlot\"\n [size]=\"size | govSize\"\n >\n <div class=\"d-flex\">\n {{ label | translate }}\n @if (tooltip) {\n <v-tooltip [message]=\"tooltip | translate\" />\n }\n </div>\n </gov-form-label>\n }\n <gov-form-group>\n <gov-form-input\n [inputType]=\"type\"\n [formControl]=\"formControl\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [min]=\"min\"\n [max]=\"max\"\n [size]='size | govSize'\n [name]='name'\n [role]='role'\n [required]=\"required\"\n [attr.disabled]=\"disabled ? 'true' : 'false'\"\n [invalid]=\"ngControl?.errors ? true : false\"\n [placeholder]=\"placeholder\"\n >\n @if (icon) {\n <gov-icon\n [name]=\"icon\"\n [slot]=\"iconPos === 'left' ? 'icon-start' : 'icon-end'\"\n />\n } @if (prefix) {\n <p slot=\"prefix\">\n {{ prefix }}\n </p>\n } @if (sufix) {\n <p slot=\"sufix\">\n {{ sufix }}\n </p>\n }\n </gov-form-input>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n @if (message) {\n <gov-form-message\n [slot]=\"messageSlot\"\n color=\"neutral\"\n >\n {{ message }}\n </gov-form-message>\n }\n </gov-form-group>\n</gov-form-control>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { 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: "ngmodule", type: GovDesignSystemModule }, { kind: "component", type: i2.GovFormControl, selector: "gov-form-control", inputs: ["disabled", "fieldset", "identifier", "invalid", "size", "success"] }, { kind: "component", type: i2.GovFormGroup, selector: "gov-form-group", inputs: ["gap", "orientation"] }, { kind: "component", type: i2.GovFormInput, selector: "gov-form-input", inputs: ["accessibleHidePasswordLabel", "accessibleShowPasswordLabel", "autocomplete", "autocorrect", "cols", "disabled", "identifier", "inputLang", "inputType", "invalid", "max", "maxlength", "min", "minlength", "multiline", "name", "placeholder", "readonly", "required", "role", "rows", "size", "spellcheck", "success", "type", "value"] }, { kind: "component", type: i2.GovFormLabel, selector: "gov-form-label", inputs: ["identifier", "legend", "required", "size"] }, { kind: "component", type: i2.GovFormMessage, selector: "gov-form-message", inputs: ["color", "size"] }, { kind: "component", type: i2.GovIcon, selector: "gov-icon", inputs: ["color", "name", "size", "type"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "gov-form-input:not([input-type=number]),gov-form-autocomplete" }, { kind: "component", type: TooltipComponent, selector: "v-tooltip", inputs: ["color", "size", "position", "message", "label"] }, { kind: "pipe", type: GovSizePipe, name: "govSize" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextfieldComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{ selector: 'v-textfield', standalone: true, imports: [
|
|
72
72
|
CommonModule,
|
|
@@ -81,7 +81,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
81
81
|
provide: TEXTFIELD_COMPONENT_TOKEN,
|
|
82
82
|
useExisting: TextfieldComponent,
|
|
83
83
|
},
|
|
84
|
-
], template: "<gov-form-control class=\"mb-3\">\
|
|
84
|
+
], template: "<gov-form-control class=\"mb-3\">\n @if (label) {\n <gov-form-label\n [slot]=\"labelSlot\"\n [size]=\"size | govSize\"\n >\n <div class=\"d-flex\">\n {{ label | translate }}\n @if (tooltip) {\n <v-tooltip [message]=\"tooltip | translate\" />\n }\n </div>\n </gov-form-label>\n }\n <gov-form-group>\n <gov-form-input\n [inputType]=\"type\"\n [formControl]=\"formControl\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [min]=\"min\"\n [max]=\"max\"\n [size]='size | govSize'\n [name]='name'\n [role]='role'\n [required]=\"required\"\n [attr.disabled]=\"disabled ? 'true' : 'false'\"\n [invalid]=\"ngControl?.errors ? true : false\"\n [placeholder]=\"placeholder\"\n >\n @if (icon) {\n <gov-icon\n [name]=\"icon\"\n [slot]=\"iconPos === 'left' ? 'icon-start' : 'icon-end'\"\n />\n } @if (prefix) {\n <p slot=\"prefix\">\n {{ prefix }}\n </p>\n } @if (sufix) {\n <p slot=\"sufix\">\n {{ sufix }}\n </p>\n }\n </gov-form-input>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n @if (message) {\n <gov-form-message\n [slot]=\"messageSlot\"\n color=\"neutral\"\n >\n {{ message }}\n </gov-form-message>\n }\n </gov-form-group>\n</gov-form-control>" }]
|
|
85
85
|
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
86
86
|
type: Optional
|
|
87
87
|
}, {
|
|
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
121
121
|
}], messageSlot: [{
|
|
122
122
|
type: Input
|
|
123
123
|
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWdvdmN6L3NyYy9saWIvY29tcG9uZW50cy90ZXh0ZmllbGQvdGV4dGZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWdvdmN6L3NyYy9saWIvY29tcG9uZW50cy90ZXh0ZmllbGQvdGV4dGZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsU0FBUyxFQUNULG1CQUFtQixFQUNuQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLHlCQUF5QixFQUN6QixTQUFTLEVBQ1Qsc0JBQXNCLEVBRXRCLFNBQVMsRUFFVCxZQUFZLEVBRVosWUFBWSxHQUViLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUF1QjlDLE1BQU0sT0FBTyxrQkFDWCxTQUFRLHNCQUFzQjtJQUdyQixVQUFVLENBQVc7SUFDckIsSUFBSSxHQUFrQixTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3JDLFNBQVMsR0FB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VyxvQkFBb0I7eUJBQ2hDO3FCQUNGOzswQkF3QlksUUFBUTs7MEJBQUksSUFBSTt5Q0FsQnBCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgU2VsZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBGb3JtQ29udHJvbCxcclxuICBOZ0NvbnRyb2wsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICBWYWxpZGF0b3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgR292RGVzaWduU3lzdGVtTW9kdWxlIH0gZnJvbSAnQGdvdi1kZXNpZ24tc3lzdGVtLWNlL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHtcclxuICBUZXh0ZmllbGRDb3JlLFxyXG4gIFRFWFRGSUVMRF9DT01QT05FTlRfVE9LRU4sXHJcbiAgRmllbGRUeXBlLFxyXG4gIEJhc2VGb3JtSW5wdXRDb21wb25lbnQsXHJcbiAgRmllbGRTaXplVHlwZSxcclxuICBGaWVsZFNpemUsXHJcbiAgSWNvblBvc2l0aW9uVHlwZSxcclxuICBJY29uUG9zaXRpb24sXHJcbiAgU2xvdFBvc2l0aW9uVHlwZSxcclxuICBTbG90UG9zaXRpb24sXHJcbiAgRmllbGRUeXBlVHlwZSxcclxufSBmcm9tICdAdmVyaXNvZnQvdWktY29yZSc7XHJcbmltcG9ydCB7IEdvdlNpemVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xyXG5pbXBvcnQgeyBFcnJvckNvbXBvbmVudCB9IGZyb20gJy4uL2Vycm9ycyc7XHJcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sdGlwJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2LXRleHRmaWVsZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgR292RGVzaWduU3lzdGVtTW9kdWxlLFxyXG4gICAgVG9vbHRpcENvbXBvbmVudCxcclxuICAgIEdvdlNpemVQaXBlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRXJyb3JDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dGZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGV4dGZpZWxkLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVEVYVEZJRUxEX0NPTVBPTkVOVF9UT0tFTixcclxuICAgICAgdXNlRXhpc3Rpbmc6IFRleHRmaWVsZENvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRmaWVsZENvbXBvbmVudFxyXG4gIGV4dGVuZHMgQmFzZUZvcm1JbnB1dENvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFRleHRmaWVsZENvcmUsIE9uSW5pdFxyXG57XHJcbiAgQElucHV0KCkgZmxvYXRMYWJlbCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdHlwZTogRmllbGRUeXBlVHlwZSA9IEZpZWxkVHlwZS50ZXh0O1xyXG4gIEBJbnB1dCgpIG1pbmxlbmd0aCA9IDA7XHJcbiAgQElucHV0KCkgbWF4bGVuZ3RoID0gNTI0Mjg4O1xyXG4gIEBJbnB1dCgpIG1pbiA9IC0yMTQ3NDgzNjQ4O1xyXG4gIEBJbnB1dCgpIG1heCA9IDIxNDc0ODM2NDc7XHJcbiAgQElucHV0KCkgcHJlZml4ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN1Zml4ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2UhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSByb2xlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNpemU6IEZpZWxkU2l6ZVR5cGUgfCB1bmRlZmluZWQgPSBGaWVsZFNpemUubWVkaXVtO1xyXG4gIEBJbnB1dCgpIGljb24hOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWNvblBvczogSWNvblBvc2l0aW9uVHlwZSA9IEljb25Qb3NpdGlvbi5yaWdodDtcclxuICBASW5wdXQoKSBsYWJlbFNsb3Q6IFNsb3RQb3NpdGlvblR5cGUgPSBTbG90UG9zaXRpb24udG9wO1xyXG4gIEBJbnB1dCgpIGVycm9yU2xvdDogU2xvdFBvc2l0aW9uVHlwZSA9IFNsb3RQb3NpdGlvbi5ib3R0b207XHJcbiAgQElucHV0KCkgbWVzc2FnZVNsb3Q6IFNsb3RQb3NpdGlvblR5cGUgPSBTbG90UG9zaXRpb24uYm90dG9tO1xyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sKSB7XHJcbiAgICBzdXBlcihuZ0NvbnRyb2wpO1xyXG4gICAgaWYgKG5nQ29udHJvbCkge1xyXG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmZvcm1Db250cm9sICYmIHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sICYmIHRoaXMudHlwZSA9PT0gRmllbGRUeXBlLm51bWJlcikge1xyXG4gICAgICB0aGlzLnNldE1pbk1heE51bWJlcklucHV0VmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNaW5NYXhOdW1iZXJJbnB1dFZhbGlkYXRvcnMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcclxuICAgIGlmICh0aGlzLm1pbiAhPT0gdW5kZWZpbmVkICYmIHRoaXMubWluICE9PSBudWxsKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbih0aGlzLm1pbikpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubWF4ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5tYXggIT09IG51bGwpIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KHRoaXMubWF4KSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5hZGRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUsIGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICB9XHJcbn1cclxuIiwiPGdvdi1mb3JtLWNvbnRyb2wgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICBAaWYgKGxhYmVsKSB7XHJcbiAgICA8Z292LWZvcm0tbGFiZWxcclxuICAgICAgICBbc2xvdF09XCJsYWJlbFNsb3RcIlxyXG4gICAgICAgIFtzaXplXT1cInNpemUgfCBnb3ZTaXplXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIEBpZiAodG9vbHRpcCkge1xyXG4gICAgICAgICAgICA8di10b29sdGlwIFttZXNzYWdlXT1cInRvb2x0aXAgfCB0cmFuc2xhdGVcIiAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2dvdi1mb3JtLWxhYmVsPlxyXG4gICAgfVxyXG4gICAgPGdvdi1mb3JtLWdyb3VwPlxyXG4gICAgICAgIDxnb3YtZm9ybS1pbnB1dFxyXG4gICAgICAgICAgICBbaW5wdXRUeXBlXT1cInR5cGVcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbbWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXHJcbiAgICAgICAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgICAgICAgW21pbl09XCJtaW5cIlxyXG4gICAgICAgICAgICBbbWF4XT1cIm1heFwiXHJcbiAgICAgICAgICAgIFtzaXplXT0nc2l6ZSB8IGdvdlNpemUnXHJcbiAgICAgICAgICAgIFtuYW1lXT0nbmFtZSdcclxuICAgICAgICAgICAgW3JvbGVdPSdyb2xlJ1xyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICd0cnVlJyA6ICdmYWxzZSdcIlxyXG4gICAgICAgICAgICBbaW52YWxpZF09XCJuZ0NvbnRyb2w/LmVycm9ycyA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICBAaWYgKGljb24pIHtcclxuICAgICAgICAgICAgPGdvdi1pY29uXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJpY29uXCJcclxuICAgICAgICAgICAgICAgIFtzbG90XT1cImljb25Qb3MgPT09ICdsZWZ0JyA/ICdpY29uLXN0YXJ0JyA6ICdpY29uLWVuZCdcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICB9IEBpZiAocHJlZml4KSB7XHJcbiAgICAgICAgICAgIDxwIHNsb3Q9XCJwcmVmaXhcIj5cclxuICAgICAgICAgICAgICAgIHt7IHByZWZpeCB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIH0gQGlmIChzdWZpeCkge1xyXG4gICAgICAgICAgICA8cCBzbG90PVwic3VmaXhcIj5cclxuICAgICAgICAgICAgICAgIHt7IHN1Zml4IH19XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZ292LWZvcm0taW5wdXQ+XHJcbiAgICAgICAgPHYtdmFsaWRhdGlvbi1tZXNzYWdlIFtuZ0NvbnRyb2xdPVwibmdDb250cm9sXCI+PC92LXZhbGlkYXRpb24tbWVzc2FnZT5cclxuICAgICAgICBAaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICA8Z292LWZvcm0tbWVzc2FnZVxyXG4gICAgICAgICAgICBbc2xvdF09XCJtZXNzYWdlU2xvdFwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwibmV1dHJhbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBtZXNzYWdlIH19XHJcbiAgICAgICAgPC9nb3YtZm9ybS1tZXNzYWdlPlxyXG4gICAgICAgIH1cclxuICAgIDwvZ292LWZvcm0tZ3JvdXA+XHJcbjwvZ292LWZvcm0tY29udHJvbD4iXX0=
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWdvdmN6L3NyYy9saWIvY29tcG9uZW50cy90ZXh0ZmllbGQvdGV4dGZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWdvdmN6L3NyYy9saWIvY29tcG9uZW50cy90ZXh0ZmllbGQvdGV4dGZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsU0FBUyxFQUNULG1CQUFtQixFQUNuQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLHlCQUF5QixFQUN6QixTQUFTLEVBQ1Qsc0JBQXNCLEVBRXRCLFNBQVMsRUFFVCxZQUFZLEVBRVosWUFBWSxHQUViLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUF1QjlDLE1BQU0sT0FBTyxrQkFDWCxTQUFRLHNCQUFzQjtJQUdyQixVQUFVLENBQVc7SUFDckIsSUFBSSxHQUFrQixTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3JDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDZCxTQUFTLEdBQUcsTUFBTSxDQUFDO0lBQ25CLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQztJQUNsQixHQUFHLEdBQUcsVUFBVSxDQUFDO0lBQ2pCLE1BQU0sQ0FBVTtJQUNoQixLQUFLLENBQVU7SUFDZixPQUFPLENBQVU7SUFDakIsSUFBSSxDQUFVO0lBQ2QsSUFBSSxDQUFVO0lBQ2QsSUFBSSxHQUE4QixTQUFTLENBQUMsTUFBTSxDQUFDO0lBQ25ELElBQUksQ0FBVTtJQUNkLE9BQU8sR0FBcUIsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUMvQyxTQUFTLEdBQXFCLFlBQVksQ0FBQyxHQUFHLENBQUM7SUFDL0MsU0FBUyxHQUFxQixZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2xELFdBQVcsR0FBcUIsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUU3RCxZQUFnQyxTQUFvQjtRQUNsRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQXNCLENBQUM7UUFDM0QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoRCxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoRCxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7dUdBeERVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLG9ZQVBsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSx5QkFBeUI7Z0JBQ2xDLFdBQVcsRUFBRSxrQkFBa0I7YUFDaEM7U0FDRixpREN0REgsa3BEQXVEbUIseUREakJmLFlBQVksOEJBQ1osbUJBQW1CLDQxQkFDbkIscUJBQXFCLG9wQ0FDckIsZ0JBQWdCLDRHQUNoQixXQUFXLCtDQUNYLGVBQWUsNEZBQ2YsY0FBYzs7MkZBWUwsa0JBQWtCO2tCQXRCOUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGNBQWM7cUJBQ2YsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsV0FBVyxvQkFBb0I7eUJBQ2hDO3FCQUNGOzswQkF3QlksUUFBUTs7MEJBQUksSUFBSTt5Q0FsQnBCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBOZ0NvbnRyb2wsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEdvdkRlc2lnblN5c3RlbU1vZHVsZSB9IGZyb20gJ0Bnb3YtZGVzaWduLXN5c3RlbS1jZS9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgVGV4dGZpZWxkQ29yZSxcbiAgVEVYVEZJRUxEX0NPTVBPTkVOVF9UT0tFTixcbiAgRmllbGRUeXBlLFxuICBCYXNlRm9ybUlucHV0Q29tcG9uZW50LFxuICBGaWVsZFNpemVUeXBlLFxuICBGaWVsZFNpemUsXG4gIEljb25Qb3NpdGlvblR5cGUsXG4gIEljb25Qb3NpdGlvbixcbiAgU2xvdFBvc2l0aW9uVHlwZSxcbiAgU2xvdFBvc2l0aW9uLFxuICBGaWVsZFR5cGVUeXBlLFxufSBmcm9tICdAdmVyaXNvZnQvdWktY29yZSc7XG5pbXBvcnQgeyBHb3ZTaXplUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sdGlwJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3YtdGV4dGZpZWxkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEdvdkRlc2lnblN5c3RlbU1vZHVsZSxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIEdvdlNpemVQaXBlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBFcnJvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRmaWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ZXh0ZmllbGQuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogVEVYVEZJRUxEX0NPTVBPTkVOVF9UT0tFTixcbiAgICAgIHVzZUV4aXN0aW5nOiBUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV4dGZpZWxkQ29tcG9uZW50XG4gIGV4dGVuZHMgQmFzZUZvcm1JbnB1dENvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBUZXh0ZmllbGRDb3JlLCBPbkluaXRcbntcbiAgQElucHV0KCkgZmxvYXRMYWJlbCE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHR5cGU6IEZpZWxkVHlwZVR5cGUgPSBGaWVsZFR5cGUudGV4dDtcbiAgQElucHV0KCkgbWlubGVuZ3RoID0gMDtcbiAgQElucHV0KCkgbWF4bGVuZ3RoID0gNTI0Mjg4O1xuICBASW5wdXQoKSBtaW4gPSAtMjE0NzQ4MzY0ODtcbiAgQElucHV0KCkgbWF4ID0gMjE0NzQ4MzY0NztcbiAgQElucHV0KCkgcHJlZml4ITogc3RyaW5nO1xuICBASW5wdXQoKSBzdWZpeCE6IHN0cmluZztcbiAgQElucHV0KCkgbWVzc2FnZSE6IHN0cmluZztcbiAgQElucHV0KCkgbmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgcm9sZSE6IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZTogRmllbGRTaXplVHlwZSB8IHVuZGVmaW5lZCA9IEZpZWxkU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGljb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25Qb3M6IEljb25Qb3NpdGlvblR5cGUgPSBJY29uUG9zaXRpb24ucmlnaHQ7XG4gIEBJbnB1dCgpIGxhYmVsU2xvdDogU2xvdFBvc2l0aW9uVHlwZSA9IFNsb3RQb3NpdGlvbi50b3A7XG4gIEBJbnB1dCgpIGVycm9yU2xvdDogU2xvdFBvc2l0aW9uVHlwZSA9IFNsb3RQb3NpdGlvbi5ib3R0b207XG4gIEBJbnB1dCgpIG1lc3NhZ2VTbG90OiBTbG90UG9zaXRpb25UeXBlID0gU2xvdFBvc2l0aW9uLmJvdHRvbTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sKSB7XG4gICAgc3VwZXIobmdDb250cm9sKTtcbiAgICBpZiAobmdDb250cm9sKSB7XG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGlmICghdGhpcy5mb3JtQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wgJiYgdGhpcy50eXBlID09PSBGaWVsZFR5cGUubnVtYmVyKSB7XG4gICAgICB0aGlzLnNldE1pbk1heE51bWJlcklucHV0VmFsaWRhdG9ycygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0TWluTWF4TnVtYmVySW5wdXRWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICBpZiAodGhpcy5taW4gIT09IHVuZGVmaW5lZCAmJiB0aGlzLm1pbiAhPT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKHRoaXMubWluKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1heCAhPT0gdW5kZWZpbmVkICYmIHRoaXMubWF4ICE9PSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgodGhpcy5tYXgpKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1Db250cm9sLmFkZFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUsIGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgfVxufVxuIiwiPGdvdi1mb3JtLWNvbnRyb2wgY2xhc3M9XCJtYi0zXCI+XG4gICAgQGlmIChsYWJlbCkge1xuICAgIDxnb3YtZm9ybS1sYWJlbFxuICAgICAgICBbc2xvdF09XCJsYWJlbFNsb3RcIlxuICAgICAgICBbc2l6ZV09XCJzaXplIHwgZ292U2l6ZVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgQGlmICh0b29sdGlwKSB7XG4gICAgICAgICAgICA8di10b29sdGlwIFttZXNzYWdlXT1cInRvb2x0aXAgfCB0cmFuc2xhdGVcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2dvdi1mb3JtLWxhYmVsPlxuICAgIH1cbiAgICA8Z292LWZvcm0tZ3JvdXA+XG4gICAgICAgIDxnb3YtZm9ybS1pbnB1dFxuICAgICAgICAgICAgW2lucHV0VHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgICAgICBbbWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXG4gICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXG4gICAgICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgICAgICBbc2l6ZV09J3NpemUgfCBnb3ZTaXplJ1xuICAgICAgICAgICAgW25hbWVdPSduYW1lJ1xuICAgICAgICAgICAgW3JvbGVdPSdyb2xlJ1xuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgICAgICAgICBbaW52YWxpZF09XCJuZ0NvbnRyb2w/LmVycm9ycyA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGljb24pIHtcbiAgICAgICAgICAgIDxnb3YtaWNvblxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImljb25cIlxuICAgICAgICAgICAgICAgIFtzbG90XT1cImljb25Qb3MgPT09ICdsZWZ0JyA/ICdpY29uLXN0YXJ0JyA6ICdpY29uLWVuZCdcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH0gQGlmIChwcmVmaXgpIHtcbiAgICAgICAgICAgIDxwIHNsb3Q9XCJwcmVmaXhcIj5cbiAgICAgICAgICAgICAgICB7eyBwcmVmaXggfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIH0gQGlmIChzdWZpeCkge1xuICAgICAgICAgICAgPHAgc2xvdD1cInN1Zml4XCI+XG4gICAgICAgICAgICAgICAge3sgc3VmaXggfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9nb3YtZm9ybS1pbnB1dD5cbiAgICAgICAgPHYtdmFsaWRhdGlvbi1tZXNzYWdlIFtuZ0NvbnRyb2xdPVwibmdDb250cm9sXCI+PC92LXZhbGlkYXRpb24tbWVzc2FnZT5cbiAgICAgICAgQGlmIChtZXNzYWdlKSB7XG4gICAgICAgIDxnb3YtZm9ybS1tZXNzYWdlXG4gICAgICAgICAgICBbc2xvdF09XCJtZXNzYWdlU2xvdFwiXG4gICAgICAgICAgICBjb2xvcj1cIm5ldXRyYWxcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBtZXNzYWdlIH19XG4gICAgICAgIDwvZ292LWZvcm0tbWVzc2FnZT5cbiAgICAgICAgfVxuICAgIDwvZ292LWZvcm0tZ3JvdXA+XG48L2dvdi1mb3JtLWNvbnRyb2w+Il19
|