cmat 0.0.13 → 0.0.14
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/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +0 -1
- package/components/cascade/cascade-menu/cascade-menu.component.d.ts +0 -1
- package/components/chip-input/chip-input.component.d.ts +0 -1
- package/components/custom-formly/public-api.d.ts +1 -0
- package/components/custom-formly/types/quill/quill.component.d.ts +42 -0
- package/components/custom-formly/types/repeat/repeat.component.d.ts +0 -1
- package/components/custom-formly/types/select/select.component.d.ts +0 -1
- package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +0 -1
- package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +0 -1
- package/components/custom-formly/types/table/table.component.d.ts +0 -1
- package/components/custom-formly/types/tabs/tab.component.d.ts +0 -1
- package/components/custom-formly/types/tags/tags.component.d.ts +0 -1
- package/components/material-color-picker/material-color-picker.component.d.ts +0 -1
- package/components/material-datetimepicker/calendar-body.d.ts +0 -1
- package/components/material-datetimepicker/calendar.d.ts +3 -4
- package/components/material-datetimepicker/clock.d.ts +0 -1
- package/components/material-datetimepicker/datetimepicker.d.ts +3 -4
- package/components/material-datetimepicker/month-view.d.ts +0 -1
- package/components/pagination/pagination.component.d.ts +0 -1
- package/components/popover/popover.component.d.ts +3 -4
- package/components/popover/popover.interfaces.d.ts +1 -2
- package/components/select-tree/select-tree.component.d.ts +0 -1
- package/components/timeline/timeline.component.d.ts +3 -5
- package/components/transfer-picker/filter/filter.component.d.ts +0 -1
- package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +0 -1
- package/esm2022/components/adapter/datetime-adapter.mjs +1 -1
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +4 -4
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +4 -4
- package/esm2022/components/adapter/native-datetime-adapter.mjs +4 -4
- package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +5 -5
- package/esm2022/components/breadcrumb/breadcrumb.service.mjs +4 -4
- package/esm2022/components/card/card.component.mjs +4 -4
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -8
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +4 -4
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -8
- package/esm2022/components/chip-input/chip-input.component.mjs +6 -9
- package/esm2022/components/custom-formly/extension/addons.extension.mjs +1 -1
- package/esm2022/components/custom-formly/public-api.mjs +2 -1
- package/esm2022/components/custom-formly/types/button/button.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/chips/chips.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/number/number.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/quill/quill.component.mjs +171 -0
- package/esm2022/components/custom-formly/types/radio/radio.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/rating/rating.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/select/select.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/table/table.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/tags/tags.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/upload/upload.component.mjs +4 -4
- package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +4 -4
- package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +3 -3
- package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +3 -3
- package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +3 -3
- package/esm2022/components/date-range/date-range.component.mjs +4 -4
- package/esm2022/components/drawer/drawer.component.mjs +4 -4
- package/esm2022/components/drawer/drawer.service.mjs +3 -3
- package/esm2022/components/fullscreen/fullscreen.component.mjs +4 -4
- package/esm2022/components/highlight/highlight.component.mjs +4 -4
- package/esm2022/components/highlight/highlight.service.mjs +4 -4
- package/esm2022/components/json-editor/json-editor.component.mjs +4 -4
- package/esm2022/components/masonry/masonry.component.mjs +4 -4
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +5 -8
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +5 -8
- package/esm2022/components/material-datetimepicker/calendar.mjs +7 -13
- package/esm2022/components/material-datetimepicker/clock.mjs +5 -8
- package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +4 -4
- package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
- package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +7 -7
- package/esm2022/components/material-datetimepicker/datetimepicker.mjs +10 -11
- package/esm2022/components/material-datetimepicker/month-view.mjs +5 -8
- package/esm2022/components/material-datetimepicker/multi-year-view.mjs +4 -4
- package/esm2022/components/material-datetimepicker/time.mjs +7 -7
- package/esm2022/components/material-datetimepicker/year-view.mjs +4 -4
- package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +5 -5
- package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/horizontal.component.mjs +5 -5
- package/esm2022/components/navigation/navigation.service.mjs +4 -4
- package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/group/group.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/vertical.component.mjs +5 -5
- package/esm2022/components/pagination/pagination.component.mjs +5 -8
- package/esm2022/components/pagination/pagination.directive.mjs +4 -4
- package/esm2022/components/pagination/pagination.pipe.mjs +4 -4
- package/esm2022/components/pagination/pagination.service.mjs +4 -4
- package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +3 -3
- package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +4 -4
- package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +4 -4
- package/esm2022/components/password-strength/mat-password-strength-validator.mjs +1 -1
- package/esm2022/components/popover/popover-trigger.mjs +6 -8
- package/esm2022/components/popover/popover.component.mjs +6 -7
- package/esm2022/components/popover/popover.interfaces.mjs +1 -1
- package/esm2022/components/popover/popover.target.mjs +3 -3
- package/esm2022/components/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2022/components/rating/rating.component.mjs +5 -5
- package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
- package/esm2022/components/select-search/select-search-clear.directive.mjs +3 -3
- package/esm2022/components/select-search/select-search.component.mjs +4 -4
- package/esm2022/components/select-tree/select-tree.component.mjs +5 -8
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +9 -9
- package/esm2022/components/timeline/timeline.component.mjs +7 -11
- package/esm2022/components/toast/toast-modal.component.mjs +4 -4
- package/esm2022/components/toast/toast.component.mjs +5 -5
- package/esm2022/components/toast/toast.service.mjs +4 -4
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +5 -8
- package/esm2022/components/transfer-picker/search/search.component.mjs +3 -3
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +4 -4
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -8
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +4 -4
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
- package/esm2022/components/upload/files.util.service.mjs +4 -4
- package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +4 -4
- package/esm2022/components/upload/upload.component.mjs +4 -4
- package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +4 -4
- package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
- package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
- package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
- package/esm2022/directives/digit-only/digit-only.directive.mjs +4 -4
- package/esm2022/directives/digit-only/mask.directive.mjs +4 -4
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.request-handler.mjs +1 -1
- package/esm2022/lib/mock-api/mock-api.service.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.utils.mjs +1 -1
- package/esm2022/pipes/bytes/bytes.pipe.mjs +4 -4
- package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +4 -4
- package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
- package/esm2022/pipes/keys/keys.pipe.mjs +4 -4
- package/esm2022/pipes/secure/secure-pipe.mjs +3 -3
- package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
- package/esm2022/services/alert/alert.service.mjs +4 -4
- package/esm2022/services/config/config.service.mjs +3 -3
- package/esm2022/services/config/urlStateConfig.service.mjs +3 -3
- package/esm2022/services/confirmation/confirmation.service.mjs +3 -3
- package/esm2022/services/confirmation/dialog/dialog.component.mjs +3 -3
- package/esm2022/services/data/data.service.mjs +4 -4
- package/esm2022/services/loading/loading.interceptor.mjs +4 -4
- package/esm2022/services/loading/loading.service.mjs +4 -4
- package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
- package/esm2022/services/media-watcher/media-watcher.service.mjs +4 -4
- package/esm2022/services/platform/platform.service.mjs +4 -4
- package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
- package/esm2022/services/title/title.service.mjs +4 -4
- package/esm2022/services/translation/translation.service.mjs +4 -4
- package/esm2022/services/utils/utils.service.mjs +4 -4
- package/esm2022/validators/validators.mjs +1 -1
- package/fesm2022/cmat-animations.mjs +1 -1
- package/fesm2022/cmat-components-adapter.mjs +9 -9
- package/fesm2022/cmat-components-adapter.mjs.map +1 -1
- package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +3 -3
- package/fesm2022/cmat-components-card.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +11 -17
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +5 -8
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +248 -104
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +4 -4
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +7 -7
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +3 -3
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +6 -6
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +3 -3
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-masonry.mjs.map +1 -1
- package/fesm2022/cmat-components-material-color-picker.mjs +4 -7
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +53 -68
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +46 -46
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +13 -16
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +10 -10
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +13 -16
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +3 -3
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +4 -4
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +10 -10
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +4 -7
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +15 -19
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +10 -10
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +20 -26
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +9 -9
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +6 -6
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
- package/fesm2022/cmat-lib-mock-api.mjs +7 -7
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
- package/fesm2022/cmat-pipes-secure.mjs +3 -3
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs.map +1 -1
- package/fesm2022/cmat-services-config.mjs +6 -6
- package/fesm2022/cmat-services-confirmation.mjs +6 -6
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-data.mjs.map +1 -1
- package/fesm2022/cmat-services-loading.mjs +6 -6
- package/fesm2022/cmat-services-loading.mjs.map +1 -1
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs.map +1 -1
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs.map +1 -1
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-translation.mjs.map +1 -1
- package/fesm2022/cmat-services-utils.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/fesm2022/cmat-validators.mjs.map +1 -1
- package/package.json +111 -102
- package/styles/overrides/angular-material.scss +0 -1
- package/styles/overrides/quill.scss +102 -0
- package/styles/themes.scss +19 -19
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { HttpEventType } from '@angular/common/http';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { FieldType } from '@ngx-formly/material/form-field';
|
|
5
|
+
import { QuillModule } from 'ngx-quill';
|
|
6
|
+
import Quill from 'quill';
|
|
7
|
+
import BlotFormatter from 'quill-blot-formatter';
|
|
8
|
+
import QuillImageDropAndPaste from 'quill-image-drop-and-paste';
|
|
9
|
+
import { takeUntil, Subject } from 'rxjs';
|
|
10
|
+
import { CmatUtilsService } from 'cmat/services/utils';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "cmat/components/upload";
|
|
13
|
+
import * as i2 from "cmat/services/config";
|
|
14
|
+
import * as i3 from "@angular/forms";
|
|
15
|
+
import * as i4 from "ngx-quill";
|
|
16
|
+
Quill.register('modules/blotFormatter', BlotFormatter);
|
|
17
|
+
Quill.register('modules/imageDropAndPaste', QuillImageDropAndPaste);
|
|
18
|
+
export class CmatQuillTypeComponent extends FieldType {
|
|
19
|
+
constructor(_fileService, _urlStateConfigService, _changeDetectorRef) {
|
|
20
|
+
super();
|
|
21
|
+
this._fileService = _fileService;
|
|
22
|
+
this._urlStateConfigService = _urlStateConfigService;
|
|
23
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
24
|
+
this.quillModules = {
|
|
25
|
+
toolbar: {
|
|
26
|
+
container: [
|
|
27
|
+
['bold', 'italic', 'underline'],
|
|
28
|
+
[{ 'size': ['small', false, 'large', 'huge'] }],
|
|
29
|
+
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
|
|
30
|
+
[{ 'color': [] }, { 'background': [] }],
|
|
31
|
+
[{ 'font': [] }],
|
|
32
|
+
[{ 'align': [] }],
|
|
33
|
+
['clean'],
|
|
34
|
+
['link', 'image', 'video']
|
|
35
|
+
],
|
|
36
|
+
handlers: {
|
|
37
|
+
image: this._imgFileHandler.bind(this),
|
|
38
|
+
video: this._videoFileHandler.bind(this)
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
clipboard: {
|
|
42
|
+
matchVisual: false,
|
|
43
|
+
},
|
|
44
|
+
blotFormatter: {},
|
|
45
|
+
imageDropAndPaste: {
|
|
46
|
+
handler: this._dropFileHandler.bind(this)
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
this.defaultOptions = {
|
|
50
|
+
props: {
|
|
51
|
+
fileAlias: 'fileData',
|
|
52
|
+
filePath: 'path'
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
this._imgIds = [];
|
|
56
|
+
this._unsubscribeAll = new Subject();
|
|
57
|
+
this._urlStateConfigService.config$
|
|
58
|
+
.pipe(takeUntil(this._unsubscribeAll))
|
|
59
|
+
.subscribe((config) => {
|
|
60
|
+
this._config = config;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
ngOnDestroy() {
|
|
64
|
+
this._unsubscribeAll.next(void 0);
|
|
65
|
+
this._unsubscribeAll.complete();
|
|
66
|
+
}
|
|
67
|
+
fileChangeEvent(file) {
|
|
68
|
+
const fileModel = {
|
|
69
|
+
id: null,
|
|
70
|
+
fileName: file.name,
|
|
71
|
+
length: file.size,
|
|
72
|
+
fileCategory: 'Quill',
|
|
73
|
+
filePath: this.props.filePath,
|
|
74
|
+
fileType: 'file',
|
|
75
|
+
data: file
|
|
76
|
+
};
|
|
77
|
+
fileModel.fileType = CmatUtilsService.getFileType(file.type);
|
|
78
|
+
const formData = new FormData();
|
|
79
|
+
formData.set('fileData', file, file.name);
|
|
80
|
+
formData.append('fileInfo', JSON.stringify(fileModel));
|
|
81
|
+
this._fileService.uploadFile(formData).pipe(takeUntil(this._unsubscribeAll)).subscribe((event) => {
|
|
82
|
+
if (event.type === HttpEventType.Response) {
|
|
83
|
+
this._editorInstance.insertEmbed(this._editorInstance.getSelection(true).index, this._getMediaType(file.type), `${this._config.fileUrl}/download/${event.body.id}`);
|
|
84
|
+
this._editorInstance.setSelection(this._editorInstance.getSelection(true).index + 1);
|
|
85
|
+
this.formControl.setValue(this._editorInstance.container.innerHTML);
|
|
86
|
+
this._upload(event.body.id);
|
|
87
|
+
}
|
|
88
|
+
this._changeDetectorRef.markForCheck();
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
editorCreated(editorInstance) {
|
|
92
|
+
this._editorInstance = editorInstance;
|
|
93
|
+
const dom = document.createElement('DIV');
|
|
94
|
+
dom.innerHTML = editorInstance.container.innerHTML;
|
|
95
|
+
const fileDom = dom.querySelectorAll('img, video');
|
|
96
|
+
fileDom.forEach((i) => {
|
|
97
|
+
if (i.src.indexOf(this._config.fileUrl) > -1) {
|
|
98
|
+
this._imgIds.push(i.src.substring(`${this._config.fileUrl}/download/`.length, i.src.length));
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
contentChanged(editorInstance) {
|
|
103
|
+
const dom = document.createElement('DIV');
|
|
104
|
+
dom.innerHTML = editorInstance.editor.container.innerHTML;
|
|
105
|
+
const fileDom = dom.querySelectorAll('img, video');
|
|
106
|
+
const arr = [];
|
|
107
|
+
fileDom.forEach((i) => {
|
|
108
|
+
if (i.src.indexOf(this._config.fileUrl) > -1) {
|
|
109
|
+
const id = i.src.substring(`${this._config.fileUrl}/download/`.length, i.src.length);
|
|
110
|
+
this._imgIds.splice(this._imgIds.indexOf(id), 1);
|
|
111
|
+
arr.push(id);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
this._imgIds.forEach((i) => {
|
|
115
|
+
if (this.model['removeId']) {
|
|
116
|
+
this.model['removeId'].push(i);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.model['removeId'] = [i];
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
this._imgIds = arr;
|
|
123
|
+
}
|
|
124
|
+
_imgFileHandler() {
|
|
125
|
+
this.imgInput.nativeElement.click();
|
|
126
|
+
}
|
|
127
|
+
_videoFileHandler() {
|
|
128
|
+
this.videoInput.nativeElement.click();
|
|
129
|
+
}
|
|
130
|
+
_dropFileHandler(dataUrl, type, fileData) {
|
|
131
|
+
this.fileChangeEvent(fileData.toFile());
|
|
132
|
+
}
|
|
133
|
+
_upload(id) {
|
|
134
|
+
if (this.model['uploadId']) {
|
|
135
|
+
this.model['uploadId'].push(id);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this.model['uploadId'] = [id];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
_getMediaType(accept) {
|
|
142
|
+
let fileType = 'file';
|
|
143
|
+
switch (accept) {
|
|
144
|
+
case 'image/jpeg':
|
|
145
|
+
case 'image/jpg':
|
|
146
|
+
case 'image/png':
|
|
147
|
+
case 'image/gif':
|
|
148
|
+
fileType = 'image';
|
|
149
|
+
break;
|
|
150
|
+
case 'video/mpeg':
|
|
151
|
+
case 'video/mp4':
|
|
152
|
+
case 'audio/mp4':
|
|
153
|
+
fileType = 'video';
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
return fileType;
|
|
157
|
+
}
|
|
158
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatQuillTypeComponent, deps: [{ token: i1.CmatFilesUtilService }, { token: i2.CmatUrlStateConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
159
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: CmatQuillTypeComponent, isStandalone: true, selector: "cmat-quill-type", viewQueries: [{ propertyName: "imgInput", first: true, predicate: ["imgInput"], descendants: true }, { propertyName: "videoInput", first: true, predicate: ["videoInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<quill-editor class=\"w-full\" [formControl]=\"formControl\" [required]=\"required\" [placeholder]=\"placeholder\" [tabindex]=\"props.tabindex\" [readOnly]=\"disabled\"\r\n (onEditorCreated)=\"editorCreated($event)\" (onContentChanged)=\"contentChanged($event)\" defaultEmptyValue=\"\"\r\n [modules]=\"quillModules\">\r\n <input type=\"file\" accept=\"image/png,image/jpeg,image/jpg,image/gif\" class=\"hidden\" (change)=\"fileChangeEvent(imgInput.files?.[0])\" #imgInput />\r\n <input type=\"file\" accept=\"video/mpeg,video/mp4,audio/mp4\" class=\"hidden\" (change)=\"fileChangeEvent(videoInput.files?.[0])\" #videoInput />\r\n</quill-editor>", styles: [":host{display:block;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: QuillModule }, { kind: "component", type: i4.QuillEditorComponent, selector: "quill-editor" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
160
|
+
}
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatQuillTypeComponent, decorators: [{
|
|
162
|
+
type: Component,
|
|
163
|
+
args: [{ selector: 'cmat-quill-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, QuillModule], template: "<quill-editor class=\"w-full\" [formControl]=\"formControl\" [required]=\"required\" [placeholder]=\"placeholder\" [tabindex]=\"props.tabindex\" [readOnly]=\"disabled\"\r\n (onEditorCreated)=\"editorCreated($event)\" (onContentChanged)=\"contentChanged($event)\" defaultEmptyValue=\"\"\r\n [modules]=\"quillModules\">\r\n <input type=\"file\" accept=\"image/png,image/jpeg,image/jpg,image/gif\" class=\"hidden\" (change)=\"fileChangeEvent(imgInput.files?.[0])\" #imgInput />\r\n <input type=\"file\" accept=\"video/mpeg,video/mp4,audio/mp4\" class=\"hidden\" (change)=\"fileChangeEvent(videoInput.files?.[0])\" #videoInput />\r\n</quill-editor>", styles: [":host{display:block;width:100%}\n"] }]
|
|
164
|
+
}], ctorParameters: () => [{ type: i1.CmatFilesUtilService }, { type: i2.CmatUrlStateConfigService }, { type: i0.ChangeDetectorRef }], propDecorators: { imgInput: [{
|
|
165
|
+
type: ViewChild,
|
|
166
|
+
args: ['imgInput']
|
|
167
|
+
}], videoInput: [{
|
|
168
|
+
type: ViewChild,
|
|
169
|
+
args: ['videoInput']
|
|
170
|
+
}] } });
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvcXVpbGwvcXVpbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvcXVpbGwvcXVpbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUF5QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFnQixNQUFNLFdBQVcsQ0FBQztBQUN0RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxhQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxzQkFBc0IsTUFBTSw0QkFBNEIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBRXZELEtBQUssQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDdkQsS0FBSyxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBZXBFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxTQUFzQztJQTRDOUUsWUFBb0IsWUFBa0MsRUFBVSxzQkFBaUQsRUFBVSxrQkFB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LENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFjO1FBQ2hDLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUN0QixRQUFRLE1BQU0sRUFBRSxDQUFDO1lBQ2IsS0FBSyxZQUFZLENBQUM7WUFDbEIsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxXQUFXO2dCQUNaLFFBQVEsR0FBRyxPQUFPLENBQUM7Z0JBQ25CLE1BQU07WUFDVixLQUFLLFlBQVksQ0FBQztZQUNsQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLFdBQVc7Z0JBQ1osUUFBUSxHQUFHLE9BQU8sQ0FBQztnQkFDbkIsTUFBTTtRQUNkLENBQUM7UUFFRCxPQUFPLFFBQXNDLENBQUM7SUFDbEQsQ0FBQzs4R0F6S1Esc0JBQXNCO2tHQUF0QixzQkFBc0IsbVNDOUJuQyxtcEJBS2UsMEZEdUJELG1CQUFtQixzaEJBQUUsV0FBVzs7MkZBRWpDLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDSSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUM7aUtBR1osUUFBUTtzQkFBdEMsU0FBUzt1QkFBQyxVQUFVO2dCQUNZLFVBQVU7c0JBQTFDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IFF1aWxsTW9kdWxlLCBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5pbXBvcnQgUXVpbGwgZnJvbSAncXVpbGwnO1xyXG5pbXBvcnQgQmxvdEZvcm1hdHRlciBmcm9tICdxdWlsbC1ibG90LWZvcm1hdHRlcic7XHJcbmltcG9ydCBRdWlsbEltYWdlRHJvcEFuZFBhc3RlIGZyb20gJ3F1aWxsLWltYWdlLWRyb3AtYW5kLXBhc3RlJ1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ21hdEZpbGVzVXRpbFNlcnZpY2UsIEZpbGVNb2RlbCB9IGZyb20gJ2NtYXQvY29tcG9uZW50cy91cGxvYWQnO1xyXG5pbXBvcnQgeyBDbWF0VXJsU3RhdGVDb25maWdTZXJ2aWNlLCBJVXJsU3RhdGVDb25maWcgfSBmcm9tICdjbWF0L3NlcnZpY2VzL2NvbmZpZyc7XHJcbmltcG9ydCB7IENtYXRVdGlsc1NlcnZpY2UgfSBmcm9tICdjbWF0L3NlcnZpY2VzL3V0aWxzJztcclxuXHJcblF1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2Jsb3RGb3JtYXR0ZXInLCBCbG90Rm9ybWF0dGVyKTtcclxuUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VEcm9wQW5kUGFzdGUnLCBRdWlsbEltYWdlRHJvcEFuZFBhc3RlKTtcclxuXHJcbmludGVyZmFjZSBRdWlsbFByb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XHJcbiAgICBmaWxlQWxpYXM6IHN0cmluZztcclxuICAgIGZpbGVQYXRoOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LXF1aWxsLXR5cGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3F1aWxsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3F1aWxsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgUXVpbGxNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0UXVpbGxUeXBlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxRdWlsbFByb3BzPj4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZCgnaW1nSW5wdXQnKSBwcml2YXRlIGltZ0lucHV0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ3ZpZGVvSW5wdXQnKSBwcml2YXRlIHZpZGVvSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIHF1aWxsTW9kdWxlczogUXVpbGxNb2R1bGVzID0ge1xyXG4gICAgICAgIHRvb2xiYXI6IHtcclxuICAgICAgICAgICAgY29udGFpbmVyOiBbXHJcbiAgICAgICAgICAgICAgICBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZSddLFxyXG4gICAgICAgICAgICAgICAgW3sgJ3NpemUnOiBbJ3NtYWxsJywgZmFsc2UsICdsYXJnZScsICdodWdlJ10gfV0sXHJcbiAgICAgICAgICAgICAgICBbeyAnaGVhZGVyJzogWzEsIDIsIDMsIDQsIDUsIDYsIGZhbHNlXSB9XSxcclxuICAgICAgICAgICAgICAgIFt7ICdjb2xvcic6IFtdIH0sIHsgJ2JhY2tncm91bmQnOiBbXSB9XSxcclxuICAgICAgICAgICAgICAgIFt7ICdmb250JzogW10gfV0sXHJcbiAgICAgICAgICAgICAgICBbeyAnYWxpZ24nOiBbXSB9XSxcclxuICAgICAgICAgICAgICAgIFsnY2xlYW4nXSxcclxuICAgICAgICAgICAgICAgIFsnbGluaycsICdpbWFnZScsICd2aWRlbyddXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIGhhbmRsZXJzOiB7XHJcbiAgICAgICAgICAgICAgICBpbWFnZTogdGhpcy5faW1nRmlsZUhhbmRsZXIuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIHZpZGVvOnRoaXMuX3ZpZGVvRmlsZUhhbmRsZXIuYmluZCh0aGlzKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY2xpcGJvYXJkOiB7XHJcbiAgICAgICAgICAgIG1hdGNoVmlzdWFsOiBmYWxzZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJsb3RGb3JtYXR0ZXI6IHtcclxuXHJcbiAgICAgICAgfSxcclxuICAgICAgICBpbWFnZURyb3BBbmRQYXN0ZToge1xyXG4gICAgICAgICAgICBoYW5kbGVyOiB0aGlzLl9kcm9wRmlsZUhhbmRsZXIuYmluZCh0aGlzKVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgb3ZlcnJpZGUgZGVmYXVsdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgZmlsZUFsaWFzOiAnZmlsZURhdGEnLFxyXG4gICAgICAgICAgICBmaWxlUGF0aDogJ3BhdGgnXHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIF9lZGl0b3JJbnN0YW5jZTogYW55O1xyXG4gICAgcHJpdmF0ZSBfaW1nSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBJVXJsU3RhdGVDb25maWc7XHJcbiAgICBwcml2YXRlIF91bnN1YnNjcmliZUFsbDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZpbGVTZXJ2aWNlOiBDbWF0RmlsZXNVdGlsU2VydmljZSwgcHJpdmF0ZSBfdXJsU3RhdGVDb25maWdTZXJ2aWNlOiBDbWF0VXJsU3RhdGVDb25maWdTZXJ2aWNlLCBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICB0aGlzLl91cmxTdGF0ZUNvbmZpZ1NlcnZpY2UuY29uZmlnJFxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb25maWc6IElVcmxTdGF0ZUNvbmZpZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBmaWxlQ2hhbmdlRXZlbnQoZmlsZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsZU1vZGVsID0ge1xyXG4gICAgICAgICAgICBpZDogbnVsbCxcclxuICAgICAgICAgICAgZmlsZU5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgICAgbGVuZ3RoOiBmaWxlLnNpemUsXHJcbiAgICAgICAgICAgIGZpbGVDYXRlZ29yeTogJ1F1aWxsJyxcclxuICAgICAgICAgICAgZmlsZVBhdGg6IHRoaXMucHJvcHMuZmlsZVBhdGgsXHJcbiAgICAgICAgICAgIGZpbGVUeXBlOiAnZmlsZScsXHJcbiAgICAgICAgICAgIGRhdGE6IGZpbGVcclxuICAgICAgICB9IGFzIEZpbGVNb2RlbDtcclxuXHJcbiAgICAgICAgZmlsZU1vZGVsLmZpbGVUeXBlID0gQ21hdFV0aWxzU2VydmljZS5nZXRGaWxlVHlwZShmaWxlLnR5cGUpO1xyXG5cclxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG5cclxuICAgICAgICBmb3JtRGF0YS5zZXQoJ2ZpbGVEYXRhJywgZmlsZSwgZmlsZS5uYW1lKTtcclxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGVJbmZvJywgSlNPTi5zdHJpbmdpZnkoZmlsZU1vZGVsKSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2ZpbGVTZXJ2aWNlLnVwbG9hZEZpbGUoZm9ybURhdGEpLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbClcclxuICAgICAgICApLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZWRpdG9ySW5zdGFuY2UuaW5zZXJ0RW1iZWQodGhpcy5fZWRpdG9ySW5zdGFuY2UuZ2V0U2VsZWN0aW9uKHRydWUpLmluZGV4LCB0aGlzLl9nZXRNZWRpYVR5cGUoZmlsZS50eXBlKSwgYCR7dGhpcy5fY29uZmlnLmZpbGVVcmx9L2Rvd25sb2FkLyR7ZXZlbnQuYm9keS5pZH1gKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VkaXRvckluc3RhbmNlLnNldFNlbGVjdGlvbih0aGlzLl9lZGl0b3JJbnN0YW5jZS5nZXRTZWxlY3Rpb24odHJ1ZSkuaW5kZXgrMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuX2VkaXRvckluc3RhbmNlLmNvbnRhaW5lci5pbm5lckhUTUwpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwbG9hZChldmVudC5ib2R5LmlkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdG9yQ3JlYXRlZChlZGl0b3JJbnN0YW5jZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZWRpdG9ySW5zdGFuY2UgPSBlZGl0b3JJbnN0YW5jZTtcclxuXHJcbiAgICAgICAgY29uc3QgZG9tID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XHJcbiAgICAgICAgZG9tLmlubmVySFRNTCA9IGVkaXRvckluc3RhbmNlLmNvbnRhaW5lci5pbm5lckhUTUw7XHJcbiAgICAgICAgY29uc3QgZmlsZURvbSA9IGRvbS5xdWVyeVNlbGVjdG9yQWxsKCdpbWcsIHZpZGVvJyk7XHJcbiAgICAgICAgZmlsZURvbS5mb3JFYWNoKChpKT0+e1xyXG4gICAgICAgICAgICBpZiAoKGkgYXMgSFRNTE1lZGlhRWxlbWVudCkuc3JjLmluZGV4T2YodGhpcy5fY29uZmlnLmZpbGVVcmwpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ltZ0lkcy5wdXNoKChpIGFzIEhUTUxNZWRpYUVsZW1lbnQpLnNyYy5zdWJzdHJpbmcoYCR7dGhpcy5fY29uZmlnLmZpbGVVcmx9L2Rvd25sb2FkL2AubGVuZ3RoLCAoaSBhcyBIVE1MTWVkaWFFbGVtZW50KS5zcmMubGVuZ3RoKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb250ZW50Q2hhbmdlZChlZGl0b3JJbnN0YW5jZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZG9tID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XHJcblxyXG4gICAgICAgIGRvbS5pbm5lckhUTUwgPSBlZGl0b3JJbnN0YW5jZS5lZGl0b3IuY29udGFpbmVyLmlubmVySFRNTDtcclxuICAgICAgICBjb25zdCBmaWxlRG9tID0gZG9tLnF1ZXJ5U2VsZWN0b3JBbGwoJ2ltZywgdmlkZW8nKTtcclxuXHJcbiAgICAgICAgY29uc3QgYXJyOnN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgIGZpbGVEb20uZm9yRWFjaCgoaSk9PntcclxuICAgICAgICAgICAgaWYgKChpIGFzIEhUTUxNZWRpYUVsZW1lbnQpLnNyYy5pbmRleE9mKHRoaXMuX2NvbmZpZy5maWxlVXJsKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpZCA9IChpIGFzIEhUTUxNZWRpYUVsZW1lbnQpLnNyYy5zdWJzdHJpbmcoYCR7dGhpcy5fY29uZmlnLmZpbGVVcmx9L2Rvd25sb2FkL2AubGVuZ3RoLCAoaSBhcyBIVE1MTWVkaWFFbGVtZW50KS5zcmMubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ltZ0lkcy5zcGxpY2UodGhpcy5faW1nSWRzLmluZGV4T2YoaWQpLCAxKTtcclxuICAgICAgICAgICAgICAgIGFyci5wdXNoKGlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9pbWdJZHMuZm9yRWFjaCgoaSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbFsncmVtb3ZlSWQnXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbFsncmVtb3ZlSWQnXS5wdXNoKGkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbFsncmVtb3ZlSWQnXSA9IFtpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9pbWdJZHMgPSBhcnI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaW1nRmlsZUhhbmRsZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbWdJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdmlkZW9GaWxlSGFuZGxlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZGVvSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2Ryb3BGaWxlSGFuZGxlcihkYXRhVXJsOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgZmlsZURhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsZUNoYW5nZUV2ZW50KGZpbGVEYXRhLnRvRmlsZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF91cGxvYWQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsWyd1cGxvYWRJZCddKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWxbJ3VwbG9hZElkJ10ucHVzaChpZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbFsndXBsb2FkSWQnXSA9IFtpZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldE1lZGlhVHlwZShhY2NlcHQ6IHN0cmluZyk6ICdmaWxlJyB8ICdpbWFnZScgfCAndmlkZW8nIHtcclxuICAgICAgICBsZXQgZmlsZVR5cGUgPSAnZmlsZSc7XHJcbiAgICAgICAgc3dpdGNoIChhY2NlcHQpIHtcclxuICAgICAgICAgICAgY2FzZSAnaW1hZ2UvanBlZyc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2pwZyc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL3BuZyc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2dpZic6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICdpbWFnZSc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndmlkZW8vbXBlZyc6XHJcbiAgICAgICAgICAgIGNhc2UgJ3ZpZGVvL21wNCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2F1ZGlvL21wNCc6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICd2aWRlbyc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmaWxlVHlwZSBhcyAnZmlsZScgfCAnaW1hZ2UnIHwgJ3ZpZGVvJztcclxuICAgIH1cclxufSIsIjxxdWlsbC1lZGl0b3IgY2xhc3M9XCJ3LWZ1bGxcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiAgW3RhYmluZGV4XT1cInByb3BzLnRhYmluZGV4XCIgW3JlYWRPbmx5XT1cImRpc2FibGVkXCJcclxuICAgIChvbkVkaXRvckNyZWF0ZWQpPVwiZWRpdG9yQ3JlYXRlZCgkZXZlbnQpXCIgKG9uQ29udGVudENoYW5nZWQpPVwiY29udGVudENoYW5nZWQoJGV2ZW50KVwiIGRlZmF1bHRFbXB0eVZhbHVlPVwiXCJcclxuICAgIFttb2R1bGVzXT1cInF1aWxsTW9kdWxlc1wiPlxyXG4gICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLGltYWdlL2pwZWcsaW1hZ2UvanBnLGltYWdlL2dpZlwiIGNsYXNzPVwiaGlkZGVuXCIgKGNoYW5nZSk9XCJmaWxlQ2hhbmdlRXZlbnQoaW1nSW5wdXQuZmlsZXM/LlswXSlcIiAjaW1nSW5wdXQgLz5cclxuICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cInZpZGVvL21wZWcsdmlkZW8vbXA0LGF1ZGlvL21wNFwiIGNsYXNzPVwiaGlkZGVuXCIgKGNoYW5nZSk9XCJmaWxlQ2hhbmdlRXZlbnQodmlkZW9JbnB1dC5maWxlcz8uWzBdKVwiICN2aWRlb0lucHV0IC8+XHJcbjwvcXVpbGwtZWRpdG9yPiJdfQ==
|
|
@@ -75,14 +75,14 @@ export class CmatRadioTypeComponent extends FieldType {
|
|
|
75
75
|
trackByFn(index) {
|
|
76
76
|
return index;
|
|
77
77
|
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatRadioTypeComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: CmatRadioTypeComponent, isStandalone: true, selector: "cmat-radio-type", viewQueries: [{ propertyName: "radioGroup", first: true, predicate: MatRadioGroup, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-radio-group [formControl]=\"formControl\" [required]=\"required\" [tabindex]=\"props.tabindex\">\r\n @if ((urlData$ | async); as urlData) {\r\n @for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\n trackByFn($index)) {\r\n <mat-radio-button [color]=\"props.color\" [labelPosition]=\"props.labelPosition\" [disabled]=\"option.disabled\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-radio-button>\r\n }\r\n }\r\n</mat-radio-group>", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i2.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormlySelectModule }, { kind: "pipe", type: i3.FormlySelectOptionsPipe, name: "formlySelectOptions" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
80
|
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatRadioTypeComponent, decorators: [{
|
|
82
82
|
type: Component,
|
|
83
83
|
args: [{ selector: 'cmat-radio-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatRadioModule, AsyncPipe, FormlySelectModule, ReactiveFormsModule], template: "<mat-radio-group [formControl]=\"formControl\" [required]=\"required\" [tabindex]=\"props.tabindex\">\r\n @if ((urlData$ | async); as urlData) {\r\n @for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\n trackByFn($index)) {\r\n <mat-radio-button [color]=\"props.color\" [labelPosition]=\"props.labelPosition\" [disabled]=\"option.disabled\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-radio-button>\r\n }\r\n }\r\n</mat-radio-group>", styles: [":host{width:100%}\n"] }]
|
|
84
84
|
}], ctorParameters: () => [{ type: i1.HttpClient }], propDecorators: { radioGroup: [{
|
|
85
85
|
type: ViewChild,
|
|
86
86
|
args: [MatRadioGroup, { static: true }]
|
|
87
87
|
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvcmFkaW8vcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvcmFkaW8vcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUEwQyxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBdUMsUUFBUSxJQUFJLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUF3QnZFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxTQUFzQztJQWdCOUUsWUFBb0IsS0FBaUI7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBYjVCLG1CQUFjLEdBQUc7WUFDdEIsS0FBSyxFQUFFO2dCQUNILGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLFVBQVUsRUFBRSxRQUFpQjtnQkFDN0IsUUFBUSxFQUFFLENBQUMsQ0FBQztn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QUFDO0lBQ1AsQ0FBQztJQUVRLGdCQUFnQixLQUFXLENBQUM7SUFFNUIsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs4R0F6RVEsc0JBQXNCO2tHQUF0QixzQkFBc0IsdUhBQ3BCLGFBQWEscUZDakM1QixvaUJBVWtCLDRFRG9CSixjQUFjLGtpQkFBRSxTQUFTLDZDQUFFLGtCQUFrQiwrR0FBQyxtQkFBbUI7OzJGQUVsRSxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0ksaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBQyxtQkFBbUIsQ0FBQzsrRUFHaEMsVUFBVTtzQkFBckQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIFR5cGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb0dyb3VwLCBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZyAsIMm1b2JzZXJ2ZSBhcyBvYnNlcnZlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1seVNlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUvc2VsZWN0JztcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbnRlcmZhY2UgUmFkaW9Qcm9wcyBleHRlbmRzIEZvcm1seUZpZWxkUHJvcHMge1xyXG4gICAgbGFiZWxQb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInO1xyXG4gICAgZG9tYWluPzoge1xyXG4gICAgICAgIHVybD86IHN0cmluZztcclxuICAgICAgICBjb2RlPzogc3RyaW5nO1xyXG4gICAgICAgIGtleT86IHN0cmluZztcclxuICAgICAgICB2YWx1ZT86IHN0cmluZztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtbHlSYWRpb0ZpZWxkQ29uZmlnIGV4dGVuZHMgRm9ybWx5RmllbGRDb25maWc8UmFkaW9Qcm9wcz4ge1xyXG4gICAgdHlwZTogJ3JhZGlvJyB8IFR5cGU8Q21hdFJhZGlvVHlwZUNvbXBvbmVudD47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LXJhZGlvLXR5cGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczpbJy4vcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRSYWRpb01vZHVsZSwgQXN5bmNQaXBlLCBGb3JtbHlTZWxlY3RNb2R1bGUsUmVhY3RpdmVGb3Jtc01vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRSYWRpb1R5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFJhZGlvUHJvcHM+PiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBWaWV3Q2hpbGQoTWF0UmFkaW9Hcm91cCwgeyBzdGF0aWM6IHRydWUgfSkgcmFkaW9Hcm91cCE6IE1hdFJhZGlvR3JvdXA7XHJcblxyXG4gICAgb3ZlcnJpZGUgZGVmYXVsdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgaGlkZUZpZWxkVW5kZXJsaW5lOiB0cnVlLFxyXG4gICAgICAgICAgICBmbG9hdExhYmVsOiAnYWx3YXlzJyBhcyBjb25zdCxcclxuICAgICAgICAgICAgdGFiaW5kZXg6IC0xLFxyXG4gICAgICAgICAgICBsYWJlbFBvc2l0aW9uOiAnYWZ0ZXInIGFzIGNvbnN0XHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBmb2N1c09ic2VydmVyITogUmV0dXJuVHlwZTx0eXBlb2Ygb2JzZXJ2ZT47XHJcbiAgICBwcml2YXRlIF91cmxEYXRhOiBCZWhhdmlvclN1YmplY3Q8YW55W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuICAgIGdldCB1cmxEYXRhJCgpOiBPYnNlcnZhYmxlPGFueVtdID4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmxEYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy51cmw7XHJcbiAgICAgICAgaWYgKHVybCAmJiB0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmNvZGUgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5rZXkgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9odHRwLmdldCh1cmwpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0gZGF0YS5maWx0ZXIoKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5XSA9PT0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5jb2RlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YXMgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXJsRGF0YS5uZXh0KGRhdGFzWzBdW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8udmFsdWVdKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VybERhdGEubmV4dChbXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cmxEYXRhLm5leHQoW10pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl91cmxEYXRhLm5leHQoW10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9jdXNPYnNlcnZlciA9IG9ic2VydmUodGhpcy5maWVsZCwgWydmb2N1cyddLCAoeyBjdXJyZW50VmFsdWUgfSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy50YWJpbmRleCA9PT0gLTEgJiYgY3VycmVudFZhbHVlICYmIHRoaXMucmFkaW9Hcm91cC5fcmFkaW9zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhZGlvID0gdGhpcy5yYWRpb0dyb3VwLnNlbGVjdGVkID8gdGhpcy5yYWRpb0dyb3VwLnNlbGVjdGVkIDogdGhpcy5yYWRpb0dyb3VwLl9yYWRpb3MuZmlyc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgcmFkaW8uZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgb25Db250YWluZXJDbGljaygpOiB2b2lkIHsgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5mb2N1c09ic2VydmVyICYmIHRoaXMuZm9jdXNPYnNlcnZlci51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLm5leHQodm9pZCAwKTtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICB9XHJcbn1cclxuIiwiPG1hdC1yYWRpby1ncm91cCBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbdGFiaW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIj5cclxuICAgIEBpZiAoKHVybERhdGEkIHwgYXN5bmMpOyBhcyB1cmxEYXRhKSB7XHJcbiAgICBAZm9yIChvcHRpb24gb2YgKHVybERhdGEubGVuZ3RoID4gMCA/IHVybERhdGEgOiAocHJvcHMub3B0aW9ucyB8IGZvcm1seVNlbGVjdE9wdGlvbnMgOiBmaWVsZCB8IGFzeW5jKSk7IHRyYWNrXHJcbiAgICB0cmFja0J5Rm4oJGluZGV4KSkge1xyXG4gICAgPG1hdC1yYWRpby1idXR0b24gW2NvbG9yXT1cInByb3BzLmNvbG9yXCIgW2xhYmVsUG9zaXRpb25dPVwicHJvcHMubGFiZWxQb3NpdGlvblwiIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cclxuICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cclxuICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgIH1cclxuICAgIH1cclxuPC9tYXQtcmFkaW8tZ3JvdXA+Il19
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvcmFkaW8vcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvcmFkaW8vcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUEwQyxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBdUMsUUFBUSxJQUFJLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUF3QnZFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxTQUFzQztJQWdCOUUsWUFBb0IsS0FBaUI7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBYjVCLG1CQUFjLEdBQUc7WUFDdEIsS0FBSyxFQUFFO2dCQUNILGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLFVBQVUsRUFBRSxRQUFpQjtnQkFDN0IsUUFBUSxFQUFFLENBQUMsQ0FBQztn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SyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUSxnQkFBZ0IsS0FBVyxDQUFDO0lBRTVCLFdBQVc7UUFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7OEdBekVRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHVIQUNwQixhQUFhLHFGQ2pDNUIsb2lCQVVrQiw0RURvQkosY0FBYyxraUJBQUUsU0FBUyw2Q0FBRSxrQkFBa0IsK0dBQUMsbUJBQW1COzsyRkFFbEUsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUMsbUJBQW1CLENBQUM7K0VBR2hDLFVBQVU7c0JBQXJELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBUeXBlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0UmFkaW9Hcm91cCwgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRDb25maWcgLCDJtW9ic2VydmUgYXMgb2JzZXJ2ZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtbHlTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlL3NlbGVjdCc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSwgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW50ZXJmYWNlIFJhZGlvUHJvcHMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcclxuICAgIGxhYmVsUG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJztcclxuICAgIGRvbWFpbj86IHtcclxuICAgICAgICB1cmw/OiBzdHJpbmc7XHJcbiAgICAgICAgY29kZT86IHN0cmluZztcclxuICAgICAgICBrZXk/OiBzdHJpbmc7XHJcbiAgICAgICAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWx5UmFkaW9GaWVsZENvbmZpZyBleHRlbmRzIEZvcm1seUZpZWxkQ29uZmlnPFJhZGlvUHJvcHM+IHtcclxuICAgIHR5cGU6ICdyYWRpbycgfCBUeXBlPENtYXRSYWRpb1R5cGVDb21wb25lbnQ+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1yYWRpby10eXBlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6WycuL3JhZGlvLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTWF0UmFkaW9Nb2R1bGUsIEFzeW5jUGlwZSwgRm9ybWx5U2VsZWN0TW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0UmFkaW9UeXBlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxSYWRpb1Byb3BzPj4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICBAVmlld0NoaWxkKE1hdFJhZGlvR3JvdXAsIHsgc3RhdGljOiB0cnVlIH0pIHJhZGlvR3JvdXAhOiBNYXRSYWRpb0dyb3VwO1xyXG5cclxuICAgIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgICAgIGhpZGVGaWVsZFVuZGVybGluZTogdHJ1ZSxcclxuICAgICAgICAgICAgZmxvYXRMYWJlbDogJ2Fsd2F5cycgYXMgY29uc3QsXHJcbiAgICAgICAgICAgIHRhYmluZGV4OiAtMSxcclxuICAgICAgICAgICAgbGFiZWxQb3NpdGlvbjogJ2FmdGVyJyBhcyBjb25zdFxyXG4gICAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgZm9jdXNPYnNlcnZlciE6IFJldHVyblR5cGU8dHlwZW9mIG9ic2VydmU+O1xyXG4gICAgcHJpdmF0ZSBfdXJsRGF0YTogQmVoYXZpb3JTdWJqZWN0PGFueVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgICBnZXQgdXJsRGF0YSQoKTogT2JzZXJ2YWJsZTxhbnlbXSA+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdXJsRGF0YS5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8udXJsO1xyXG4gICAgICAgIGlmICh1cmwgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5jb2RlICYmIHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5ICYmIHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8udmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5faHR0cC5nZXQodXJsKS5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCkpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhcyA9IGRhdGEuZmlsdGVyKChpOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmtleSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaVt0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmtleV0gPT09IHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8uY29kZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFzICYmIHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VybERhdGEubmV4dChkYXRhc1swXVt0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LnZhbHVlXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cmxEYXRhLm5leHQoW10pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXJsRGF0YS5uZXh0KFtdKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fdXJsRGF0YS5uZXh0KFtdKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvY3VzT2JzZXJ2ZXIgPSBvYnNlcnZlKHRoaXMuZmllbGQsIFsnZm9jdXMnXSwgKHsgY3VycmVudFZhbHVlIH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMudGFiaW5kZXggPT09IC0xICYmIGN1cnJlbnRWYWx1ZSAmJiB0aGlzLnJhZGlvR3JvdXAuX3JhZGlvcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByYWRpbyA9IHRoaXMucmFkaW9Hcm91cC5zZWxlY3RlZCA/IHRoaXMucmFkaW9Hcm91cC5zZWxlY3RlZCA6IHRoaXMucmFkaW9Hcm91cC5fcmFkaW9zLmZpcnN0O1xyXG4gICAgICAgICAgICAgICAgICAgIHJhZGlvLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG9uQ29udGFpbmVyQ2xpY2soKTogdm9pZCB7IH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuZm9jdXNPYnNlcnZlciAmJiB0aGlzLmZvY3VzT2JzZXJ2ZXIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4O1xyXG4gICAgfVxyXG59XHJcbiIsIjxtYXQtcmFkaW8tZ3JvdXAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3RhYmluZGV4XT1cInByb3BzLnRhYmluZGV4XCI+XHJcbiAgICBAaWYgKCh1cmxEYXRhJCB8IGFzeW5jKTsgYXMgdXJsRGF0YSkge1xyXG4gICAgQGZvciAob3B0aW9uIG9mICh1cmxEYXRhLmxlbmd0aCA+IDAgPyB1cmxEYXRhIDogKHByb3BzLm9wdGlvbnMgfCBmb3JtbHlTZWxlY3RPcHRpb25zIDogZmllbGQgfCBhc3luYykpOyB0cmFja1xyXG4gICAgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgIDxtYXQtcmFkaW8tYnV0dG9uIFtjb2xvcl09XCJwcm9wcy5jb2xvclwiIFtsYWJlbFBvc2l0aW9uXT1cInByb3BzLmxhYmVsUG9zaXRpb25cIiBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCJcclxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XHJcbiAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICB9XHJcbiAgICB9XHJcbjwvbWF0LXJhZGlvLWdyb3VwPiJdfQ==
|
|
@@ -17,10 +17,10 @@ export class CmatRatingTypeComponent extends FieldType {
|
|
|
17
17
|
},
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatRatingTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: CmatRatingTypeComponent, isStandalone: true, selector: "cmat-rating-type", usesInheritance: true, ngImport: i0, template: "@if(props.customColor&&props.customColor.indexOf('#')>-1){\r\n<div [ngStyle]=\"{'color': props.customColor}\">\r\n <cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\"\r\n [readonly]=\"props.readonly\" [hover]=\"props.hover\" [half]=\"props.half\" [showMode]=\"props.showMode\"></cmat-rating>\r\n</div>\r\n}@else{\r\n<cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\" [readonly]=\"props.readonly\"\r\n [hover]=\"props.hover\" [half]=\"props.half\" [color]=\"props.customColor\" [showMode]=\"props.showMode\"></cmat-rating>\r\n}", styles: [":host{width:100%}\n"], dependencies: [{ kind: "component", type: CmatRatingComponent, selector: "cmat-rating", inputs: ["id", "stars", "readonly", "hover", "half", "color", "showMode", "placeholder", "value", "required", "disabled"], outputs: ["valueChange"], exportAs: ["cmatRating"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatRatingTypeComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{ selector: 'cmat-rating-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CmatRatingComponent, ReactiveFormsModule, NgStyle], template: "@if(props.customColor&&props.customColor.indexOf('#')>-1){\r\n<div [ngStyle]=\"{'color': props.customColor}\">\r\n <cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\"\r\n [readonly]=\"props.readonly\" [hover]=\"props.hover\" [half]=\"props.half\" [showMode]=\"props.showMode\"></cmat-rating>\r\n</div>\r\n}@else{\r\n<cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\" [readonly]=\"props.readonly\"\r\n [hover]=\"props.hover\" [half]=\"props.half\" [color]=\"props.customColor\" [showMode]=\"props.showMode\"></cmat-rating>\r\n}", styles: [":host{width:100%}\n"] }]
|
|
26
26
|
}] });
|
|
@@ -15,14 +15,11 @@ export class CmatRepeatTypeComponent extends FieldArrayType {
|
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatRepeatTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.9", type: CmatRepeatTypeComponent, isStandalone: true, selector: "cmat-repeat-type", usesInheritance: true, ngImport: i0, template: "<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track trackByFn($index)) {\r\n <div class=\"flex flex-row repeat-item\">\r\n <formly-field [field]=\"field\" class=\"repeat-field\"></formly-field>\r\n @if(!props.disabled){\r\n <div class=\"flex items-center pl-2 print:hidden\">\r\n <button mat-icon-button color=\"warn\" (click)=\"remove($index)\" matTooltip=\"\u5220\u9664\">\r\n <mat-icon color=\"warn\" [svgIcon]=\"'heroicons_outline:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"mt-2 print:hidden\">\r\n <button mat-raised-button color=\"primary\" (click)=\"add()\">{{ props.addText}}</button>\r\n </div>\r\n }\r\n\r\n</div>", styles: [":host{width:100%}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-infix .mat-mdc-floating-label{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-subscript-wrapper{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-text-field-wrapper{margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatRepeatTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: CmatRepeatTypeComponent, isStandalone: true, selector: "cmat-repeat-type", usesInheritance: true, ngImport: i0, template: "<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track $index) {\r\n <div class=\"flex flex-row repeat-item\">\r\n <formly-field [field]=\"field\" class=\"repeat-field\"></formly-field>\r\n @if(!props.disabled){\r\n <div class=\"flex items-center pl-2 print:hidden\">\r\n <button mat-icon-button color=\"warn\" (click)=\"remove($index)\" matTooltip=\"\u5220\u9664\">\r\n <mat-icon color=\"warn\" [svgIcon]=\"'heroicons_outline:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"mt-2 print:hidden\">\r\n <button mat-raised-button color=\"primary\" (click)=\"add()\">{{ props.addText}}</button>\r\n </div>\r\n }\r\n\r\n</div>", styles: [":host{width:100%}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-infix .mat-mdc-floating-label{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-subscript-wrapper{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-text-field-wrapper{margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
20
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatRepeatTypeComponent, decorators: [{
|
|
25
22
|
type: Component,
|
|
26
|
-
args: [{ selector: 'cmat-repeat-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormlyModule, MatIconModule, MatButtonModule], template: "<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track
|
|
23
|
+
args: [{ selector: 'cmat-repeat-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormlyModule, MatIconModule, MatButtonModule], template: "<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track $index) {\r\n <div class=\"flex flex-row repeat-item\">\r\n <formly-field [field]=\"field\" class=\"repeat-field\"></formly-field>\r\n @if(!props.disabled){\r\n <div class=\"flex items-center pl-2 print:hidden\">\r\n <button mat-icon-button color=\"warn\" (click)=\"remove($index)\" matTooltip=\"\u5220\u9664\">\r\n <mat-icon color=\"warn\" [svgIcon]=\"'heroicons_outline:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"mt-2 print:hidden\">\r\n <button mat-raised-button color=\"primary\" (click)=\"add()\">{{ props.addText}}</button>\r\n </div>\r\n }\r\n\r\n</div>", styles: [":host{width:100%}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-infix .mat-mdc-floating-label{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-form-field-subscript-wrapper{display:none!important}::ng-deep .repeat-body .repeat-item:not(:first-child) .repeat-field .mat-mdc-text-field-wrapper{margin-top:8px}\n"] }]
|
|
27
24
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jdXN0b20tZm9ybWx5L3R5cGVzL3JlcGVhdC9yZXBlYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvcmVwZWF0L3JlcGVhdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBcUMsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBY25HLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxjQUE0QztJQVJ6Rjs7UUFTVyxtQkFBYyxHQUFHO1lBQ3hCLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsSUFBSTthQUNkO1NBQ0YsQ0FBQztLQUNIOzhHQU5ZLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG1HQ2pCcEMsNHZDQW9DTSx5Y0RyQk0sWUFBWSx3SEFBRSxhQUFhLG1MQUFFLGVBQWU7OzJGQUUzQyx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRmllbGRBcnJheVR5cGUsIEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRQcm9wcywgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcblxyXG5pbnRlcmZhY2UgUmVwZWF0UHJvcHMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcclxuICBhZGRUZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY21hdC1yZXBlYXQtdHlwZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVwZWF0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRm9ybWx5TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0UmVwZWF0VHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkQXJyYXlUeXBlPEZpZWxkVHlwZUNvbmZpZzxSZXBlYXRQcm9wcz4+IHtcclxuICBvdmVycmlkZSBkZWZhdWx0T3B0aW9ucyA9IHtcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIGFkZFRleHQ6ICfmlrDlop4nXHJcbiAgICB9LFxyXG4gIH07XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1iLTJcIiBbdGFiSW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIj5cclxuICAgIEBpZihwcm9wcy5sYWJlbCl7XHJcbiAgICA8bGVnZW5kIGNsYXNzPVwidGV4dC1sZ1wiPlxyXG4gICAgICAgIHt7IHByb3BzLmxhYmVsIH19XHJcbiAgICAgICAgQGlmKHByb3BzLnJlcXVpcmVkKXtcclxuICAgICAgICA8c3Bhbj4qPC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgIDwvbGVnZW5kPlxyXG4gICAgfVxyXG5cclxuICAgIEBpZihwcm9wcy5kZXNjcmlwdGlvbil7XHJcbiAgICA8cD57eyBwcm9wcy5kZXNjcmlwdGlvbiB9fTwvcD5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMiBoLTEgYm9yZGVyLXNvbGlkIGJvcmRlci1iLTJcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHJlcGVhdC1ib2R5XCI+XHJcbiAgICAgICAgQGZvciAoZmllbGQgb2YgZmllbGQuZmllbGRHcm91cDsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgcmVwZWF0LWl0ZW1cIj5cclxuICAgICAgICAgICAgPGZvcm1seS1maWVsZCBbZmllbGRdPVwiZmllbGRcIiBjbGFzcz1cInJlcGVhdC1maWVsZFwiPjwvZm9ybWx5LWZpZWxkPlxyXG4gICAgICAgICAgICBAaWYoIXByb3BzLmRpc2FibGVkKXtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHBsLTIgcHJpbnQ6aGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwicmVtb3ZlKCRpbmRleClcIiBtYXRUb29sdGlwPVwi5Yig6ZmkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwid2FyblwiIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfb3V0bGluZTp0cmFzaCdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmKCFwcm9wcy5kaXNhYmxlZCl7XHJcbiAgICA8ZGl2IGNsYXNzPVwibXQtMiBwcmludDpoaWRkZW5cIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhZGQoKVwiPnt7IHByb3BzLmFkZFRleHR9fTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG48L2Rpdj4iXX0=
|
|
@@ -153,17 +153,14 @@ export class CmatSelectTypeComponent extends FieldType {
|
|
|
153
153
|
this.isChecked = false;
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
trackByFn(index) {
|
|
157
|
-
return index;
|
|
158
|
-
}
|
|
159
156
|
compareWithFn(o1, o2) {
|
|
160
157
|
return o1 && o2 ? o1?.label === o2?.label && o1?.value === o2?.value : o1 === o2;
|
|
161
158
|
}
|
|
162
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
163
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatSelectTypeComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: CmatSelectTypeComponent, isStandalone: true, selector: "cmat-select-search-type", usesInheritance: true, ngImport: i0, template: "@if(props.multiple){\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\" multiple\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) { \r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>\u7A7A</mat-option>\r\n }\r\n @for (i of customDetails; track $index) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track $index) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}@else {\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>\u7A7A</mat-option>\r\n }\r\n @for (i of customDetails; track $index) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track $index) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}\r\n", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: CmatSelectSearchComponent, selector: "cmat-select-search", inputs: ["placeholderLabel", "type", "noEntriesFoundLabel", "showNoFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"], exportAs: ["cmatSelectSearch"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
164
161
|
}
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatSelectTypeComponent, decorators: [{
|
|
166
163
|
type: Component,
|
|
167
|
-
args: [{ selector: 'cmat-select-search-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatCheckboxModule, MatSelectModule, CmatSelectSearchComponent, ReactiveFormsModule, AsyncPipe], template: "@if(props.multiple){\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\" multiple\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) { \r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>\u7A7A</mat-option>\r\n }\r\n @for (i of customDetails; track
|
|
164
|
+
args: [{ selector: 'cmat-select-search-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatCheckboxModule, MatSelectModule, CmatSelectSearchComponent, ReactiveFormsModule, AsyncPipe], template: "@if(props.multiple){\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\" multiple\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) { \r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>\u7A7A</mat-option>\r\n }\r\n @for (i of customDetails; track $index) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track $index) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}@else {\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (props.canNull) {\r\n <mat-option>\u7A7A</mat-option>\r\n }\r\n @for (i of customDetails; track $index) {\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track $index) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}\r\n", styles: [":host{width:100%}\n"] }]
|
|
168
165
|
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jdXN0b20tZm9ybWx5L3R5cGVzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQXlCMUUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQXVDO0lBbUJoRixZQUFvQixLQUFpQjtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURRLFVBQUssR0FBTCxLQUFLLENBQVk7UUFsQjVCLG1CQUFjLEdBQUc7WUFDdEIsS0FBSyxFQUFFO2dCQUNILE1BQU0sRUFBRSxJQUFJO2dCQUNaLE9BQU8sRUFBRSxLQUFLO2dCQUNkLHFCQUFxQixFQUFFLEtBQUs7YUFDL0I7U0FDSixDQUFDO1FBSUYsMEJBQXFCLEdBQXlCLElBQUksYUFBYSxDQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFFLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsb0JBQWUsR0FBZ0IsSUFBSSxXQUFXLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFbkQsYUFBUSxHQUFPLEVBQUUsQ0FBQztRQUNsQixvQkFBZSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRzdELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztTQUN0RjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1NBQzdFO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3JFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQyxDQUNKLENBQUM7U0FDTDtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7UUFDMUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDM0csSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQy9ELENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxJQUFJLEVBQUU7b0JBQ04sTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO3dCQUNqQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHOzRCQUM3QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQzt3QkFFL0UsT0FBTyxLQUFLLENBQUM7b0JBQ2pCLENBQUMsQ0FDQSxDQUFDO29CQUNGLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7d0JBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztxQkFFN0Q7eUJBQU07d0JBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7cUJBQ3RCO2lCQUVKO3FCQUFNO29CQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2lCQUN0QjtnQkFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FDSixDQUFDO1NBQ0w7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN2RDtRQUVELEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3hELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWTthQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUNyQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRW5CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO2dCQUNuQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWTthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUNyQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7Z0JBQ25CLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFXLENBQUM7U0FDN0Q7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLFlBQVksQ0FBVyxDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlLENBQUMsY0FBdUI7UUFDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FDM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQ2xDO2FBQ0ksU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixJQUFJLGNBQWMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDM0Q7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDakM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLE9BQU87U0FDVjtRQUVELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEQsT0FBTztTQUNWO2FBQU07WUFDSCxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEssSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELHlCQUF5QjtRQUNyQixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTFELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTlGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBOEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNwRyxjQUFjLEVBQUUsQ0FBQztpQkFDcEI7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxHQUFHLENBQUMsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUMzRSxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsR0FBRyxDQUFDLElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDMUU7YUFBSTtZQUNELElBQUksQ0FBQyxlQUFlLEdBQUUsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUUsS0FBSyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBTyxFQUFFLEVBQU87UUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JGLENBQUM7OEdBL0tRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDBHQ3BDcEMsZ3NHQXFFQSw0RURuQ2MsaUJBQWlCLDhCQUFFLGVBQWUscXpCQUFFLHlCQUF5Qiwra0JBQUUsbUJBQW1CLGtoQkFBRSxTQUFTOzsyRkFFOUYsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRTZWxlY3RQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUvc2VsZWN0JztcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBvZiwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENtYXRTZWxlY3RTZWFyY2hDb21wb25lbnQgfSBmcm9tICdjbWF0L2NvbXBvbmVudHMvc2VsZWN0LXNlYXJjaCc7XHJcblxyXG5pbnRlcmZhY2UgU2VsZWN0UHJvcHMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzLCBGb3JtbHlGaWVsZFNlbGVjdFByb3BzIHtcclxuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICAgIGRpc2FibGVPcHRpb25DZW50ZXJpbmc/OiBib29sZWFuO1xyXG4gICAgdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbD86IG51bWJlcjtcclxuICAgIHNlYXJjaDogYm9vbGVhbjtcclxuICAgIGNhbk51bGw6IGJvb2xlYW47XHJcbiAgICBzaG93VG9nZ2xlQWxsQ2hlY2tib3g6IGJvb2xlYW47XHJcbiAgICBkb21haW4/OiB7XHJcbiAgICAgICAgdXJsPzogc3RyaW5nO1xyXG4gICAgICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICAgICAga2V5Pzogc3RyaW5nO1xyXG4gICAgICAgIHZhbHVlPzogc3RyaW5nO1xyXG4gICAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1zZWxlY3Qtc2VhcmNoLXR5cGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRDaGVja2JveE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBDbWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBBc3luY1BpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0U2VsZWN0VHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc8U2VsZWN0UHJvcHM+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgICAgIHNlYXJjaDogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuTnVsbDogZmFsc2UsXHJcbiAgICAgICAgICAgIHNob3dUb2dnbGVBbGxDaGVja2JveDogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBvcHRpb25zRGF0YTogYW55W107XHJcblxyXG4gICAgZmlsdGVyZWRDdXN0b21EZXRhaWxzOiBSZXBsYXlTdWJqZWN0PGFueVtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueVtdPigxKTtcclxuICAgIGZpbHRlcmVkQ2FjaGU6IGFueVtdID0gW107XHJcbiAgICBpc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgIGlzQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgbXVsdGlGaWx0ZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgICBwcml2YXRlIF91cmxEYXRhOiBbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRhdGFzKCk6IGFueVtdIHtcclxuICAgICAgICBpZiAoaXNBcnJheSh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdXJsRGF0YT8ubGVuZ3RoID4gMCA/IHRoaXMuX3VybERhdGEgOiB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl91cmxEYXRhPy5sZW5ndGggPiAwID8gdGhpcy5fdXJsRGF0YSA6IHRoaXMub3B0aW9uc0RhdGEgfHwgW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zICYmICFpc0FycmF5KHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc0RhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy51cmw7XHJcbiAgICAgICAgaWYgKHVybCAmJiB0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmNvZGUgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5rZXkgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9odHRwLmdldCh1cmwpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0gZGF0YS5maWx0ZXIoKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5XSA9PT0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5jb2RlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YXMgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXJsRGF0YSA9IGRhdGFzWzBdW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8udmFsdWVdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VybERhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cmxEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYWNoZSA9IHRoaXMuZGF0YXMuc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkQ3VzdG9tRGV0YWlscy5uZXh0KHRoaXMuZmlsdGVyZWRDYWNoZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fdXJsRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkQ2FjaGUgPSB0aGlzLmRhdGFzLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDdXN0b21EZXRhaWxzLm5leHQodGhpcy5maWx0ZXJlZENhY2hlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9mKHRoaXMucHJvcHMubXVsdGlwbGUpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IFt0aGlzLmZvcm1Db250cm9sLnZhbHVlXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm11bHRpRmlsdGVyQ3RybC52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck11bHRpKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMubXVsdGlwbGUpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm11bHRpcGxlKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgKDApKTtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFyaWFMYWJlbGxlZGJ5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuYXR0cmlidXRlcz8uWydhcmlhLWxhYmVsbGVkYnknXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5hdHRyaWJ1dGVzWydhcmlhLWxhYmVsbGVkYnknXSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQ/Ll9sYWJlbElkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFyaWFMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmF0dHJpYnV0ZXM/LlsnYXJpYS1sYWJlbCddIGFzIHN0cmluZztcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVTZWxlY3RBbGwoc2VsZWN0QWxsVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkQ3VzdG9tRGV0YWlscy5waXBlKFxyXG4gICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RBbGxWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsLmZpbHRlcihvID0+ICFvLmRpc2FibGVkKSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoW10pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXJNdWx0aSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHNlYXJjaCA9IHRoaXMubXVsdGlGaWx0ZXJDdHJsLnZhbHVlO1xyXG4gICAgICAgIGlmICghc2VhcmNoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYWNoZSA9IHRoaXMuZGF0YXMuc2xpY2UoKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZEN1c3RvbURldGFpbHMubmV4dCh0aGlzLmZpbHRlcmVkQ2FjaGUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZpbHRlcmVkQ2FjaGUgPSB0aGlzLmRhdGFzLmZpbHRlcihpdGVtcyA9PiBpdGVtcy52YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpID4gLTEgfHwgaXRlbXMubGFiZWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoKSA+IC0xKTtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkQ3VzdG9tRGV0YWlscy5uZXh0KHRoaXMuZmlsdGVyZWRDYWNoZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBsZXQgZmlsdGVyZWRMZW5ndGggPSAwO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICYmIHRoaXMucHJvcHMuc2VhcmNoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlID0gdGhpcy5maWx0ZXJlZENhY2hlLmZpbHRlcihvID0+ICFvLmRpc2FibGVkKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHYgPSBpc0FycmF5KHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpID8gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA6IFt0aGlzLmZvcm1Db250cm9sLnZhbHVlXTtcclxuXHJcbiAgICAgICAgICAgIGNhY2hlLmZvckVhY2goKGVsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodi5maW5kSW5kZXgoKHQ6IHsgdmFsdWU6IGFueTsgbGFiZWw6IGFueTsgfSkgPT4gdC52YWx1ZSA9PT0gZWwudmFsdWUgJiYgdC5sYWJlbCA9PT0gZWwubGFiZWwpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZExlbmd0aCsrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gZmlsdGVyZWRMZW5ndGggPiAwICYmIGZpbHRlcmVkTGVuZ3RoIDwgY2FjaGUubGVuZ3RoO1xyXG4gICAgICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9IGZpbHRlcmVkTGVuZ3RoID4gMCAmJiBmaWx0ZXJlZExlbmd0aCA9PT0gY2FjaGUubGVuZ3RoO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9ZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDaGVja2VkID1mYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBjb21wYXJlV2l0aEZuKG8xOiBhbnksIG8yOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gbzEgJiYgbzIgPyBvMT8ubGFiZWwgPT09IG8yPy5sYWJlbCAmJiBvMT8udmFsdWUgPT09IG8yPy52YWx1ZSA6IG8xID09PSBvMjtcclxuICAgIH1cclxufVxyXG4iLCJAaWYocHJvcHMubXVsdGlwbGUpe1xyXG48bWF0LXNlbGVjdCAjbXVsdGlTZWxlY3QgW2lkXT1cImlkXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW3BsYWNlaG9sZGVyXT1cInByb3BzLnBsYWNlaG9sZGVyPz8nJ1wiIG11bHRpcGxlXHJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbdGFiSW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIiBbY29tcGFyZVdpdGhdPVwiY29tcGFyZVdpdGhGblwiXHJcbiAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiZXJyb3JTdGF0ZU1hdGNoZXJcIiBbYXJpYS1sYWJlbF09XCJnZXRBcmlhTGFiZWwoKVwiIFthcmlhLWxhYmVsbGVkYnldPVwiZ2V0QXJpYUxhYmVsbGVkYnkoKVwiXHJcbiAgICBbZGlzYWJsZU9wdGlvbkNlbnRlcmluZ109XCJwcm9wcy5kaXNhYmxlT3B0aW9uQ2VudGVyaW5nXCJcclxuICAgIFt0eXBlYWhlYWREZWJvdW5jZUludGVydmFsXT1cInByb3BzLnR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWxcIlxyXG4gICAgW3BhbmVsQ2xhc3NdPVwiJ292ZXJmbG93LXktYXV0byBsZzpvdmVyZmxvdy15LWhpZGRlbiBsZzpob3ZlcjpvdmVyZmxvdy15LWF1dG8gc2Nyb2xsYmFyLWN1c3RvbSdcIj5cclxuICAgIEBpZiAoKGZpbHRlcmVkQ3VzdG9tRGV0YWlscyB8IGFzeW5jKTsgYXMgY3VzdG9tRGV0YWlscykge1xyXG4gICAgQGlmIChwcm9wcy5zZWFyY2gpIHsgICAgICAgIFxyXG4gICAgPG1hdC1vcHRpb24+XHJcbiAgICAgICAgPGNtYXQtc2VsZWN0LXNlYXJjaCBbZm9ybUNvbnRyb2xdPVwibXVsdGlGaWx0ZXJDdHJsXCIgW3Nob3dUb2dnbGVBbGxDaGVja2JveF09XCJwcm9wcy5zaG93VG9nZ2xlQWxsQ2hlY2tib3hcIlxyXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiIFt0b2dnbGVBbGxDaGVja2JveENoZWNrZWRdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICAgICAgKHRvZ2dsZUFsbCk9XCJ0b2dnbGVTZWxlY3RBbGwoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY21hdC1zZWxlY3Qtc2VhcmNoPlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgQGlmIChwcm9wcy5jYW5OdWxsKSB7XHJcbiAgICA8bWF0LW9wdGlvbj7nqbo8L21hdC1vcHRpb24+XHJcbiAgICB9XHJcbiAgICBAZm9yIChpIG9mIGN1c3RvbURldGFpbHM7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgpKSB7XHJcbiAgICBAaWYoaS5ncm91cCl7XHJcbiAgICA8bWF0LW9wdGdyb3VwIFtsYWJlbF09XCJpLmxhYmVsXCI+XHJcbiAgICAgICAgQGZvciAoY2hpbGQgb2YgaS5ncm91cDsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2hpbGRcIiBbZGlzYWJsZWRdPVwiY2hpbGQuZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAge3sgY2hpbGQubGFiZWwgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICB9QGVsc2Uge1xyXG4gICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImlcIiBbZGlzYWJsZWRdPVwiaS5kaXNhYmxlZFwiPnt7aS5sYWJlbH19PC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG48L21hdC1zZWxlY3Q+XHJcbn1AZWxzZSB7XHJcbjxtYXQtc2VsZWN0ICNtdWx0aVNlbGVjdCBbaWRdPVwiaWRcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbcGxhY2Vob2xkZXJdPVwicHJvcHMucGxhY2Vob2xkZXI/PycnXCJcclxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFt0YWJJbmRleF09XCJwcm9wcy50YWJpbmRleFwiIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aEZuXCJcclxuICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvclN0YXRlTWF0Y2hlclwiIFthcmlhLWxhYmVsXT1cImdldEFyaWFMYWJlbCgpXCIgW2FyaWEtbGFiZWxsZWRieV09XCJnZXRBcmlhTGFiZWxsZWRieSgpXCJcclxuICAgIFtkaXNhYmxlT3B0aW9uQ2VudGVyaW5nXT1cInByb3BzLmRpc2FibGVPcHRpb25DZW50ZXJpbmdcIlxyXG4gICAgW3R5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWxdPVwicHJvcHMudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbFwiXHJcbiAgICBbcGFuZWxDbGFzc109XCInb3ZlcmZsb3cteS1hdXRvIGxnOm92ZXJmbG93LXktaGlkZGVuIGxnOmhvdmVyOm92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItY3VzdG9tJ1wiPlxyXG4gICAgQGlmICgoZmlsdGVyZWRDdXN0b21EZXRhaWxzIHwgYXN5bmMpOyBhcyBjdXN0b21EZXRhaWxzKSB7XHJcbiAgICBAaWYgKHByb3BzLnNlYXJjaCkge1xyXG4gICAgPG1hdC1vcHRpb24+XHJcbiAgICAgICAgPGNtYXQtc2VsZWN0LXNlYXJjaCBbZm9ybUNvbnRyb2xdPVwibXVsdGlGaWx0ZXJDdHJsXCIgW3Nob3dUb2dnbGVBbGxDaGVja2JveF09XCJwcm9wcy5zaG93VG9nZ2xlQWxsQ2hlY2tib3hcIlxyXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiIFt0b2dnbGVBbGxDaGVja2JveENoZWNrZWRdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICAgICAgKHRvZ2dsZUFsbCk9XCJ0b2dnbGVTZWxlY3RBbGwoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY21hdC1zZWxlY3Qtc2VhcmNoPlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgQGlmIChwcm9wcy5jYW5OdWxsKSB7XHJcbiAgICA8bWF0LW9wdGlvbj7nqbo8L21hdC1vcHRpb24+XHJcbiAgICB9XHJcbiAgICBAZm9yIChpIG9mIGN1c3RvbURldGFpbHM7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgpKSB7XHJcbiAgICBAaWYoaS5ncm91cCl7XHJcbiAgICA8bWF0LW9wdGdyb3VwIFtsYWJlbF09XCJpLmxhYmVsXCI+XHJcbiAgICAgICAgQGZvciAoY2hpbGQgb2YgaS5ncm91cDsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2hpbGRcIiBbZGlzYWJsZWRdPVwiY2hpbGQuZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAge3sgY2hpbGQubGFiZWwgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICB9QGVsc2Uge1xyXG4gICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImlcIiBbZGlzYWJsZWRdPVwiaS5kaXNhYmxlZFwiPnt7aS5sYWJlbH19PC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG48L21hdC1zZWxlY3Q+XHJcbn1cclxuIl19
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jdXN0b20tZm9ybWx5L3R5cGVzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQXlCMUUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQXVDO0lBbUJoRixZQUFvQixLQUFpQjtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURRLFVBQUssR0FBTCxLQUFLLENBQVk7UUFsQjVCLG1CQUFjLEdBQUc7WUFDdEIsS0FBSyxFQUFFO2dCQUNILE1BQU0sRUFBRSxJQUFJO2dCQUNa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SSxDQUFDLFNBQVMsR0FBRyxjQUFjLEdBQUcsQ0FBQyxJQUFJLGNBQWMsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNFLENBQUM7YUFBSSxDQUFDO1lBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRSxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRSxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBTyxFQUFFLEVBQU87UUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JGLENBQUM7OEdBM0tRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDBHQ3BDcEMsb3BHQXFFQSw0RURuQ2MsaUJBQWlCLDhCQUFFLGVBQWUscXpCQUFFLHlCQUF5Qiwra0JBQUUsbUJBQW1CLGtoQkFBRSxTQUFTOzsyRkFFOUYsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRTZWxlY3RQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUvc2VsZWN0JztcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBvZiwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENtYXRTZWxlY3RTZWFyY2hDb21wb25lbnQgfSBmcm9tICdjbWF0L2NvbXBvbmVudHMvc2VsZWN0LXNlYXJjaCc7XHJcblxyXG5pbnRlcmZhY2UgU2VsZWN0UHJvcHMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzLCBGb3JtbHlGaWVsZFNlbGVjdFByb3BzIHtcclxuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICAgIGRpc2FibGVPcHRpb25DZW50ZXJpbmc/OiBib29sZWFuO1xyXG4gICAgdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbD86IG51bWJlcjtcclxuICAgIHNlYXJjaDogYm9vbGVhbjtcclxuICAgIGNhbk51bGw6IGJvb2xlYW47XHJcbiAgICBzaG93VG9nZ2xlQWxsQ2hlY2tib3g6IGJvb2xlYW47XHJcbiAgICBkb21haW4/OiB7XHJcbiAgICAgICAgdXJsPzogc3RyaW5nO1xyXG4gICAgICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICAgICAga2V5Pzogc3RyaW5nO1xyXG4gICAgICAgIHZhbHVlPzogc3RyaW5nO1xyXG4gICAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1zZWxlY3Qtc2VhcmNoLXR5cGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRDaGVja2JveE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBDbWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBBc3luY1BpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0U2VsZWN0VHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc8U2VsZWN0UHJvcHM+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgICAgIHNlYXJjaDogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuTnVsbDogZmFsc2UsXHJcbiAgICAgICAgICAgIHNob3dUb2dnbGVBbGxDaGVja2JveDogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBvcHRpb25zRGF0YTogYW55W107XHJcblxyXG4gICAgZmlsdGVyZWRDdXN0b21EZXRhaWxzOiBSZXBsYXlTdWJqZWN0PGFueVtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueVtdPigxKTtcclxuICAgIGZpbHRlcmVkQ2FjaGU6IGFueVtdID0gW107XHJcbiAgICBpc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgIGlzQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgbXVsdGlGaWx0ZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgICBwcml2YXRlIF91cmxEYXRhOiBbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRhdGFzKCk6IGFueVtdIHtcclxuICAgICAgICBpZiAoaXNBcnJheSh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdXJsRGF0YT8ubGVuZ3RoID4gMCA/IHRoaXMuX3VybERhdGEgOiB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl91cmxEYXRhPy5sZW5ndGggPiAwID8gdGhpcy5fdXJsRGF0YSA6IHRoaXMub3B0aW9uc0RhdGEgfHwgW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zICYmICFpc0FycmF5KHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc0RhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy51cmw7XHJcbiAgICAgICAgaWYgKHVybCAmJiB0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmNvZGUgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5rZXkgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9odHRwLmdldCh1cmwpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0gZGF0YS5maWx0ZXIoKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5XSA9PT0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5jb2RlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YXMgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXJsRGF0YSA9IGRhdGFzWzBdW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8udmFsdWVdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VybERhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cmxEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYWNoZSA9IHRoaXMuZGF0YXMuc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkQ3VzdG9tRGV0YWlscy5uZXh0KHRoaXMuZmlsdGVyZWRDYWNoZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fdXJsRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkQ2FjaGUgPSB0aGlzLmRhdGFzLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDdXN0b21EZXRhaWxzLm5leHQodGhpcy5maWx0ZXJlZENhY2hlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9mKHRoaXMucHJvcHMubXVsdGlwbGUpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IFt0aGlzLmZvcm1Db250cm9sLnZhbHVlXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm11bHRpRmlsdGVyQ3RybC52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck11bHRpKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMubXVsdGlwbGUpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm11bHRpcGxlKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgKDApKTtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFyaWFMYWJlbGxlZGJ5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuYXR0cmlidXRlcz8uWydhcmlhLWxhYmVsbGVkYnknXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5hdHRyaWJ1dGVzWydhcmlhLWxhYmVsbGVkYnknXSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQ/Ll9sYWJlbElkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFyaWFMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmF0dHJpYnV0ZXM/LlsnYXJpYS1sYWJlbCddIGFzIHN0cmluZztcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVTZWxlY3RBbGwoc2VsZWN0QWxsVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkQ3VzdG9tRGV0YWlscy5waXBlKFxyXG4gICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RBbGxWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsLmZpbHRlcihvID0+ICFvLmRpc2FibGVkKSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoW10pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXJNdWx0aSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHNlYXJjaCA9IHRoaXMubXVsdGlGaWx0ZXJDdHJsLnZhbHVlO1xyXG4gICAgICAgIGlmICghc2VhcmNoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYWNoZSA9IHRoaXMuZGF0YXMuc2xpY2UoKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZEN1c3RvbURldGFpbHMubmV4dCh0aGlzLmZpbHRlcmVkQ2FjaGUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZpbHRlcmVkQ2FjaGUgPSB0aGlzLmRhdGFzLmZpbHRlcihpdGVtcyA9PiBpdGVtcy52YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpID4gLTEgfHwgaXRlbXMubGFiZWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoKSA+IC0xKTtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkQ3VzdG9tRGV0YWlscy5uZXh0KHRoaXMuZmlsdGVyZWRDYWNoZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBsZXQgZmlsdGVyZWRMZW5ndGggPSAwO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICYmIHRoaXMucHJvcHMuc2VhcmNoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlID0gdGhpcy5maWx0ZXJlZENhY2hlLmZpbHRlcihvID0+ICFvLmRpc2FibGVkKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHYgPSBpc0FycmF5KHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpID8gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA6IFt0aGlzLmZvcm1Db250cm9sLnZhbHVlXTtcclxuXHJcbiAgICAgICAgICAgIGNhY2hlLmZvckVhY2goKGVsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodi5maW5kSW5kZXgoKHQ6IHsgdmFsdWU6IGFueTsgbGFiZWw6IGFueTsgfSkgPT4gdC52YWx1ZSA9PT0gZWwudmFsdWUgJiYgdC5sYWJlbCA9PT0gZWwubGFiZWwpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZExlbmd0aCsrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gZmlsdGVyZWRMZW5ndGggPiAwICYmIGZpbHRlcmVkTGVuZ3RoIDwgY2FjaGUubGVuZ3RoO1xyXG4gICAgICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9IGZpbHRlcmVkTGVuZ3RoID4gMCAmJiBmaWx0ZXJlZExlbmd0aCA9PT0gY2FjaGUubGVuZ3RoO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9ZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDaGVja2VkID1mYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29tcGFyZVdpdGhGbihvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG8xICYmIG8yID8gbzE/LmxhYmVsID09PSBvMj8ubGFiZWwgJiYgbzE/LnZhbHVlID09PSBvMj8udmFsdWUgOiBvMSA9PT0gbzI7XHJcbiAgICB9XHJcbn1cclxuIiwiQGlmKHByb3BzLm11bHRpcGxlKXtcclxuPG1hdC1zZWxlY3QgI211bHRpU2VsZWN0IFtpZF09XCJpZFwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlcj8/JydcIiBtdWx0aXBsZVxyXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3RhYkluZGV4XT1cInByb3BzLnRhYmluZGV4XCIgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVXaXRoRm5cIlxyXG4gICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImVycm9yU3RhdGVNYXRjaGVyXCIgW2FyaWEtbGFiZWxdPVwiZ2V0QXJpYUxhYmVsKClcIiBbYXJpYS1sYWJlbGxlZGJ5XT1cImdldEFyaWFMYWJlbGxlZGJ5KClcIlxyXG4gICAgW2Rpc2FibGVPcHRpb25DZW50ZXJpbmddPVwicHJvcHMuZGlzYWJsZU9wdGlvbkNlbnRlcmluZ1wiXHJcbiAgICBbdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbF09XCJwcm9wcy50eXBlYWhlYWREZWJvdW5jZUludGVydmFsXCJcclxuICAgIFtwYW5lbENsYXNzXT1cIidvdmVyZmxvdy15LWF1dG8gbGc6b3ZlcmZsb3cteS1oaWRkZW4gbGc6aG92ZXI6b3ZlcmZsb3cteS1hdXRvIHNjcm9sbGJhci1jdXN0b20nXCI+XHJcbiAgICBAaWYgKChmaWx0ZXJlZEN1c3RvbURldGFpbHMgfCBhc3luYyk7IGFzIGN1c3RvbURldGFpbHMpIHtcclxuICAgIEBpZiAocHJvcHMuc2VhcmNoKSB7ICAgICAgICBcclxuICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgIDxjbWF0LXNlbGVjdC1zZWFyY2ggW2Zvcm1Db250cm9sXT1cIm11bHRpRmlsdGVyQ3RybFwiIFtzaG93VG9nZ2xlQWxsQ2hlY2tib3hdPVwicHJvcHMuc2hvd1RvZ2dsZUFsbENoZWNrYm94XCJcclxuICAgICAgICAgICAgW3RvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZV09XCJpc0luZGV0ZXJtaW5hdGVcIiBbdG9nZ2xlQWxsQ2hlY2tib3hDaGVja2VkXT1cImlzQ2hlY2tlZFwiXHJcbiAgICAgICAgICAgICh0b2dnbGVBbGwpPVwidG9nZ2xlU2VsZWN0QWxsKCRldmVudClcIj5cclxuICAgICAgICA8L2NtYXQtc2VsZWN0LXNlYXJjaD5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIH1cclxuICAgIEBpZiAocHJvcHMuY2FuTnVsbCkge1xyXG4gICAgPG1hdC1vcHRpb24+56m6PC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgQGZvciAoaSBvZiBjdXN0b21EZXRhaWxzOyB0cmFjayAkaW5kZXgpIHtcclxuICAgIEBpZihpLmdyb3VwKXtcclxuICAgIDxtYXQtb3B0Z3JvdXAgW2xhYmVsXT1cImkubGFiZWxcIj5cclxuICAgICAgICBAZm9yIChjaGlsZCBvZiBpLmdyb3VwOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2hpbGRcIiBbZGlzYWJsZWRdPVwiY2hpbGQuZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAge3sgY2hpbGQubGFiZWwgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICB9QGVsc2Uge1xyXG4gICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImlcIiBbZGlzYWJsZWRdPVwiaS5kaXNhYmxlZFwiPnt7aS5sYWJlbH19PC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG48L21hdC1zZWxlY3Q+XHJcbn1AZWxzZSB7XHJcbjxtYXQtc2VsZWN0ICNtdWx0aVNlbGVjdCBbaWRdPVwiaWRcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbcGxhY2Vob2xkZXJdPVwicHJvcHMucGxhY2Vob2xkZXI/PycnXCJcclxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFt0YWJJbmRleF09XCJwcm9wcy50YWJpbmRleFwiIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aEZuXCJcclxuICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvclN0YXRlTWF0Y2hlclwiIFthcmlhLWxhYmVsXT1cImdldEFyaWFMYWJlbCgpXCIgW2FyaWEtbGFiZWxsZWRieV09XCJnZXRBcmlhTGFiZWxsZWRieSgpXCJcclxuICAgIFtkaXNhYmxlT3B0aW9uQ2VudGVyaW5nXT1cInByb3BzLmRpc2FibGVPcHRpb25DZW50ZXJpbmdcIlxyXG4gICAgW3R5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWxdPVwicHJvcHMudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbFwiXHJcbiAgICBbcGFuZWxDbGFzc109XCInb3ZlcmZsb3cteS1hdXRvIGxnOm92ZXJmbG93LXktaGlkZGVuIGxnOmhvdmVyOm92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItY3VzdG9tJ1wiPlxyXG4gICAgQGlmICgoZmlsdGVyZWRDdXN0b21EZXRhaWxzIHwgYXN5bmMpOyBhcyBjdXN0b21EZXRhaWxzKSB7XHJcbiAgICBAaWYgKHByb3BzLnNlYXJjaCkge1xyXG4gICAgPG1hdC1vcHRpb24+XHJcbiAgICAgICAgPGNtYXQtc2VsZWN0LXNlYXJjaCBbZm9ybUNvbnRyb2xdPVwibXVsdGlGaWx0ZXJDdHJsXCIgW3Nob3dUb2dnbGVBbGxDaGVja2JveF09XCJwcm9wcy5zaG93VG9nZ2xlQWxsQ2hlY2tib3hcIlxyXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiIFt0b2dnbGVBbGxDaGVja2JveENoZWNrZWRdPVwiaXNDaGVja2VkXCJcclxuICAgICAgICAgICAgKHRvZ2dsZUFsbCk9XCJ0b2dnbGVTZWxlY3RBbGwoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY21hdC1zZWxlY3Qtc2VhcmNoPlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gICAgQGlmIChwcm9wcy5jYW5OdWxsKSB7XHJcbiAgICA8bWF0LW9wdGlvbj7nqbo8L21hdC1vcHRpb24+XHJcbiAgICB9XHJcbiAgICBAZm9yIChpIG9mIGN1c3RvbURldGFpbHM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgQGlmKGkuZ3JvdXApe1xyXG4gICAgPG1hdC1vcHRncm91cCBbbGFiZWxdPVwiaS5sYWJlbFwiPlxyXG4gICAgICAgIEBmb3IgKGNoaWxkIG9mIGkuZ3JvdXA7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJjaGlsZFwiIFtkaXNhYmxlZF09XCJjaGlsZC5kaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICB7eyBjaGlsZC5sYWJlbCB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICB9XHJcbiAgICA8L21hdC1vcHRncm91cD5cclxuICAgIH1AZWxzZSB7XHJcbiAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaVwiIFtkaXNhYmxlZF09XCJpLmRpc2FibGVkXCI+e3tpLmxhYmVsfX08L21hdC1vcHRpb24+XHJcbiAgICB9XHJcbiAgICB9XHJcbiAgICB9XHJcbjwvbWF0LXNlbGVjdD5cclxufVxyXG4iXX0=
|