ngx-tethys 18.1.1 → 18.2.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/alert/styles/mixin.scss +1 -1
- package/anchor/style/anchor.scss +4 -2
- package/autocomplete/autocomplete.component.d.ts +2 -1
- package/avatar/styles/avatar.scss +1 -1
- package/back-top/styles/back-top.scss +3 -3
- package/button/styles/button-group.scss +9 -9
- package/button/styles/button.scss +2 -6
- package/button/styles/mixin.scss +6 -53
- package/calendar/calendar-header.component.d.ts +2 -0
- package/calendar/styles/calendar.scss +3 -11
- package/card/styles/card.scss +3 -3
- package/carousel/styles/carousel.scss +10 -10
- package/cascader/cascader.component.d.ts +1 -0
- package/cascader/styles/cascader.scss +3 -2
- package/collapse/styles/collapse.scss +4 -2
- package/color-picker/color-picker-panel.component.d.ts +3 -1
- package/color-picker/styles/alpha.scss +1 -1
- package/color-picker/styles/color-picker-panel.scss +1 -1
- package/color-picker/styles/hue.scss +1 -1
- package/color-picker/styles/saturation.scss +1 -1
- package/comment/styles/mixin.scss +1 -1
- package/copy/copy.directive.d.ts +1 -0
- package/core/index.d.ts +1 -0
- package/core/theme/index.d.ts +2 -0
- package/core/theme/store.d.ts +12 -0
- package/core/theme/theme.d.ts +5 -0
- package/date-picker/abstract-picker.component.d.ts +3 -1
- package/date-picker/date-helper.service.d.ts +3 -0
- package/date-picker/date-picker.config.d.ts +7 -1
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +3 -1
- package/date-picker/lib/calendar/calendar-header.component.d.ts +3 -1
- package/date-picker/lib/calendar/calendar-table.component.d.ts +3 -1
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +4 -1
- package/date-picker/lib/popups/date-popup.component.d.ts +3 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +3 -1
- package/date-picker/styles/calendar.scss +1 -1
- package/date-picker/styles/decade-panel.scss +1 -1
- package/date-picker/styles/picker.scss +1 -1
- package/date-picker/styles/range-picker.scss +3 -3
- package/date-picker/styles/year-panel.scss +2 -2
- package/date-range/date-range.component.d.ts +2 -0
- package/date-range/optional-dates/optional-dates.component.d.ts +1 -0
- package/dialog/confirm/confirm.component.d.ts +1 -0
- package/dialog/confirm.config.d.ts +14 -7
- package/dialog/styles/dialog.scss +6 -6
- package/dropdown/styles/dropdown.scss +3 -3
- package/empty/empty.component.d.ts +14 -9
- package/empty/empty.config.d.ts +3 -0
- package/empty/styles/empty.scss +22 -2
- package/esm2022/autocomplete/autocomplete.component.mjs +5 -3
- package/esm2022/calendar/calendar-header.component.mjs +9 -5
- package/esm2022/carousel/carousel.component.mjs +3 -3
- package/esm2022/cascader/cascader.component.mjs +5 -3
- package/esm2022/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/color-picker/color-picker-panel.component.mjs +5 -3
- package/esm2022/copy/copy.directive.mjs +7 -5
- package/esm2022/core/index.mjs +2 -1
- package/esm2022/core/theme/index.mjs +3 -0
- package/esm2022/core/theme/store.mjs +42 -0
- package/esm2022/core/theme/theme.mjs +2 -0
- package/esm2022/date-picker/abstract-picker.component.mjs +4 -2
- package/esm2022/date-picker/base-picker.component.mjs +2 -2
- package/esm2022/date-picker/date-helper.service.mjs +4 -2
- package/esm2022/date-picker/date-picker.component.mjs +1 -1
- package/esm2022/date-picker/date-picker.config.mjs +55 -2
- package/esm2022/date-picker/date-picker.directive.mjs +1 -1
- package/esm2022/date-picker/date-picker.service.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -3
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -1
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -1
- package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -5
- package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +9 -4
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -2
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +5 -3
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -3
- package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
- package/esm2022/date-picker/month-picker.component.mjs +1 -1
- package/esm2022/date-picker/quarter-picker.component.mjs +1 -1
- package/esm2022/date-picker/range-picker.component.mjs +1 -1
- package/esm2022/date-picker/range-picker.directive.mjs +1 -1
- package/esm2022/date-picker/week-picker.component.mjs +1 -1
- package/esm2022/date-picker/year-picker.component.mjs +1 -1
- package/esm2022/date-range/date-range.component.mjs +7 -4
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +4 -2
- package/esm2022/dialog/confirm/confirm.component.mjs +14 -3
- package/esm2022/dialog/confirm.config.mjs +17 -2
- package/esm2022/empty/empty.component.mjs +7 -2
- package/esm2022/empty/empty.config.mjs +4 -1
- package/esm2022/empty/svgs.mjs +103 -8
- package/esm2022/form/form-validator-loader.mjs +17 -15
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +5 -3
- package/esm2022/i18n/i18n.mjs +2 -0
- package/esm2022/i18n/i18n.service.mjs +39 -0
- package/esm2022/i18n/i18n.token.mjs +8 -0
- package/esm2022/i18n/index.mjs +7 -0
- package/esm2022/i18n/locale.mjs +14 -0
- package/esm2022/i18n/locales/en-us.mjs +147 -0
- package/esm2022/i18n/locales/zh-cn.mjs +127 -0
- package/esm2022/i18n/ngx-tethys-i18n.mjs +5 -0
- package/esm2022/notify/notify.component.mjs +3 -3
- package/esm2022/pagination/pagination.component.mjs +22 -5
- package/esm2022/pagination/pagination.module.mjs +26 -5
- package/esm2022/pagination/pagination.pipe.mjs +22 -1
- package/esm2022/radio/button/radio-button.component.mjs +1 -1
- package/esm2022/radio/radio.component.mjs +1 -1
- package/esm2022/result/result.component.mjs +3 -3
- package/esm2022/select/custom-select/custom-select.component.mjs +9 -3
- package/esm2022/strength/strength.component.mjs +21 -20
- package/esm2022/table/table-skeleton.component.mjs +3 -3
- package/esm2022/time-picker/time-picker-panel.component.mjs +5 -3
- package/esm2022/time-picker/time-picker.component.mjs +4 -2
- package/esm2022/transfer/transfer-list.component.mjs +5 -3
- package/esm2022/tree-select/tree-select.component.mjs +5 -3
- package/esm2022/version.mjs +2 -2
- package/esm2022/watermark/config.mjs +2 -2
- package/esm2022/watermark/watermark.directive.mjs +18 -10
- package/fesm2022/ngx-tethys-autocomplete.mjs +4 -2
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +8 -5
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +2 -2
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +4 -2
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +4 -2
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +6 -4
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +42 -2
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +95 -30
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +8 -4
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +27 -2
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +111 -8
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +16 -14
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +4 -2
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +338 -0
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -0
- package/fesm2022/ngx-tethys-notify.mjs +2 -2
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +66 -7
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +2 -2
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +8 -2
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +20 -19
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +2 -2
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +6 -3
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +4 -2
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +4 -2
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +18 -10
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/form/form-validator-loader.d.ts +2 -0
- package/form/styles/form-check.scss +1 -1
- package/form/styles/forms.scss +2 -3
- package/form/styles/mixin.scss +6 -5
- package/guider/guider-hint/guider-hint.component.d.ts +3 -1
- package/guider/styles/guider-tip.scss +2 -1
- package/i18n/i18n.d.ts +143 -0
- package/i18n/i18n.service.d.ts +19 -0
- package/i18n/i18n.token.d.ts +5 -0
- package/i18n/index.d.ts +6 -0
- package/i18n/locale.d.ts +4 -0
- package/i18n/locales/en-us.d.ts +147 -0
- package/i18n/locales/zh-cn.d.ts +126 -0
- package/icon/examples/all/all.component.scss +3 -1
- package/image/styles/image.scss +15 -11
- package/input/styles/input-group.scss +1 -1
- package/input/styles/input.scss +2 -2
- package/layout/examples/sidebar/sidebar.component.scss +1 -1
- package/layout/styles/layout.scss +3 -3
- package/menu/examples/theme/theme.component.scss +0 -8
- package/menu/styles/theme.scss +4 -4
- package/message/styles/message.scss +1 -1
- package/nav/examples/basic/basic.component.scss +1 -1
- package/nav/examples/extra/extra.component.scss +1 -1
- package/nav/examples/fill/fill.component.scss +1 -1
- package/nav/examples/lite/lite.component.scss +1 -1
- package/nav/examples/pills/pills.component.scss +1 -1
- package/nav/examples/responsive/responsive.component.scss +1 -1
- package/nav/examples/size/size.component.scss +1 -1
- package/nav/examples/tabs/tabs.component.scss +1 -1
- package/nav/examples/type/type.component.scss +1 -1
- package/nav/examples/vertical/vertical.component.scss +1 -1
- package/notify/styles/notify.scss +4 -4
- package/package.json +7 -1
- package/pagination/pagination.component.d.ts +4 -1
- package/pagination/pagination.module.d.ts +1 -1
- package/pagination/pagination.pipe.d.ts +6 -0
- package/pagination/styles/pagination.scss +2 -2
- package/popover/styles.scss +3 -3
- package/property/styles/properties.scss +1 -1
- package/radio/radio.component.d.ts +0 -2
- package/resizable/examples/line/line.component.scss +3 -1
- package/resizable/examples/style.scss +7 -5
- package/result/styles/result.scss +25 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/styles/mixin.scss +2 -3
- package/segment/styles/segment.scss +1 -1
- package/select/custom-select/custom-select.component.d.ts +1 -0
- package/select/styles/select.scss +1 -1
- package/shared/option/styles/option.mixin.scss +1 -1
- package/shared/select/styles/select.mixin.scss +2 -2
- package/slide/examples/drawer-container/drawer-container.component.scss +1 -1
- package/slide/examples/layout/layout.component.scss +4 -2
- package/slide/styles/slide.scss +3 -2
- package/slider/slider.scss +2 -2
- package/stepper/examples/basic/basic.component.scss +3 -1
- package/stepper/examples/icon/icon.component.scss +3 -1
- package/stepper/styles/stepper.scss +7 -3
- package/strength/strength.component.d.ts +21 -2
- package/styles/bootstrap/_variables.scss +14 -876
- package/styles/bootstrap/utilities/_background.scss +27 -5
- package/styles/bootstrap/utilities/_text.scss +29 -31
- package/styles/index.scss +2 -1
- package/styles/mixins/background-variant.scss +2 -10
- package/styles/mixins/utilities.scss +2 -11
- package/styles/modules/cdk/drag-drop.scss +6 -8
- package/styles/modules/close.scss +1 -1
- package/styles/modules/reboot.scss +1 -1
- package/styles/modules/tables.scss +1 -1
- package/styles/modules/utils.scss +0 -17
- package/styles/theme/dark.scss +70 -0
- package/styles/theme/default.scss +70 -0
- package/styles/theme/index.scss +2 -0
- package/styles/variables.scss +114 -76
- package/switch/styles/mixin.scss +0 -13
- package/table/styles/table.scss +7 -19
- package/tabs/styles/tabs.scss +1 -1
- package/tag/styles/mixin.scss +7 -42
- package/tag/styles/tag.scss +2 -2
- package/time-picker/styles/time-panel.scss +1 -1
- package/time-picker/time-picker-panel.component.d.ts +3 -1
- package/time-picker/time-picker.component.d.ts +3 -1
- package/timeline/styles/timeline.scss +2 -2
- package/tooltip/styles.scss +4 -4
- package/transfer/styles/transfer.scss +2 -2
- package/transfer/transfer-list.component.d.ts +3 -1
- package/tree/styles/tree.scss +3 -5
- package/tree-select/tree-select.component.d.ts +1 -0
- package/watermark/config.d.ts +1 -1
- package/watermark/watermark.directive.d.ts +23 -2
- package/carousel/styles/index.scss +0 -1
- package/carousel/styles/variables.scss +0 -5
|
@@ -7,7 +7,8 @@ import { ThySelect } from 'ngx-tethys/select';
|
|
|
7
7
|
import { ThyEnterDirective, ThyOption } from 'ngx-tethys/shared';
|
|
8
8
|
import { coerceBooleanProperty, isTemplateRef } from 'ngx-tethys/util';
|
|
9
9
|
import { DEFAULT_RANGE_COUNT, PaginationDefaultConfig, THY_PAGINATION_CONFIG } from './pagination.config';
|
|
10
|
-
import { PaginationTotalCountFormat } from './pagination.pipe';
|
|
10
|
+
import { PaginationPerPageFormat, PaginationTotalCountFormat } from './pagination.pipe';
|
|
11
|
+
import { injectLocale, useLocale } from 'ngx-tethys/i18n';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "@angular/forms";
|
|
13
14
|
/**
|
|
@@ -19,8 +20,15 @@ export class ThyPagination {
|
|
|
19
20
|
constructor() {
|
|
20
21
|
this.paginationConfig = inject(THY_PAGINATION_CONFIG, { optional: true });
|
|
21
22
|
this.cdr = inject(ChangeDetectorRef);
|
|
23
|
+
this.allLocale = useLocale();
|
|
24
|
+
this.locale = injectLocale('pagination');
|
|
22
25
|
this.isTemplateRef = isTemplateRef;
|
|
23
|
-
this.config = Object.assign({}, PaginationDefaultConfig,
|
|
26
|
+
this.config = Object.assign({}, PaginationDefaultConfig, {
|
|
27
|
+
firstText: this.locale().firstPage,
|
|
28
|
+
lastText: this.locale().lastPage,
|
|
29
|
+
totalPagesFormat: this.locale().totalCount,
|
|
30
|
+
unit: this.locale().defaultUnit
|
|
31
|
+
}, this.paginationConfig.main);
|
|
24
32
|
/**
|
|
25
33
|
* 是否禁用
|
|
26
34
|
*/
|
|
@@ -278,11 +286,20 @@ export class ThyPagination {
|
|
|
278
286
|
this.pageSizeChanged.emit(event);
|
|
279
287
|
}
|
|
280
288
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
281
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyPagination, isStandalone: true, selector: "thy-pagination", inputs: { thyPageIndex: ["thyPageIndex", "thyPageIndex", numberAttribute], thyPageSize: ["thyPageSize", "thyPageSize", numberAttribute], thyTotal: ["thyTotal", "thyTotal", numberAttribute], thyCustomPages: "thyCustomPages", disabled: ["thyDisabled", "disabled", coerceBooleanProperty], showQuickJumper: ["thyShowQuickJumper", "showQuickJumper", coerceBooleanProperty], showTotalPageCount: ["thyShowTotalPageCount", "showTotalPageCount", coerceBooleanProperty], size: ["thySize", "size"], maxCount: ["thyMaxCount", "maxCount", numberAttribute], marginalCount: ["thyMarginalCount", "marginalCount", numberAttribute], thyRangeCount: ["thyRangeCount", "thyRangeCount", numberAttribute], showSizeChanger: ["thyShowSizeChanger", "showSizeChanger", coerceBooleanProperty], pageSizeOptions: ["thyPageSizeOptions", "pageSizeOptions"], hideOnSinglePage: ["thyHideOnSinglePage", "hideOnSinglePage", coerceBooleanProperty], unit: ["thyUnit", "unit"], showTotal: ["thyShowTotal", "showTotal"] }, outputs: { pageIndexChange: "thyPageIndexChange", pageChanged: "thyPageChanged", pageSizeChanged: "thyPageSizeChanged" }, host: { properties: { "class.thy-pagination": "this.isPaginationClass", "class.thy-pagination-has-total": "this.showTotal" } }, ngImport: i0, template: "@if ((hideOnSinglePage && total > pageSize) || !hideOnSinglePage) {\n @if (showTotal) {\n <div class=\"thy-pagination-total\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n
|
|
289
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyPagination, isStandalone: true, selector: "thy-pagination", inputs: { thyPageIndex: ["thyPageIndex", "thyPageIndex", numberAttribute], thyPageSize: ["thyPageSize", "thyPageSize", numberAttribute], thyTotal: ["thyTotal", "thyTotal", numberAttribute], thyCustomPages: "thyCustomPages", disabled: ["thyDisabled", "disabled", coerceBooleanProperty], showQuickJumper: ["thyShowQuickJumper", "showQuickJumper", coerceBooleanProperty], showTotalPageCount: ["thyShowTotalPageCount", "showTotalPageCount", coerceBooleanProperty], size: ["thySize", "size"], maxCount: ["thyMaxCount", "maxCount", numberAttribute], marginalCount: ["thyMarginalCount", "marginalCount", numberAttribute], thyRangeCount: ["thyRangeCount", "thyRangeCount", numberAttribute], showSizeChanger: ["thyShowSizeChanger", "showSizeChanger", coerceBooleanProperty], pageSizeOptions: ["thyPageSizeOptions", "pageSizeOptions"], hideOnSinglePage: ["thyHideOnSinglePage", "hideOnSinglePage", coerceBooleanProperty], unit: ["thyUnit", "unit"], showTotal: ["thyShowTotal", "showTotal"] }, outputs: { pageIndexChange: "thyPageIndexChange", pageChanged: "thyPageChanged", pageSizeChanged: "thyPageSizeChanged" }, host: { properties: { "class.thy-pagination": "this.isPaginationClass", "class.thy-pagination-has-total": "this.showTotal" } }, ngImport: i0, template: "@if ((hideOnSinglePage && total > pageSize) || !hideOnSinglePage) {\n @if (showTotal) {\n <div class=\"thy-pagination-total\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n {{ locale().order }}<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n {{ locale().total }}<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectPageSize\" [thySize]=\"selectSize\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option\n class=\"page-size-option\"\n [thyValue]=\"option\"\n [thyLabelText]=\"option + (config.unit | paginationPerPageFormat: allLocale())\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n {{ locale().jumpTo }}\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n {{ locale().page }}\n </div>\n </div>\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThySelect, selector: "thy-select,thy-custom-select", inputs: ["thyDropdownWidthMode", "thyShowSearch", "thyPlaceHolder", "thyServerSearch", "thyLoadState", "thyAutoActiveFirstItem", "thyMode", "thySize", "thyEmptyStateText", "thyEmptySearchMessageText", "thyEnableScrollLoad", "thyAllowClear", "thyDisabled", "thySortComparator", "thyFooterTemplate", "thyPlacement", "thyOrigin", "thyFooterClass", "thyAutoExpand", "thyHasBackdrop", "thyMaxTagCount", "thyBorderless", "thyOptions", "thyPreset"], outputs: ["thyOnSearch", "thyOnScrollToBottom", "thyOnExpandStatusChange"], exportAs: ["thySelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyOption, selector: "thy-option", inputs: ["thyValue", "thyRawValue", "thyLabelText", "thyShowOptionCustom", "thySearchKey", "thyDisabled"], outputs: ["selectionChange", "visibleChange"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "pipe", type: PaginationTotalCountFormat, name: "paginationTotalPagesFormat" }, { kind: "pipe", type: PaginationPerPageFormat, name: "paginationPerPageFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
282
290
|
}
|
|
283
291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPagination, decorators: [{
|
|
284
292
|
type: Component,
|
|
285
|
-
args: [{ selector: 'thy-pagination', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
293
|
+
args: [{ selector: 'thy-pagination', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
294
|
+
NgTemplateOutlet,
|
|
295
|
+
ThySelect,
|
|
296
|
+
FormsModule,
|
|
297
|
+
ThyOption,
|
|
298
|
+
ThyIcon,
|
|
299
|
+
ThyEnterDirective,
|
|
300
|
+
PaginationTotalCountFormat,
|
|
301
|
+
PaginationPerPageFormat
|
|
302
|
+
], template: "@if ((hideOnSinglePage && total > pageSize) || !hideOnSinglePage) {\n @if (showTotal) {\n <div class=\"thy-pagination-total\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n {{ locale().order }}<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n {{ locale().total }}<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectPageSize\" [thySize]=\"selectSize\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option\n class=\"page-size-option\"\n [thyValue]=\"option\"\n [thyLabelText]=\"option + (config.unit | paginationPerPageFormat: allLocale())\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n {{ locale().jumpTo }}\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n {{ locale().page }}\n </div>\n </div>\n }\n </div>\n}\n" }]
|
|
286
303
|
}], propDecorators: { thyPageIndex: [{
|
|
287
304
|
type: Input,
|
|
288
305
|
args: [{ transform: numberAttribute }]
|
|
@@ -346,4 +363,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
346
363
|
type: Input,
|
|
347
364
|
args: ['thyShowTotal']
|
|
348
365
|
}] } });
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFFTixlQUFlLEVBQ2YsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBdUIsTUFBTSxxQkFBcUIsQ0FBQztBQUMvSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRS9EOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sYUFBYTtJQVAxQjtRQVFZLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBRSxDQUFDO1FBQ3RFLFFBQUcs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QUUscUJBQXFCLEVBQUU7Z0JBT3JFLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxTQUFTO2dCQVVjLGVBQWU7c0JBQTVDLE1BQU07dUJBQUMsb0JBQW9CO2dCQUtGLFdBQVc7c0JBQXBDLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUVNLGVBQWU7c0JBQTVDLE1BQU07dUJBQUMsb0JBQW9CO2dCQTRCUyxpQkFBaUI7c0JBQXJELFdBQVc7dUJBQUMsc0JBQXNCO2dCQVFuQyxTQUFTO3NCQUZSLFdBQVc7dUJBQUMsZ0NBQWdDOztzQkFDNUMsS0FBSzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlTZWxlY3QgfSBmcm9tICduZ3gtdGV0aHlzL3NlbGVjdCc7XG5pbXBvcnQgeyBUaHlFbnRlckRpcmVjdGl2ZSwgVGh5T3B0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeVBhZ2luYXRpb25Db25maWdNb2RlbCB9IGZyb20gJy4vcGFnaW5hdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBERUZBVUxUX1JBTkdFX0NPVU5ULCBQYWdpbmF0aW9uRGVmYXVsdENvbmZpZywgVEhZX1BBR0lOQVRJT05fQ09ORklHLCBUaHlQYWdpbmF0aW9uQ29uZmlnIH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNvbmZpZyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uVG90YWxDb3VudEZvcm1hdCB9IGZyb20gJy4vcGFnaW5hdGlvbi5waXBlJztcblxuLyoqXG4gKiDliIbpobXnu4Tku7bvvIzlvZPmlbDmja7ph4/ov4flpJrml7bvvIzkvb/nlKjliIbpobXliIbop6PmlbDmja7jgIJcbiAqIEBuYW1lIHRoeS1wYWdpbmF0aW9uXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktcGFnaW5hdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIFRoeVNlbGVjdCwgRm9ybXNNb2R1bGUsIFRoeU9wdGlvbiwgVGh5SWNvbiwgVGh5RW50ZXJEaXJlY3RpdmUsIFBhZ2luYXRpb25Ub3RhbENvdW50Rm9ybWF0XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlQYWdpbmF0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHBhZ2luYXRpb25Db25maWcgPSBpbmplY3QoVEhZX1BBR0lOQVRJT05fQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcbiAgICBwdWJsaWMgY29uZmlnOiBUaHlQYWdpbmF0aW9uQ29uZmlnTW9kZWwgPSBPYmplY3QuYXNzaWduKHt9LCBQYWdpbmF0aW9uRGVmYXVsdENvbmZpZywgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLm1haW4pO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5b2T5YmN6aG177yM5pSv5oyB5Y+M5ZCR57uR5a6aXG4gICAgICogQGRlZmF1bHQgMVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVBhZ2VJbmRleChwYWdlSW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IHBhZ2VJbmRleDtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZUluZGV4KHBhZ2VJbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmr4/pobXmnaHnm67mlbDph49cbiAgICAgKiBAZGVmYXVsdCAyMFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVBhZ2VTaXplKHBhZ2VTaXplOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgICAgICB0aGlzLnNlbGVjdFBhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VDb3VudCgpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplUGFnZXModGhpcy5wYWdlSW5kZXgsIHRoaXMucGFnZUNvdW50KTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oC76aG15pWwIOS4jiB0b3RhbFBhZ2VzIOS6jOmAieS4gOS8oOWFpVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVRvdGFsKHRvdGFsOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy50b3RhbCA9IHRvdGFsO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlQ291bnQoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZUluZGV4KHRoaXMucGFnZUluZGV4KTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5YiG6aG16aG156CB77yM6K6+572u6Ieq5a6a5LmJ5YiG6aG16aG156CB5ZCO5bCG5LiN5qC55o2uIFRvdGFsIOWSjCBQYWdlU2l6ZSDmnaXoh6rliqjorqHnrpfpobXnoIHvvIzlrozlhajku6XkvKDlhaXnmoTpobXnoIHkuLrlh4ZcbiAgICAgKiBAdHlwZSBudW1iZXJbXVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUN1c3RvbVBhZ2VzKHBhZ2VzOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLmN1c3RvbVBhZ2VzID0gcGFnZXM7XG4gICAgICAgIHRoaXMuY29uZmlnLnNob3dUb3RhbFBhZ2VDb3VudCA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlQ291bnQoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2VzKHRoaXMucGFnZUluZGV4LCB0aGlzLnBhZ2VDb3VudCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqFxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5RGlzYWJsZWQnLCB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pi+56S65b+r6YCf6Lez6L2sXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeVNob3dRdWlja0p1bXBlcicsIHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHNob3dRdWlja0p1bXBlcih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmNvbmZpZy5zaG93UXVpY2tKdW1wZXIgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7mmK/lkKbmmL7npLrmgLvpobXmlbDkv6Hmga9cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlTaG93VG90YWxQYWdlQ291bnQnLCB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCBzaG93VG90YWxQYWdlQ291bnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jb25maWcuc2hvd1RvdGFsUGFnZUNvdW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5YiG6aG157uE5Lu255qE5aSn5bCPXG4gICAgICogQHR5cGUgc20gfCBtZCB8IGxnXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeVNpemUnKVxuICAgIHNldCBzaXplKHNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJykge1xuICAgICAgICB0aGlzLnNlbGVjdFNpemUgPSBzaXplO1xuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5hZGRDbGFzcyhgdGh5LXBhZ2luYXRpb24tJHtzaXplfWApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruacgOWkp+aYvuekuuaVsOmHj++8jOi2heWHuuacgOWkp+aYvuekuuaVsOWQjuS8muiHquWKqOi/m+ihjOWIhuWJsuaYvuekulxuICAgICAqIEBkZWZhdWx0IDlcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeU1heENvdW50JywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgICBzZXQgbWF4Q291bnQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLmNvbmZpZy5tYXhDb3VudCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9rui+uee8mOaYvuekuuaVsOmHj1xuICAgICAqIEBkZWZhdWx0IDJcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeU1hcmdpbmFsQ291bnQnLCB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBtYXJnaW5hbENvdW50OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7kuK3pl7TljLrln5/mmL7npLrmlbDph49cbiAgICAgKiBAZGVmYXVsdCA1XG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5UmFuZ2VDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5jb25maWcucmFuZ2VDb3VudCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE1hcmdpbmFsQ291bnQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlTaG93U2l6ZUNoYW5nZXInLCB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCBzaG93U2l6ZUNoYW5nZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jb25maWcuc2hvd1NpemVDaGFuZ2VyID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHR5cGUgbnVtYmVyW11cbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeVBhZ2VTaXplT3B0aW9ucycpXG4gICAgc2V0IHBhZ2VTaXplT3B0aW9ucyh2YWx1ZTogbnVtYmVyW10pIHtcbiAgICAgICAgdGhpcy5jb25maWcucGFnZVNpemVPcHRpb25zID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Y+q5pyJ5LiA6aG15pe25piv5ZCm6ZqQ6JeP5YiG6aG15ZmoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeUhpZGVPblNpbmdsZVBhZ2UnLCB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSBoaWRlT25TaW5nbGVQYWdlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5YiG6aG15Zmo5Y2V5L2NXG4gICAgICogQGRlZmF1bHQg5p2hXG4gICAgICovXG4gICAgQElucHV0KCd0aHlVbml0JylcbiAgICBzZXQgdW5pdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb25maWcudW5pdCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6aG156CB5pS55Y+Y55qE5Zue6LCDXG4gICAgICovXG4gICAgQE91dHB1dCgndGh5UGFnZUluZGV4Q2hhbmdlJykgcGFnZUluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiDkuI5Cb290c3RyYXAgcGFnaW5hdGlvbiDlhbzlrrnvvIzlkI7nu63niYjmnKzkvJrov5vooYzliKDpmaTvvIzlj4LmlbDkv53mjIHkuI4gYm9vdHN0cmFwIOS4gOiHtFxuICAgICAqL1xuICAgIEBPdXRwdXQoJ3RoeVBhZ2VDaGFuZ2VkJykgcGFnZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcGFnZTogbnVtYmVyIH0+KCk7XG5cbiAgICBAT3V0cHV0KCd0aHlQYWdlU2l6ZUNoYW5nZWQnKSBwYWdlU2l6ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIHB1YmxpYyBwYWdlczogeyBpbmRleD86IG51bWJlcjsgdGV4dD86IHN0cmluZzsgYWN0aXZlPzogYm9vbGVhbiB9W10gPSBbXTtcblxuICAgIHB1YmxpYyBwYWdlSW5kZXggPSAxO1xuXG4gICAgcHVibGljIHBhZ2VTaXplOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgcGFnZUNvdW50OiBudW1iZXI7XG5cbiAgICBwdWJsaWMgY3VzdG9tUGFnZXM6IG51bWJlcltdO1xuXG4gICAgcHVibGljIHRvdGFsOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgcmFuZ2UgPSB7IGZyb206IDAsIHRvOiAwIH07XG5cbiAgICBwdWJsaWMgZmlyc3RJbmRleCA9IDE7XG5cbiAgICBwdWJsaWMgaXNIaWRlT25TaW5nbGVQYWdlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgcHVibGljIHNlbGVjdFNpemUgPSAnbWQnO1xuXG4gICAgcHVibGljIHNlbGVjdFBhZ2VTaXplOiBOdW1iZXIgPSAyMDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LXBhZ2luYXRpb24nKSBpc1BhZ2luYXRpb25DbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmmL7npLrojIPlm7Tlkox0b3RhbFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktcGFnaW5hdGlvbi1oYXMtdG90YWwnKVxuICAgIEBJbnB1dCgndGh5U2hvd1RvdGFsJylcbiAgICBzaG93VG90YWw6IGJvb2xlYW4gfCBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogbnVtYmVyOyByYW5nZTogeyBmcm9tOiBudW1iZXI7IHRvOiBudW1iZXIgfSB9PiA9IGZhbHNlO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0TWFyZ2luYWxDb3VudCh0aGlzLmNvbmZpZy5yYW5nZUNvdW50KTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlQ291bnQoKTtcbiAgICAgICAgdGhpcy5zZXRQYWdlSW5kZXgodGhpcy5wYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1hcmdpbmFsQ291bnQocmFuZ2U6IG51bWJlcikge1xuICAgICAgICBpZiAoIXRoaXMubWFyZ2luYWxDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5tYXJnaW5hbENvdW50ID0gcmFuZ2UgPD0gREVGQVVMVF9SQU5HRV9DT1VOVCA/IDEgOiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRQYWdlSW5kZXgocGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlSW5kZXggPiB0aGlzLnBhZ2VDb3VudCA/IHRoaXMucGFnZUNvdW50IDogcGFnZUluZGV4IHx8IDE7XG4gICAgICAgIGNvbnN0IHRvUGFnZVNpemUgPSB0aGlzLnBhZ2VJbmRleCAqIHRoaXMucGFnZVNpemU7XG4gICAgICAgIHRoaXMucmFuZ2UgPSB7XG4gICAgICAgICAgICBmcm9tOiAodGhpcy5wYWdlSW5kZXggLSAxKSAqIHRoaXMucGFnZVNpemUgKyAxLFxuICAgICAgICAgICAgdG86IHRvUGFnZVNpemUgPiB0aGlzLnRvdGFsID8gdGhpcy50b3RhbCA6IHRvUGFnZVNpemVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplUGFnZXModGhpcy5wYWdlSW5kZXgsIHRoaXMucGFnZUNvdW50KTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQYWdlQ291bnQoKSB7XG4gICAgICAgIGxldCBwYWdlQ291bnQgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5jdXN0b21QYWdlcyAmJiB0aGlzLmN1c3RvbVBhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHBhZ2VDb3VudCA9IHRoaXMuY3VzdG9tUGFnZXNbdGhpcy5jdXN0b21QYWdlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhZ2VDb3VudCA9IHRoaXMucGFnZVNpemUgPCAxID8gMSA6IE1hdGguY2VpbCh0aGlzLnRvdGFsIC8gdGhpcy5wYWdlU2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYWdlQ291bnQgPSBNYXRoLm1heChwYWdlQ291bnQgfHwgMCwgMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYWtlUGFnZShpbmRleDogbnVtYmVyLCB0ZXh0OiBzdHJpbmcsIGFjdGl2ZTogYm9vbGVhbik6IHsgaW5kZXg6IG51bWJlcjsgdGV4dDogc3RyaW5nOyBhY3RpdmU6IGJvb2xlYW4gfSB7XG4gICAgICAgIHJldHVybiB7IGluZGV4LCB0ZXh0LCBhY3RpdmUgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVQYWdlcyhwYWdlSW5kZXg6IG51bWJlciwgcGFnZUNvdW50OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tUGFnZXMgJiYgdGhpcy5jdXN0b21QYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VzID0gdGhpcy5jdXN0b21QYWdlcy5tYXAocGFnZSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHBhZ2UudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBwYWdlID09PSArcGFnZUluZGV4XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBhZ2VzID0gW107XG4gICAgICAgIGNvbnN0IG1hcmdpbmFsQ291bnQgPSB0aGlzLm1hcmdpbmFsQ291bnQ7XG4gICAgICAgIGNvbnN0IHJhbmdlQ291bnQgPSB0aGlzLmNvbmZpZy5yYW5nZUNvdW50O1xuICAgICAgICBjb25zdCBtYXhDb3VudCA9IHRoaXMuY29uZmlnLm1heENvdW50O1xuICAgICAgICBjb25zdCBpc01heFNpemVkID0gcGFnZUNvdW50ID4gbWF4Q291bnQ7XG4gICAgICAgIGlmIChpc01heFNpemVkKSB7XG4gICAgICAgICAgICBjb25zdCBiZWZvcmVQYWdlcyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgYWZ0ZXJQYWdlcyA9IFtdO1xuXG4gICAgICAgICAgICAvLyBtYWluUGFnZXNcbiAgICAgICAgICAgIGxldCBzdGFydCA9IE1hdGguY2VpbChNYXRoLm1heChtYXJnaW5hbENvdW50ICsgMSwgcGFnZUluZGV4IC0gKHJhbmdlQ291bnQgLSAxKSAvIDIpKTtcbiAgICAgICAgICAgIGxldCBlbmQgPSBNYXRoLmNlaWwoTWF0aC5taW4ocGFnZUluZGV4ICsgKHJhbmdlQ291bnQgLSAxKSAvIDIsIHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQpKTtcbiAgICAgICAgICAgIGlmIChwYWdlSW5kZXggLSAxIDwgbWFyZ2luYWxDb3VudCkge1xuICAgICAgICAgICAgICAgIGVuZCA9IHJhbmdlQ291bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFnZUNvdW50IC0gcGFnZUluZGV4IDw9IG1hcmdpbmFsQ291bnQpIHtcbiAgICAgICAgICAgICAgICBzdGFydCA9IHBhZ2VDb3VudCAtIHJhbmdlQ291bnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspIHtcbiAgICAgICAgICAgICAgICBwYWdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBpID09PSArcGFnZUluZGV4XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGJlZm9yZVBhZ2VzXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBtYXJnaW5hbENvdW50OyBpKyspIHtcbiAgICAgICAgICAgICAgICBiZWZvcmVQYWdlcy5wdXNoKHRoaXMubWFrZVBhZ2UoaSwgaS50b1N0cmluZygpLCBpID09PSBwYWdlSW5kZXgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhZ2VJbmRleCAtIE1hdGguY2VpbChyYW5nZUNvdW50IC8gMikgPiB0aGlzLmZpcnN0SW5kZXggJiYgbWFyZ2luYWxDb3VudCArIDEgPCBzdGFydCkge1xuICAgICAgICAgICAgICAgIGJlZm9yZVBhZ2VzLnB1c2godGhpcy5tYWtlUGFnZShNYXRoLmNlaWwoKG1hcmdpbmFsQ291bnQgKyBzdGFydCkgLyAyKSwgJ8K3wrfCtycsIG51bGwpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYWZ0ZXJQYWdlc1xuICAgICAgICAgICAgaWYgKHBhZ2VJbmRleCArIE1hdGguY2VpbChyYW5nZUNvdW50IC8gMikgPCBwYWdlQ291bnQgJiYgcGFnZUNvdW50IC0gbWFyZ2luYWxDb3VudCA+IGVuZCkge1xuICAgICAgICAgICAgICAgIGFmdGVyUGFnZXMucHVzaCh0aGlzLm1ha2VQYWdlKE1hdGguY2VpbCgocGFnZUNvdW50IC0gbWFyZ2luYWxDb3VudCArIDEgKyBlbmQpIC8gMiksICfCt8K3wrcnLCBudWxsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gcGFnZUNvdW50IC0gbWFyZ2luYWxDb3VudCArIDE7IGkgPD0gcGFnZUNvdW50OyBpKyspIHtcbiAgICAgICAgICAgICAgICBhZnRlclBhZ2VzLnB1c2godGhpcy5tYWtlUGFnZShpLCBpLnRvU3RyaW5nKCksIGkgPT09IHBhZ2VJbmRleCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwYWdlcyA9IFsuLi5iZWZvcmVQYWdlcywgLi4ucGFnZXMsIC4uLmFmdGVyUGFnZXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gcGFnZUNvdW50OyBpKyspIHtcbiAgICAgICAgICAgICAgICBwYWdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBpID09PSArcGFnZUluZGV4XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYWdlcyA9IHBhZ2VzO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFnZUNoYW5nZShwYWdlSW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnBhZ2VJbmRleENoYW5nZS5lbWl0KHBhZ2VJbmRleCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdCh7IHBhZ2U6IHBhZ2VJbmRleCB9KTtcbiAgICB9XG5cbiAgICBzZWxlY3RQYWdlKHBhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHBhZ2VJbmRleCA9PT0gdGhpcy5maXJzdEluZGV4IC0gMSB8fCBwYWdlSW5kZXggPT09IHRoaXMucGFnZUNvdW50ICsgMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0UGFnZUluZGV4KHBhZ2VJbmRleCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZSh0aGlzLnBhZ2VJbmRleCk7XG4gICAgfVxuXG4gICAganVtcFBhZ2UoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcGFnZUluZGV4ID0gK2lucHV0LnZhbHVlO1xuICAgICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihwYWdlSW5kZXgpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdFBhZ2UocGFnZUluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIG9uUGFnZVNpemVDaGFuZ2UoZXZlbnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnBhZ2VTaXplID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgIHRoaXMuc2V0UGFnZUluZGV4KHRoaXMucGFnZUluZGV4KTtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiQGlmICgoaGlkZU9uU2luZ2xlUGFnZSAmJiB0b3RhbCA+IHBhZ2VTaXplKSB8fCAhaGlkZU9uU2luZ2xlUGFnZSkge1xuICBAaWYgKHNob3dUb3RhbCkge1xuICAgIDxkaXYgY2xhc3M9XCJ0aHktcGFnaW5hdGlvbi10b3RhbFwiPlxuICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihzaG93VG90YWwpKSB7XG4gICAgICAgIEBpZiAodG90YWwgPiAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLTNcIj5cbiAgICAgICAgICAgIOesrDxzcGFuIGNsYXNzPVwibnVtYmVyXCI+IHt7IHJhbmdlLmZyb20gfX0te3sgcmFuZ2UudG8gfX0gPC9zcGFuPnt7IGNvbmZpZy51bml0IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIOWFsTxzcGFuIGNsYXNzPVwibnVtYmVyXCI+IHt7IHRvdGFsIH19IDwvc3Bhbj57eyBjb25maWcudW5pdCB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNob3dUb3RhbFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdG90YWwsIHJhbmdlOiByYW5nZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tY29udGVudFwiPlxuICAgIEBpZiAoY29uZmlnLnNob3dTaXplQ2hhbmdlcikge1xuICAgICAgPGRpdiBjbGFzcz1cInRoeS1wYWdpbmF0aW9uLXNpemVcIj5cbiAgICAgICAgPHRoeS1zZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RQYWdlU2l6ZVwiIFt0aHlTaXplXT1cInNlbGVjdFNpemVcIiBbdGh5RGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAobmdNb2RlbENoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICBAZm9yIChvcHRpb24gb2YgY29uZmlnLnBhZ2VTaXplT3B0aW9uczsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICA8dGh5LW9wdGlvbiBjbGFzcz1cInBhZ2Utc2l6ZS1vcHRpb25cIiBbdGh5VmFsdWVdPVwib3B0aW9uXCIgW3RoeUxhYmVsVGV4dF09XCJvcHRpb24gKyAnICcgKyBjb25maWcudW5pdCArICcv6aG1J1wiPjwvdGh5LW9wdGlvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdGh5LXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8dWwgY2xhc3M9XCJ0aHktcGFnaW5hdGlvbi1wYWdlc1wiPlxuICAgICAgQGlmIChjb25maWcuYm91bmRhcnlMaW5rcykge1xuICAgICAgICA8bGkgY2xhc3M9XCJ0aHktcGFnZS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IHBhZ2VJbmRleCA9PT0gZmlyc3RJbmRleFwiIChjbGljayk9XCJzZWxlY3RQYWdlKGZpcnN0SW5kZXgpXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJ0aHktcGFnZS1saW5rIHRoeS1wYWdlLWxpbmstZmlyc3RcIiBocmVmPVwiamF2YXNjcmlwdDo7XCI+XG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5maXJzdFRleHQpIHtcbiAgICAgICAgICAgICAge3sgY29uZmlnLmZpcnN0VGV4dCB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChjb25maWcuZmlyc3RJY29uKSB7XG4gICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiY29uZmlnLmZpcnN0SWNvblwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcuZGlyZWN0aW9uTGlua3MpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwidGh5LXBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBwYWdlSW5kZXggPT09IGZpcnN0SW5kZXhcIiAoY2xpY2spPVwic2VsZWN0UGFnZShwYWdlSW5kZXggLSAxKVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwidGh5LXBhZ2UtbGluayBwYWdlLWxpbmstcHJlXCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPlxuICAgICAgICAgICAgQGlmIChjb25maWcucHJldmlvdXNUZXh0KSB7XG4gICAgICAgICAgICAgIHt7IGNvbmZpZy5wcmV2aW91c1RleHQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLnByZXZpb3VzSWNvbikge1xuICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cImNvbmZpZy5wcmV2aW91c0ljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBmb3IgKHBhZ2Ugb2YgcGFnZXM7IHRyYWNrIHBhZ2UuaW5kZXgpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwidGh5LXBhZ2UtaXRlbSB0aHktcGFnZS1udW1iZXJcIiBbY2xhc3MuYWN0aXZlXT1cInBhZ2UuYWN0aXZlXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGFnZS5pbmRleClcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInRoeS1wYWdlLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDo7XCI+e3sgcGFnZS50ZXh0IH19PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcuZGlyZWN0aW9uTGlua3MpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwidGh5LXBhZ2UtaXRlbSBwYWdlLWl0ZW0tbmV4dFwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBwYWdlSW5kZXggPT09IHBhZ2VDb3VudFwiIChjbGljayk9XCJzZWxlY3RQYWdlKHBhZ2VJbmRleCArIDEpXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJ0aHktcGFnZS1saW5rIHRoeS1wYWdlLWxpbmstbmV4dFwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIj5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLm5leHRUZXh0KSB7XG4gICAgICAgICAgICAgIHt7IGNvbmZpZy5uZXh0VGV4dCB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChjb25maWcubmV4dEljb24pIHtcbiAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJjb25maWcubmV4dEljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnLmJvdW5kYXJ5TGlua3MpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwidGh5LXBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBwYWdlSW5kZXggPT09IHBhZ2VDb3VudFwiIChjbGljayk9XCJzZWxlY3RQYWdlKHBhZ2VDb3VudClcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInRoeS1wYWdlLWxpbmsgdGh5LXBhZ2UtbGluay1sYXN0XCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPlxuICAgICAgICAgICAgQGlmIChjb25maWcubGFzdFRleHQpIHtcbiAgICAgICAgICAgICAge3sgY29uZmlnLmxhc3RUZXh0IH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5sYXN0SWNvbikge1xuICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cImNvbmZpZy5sYXN0SWNvblwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gICAgQGlmIChjb25maWcuc2hvd1RvdGFsUGFnZUNvdW50ICYmIGNvbmZpZy50b3RhbFBhZ2VzRm9ybWF0KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tY291bnRcIiBbaW5uZXJIVE1MXT1cInBhZ2VDb3VudCB8IHBhZ2luYXRpb25Ub3RhbFBhZ2VzRm9ybWF0OiBjb25maWcudG90YWxQYWdlc0Zvcm1hdFwiPjwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGNvbmZpZy5zaG93UXVpY2tKdW1wZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aHktcGFnaW5hdGlvbi1qdW1wZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRoeS1wYWdpbmF0aW9uLWp1bXBlci1pbnB1dFwiPlxuICAgICAgICAgIOi3s+iHs1xuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiICNqdW1wZXJJbnB1dCAodGh5RW50ZXIpPVwianVtcFBhZ2UoanVtcGVySW5wdXQpXCIgKGJsdXIpPVwianVtcFBhZ2UoanVtcGVySW5wdXQpXCIgLz5cbiAgICAgICAgICDpobVcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxufVxuIl19
|
|
366
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFFTixlQUFlLEVBQ2YsTUFBTSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQXNDLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFOUY7Ozs7R0FJRztBQWlCSCxNQUFNLE9BQU8sYUFBYTtJQWhCMUI7UUFpQlkscUJBQWdCLEdBQUcs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V1osUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVNPLGFBQWE7c0JBQTlFLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPNUQsYUFBYTtzQkFEaEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBV2pDLGVBQWU7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVNwRSxlQUFlO3NCQURsQixLQUFLO3VCQUFDLG9CQUFvQjtnQkFTZ0QsZ0JBQWdCO3NCQUExRixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFPckUsSUFBSTtzQkFEUCxLQUFLO3VCQUFDLFNBQVM7Z0JBVWMsZUFBZTtzQkFBNUMsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBS0YsV0FBVztzQkFBcEMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBRU0sZUFBZTtzQkFBNUMsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBNEJTLGlCQUFpQjtzQkFBckQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBUW5DLFNBQVM7c0JBRlIsV0FBVzt1QkFBQyxnQ0FBZ0M7O3NCQUM1QyxLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBpbmplY3QsXG4gICAgU2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlTZWxlY3QgfSBmcm9tICduZ3gtdGV0aHlzL3NlbGVjdCc7XG5pbXBvcnQgeyBUaHlFbnRlckRpcmVjdGl2ZSwgVGh5T3B0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeVBhZ2luYXRpb25Db25maWdNb2RlbCB9IGZyb20gJy4vcGFnaW5hdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBERUZBVUxUX1JBTkdFX0NPVU5ULCBQYWdpbmF0aW9uRGVmYXVsdENvbmZpZywgVEhZX1BBR0lOQVRJT05fQ09ORklHIH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNvbmZpZyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uUGVyUGFnZUZvcm1hdCwgUGFnaW5hdGlvblRvdGFsQ291bnRGb3JtYXQgfSBmcm9tICcuL3BhZ2luYXRpb24ucGlwZSc7XG5pbXBvcnQgeyBpbmplY3RMb2NhbGUsIFRoeUkxOG5Mb2NhbGUsIFRoeVBhZ2luYXRpb25Mb2NhbGUsIHVzZUxvY2FsZSB9IGZyb20gJ25neC10ZXRoeXMvaTE4bic7XG5cbi8qKlxuICog5YiG6aG157uE5Lu277yM5b2T5pWw5o2u6YeP6L+H5aSa5pe277yM5L2/55So5YiG6aG15YiG6Kej5pWw5o2u44CCXG4gKiBAbmFtZSB0aHktcGFnaW5hdGlvblxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXBhZ2luYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVGh5U2VsZWN0LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgVGh5T3B0aW9uLFxuICAgICAgICBUaHlJY29uLFxuICAgICAgICBUaHlFbnRlckRpcmVjdGl2ZSxcbiAgICAgICAgUGFnaW5hdGlvblRvdGFsQ291bnRGb3JtYXQsXG4gICAgICAgIFBhZ2luYXRpb25QZXJQYWdlRm9ybWF0XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlQYWdpbmF0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHBhZ2luYXRpb25Db25maWcgPSBpbmplY3QoVEhZX1BBR0lOQVRJT05fQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgYWxsTG9jYWxlOiBTaWduYWw8VGh5STE4bkxvY2FsZT4gPSB1c2VMb2NhbGUoKTtcbiAgICBsb2NhbGU6IFNpZ25hbDxUaHlQYWdpbmF0aW9uTG9jYWxlPiA9IGluamVjdExvY2FsZSgncGFnaW5hdGlvbicpO1xuXG4gICAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG4gICAgcHVibGljIGNvbmZpZzogVGh5UGFnaW5hdGlvbkNvbmZpZ01vZGVsID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIFBhZ2luYXRpb25EZWZhdWx0Q29uZmlnLFxuICAgICAgICB7XG4gICAgICAgICAgICBmaXJzdFRleHQ6IHRoaXMubG9jYWxlKCkuZmlyc3RQYWdlLFxuICAgICAgICAgICAgbGFzdFRleHQ6IHRoaXMubG9jYWxlKCkubGFzdFBhZ2UsXG4gICAgICAgICAgICB0b3RhbFBhZ2VzRm9ybWF0OiB0aGlzLmxvY2FsZSgpLnRvdGFsQ291bnQsXG4gICAgICAgICAgICB1bml0OiB0aGlzLmxvY2FsZSgpLmRlZmF1bHRVbml0XG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5tYWluXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruW9k+WJjemhte+8jOaUr+aMgeWPjOWQkee7keWumlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlQYWdlSW5kZXgocGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlSW5kZXg7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2VJbmRleChwYWdlSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5q+P6aG15p2h55uu5pWw6YePXG4gICAgICogQGRlZmF1bHQgMjBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlQYWdlU2l6ZShwYWdlU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RQYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlQ291bnQoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2VzKHRoaXMucGFnZUluZGV4LCB0aGlzLnBhZ2VDb3VudCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaAu+mhteaVsCDkuI4gdG90YWxQYWdlcyDkuozpgInkuIDkvKDlhaVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlUb3RhbCh0b3RhbDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudG90YWwgPSB0b3RhbDtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2VJbmRleCh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieWIhumhtemhteegge+8jOiuvue9ruiHquWumuS5ieWIhumhtemhteeggeWQjuWwhuS4jeagueaNriBUb3RhbCDlkowgUGFnZVNpemUg5p2l6Ieq5Yqo6K6h566X6aG156CB77yM5a6M5YWo5Lul5Lyg5YWl55qE6aG156CB5Li65YeGXG4gICAgICogQHR5cGUgbnVtYmVyW11cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlDdXN0b21QYWdlcyhwYWdlczogbnVtYmVyW10pIHtcbiAgICAgICAgdGhpcy5jdXN0b21QYWdlcyA9IHBhZ2VzO1xuICAgICAgICB0aGlzLmNvbmZpZy5zaG93VG90YWxQYWdlQ291bnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVQYWdlcyh0aGlzLnBhZ2VJbmRleCwgdGhpcy5wYWdlQ291bnQpO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKhcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeURpc2FibGVkJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYvuekuuW/q+mAn+i3s+i9rFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlTaG93UXVpY2tKdW1wZXInLCB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCBzaG93UXVpY2tKdW1wZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jb25maWcuc2hvd1F1aWNrSnVtcGVyID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5piv5ZCm5pi+56S65oC76aG15pWw5L+h5oGvXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5U2hvd1RvdGFsUGFnZUNvdW50JywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgc2hvd1RvdGFsUGFnZUNvdW50KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnNob3dUb3RhbFBhZ2VDb3VudCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWIhumhtee7hOS7tueahOWkp+Wwj1xuICAgICAqIEB0eXBlIHNtIHwgbWQgfCBsZ1xuICAgICAqIEBkZWZhdWx0IG1kXG4gICAgICovXG4gICAgQElucHV0KCd0aHlTaXplJylcbiAgICBzZXQgc2l6ZShzaXplOiAnc20nIHwgJ21kJyB8ICdsZycpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RTaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuYWRkQ2xhc3MoYHRoeS1wYWdpbmF0aW9uLSR7c2l6ZX1gKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7mnIDlpKfmmL7npLrmlbDph4/vvIzotoXlh7rmnIDlpKfmmL7npLrmlbDlkI7kvJroh6rliqjov5vooYzliIblibLmmL7npLpcbiAgICAgKiBAZGVmYXVsdCA5XG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlNYXhDb3VudCcsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IG1heENvdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5jb25maWcubWF4Q291bnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7ovrnnvJjmmL7npLrmlbDph49cbiAgICAgKiBAZGVmYXVsdCAyXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlNYXJnaW5hbENvdW50JywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgbWFyZ2luYWxDb3VudDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5Lit6Ze05Yy65Z+f5pi+56S65pWw6YePXG4gICAgICogQGRlZmF1bHQgNVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVJhbmdlQ291bnQodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnJhbmdlQ291bnQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNYXJnaW5hbENvdW50KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5U2hvd1NpemVDaGFuZ2VyJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgc2hvd1NpemVDaGFuZ2VyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnNob3dTaXplQ2hhbmdlciA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEB0eXBlIG51bWJlcltdXG4gICAgICovXG4gICAgQElucHV0KCd0aHlQYWdlU2l6ZU9wdGlvbnMnKVxuICAgIHNldCBwYWdlU2l6ZU9wdGlvbnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnBhZ2VTaXplT3B0aW9ucyA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWPquacieS4gOmhteaXtuaYr+WQpumakOiXj+WIhumhteWZqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlIaWRlT25TaW5nbGVQYWdlJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgaGlkZU9uU2luZ2xlUGFnZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWIhumhteWZqOWNleS9jVxuICAgICAqIEBkZWZhdWx0IOadoVxuICAgICAqL1xuICAgIEBJbnB1dCgndGh5VW5pdCcpXG4gICAgc2V0IHVuaXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnVuaXQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmhteeggeaUueWPmOeahOWbnuiwg1xuICAgICAqL1xuICAgIEBPdXRwdXQoJ3RoeVBhZ2VJbmRleENoYW5nZScpIHBhZ2VJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICog5LiOQm9vdHN0cmFwIHBhZ2luYXRpb24g5YW85a6577yM5ZCO57ut54mI5pys5Lya6L+b6KGM5Yig6Zmk77yM5Y+C5pWw5L+d5oyB5LiOIGJvb3RzdHJhcCDkuIDoh7RcbiAgICAgKi9cbiAgICBAT3V0cHV0KCd0aHlQYWdlQ2hhbmdlZCcpIHBhZ2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHBhZ2U6IG51bWJlciB9PigpO1xuXG4gICAgQE91dHB1dCgndGh5UGFnZVNpemVDaGFuZ2VkJykgcGFnZVNpemVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBwdWJsaWMgcGFnZXM6IHsgaW5kZXg/OiBudW1iZXI7IHRleHQ/OiBzdHJpbmc7IGFjdGl2ZT86IGJvb2xlYW4gfVtdID0gW107XG5cbiAgICBwdWJsaWMgcGFnZUluZGV4ID0gMTtcblxuICAgIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgcHVibGljIHBhZ2VDb3VudDogbnVtYmVyO1xuXG4gICAgcHVibGljIGN1c3RvbVBhZ2VzOiBudW1iZXJbXTtcblxuICAgIHB1YmxpYyB0b3RhbDogbnVtYmVyO1xuXG4gICAgcHVibGljIHJhbmdlID0geyBmcm9tOiAwLCB0bzogMCB9O1xuXG4gICAgcHVibGljIGZpcnN0SW5kZXggPSAxO1xuXG4gICAgcHVibGljIGlzSGlkZU9uU2luZ2xlUGFnZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIHB1YmxpYyBzZWxlY3RTaXplID0gJ21kJztcblxuICAgIHB1YmxpYyBzZWxlY3RQYWdlU2l6ZTogTnVtYmVyID0gMjA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1wYWdpbmF0aW9uJykgaXNQYWdpbmF0aW9uQ2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pi+56S66IyD5Zu05ZKMdG90YWxcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LXBhZ2luYXRpb24taGFzLXRvdGFsJylcbiAgICBASW5wdXQoJ3RoeVNob3dUb3RhbCcpXG4gICAgc2hvd1RvdGFsOiBib29sZWFuIHwgVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IG51bWJlcjsgcmFuZ2U6IHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0gfT4gPSBmYWxzZTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldE1hcmdpbmFsQ291bnQodGhpcy5jb25maWcucmFuZ2VDb3VudCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgIHRoaXMuc2V0UGFnZUluZGV4KHRoaXMucGFnZUluZGV4KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRNYXJnaW5hbENvdW50KHJhbmdlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1hcmdpbmFsQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMubWFyZ2luYWxDb3VudCA9IHJhbmdlIDw9IERFRkFVTFRfUkFOR0VfQ09VTlQgPyAxIDogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFnZUluZGV4KHBhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZUluZGV4ID4gdGhpcy5wYWdlQ291bnQgPyB0aGlzLnBhZ2VDb3VudCA6IHBhZ2VJbmRleCB8fCAxO1xuICAgICAgICBjb25zdCB0b1BhZ2VTaXplID0gdGhpcy5wYWdlSW5kZXggKiB0aGlzLnBhZ2VTaXplO1xuICAgICAgICB0aGlzLnJhbmdlID0ge1xuICAgICAgICAgICAgZnJvbTogKHRoaXMucGFnZUluZGV4IC0gMSkgKiB0aGlzLnBhZ2VTaXplICsgMSxcbiAgICAgICAgICAgIHRvOiB0b1BhZ2VTaXplID4gdGhpcy50b3RhbCA/IHRoaXMudG90YWwgOiB0b1BhZ2VTaXplXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2VzKHRoaXMucGFnZUluZGV4LCB0aGlzLnBhZ2VDb3VudCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUGFnZUNvdW50KCkge1xuICAgICAgICBsZXQgcGFnZUNvdW50ID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tUGFnZXMgJiYgdGhpcy5jdXN0b21QYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwYWdlQ291bnQgPSB0aGlzLmN1c3RvbVBhZ2VzW3RoaXMuY3VzdG9tUGFnZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYWdlQ291bnQgPSB0aGlzLnBhZ2VTaXplIDwgMSA/IDEgOiBNYXRoLmNlaWwodGhpcy50b3RhbCAvIHRoaXMucGFnZVNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZUNvdW50ID0gTWF0aC5tYXgocGFnZUNvdW50IHx8IDAsIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFrZVBhZ2UoaW5kZXg6IG51bWJlciwgdGV4dDogc3RyaW5nLCBhY3RpdmU6IGJvb2xlYW4pOiB7IGluZGV4OiBudW1iZXI7IHRleHQ6IHN0cmluZzsgYWN0aXZlOiBib29sZWFuIH0ge1xuICAgICAgICByZXR1cm4geyBpbmRleCwgdGV4dCwgYWN0aXZlIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplUGFnZXMocGFnZUluZGV4OiBudW1iZXIsIHBhZ2VDb3VudDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVBhZ2VzICYmIHRoaXMuY3VzdG9tUGFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5wYWdlcyA9IHRoaXMuY3VzdG9tUGFnZXMubWFwKHBhZ2UgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBwYWdlLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBwYWdlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogcGFnZSA9PT0gK3BhZ2VJbmRleFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYWdlcyA9IFtdO1xuICAgICAgICBjb25zdCBtYXJnaW5hbENvdW50ID0gdGhpcy5tYXJnaW5hbENvdW50O1xuICAgICAgICBjb25zdCByYW5nZUNvdW50ID0gdGhpcy5jb25maWcucmFuZ2VDb3VudDtcbiAgICAgICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLmNvbmZpZy5tYXhDb3VudDtcbiAgICAgICAgY29uc3QgaXNNYXhTaXplZCA9IHBhZ2VDb3VudCA+IG1heENvdW50O1xuICAgICAgICBpZiAoaXNNYXhTaXplZCkge1xuICAgICAgICAgICAgY29uc3QgYmVmb3JlUGFnZXMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGFmdGVyUGFnZXMgPSBbXTtcblxuICAgICAgICAgICAgLy8gbWFpblBhZ2VzXG4gICAgICAgICAgICBsZXQgc3RhcnQgPSBNYXRoLmNlaWwoTWF0aC5tYXgobWFyZ2luYWxDb3VudCArIDEsIHBhZ2VJbmRleCAtIChyYW5nZUNvdW50IC0gMSkgLyAyKSk7XG4gICAgICAgICAgICBsZXQgZW5kID0gTWF0aC5jZWlsKE1hdGgubWluKHBhZ2VJbmRleCArIChyYW5nZUNvdW50IC0gMSkgLyAyLCBwYWdlQ291bnQgLSBtYXJnaW5hbENvdW50KSk7XG4gICAgICAgICAgICBpZiAocGFnZUluZGV4IC0gMSA8IG1hcmdpbmFsQ291bnQpIHtcbiAgICAgICAgICAgICAgICBlbmQgPSByYW5nZUNvdW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhZ2VDb3VudCAtIHBhZ2VJbmRleCA8PSBtYXJnaW5hbENvdW50KSB7XG4gICAgICAgICAgICAgICAgc3RhcnQgPSBwYWdlQ291bnQgLSByYW5nZUNvdW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcGFnZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogaSA9PT0gK3BhZ2VJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBiZWZvcmVQYWdlc1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbWFyZ2luYWxDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYmVmb3JlUGFnZXMucHVzaCh0aGlzLm1ha2VQYWdlKGksIGkudG9TdHJpbmcoKSwgaSA9PT0gcGFnZUluZGV4KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYWdlSW5kZXggLSBNYXRoLmNlaWwocmFuZ2VDb3VudCAvIDIpID4gdGhpcy5maXJzdEluZGV4ICYmIG1hcmdpbmFsQ291bnQgKyAxIDwgc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBiZWZvcmVQYWdlcy5wdXNoKHRoaXMubWFrZVBhZ2UoTWF0aC5jZWlsKChtYXJnaW5hbENvdW50ICsgc3RhcnQpIC8gMiksICfCt8K3wrcnLCBudWxsKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFmdGVyUGFnZXNcbiAgICAgICAgICAgIGlmIChwYWdlSW5kZXggKyBNYXRoLmNlaWwocmFuZ2VDb3VudCAvIDIpIDwgcGFnZUNvdW50ICYmIHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQgPiBlbmQpIHtcbiAgICAgICAgICAgICAgICBhZnRlclBhZ2VzLnB1c2godGhpcy5tYWtlUGFnZShNYXRoLmNlaWwoKHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQgKyAxICsgZW5kKSAvIDIpLCAnwrfCt8K3JywgbnVsbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQgKyAxOyBpIDw9IHBhZ2VDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYWZ0ZXJQYWdlcy5wdXNoKHRoaXMubWFrZVBhZ2UoaSwgaS50b1N0cmluZygpLCBpID09PSBwYWdlSW5kZXgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFnZXMgPSBbLi4uYmVmb3JlUGFnZXMsIC4uLnBhZ2VzLCAuLi5hZnRlclBhZ2VzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHBhZ2VDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcGFnZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogaSA9PT0gK3BhZ2VJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZXMgPSBwYWdlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZ2VDaGFuZ2UocGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXhDaGFuZ2UuZW1pdChwYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoeyBwYWdlOiBwYWdlSW5kZXggfSk7XG4gICAgfVxuXG4gICAgc2VsZWN0UGFnZShwYWdlSW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBwYWdlSW5kZXggPT09IHRoaXMuZmlyc3RJbmRleCAtIDEgfHwgcGFnZUluZGV4ID09PSB0aGlzLnBhZ2VDb3VudCArIDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFBhZ2VJbmRleChwYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UodGhpcy5wYWdlSW5kZXgpO1xuICAgIH1cblxuICAgIGp1bXBQYWdlKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VJbmRleCA9ICtpbnB1dC52YWx1ZTtcbiAgICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIocGFnZUluZGV4KSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RQYWdlKHBhZ2VJbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBvblBhZ2VTaXplQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IGV2ZW50O1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VDb3VudCgpO1xuICAgICAgICB0aGlzLnNldFBhZ2VJbmRleCh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgIHRoaXMucGFnZVNpemVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cbn1cbiIsIkBpZiAoKGhpZGVPblNpbmdsZVBhZ2UgJiYgdG90YWwgPiBwYWdlU2l6ZSkgfHwgIWhpZGVPblNpbmdsZVBhZ2UpIHtcbiAgQGlmIChzaG93VG90YWwpIHtcbiAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tdG90YWxcIj5cbiAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoc2hvd1RvdGFsKSkge1xuICAgICAgICBAaWYgKHRvdGFsID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0zXCI+XG4gICAgICAgICAgICB7eyBsb2NhbGUoKS5vcmRlciB9fTxzcGFuIGNsYXNzPVwibnVtYmVyXCI+IHt7IHJhbmdlLmZyb20gfX0te3sgcmFuZ2UudG8gfX0gPC9zcGFuPnt7IGNvbmZpZy51bml0IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHt7IGxvY2FsZSgpLnRvdGFsIH19PHNwYW4gY2xhc3M9XCJudW1iZXJcIj4ge3sgdG90YWwgfX0gPC9zcGFuPnt7IGNvbmZpZy51bml0IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2hvd1RvdGFsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0b3RhbCwgcmFuZ2U6IHJhbmdlIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG4gIDxkaXYgY2xhc3M9XCJ0aHktcGFnaW5hdGlvbi1jb250ZW50XCI+XG4gICAgQGlmIChjb25maWcuc2hvd1NpemVDaGFuZ2VyKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tc2l6ZVwiPlxuICAgICAgICA8dGh5LXNlbGVjdCBbKG5nTW9kZWwpXT1cInNlbGVjdFBhZ2VTaXplXCIgW3RoeVNpemVdPVwic2VsZWN0U2l6ZVwiIFt0aHlEaXNhYmxlZF09XCJkaXNhYmxlZFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBjb25maWcucGFnZVNpemVPcHRpb25zOyB0cmFjayBvcHRpb24pIHtcbiAgICAgICAgICAgIDx0aHktb3B0aW9uXG4gICAgICAgICAgICAgIGNsYXNzPVwicGFnZS1zaXplLW9wdGlvblwiXG4gICAgICAgICAgICAgIFt0aHlWYWx1ZV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICBbdGh5TGFiZWxUZXh0XT1cIm9wdGlvbiArIChjb25maWcudW5pdCB8IHBhZ2luYXRpb25QZXJQYWdlRm9ybWF0OiBhbGxMb2NhbGUoKSlcIj48L3RoeS1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RoeS1zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPHVsIGNsYXNzPVwidGh5LXBhZ2luYXRpb24tcGFnZXNcIj5cbiAgICAgIEBpZiAoY29uZmlnLmJvdW5kYXJ5TGlua3MpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwidGh5LXBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBwYWdlSW5kZXggPT09IGZpcnN0SW5kZXhcIiAoY2xpY2spPVwic2VsZWN0UGFnZShmaXJzdEluZGV4KVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwidGh5LXBhZ2UtbGluayB0aHktcGFnZS1saW5rLWZpcnN0XCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPlxuICAgICAgICAgICAgQGlmIChjb25maWcuZmlyc3RUZXh0KSB7XG4gICAgICAgICAgICAgIHt7IGNvbmZpZy5maXJzdFRleHQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLmZpcnN0SWNvbikge1xuICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cImNvbmZpZy5maXJzdEljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnLmRpcmVjdGlvbkxpbmtzKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFnZUluZGV4ID09PSBmaXJzdEluZGV4XCIgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGFnZUluZGV4IC0gMSlcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInRoeS1wYWdlLWxpbmsgcGFnZS1saW5rLXByZVwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIj5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLnByZXZpb3VzVGV4dCkge1xuICAgICAgICAgICAgICB7eyBjb25maWcucHJldmlvdXNUZXh0IH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5wcmV2aW91c0ljb24pIHtcbiAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJjb25maWcucHJldmlvdXNJY29uXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgICBAZm9yIChwYWdlIG9mIHBhZ2VzOyB0cmFjayBwYWdlLmluZGV4KSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW0gdGh5LXBhZ2UtbnVtYmVyXCIgW2NsYXNzLmFjdGl2ZV09XCJwYWdlLmFjdGl2ZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbGljayk9XCJzZWxlY3RQYWdlKHBhZ2UuaW5kZXgpXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJ0aHktcGFnZS1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPnt7IHBhZ2UudGV4dCB9fTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnLmRpcmVjdGlvbkxpbmtzKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW0gcGFnZS1pdGVtLW5leHRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFnZUluZGV4ID09PSBwYWdlQ291bnRcIiAoY2xpY2spPVwic2VsZWN0UGFnZShwYWdlSW5kZXggKyAxKVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwidGh5LXBhZ2UtbGluayB0aHktcGFnZS1saW5rLW5leHRcIiBocmVmPVwiamF2YXNjcmlwdDo7XCI+XG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5uZXh0VGV4dCkge1xuICAgICAgICAgICAgICB7eyBjb25maWcubmV4dFRleHQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLm5leHRJY29uKSB7XG4gICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiY29uZmlnLm5leHRJY29uXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZy5ib3VuZGFyeUxpbmtzKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFnZUluZGV4ID09PSBwYWdlQ291bnRcIiAoY2xpY2spPVwic2VsZWN0UGFnZShwYWdlQ291bnQpXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJ0aHktcGFnZS1saW5rIHRoeS1wYWdlLWxpbmstbGFzdFwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIj5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLmxhc3RUZXh0KSB7XG4gICAgICAgICAgICAgIHt7IGNvbmZpZy5sYXN0VGV4dCB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChjb25maWcubGFzdEljb24pIHtcbiAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJjb25maWcubGFzdEljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICAgIEBpZiAoY29uZmlnLnNob3dUb3RhbFBhZ2VDb3VudCAmJiBjb25maWcudG90YWxQYWdlc0Zvcm1hdCkge1xuICAgICAgPGRpdiBjbGFzcz1cInRoeS1wYWdpbmF0aW9uLWNvdW50XCIgW2lubmVySFRNTF09XCJwYWdlQ291bnQgfCBwYWdpbmF0aW9uVG90YWxQYWdlc0Zvcm1hdDogY29uZmlnLnRvdGFsUGFnZXNGb3JtYXRcIj48L2Rpdj5cbiAgICB9XG4gICAgQGlmIChjb25maWcuc2hvd1F1aWNrSnVtcGVyKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tanVtcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aHktcGFnaW5hdGlvbi1qdW1wZXItaW5wdXRcIj5cbiAgICAgICAgICB7eyBsb2NhbGUoKS5qdW1wVG8gfX1cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAjanVtcGVySW5wdXQgKHRoeUVudGVyKT1cImp1bXBQYWdlKGp1bXBlcklucHV0KVwiIChibHVyKT1cImp1bXBQYWdlKGp1bXBlcklucHV0KVwiIC8+XG4gICAgICAgICAge3sgbG9jYWxlKCkucGFnZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { ThyPagination } from './pagination.component';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { PaginationTotalCountFormat } from './pagination.pipe';
|
|
4
|
+
import { PaginationPerPageFormat, PaginationTotalCountFormat } from './pagination.pipe';
|
|
5
5
|
import { ThySharedModule } from 'ngx-tethys/shared';
|
|
6
6
|
import { ThyIconModule } from 'ngx-tethys/icon';
|
|
7
7
|
import { ThySelectModule } from 'ngx-tethys/select';
|
|
@@ -9,14 +9,35 @@ import { FormsModule } from '@angular/forms';
|
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class ThyPaginationModule {
|
|
11
11
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, imports: [CommonModule,
|
|
13
|
-
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, imports: [CommonModule,
|
|
13
|
+
FormsModule,
|
|
14
|
+
ThySharedModule,
|
|
15
|
+
ThyIconModule,
|
|
16
|
+
ThySelectModule,
|
|
17
|
+
ThyPagination,
|
|
18
|
+
PaginationTotalCountFormat,
|
|
19
|
+
PaginationPerPageFormat], exports: [ThyPagination] }); }
|
|
20
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, imports: [CommonModule,
|
|
21
|
+
FormsModule,
|
|
22
|
+
ThySharedModule,
|
|
23
|
+
ThyIconModule,
|
|
24
|
+
ThySelectModule,
|
|
25
|
+
ThyPagination] }); }
|
|
14
26
|
}
|
|
15
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, decorators: [{
|
|
16
28
|
type: NgModule,
|
|
17
29
|
args: [{
|
|
18
|
-
imports: [
|
|
30
|
+
imports: [
|
|
31
|
+
CommonModule,
|
|
32
|
+
FormsModule,
|
|
33
|
+
ThySharedModule,
|
|
34
|
+
ThyIconModule,
|
|
35
|
+
ThySelectModule,
|
|
36
|
+
ThyPagination,
|
|
37
|
+
PaginationTotalCountFormat,
|
|
38
|
+
PaginationPerPageFormat
|
|
39
|
+
],
|
|
19
40
|
exports: [ThyPagination]
|
|
20
41
|
}]
|
|
21
42
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWU3QyxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixZQVh4QixZQUFZO1lBQ1osV0FBVztZQUNYLGVBQWU7WUFDZixhQUFhO1lBQ2IsZUFBZTtZQUNmLGFBQWE7WUFDYiwwQkFBMEI7WUFDMUIsdUJBQXVCLGFBRWpCLGFBQWE7K0dBRWQsbUJBQW1CLFlBWHhCLFlBQVk7WUFDWixXQUFXO1lBQ1gsZUFBZTtZQUNmLGFBQWE7WUFDYixlQUFlO1lBQ2YsYUFBYTs7MkZBTVIsbUJBQW1CO2tCQWIvQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYiwwQkFBMEI7d0JBQzFCLHVCQUF1QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQYWdpbmF0aW9uIH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGFnaW5hdGlvblBlclBhZ2VGb3JtYXQsIFBhZ2luYXRpb25Ub3RhbENvdW50Rm9ybWF0IH0gZnJvbSAnLi9wYWdpbmF0aW9uLnBpcGUnO1xuaW1wb3J0IHsgVGh5U2hhcmVkTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgVGh5SWNvbk1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlTZWxlY3RNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3NlbGVjdCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFRoeVNoYXJlZE1vZHVsZSxcbiAgICAgICAgVGh5SWNvbk1vZHVsZSxcbiAgICAgICAgVGh5U2VsZWN0TW9kdWxlLFxuICAgICAgICBUaHlQYWdpbmF0aW9uLFxuICAgICAgICBQYWdpbmF0aW9uVG90YWxDb3VudEZvcm1hdCxcbiAgICAgICAgUGFnaW5hdGlvblBlclBhZ2VGb3JtYXRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtUaHlQYWdpbmF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlQYWdpbmF0aW9uTW9kdWxlIHt9XG4iXX0=
|
|
@@ -26,4 +26,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
26
26
|
standalone: true
|
|
27
27
|
}]
|
|
28
28
|
}] });
|
|
29
|
-
|
|
29
|
+
export class PaginationPerPageFormat {
|
|
30
|
+
transform(unit, locale) {
|
|
31
|
+
if (locale.id.includes('zh')) {
|
|
32
|
+
// 5 条/页
|
|
33
|
+
return ' ' + unit + '/' + locale.pagination.page;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// 5 / page
|
|
37
|
+
return ' / ' + locale.pagination.page;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationPerPageFormat, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
41
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: PaginationPerPageFormat, isStandalone: true, name: "paginationPerPageFormat" }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationPerPageFormat, decorators: [{
|
|
44
|
+
type: Pipe,
|
|
45
|
+
args: [{
|
|
46
|
+
name: 'paginationPerPageFormat',
|
|
47
|
+
standalone: true
|
|
48
|
+
}]
|
|
49
|
+
}] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBR3pEOztHQUVHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQUp2QztRQUtZLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FTNUM7SUFQRyxTQUFTLENBQUMsS0FBYSxFQUFFLE1BQWM7UUFDbkMsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQzs4R0FUUSwwQkFBMEI7NEdBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFKdEMsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsNEJBQTRCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7O0FBaUJELE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsU0FBUyxDQUFDLElBQVksRUFBRSxNQUFxQjtRQUN6QyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsUUFBUTtZQUNSLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDckQsQ0FBQzthQUFNLENBQUM7WUFDSixXQUFXO1lBQ1gsT0FBTyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7OEdBVFEsdUJBQXVCOzRHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSm5DLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLHlCQUF5QjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFRoeUkxOG5Mb2NhbGUgfSBmcm9tICduZ3gtdGV0aHlzL2kxOG4nO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAncGFnaW5hdGlvblRvdGFsUGFnZXNGb3JtYXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblRvdGFsQ291bnRGb3JtYXQgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBwcml2YXRlIHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuXG4gICAgdHJhbnNmb3JtKGNvdW50OiBudW1iZXIsIGZvcm1hdDogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKGNvdW50ICYmIGZvcm1hdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGZvcm1hdC5yZXBsYWNlKC9cXHsoLis/KVxcfS9nLCBgPHNwYW4+JHtjb3VudH08L3NwYW4+YCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3BhZ2luYXRpb25QZXJQYWdlRm9ybWF0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25QZXJQYWdlRm9ybWF0IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHVuaXQ6IHN0cmluZywgbG9jYWxlOiBUaHlJMThuTG9jYWxlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGxvY2FsZS5pZC5pbmNsdWRlcygnemgnKSkge1xuICAgICAgICAgICAgLy8gNSDmnaEv6aG1XG4gICAgICAgICAgICByZXR1cm4gJyAnICsgdW5pdCArICcvJyArIGxvY2FsZS5wYWdpbmF0aW9uLnBhZ2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyA1IC8gcGFnZVxuICAgICAgICAgICAgcmV0dXJuICcgLyAnICsgbG9jYWxlLnBhZ2luYXRpb24ucGFnZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
53
53
|
type: HostListener,
|
|
54
54
|
args: ['click', ['$event']]
|
|
55
55
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yYWRpby9idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9yYWRpby9idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUU5Qzs7R0FFRztBQVVILE1BQU0sT0FBTyxjQUFlLFNBQVEsUUFBUTtJQVQ1Qzs7UUFVOEIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNiLGFBQVEsR0FBRyxLQUFLLENBQUM7S0E0QmpEO0lBM0JHLElBQW1DLFVBQVU7UUFDekMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFNRCxJQUFJLFVBQVUsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0lBR0QsS0FBSyxDQUFDLE1BQWtCO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDOzhHQTdCUSxjQUFjO2tHQUFkLGNBQWMsNFZDaEIzQiw2RUFFQTs7MkZEY2EsY0FBYztrQkFUMUIsU0FBUzsrQkFFSSxxQ0FBcUMsY0FFbkMsSUFBSSxRQUNWO3dCQUNGLGlCQUFpQixFQUFFLFVBQVU7cUJBQ2hDOzhCQUd5QixRQUFRO3NCQUFqQyxXQUFXO3VCQUFDLFdBQVc7Z0JBQ0ssUUFBUTtzQkFBcEMsV0FBVzt1QkFBQyxjQUFjO2dCQUNRLFVBQVU7c0JBQTVDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU1wQixRQUFRO3NCQUFoQixLQUFLO2dCQWdCTixLQUFLO3NCQURKLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgVGh5UmFkaW8gfSBmcm9tICcuLi9yYWRpby5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBuYW1lIFt0aHktcmFkaW8tYnV0dG9uXSxbdGh5UmFkaW9CdXR0b25dXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbdGh5LXJhZGlvLWJ1dHRvbl0sW3RoeVJhZGlvQnV0dG9uXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiBgdGFiSW5kZXhgXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUaHlSYWRpb0J1dHRvbiBleHRlbmRzIFRoeVJhZGlvIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ0bicpIGlzQnV0dG9uID0gdHJ1ZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpIGlzQWN0aXZlID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpIGdldCBpc0Rpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgdGh5VmFsdWU6IHN0cmluZztcblxuICAgIHNldCB0aHlDaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSAhIXZhbHVlO1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuX2lzRm9ybUNoZWNrID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRoeVJhZGlvR3JvdXBDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudGh5UmFkaW9Hcm91cENvbXBvbmVudC5hZGRSYWRpbyh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMudGh5UmFkaW9Hcm91cENvbXBvbmVudC5zZXRHcm91cCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIGNsaWNrKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj4ge3sgX2xhYmVsVGV4dCB9fTwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
55
55
|
}], propDecorators: { thyValue: [{
|
|
56
56
|
type: Input
|
|
57
57
|
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3JhZGlvL3JhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9yYWRpby9yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTFDOzs7O0dBSUc7QUFtQkgsTUFBTSxPQUFPLFFBQVMsU0FBUSx5QkFBeUI7SUFsQnZEOztRQW1CSSwyQkFBc0IsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFFLENBQUM7S0EyQnZFO0lBbEJHLElBQUksVUFBVSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7OEdBM0JRLFFBQVE7a0dBQVIsUUFBUSx3SkFkTjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUN2QyxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osaURDdEJMLGlYQWFBLDRDRGVjLE9BQU87OzJGQUVSLFFBQVE7a0JBbEJwQixTQUFTOytCQUVJLHdCQUF3QixhQUV2Qjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUM7NEJBQ3ZDLEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLFFBQ0s7d0JBQ0YsaUJBQWlCLEVBQUUsSUFBSTtxQkFDMUIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDOzhCQVVULFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5Rm9ybUNoZWNrQmFzZUNvbXBvbmVudCB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IFRoeVJhZGlvR3JvdXAgfSBmcm9tICcuL2dyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICog5Y2V6YCJ5qGG57uE5Lu2XG4gKiBAbmFtZSB0aHktcmFkaW8sW3RoeVJhZGlvXVxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbdGh5LXJhZGlvXSxbdGh5UmFkaW9dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeVJhZGlvKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6IGAtMWBcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3NdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVJhZGlvIGV4dGVuZHMgVGh5Rm9ybUNoZWNrQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgdGh5UmFkaW9Hcm91cENvbXBvbmVudCA9IGluamVjdChUaHlSYWRpb0dyb3VwLCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcblxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOW9k+WSjCB0aHktcmFkaW8tZ3JvdXAg6YWN5ZCI5L2/55So5pe255qE5YC877yM6YCJ5Lit5ZCO55qEIE5nTW9kZWwg5YC8XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VmFsdWU6IHN0cmluZztcblxuICAgIHNldCB0aHlDaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5UmFkaW9Hcm91cENvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy50aHlSYWRpb0dyb3VwQ29tcG9uZW50LmFkZFJhZGlvKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hhbmdlKCkge1xuICAgICAgICBpZiAodGhpcy50aHlSYWRpb0dyb3VwQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLnRoeVJhZGlvR3JvdXBDb21wb25lbnQudXBkYXRlVmFsdWUodGhpcy50aHlWYWx1ZSwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKCF0aGlzLl9pbm5lclZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxpbnB1dFxuICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICBbY2hlY2tlZF09XCJfaXNDaGVja2VkXCJcbiAgKGNoYW5nZSk9XCJjaGFuZ2UoKVwiXG4gIHR5cGU9XCJyYWRpb1wiXG4gIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4XCJcbiAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXG4gIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gIFtuZ0NsYXNzXT1cInsgJ2Zvcm0tY2hlY2stbm8tbGFiZWwtdGV4dCc6ICFfbGFiZWxUZXh0IH1cIiAvPlxuQGlmIChfbGFiZWxUZXh0KSB7XG4gIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPnt7IF9sYWJlbFRleHQgfX08L3NwYW4+XG59XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|