@wavemaker/app-ng-runtime 11.10.2-rc.6065 → 11.10.3-next.25128
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/build-task/bundles/index.umd.js +5 -3
- package/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +4 -2
- package/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -3
- package/build-task/fesm2022/index.mjs +5 -3
- package/build-task/fesm2022/index.mjs.map +1 -1
- package/components/basic/default/bundles/index.umd.js +68 -71
- package/components/basic/default/esm2022/anchor/anchor.component.mjs +18 -18
- package/components/basic/default/esm2022/icon/icon.component.mjs +12 -13
- package/components/basic/default/esm2022/iframe/iframe.component.mjs +9 -10
- package/components/basic/default/esm2022/picture/picture.directive.mjs +2 -5
- package/components/basic/default/esm2022/spinner/spinner.component.mjs +21 -21
- package/components/basic/default/esm2022/video/video.component.mjs +14 -15
- package/components/basic/default/fesm2022/index.mjs +68 -71
- package/components/basic/default/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/bundles/index.umd.js +16 -17
- package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +7 -8
- package/components/basic/progress/fesm2022/index.mjs +8 -9
- package/components/basic/progress/fesm2022/index.mjs.map +1 -1
- package/components/basic/rich-text-editor/bundles/index.umd.js +11 -12
- package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +8 -9
- package/components/basic/rich-text-editor/fesm2022/index.mjs +7 -8
- package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/bundles/index.umd.js +63 -67
- package/components/basic/search/esm2022/search.component.mjs +63 -67
- package/components/basic/search/esm2022/search.module.mjs +2 -2
- package/components/basic/search/fesm2022/index.mjs +63 -67
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/chart/bundles/index.umd.js +17 -17
- package/components/chart/esm2022/chart.component.mjs +18 -18
- package/components/chart/fesm2022/index.mjs +17 -17
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +39 -39
- package/components/containers/panel/esm2022/panel.component.mjs +40 -40
- package/components/containers/panel/fesm2022/index.mjs +39 -39
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/bundles/index.umd.js +29 -29
- package/components/containers/tabs/esm2022/tabs.component.mjs +30 -30
- package/components/containers/tabs/fesm2022/index.mjs +29 -29
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/bundles/index.umd.js +49 -49
- package/components/containers/wizard/esm2022/wizard.component.mjs +50 -50
- package/components/containers/wizard/fesm2022/index.mjs +49 -49
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/data/card/bundles/index.umd.js +29 -29
- package/components/data/card/esm2022/card.component.mjs +30 -30
- package/components/data/card/fesm2022/index.mjs +29 -29
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +91 -96
- package/components/data/form/esm2022/form.component.mjs +92 -97
- package/components/data/form/fesm2022/index.mjs +91 -96
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/list/bundles/index.umd.js +171 -173
- package/components/data/list/esm2022/list.component.mjs +171 -173
- package/components/data/list/esm2022/list.module.mjs +2 -2
- package/components/data/list/fesm2022/index.mjs +171 -173
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/bundles/index.umd.js +32 -32
- package/components/data/pagination/esm2022/pagination.component.mjs +33 -33
- package/components/data/pagination/fesm2022/index.mjs +32 -32
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/table/bundles/index.umd.js +69 -39
- package/components/data/table/esm2022/table-column/table-column.directive.mjs +2 -1
- package/components/data/table/esm2022/table-column/table-column.props.mjs +2 -1
- package/components/data/table/esm2022/table-filter.directive.mjs +29 -2
- package/components/data/table/esm2022/table.component.mjs +40 -39
- package/components/data/table/esm2022/table.props.mjs +2 -1
- package/components/data/table/fesm2022/index.mjs +72 -41
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table-column/table-column.directive.d.ts +1 -0
- package/components/data/table/table-filter.directive.d.ts +1 -0
- package/components/dialogs/default/bundles/index.umd.js +66 -95
- package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +67 -96
- package/components/dialogs/default/fesm2022/index.mjs +66 -95
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/design-dialog/bundles/index.umd.js +7 -7
- package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -8
- package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -7
- package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/bundles/index.umd.js +24 -25
- package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +15 -16
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs +14 -15
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/partial-dialog/bundles/index.umd.js +8 -8
- package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +9 -9
- package/components/dialogs/partial-dialog/fesm2022/index.mjs +8 -8
- package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- package/components/input/chips/bundles/index.umd.js +21 -21
- package/components/input/chips/esm2022/chips.component.mjs +22 -22
- package/components/input/chips/fesm2022/index.mjs +21 -21
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/default/bundles/index.umd.js +201 -209
- package/components/input/default/esm2022/button/button.component.mjs +18 -18
- package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +68 -69
- package/components/input/default/esm2022/radioset/radioset.component.mjs +68 -69
- package/components/input/default/esm2022/select/select.component.mjs +21 -27
- package/components/input/default/esm2022/switch/switch.component.mjs +24 -24
- package/components/input/default/esm2022/textarea/textarea.component.mjs +8 -8
- package/components/input/default/fesm2022/index.mjs +201 -209
- package/components/input/default/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/bundles/index.umd.js +171 -164
- package/components/input/epoch/esm2022/date/date.component.mjs +14 -15
- package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +64 -59
- package/components/input/epoch/esm2022/date-time/date-time.component.mjs +18 -19
- package/components/input/epoch/esm2022/picker/picker.component.mjs +26 -25
- package/components/input/epoch/esm2022/time/time.component.mjs +17 -18
- package/components/input/epoch/fesm2022/index.mjs +124 -117
- package/components/input/epoch/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +111 -114
- package/components/input/file-upload/esm2022/file-upload.component.mjs +112 -115
- package/components/input/file-upload/fesm2022/index.mjs +111 -114
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/bundles/index.umd.js +14 -14
- package/components/input/rating/esm2022/rating.component.mjs +15 -15
- package/components/input/rating/fesm2022/index.mjs +14 -14
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/bundles/index.umd.js +39 -40
- package/components/input/slider/esm2022/slider.component.mjs +10 -11
- package/components/input/slider/fesm2022/index.mjs +9 -10
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/navigation/breadcrumb/bundles/index.umd.js +16 -15
- package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +17 -16
- package/components/navigation/breadcrumb/fesm2022/index.mjs +16 -15
- package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/bundles/index.umd.js +82 -74
- package/components/navigation/menu/esm2022/menu-adapator.component.mjs +14 -4
- package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +7 -7
- package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +15 -15
- package/components/navigation/menu/esm2022/menu.component.mjs +22 -26
- package/components/navigation/menu/esm2022/menu.module.mjs +4 -4
- package/components/navigation/menu/esm2022/nav/nav.component.mjs +26 -24
- package/components/navigation/menu/fesm2022/index.mjs +82 -74
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/menu-adapator.component.d.ts +1 -0
- package/components/navigation/navbar/bundles/index.umd.js +12 -12
- package/components/navigation/navbar/esm2022/navbar.component.mjs +13 -13
- package/components/navigation/navbar/fesm2022/index.mjs +12 -12
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/mobile/components/basic/default/bundles/index.umd.js +102 -111
- package/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +39 -40
- package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +35 -44
- package/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +27 -28
- package/mobile/components/basic/default/fesm2022/index.mjs +98 -107
- package/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
- package/mobile/components/containers/segmented-control/bundles/index.umd.js +16 -16
- package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +8 -9
- package/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +10 -10
- package/mobile/components/containers/segmented-control/fesm2022/index.mjs +16 -16
- package/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
- package/mobile/components/data/media-list/bundles/index.umd.js +28 -28
- package/mobile/components/data/media-list/esm2022/media-list.component.mjs +29 -29
- package/mobile/components/data/media-list/fesm2022/index.mjs +28 -28
- package/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
- package/mobile/components/page/mobile-navbar/bundles/index.umd.js +29 -29
- package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +30 -30
- package/mobile/components/page/mobile-navbar/fesm2022/index.mjs +29 -29
- package/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
- package/mobile/components/page/tab-bar/bundles/index.umd.js +28 -28
- package/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +29 -29
- package/mobile/components/page/tab-bar/fesm2022/index.mjs +28 -28
- package/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +219 -215
- package/runtime/base/esm2022/components/app-component/app.component.mjs +38 -41
- package/runtime/base/esm2022/components/app-spinner.component.mjs +25 -21
- package/runtime/base/esm2022/components/custom-toaster.component.mjs +18 -16
- package/runtime/base/fesm2022/index.mjs +99 -95
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +1 -0
|
@@ -5,9 +5,8 @@ import { registerProps } from './progress-bar.props';
|
|
|
5
5
|
import { getDecimalCount, isPercentageValue } from '../utils';
|
|
6
6
|
import { debounce, isArray } from "lodash-es";
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
8
|
const _c0 = ["wmProgressBar", ""];
|
|
10
|
-
function
|
|
9
|
+
function ProgressBarComponent_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
11
10
|
i0.ɵɵelementStart(0, "div", 1)(1, "span", 2);
|
|
12
11
|
i0.ɵɵtext(2);
|
|
13
12
|
i0.ɵɵelementEnd()();
|
|
@@ -126,17 +125,17 @@ export class ProgressBarComponent extends StylableComponent {
|
|
|
126
125
|
static { this.ɵfac = function ProgressBarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ProgressBarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵinjectAttribute('dataset'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
|
127
126
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProgressBarComponent, selectors: [["", "wmProgressBar", ""]], features: [i0.ɵɵProvidersFeature([
|
|
128
127
|
provideAsWidgetRef(ProgressBarComponent)
|
|
129
|
-
]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls:
|
|
130
|
-
i0.ɵɵ
|
|
128
|
+
]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 2, vars: 0, consts: [["role", "progressbar", 3, "class", "width", "tabindex"], ["role", "progressbar", 3, "tabindex"], [1, "app-progress-label"]], template: function ProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
129
|
+
i0.ɵɵrepeaterCreate(0, ProgressBarComponent_For_1_Template, 3, 12, "div", 0, i0.ɵɵrepeaterTrackByIdentity);
|
|
131
130
|
} if (rf & 2) {
|
|
132
|
-
i0.ɵɵ
|
|
133
|
-
} },
|
|
131
|
+
i0.ɵɵrepeater(ctx.data);
|
|
132
|
+
} }, encapsulation: 2 }); }
|
|
134
133
|
}
|
|
135
134
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProgressBarComponent, [{
|
|
136
135
|
type: Component,
|
|
137
136
|
args: [{ selector: '[wmProgressBar]', providers: [
|
|
138
137
|
provideAsWidgetRef(ProgressBarComponent)
|
|
139
|
-
], template: "<div class=\"multi-bar progress-bar {{bar.cls}}\"
|
|
138
|
+
], template: "@for (bar of data; track bar) {\n <div class=\"multi-bar progress-bar {{bar.cls}}\" [style.width]=\"bar.progressBarWidth\"\n role=\"progressbar\" [attr.aria-valuenow]=\"datavalue\" [attr.aria-valuemin]=\"minvalue\" [attr.aria-valuemax]=\"maxvalue\"\n [attr.aria-label]=\"arialabel || 'Progress bar'\" [tabindex]=\"tabindex\">\n <span class=\"app-progress-label\" [attr.data-caption-placement]=\"captionplacement\">{{bar.displayValue}}</span>\n </div>\n}\n" }]
|
|
140
139
|
}], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
|
|
141
140
|
type: Attribute,
|
|
142
141
|
args: ['dataset']
|
|
@@ -150,4 +149,4 @@ export class ProgressBarComponent extends StylableComponent {
|
|
|
150
149
|
type: Optional
|
|
151
150
|
}] }], null); })();
|
|
152
151
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProgressBarComponent, { className: "ProgressBarComponent", filePath: "progress-bar/progress-bar.component.ts", lineNumber: 42 }); })();
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9iYXNpYy9wcm9ncmVzcy9zcmMvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcHJvZ3Jlc3Mvc3JjL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDaEQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7SUNKeEMsQUFISiw4QkFFMkUsY0FDVztJQUFBLFlBQW9CO0lBQzFHLEFBRDBHLGlCQUFPLEVBQzNHOzs7O0lBSkQsb0VBQTBDO0lBQTBCLGdEQUFvQztJQUV4RCwwQ0FBcUI7O0lBQ3JDLGNBQWdEOztJQUFDLGNBQW9CO0lBQXBCLHlDQUFvQjs7QURNMUcsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUM7QUFDNUMsTUFBTSxhQUFhLEdBQWtCLEVBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVB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QUMsU0FBUzs7c0JBQW9CLFNBQVM7dUJBQUMsY0FBYzs7c0JBQXlCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFROztrRkF2Qi9JLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlLCBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtmaW5kVmFsdWVPZiwgaXNEZWZpbmVkfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge0lXaWRnZXRDb25maWcsIHByb3ZpZGVBc1dpZGdldFJlZiwgU3R5bGFibGVDb21wb25lbnQsIHN0eWxlcn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9wcm9ncmVzcy1iYXIucHJvcHMnO1xuaW1wb3J0IHtnZXREZWNpbWFsQ291bnQsIGlzUGVyY2VudGFnZVZhbHVlfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2RlYm91bmNlLCBpc0FycmF5fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ3Byb2dyZXNzIGFwcC1wcm9ncmVzcyc7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge3dpZGdldFR5cGU6ICd3bS1wcm9ncmVzcy1iYXInLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcblxuLy8gbWFwIG9mIHByb2dyZXNzLWJhciB0eXBlIGFuZCBjbGFzc2VzXG5leHBvcnQgY29uc3QgVFlQRV9DTEFTU19NQVAgPSB7XG4gICAgJ2RlZmF1bHQnOiAnJyxcbiAgICAnZGVmYXVsdC1zdHJpcGVkJzogJ3Byb2dyZXNzLWJhci1zdHJpcGVkJyxcbiAgICAnc3VjY2Vzcyc6ICdwcm9ncmVzcy1iYXItc3VjY2VzcycsXG4gICAgJ3N1Y2Nlc3Mtc3RyaXBlZCc6ICdwcm9ncmVzcy1iYXItc3VjY2VzcyBwcm9ncmVzcy1iYXItc3RyaXBlZCcsXG4gICAgJ2luZm8nOiAncHJvZ3Jlc3MtYmFyLWluZm8nLFxuICAgICdpbmZvLXN0cmlwZWQnOiAncHJvZ3Jlc3MtYmFyLWluZm8gcHJvZ3Jlc3MtYmFyLXN0cmlwZWQnLFxuICAgICd3YXJuaW5nJzogJ3Byb2dyZXNzLWJhci13YXJuaW5nJyxcbiAgICAnd2FybmluZy1zdHJpcGVkJzogJ3Byb2dyZXNzLWJhci13YXJuaW5nIHByb2dyZXNzLWJhci1zdHJpcGVkJyxcbiAgICAnZGFuZ2VyJzogJ3Byb2dyZXNzLWJhci1kYW5nZXInLFxuICAgICdkYW5nZXItc3RyaXBlZCc6ICdwcm9ncmVzcy1iYXItZGFuZ2VyIHByb2dyZXNzLWJhci1zdHJpcGVkJ1xufTtcblxuXG4vLyBpbnRlcmZhY2UgZm9yIHRoZSBwcm9ncmVzcy1iYXIgaW5mb1xuaW50ZXJmYWNlIElQcm9ncmVzc0luZm8ge1xuICAgIGNsczogc3RyaW5nO1xuICAgIHByb2dyZXNzQmFyV2lkdGg6IHN0cmluZztcbiAgICBkaXNwbGF5VmFsdWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21Qcm9ncmVzc0Jhcl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoUHJvZ3Jlc3NCYXJDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0JhckNvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIGRpc3BsYXlmb3JtYXQ6IHN0cmluZztcbiAgICBwdWJsaWMgZGF0YXZhbHVlOiBzdHJpbmc7XG4gICAgcHVibGljIG1pbnZhbHVlOiBudW1iZXI7XG4gICAgcHVibGljIG1heHZhbHVlOiBudW1iZXI7XG4gICAgcHVibGljIHR5cGU6IHN0cmluZztcbiAgICBwdWJsaWMgZGF0YXNldDogQXJyYXk8YW55PjtcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuICAgIHB1YmxpYyBhcmlhbGFiZWw6IHN0cmluZztcbiAgICBwdWJsaWMgdGFiaW5kZXg6IHN0cmluZztcblxuICAgIHByaXZhdGUgX3ByZXBhcmVEYXRhOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhc0RhdGFzZXQ6IGJvb2xlYW47XG5cbiAgICAvLyBwcm9ncmVzcy1iYXIgZGF0YSwgbmdGb3IgaW4gdGhlIHRlbXBsYXRlIGl0ZXJhdGVzIG9uIHRoaXNcbiAgICBwdWJsaWMgZGF0YTogQXJyYXk8SVByb2dyZXNzSW5mbz4gPSBbe1xuICAgICAgICBjbHM6IFRZUEVfQ0xBU1NfTUFQLmRlZmF1bHQsXG4gICAgICAgIHByb2dyZXNzQmFyV2lkdGg6ICcwJScsXG4gICAgICAgIGRpc3BsYXlWYWx1ZTogJzAnXG4gICAgfV07XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBAQXR0cmlidXRlKCdkYXRhc2V0JykgZGF0YXNldDogc3RyaW5nLCBAQXR0cmlidXRlKCdkYXRhc2V0LmJpbmQnKSBib3VuZERhdGFzZXQ6IHN0cmluZywgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcblxuICAgICAgICAvLyBmbGFnIHdoaWNoIGRldGVybWluZXMgd2hldGhlciBkYXRhc2V0IGlzIHByb3ZpZGVkIG9yIG5vdFxuICAgICAgICB0aGlzLmhhc0RhdGFzZXQgPSAhIShkYXRhc2V0IHx8IGJvdW5kRGF0YXNldCk7XG5cbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG5cbiAgICAgICAgdGhpcy5fcHJlcGFyZURhdGEgPSBkZWJvdW5jZSgoKSA9PiB0aGlzLnByZXBhcmVEYXRhKCksIDUwKTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgdGhlIHByb3BlciBjbGFzc2VzIHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdHlwZVxuICAgIHByb3RlY3RlZCBvblR5cGVDaGFuZ2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5oYXNEYXRhc2V0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhWzBdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhWzBdLmNscyA9IFRZUEVfQ0xBU1NfTUFQW3RoaXMudHlwZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyByZXR1cm5zIHRoZSBmb3JtYXR0ZWQgZGlzcGxheSB2YWx1ZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZGlzcGxheWZvcm1hdFxuICAgIHByb3RlY3RlZCBnZXRGb3JtYXR0ZWREaXNwbGF5VmFsKHZhbDogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5kaXNwbGF5Zm9ybWF0IHx8ICc5JztcblxuICAgICAgICB2YWwgPSBwYXJzZUZsb2F0KCcnICsgdmFsKTtcbiAgICAgICAgdmFsID0gKHZhbC50b0ZpeGVkKGdldERlY2ltYWxDb3VudChmb3JtYXQpKSk7XG5cbiAgICAgICAgaWYgKGZvcm1hdCAmJiBmb3JtYXQuaW5jbHVkZXMoJyUnKSkge1xuICAgICAgICAgICAgdmFsID0gYCR7dmFsfSVgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXBhcmVEYXRhKCkge1xuICAgICAgICAvLyB3aGVuIHRoZSBkYXRhc2V0IGlzIHByb3ZpZGVkLCBpdGVyYXRlIG92ZXIgdGhlIGRhdGFzZXQgdG8gc2V0IHRoZSBwcm9wZXIgdmFsdWVzIGluIHRoZSBkYXRhXG4gICAgICAgIGlmICh0aGlzLmRhdGFzZXQgJiYgaXNBcnJheSh0aGlzLmRhdGFzZXQpICYmIHRoaXMudHlwZSAmJiB0aGlzLmRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhc2V0Lm1hcCgoZGF0dW0pOiBJUHJvZ3Jlc3NJbmZvID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWw6IHN0cmluZyA9IGZpbmRWYWx1ZU9mKGRhdHVtLCB0aGlzLmRhdGF2YWx1ZSkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICBsZXQgcGVyY2VudFZhbCA9IHZhbDtcbiAgICAgICAgICAgICAgICBpZiAodmFsICYmICF2YWwuaW5jbHVkZXMoJyUnKSkge1xuICAgICAgICAgICAgICAgICAgICBwZXJjZW50VmFsID0gYCR7dmFsfSVgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBjbHM6IFRZUEVfQ0xBU1NfTUFQW2ZpbmRWYWx1ZU9mKGRhdHVtLCB0aGlzLnR5cGUpXSxcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3NCYXJXaWR0aDogcGVyY2VudFZhbCxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiB0aGlzLmdldEZvcm1hdHRlZERpc3BsYXlWYWwodmFsKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIHRoZSBkYXRhc2V0IGlzIG5vdCBwcm92aWRlZCwgdXBkYXRlIHRoZSB2YWx1ZXMgaW4gdGhlIGRlZmF1bHQgZGF0YVxuICAgICAgICAgICAgbGV0IHdpZHRoOiBzdHJpbmcgfCBudW1iZXIgPSAwO1xuICAgICAgICAgICAgbGV0IGRpc3BsYXlWYWw6IHN0cmluZyB8IG51bWJlciA9IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNQZXJjZW50YWdlVmFsdWUodGhpcy5kYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9ICh0aGlzLmRhdGF2YWx1ZSB8fCAnMCUnKTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBkaXNwbGF5VmFsID0gdmFsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0RlZmluZWQodGhpcy5kYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZW5vbWluYXRvciA9ICgrdGhpcy5tYXh2YWx1ZSAtICt0aGlzLm1pbnZhbHVlKSB8fCAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsID0gKCgrdGhpcy5kYXRhdmFsdWUgLSArdGhpcy5taW52YWx1ZSkgKiAxMDApIC8gZGVub21pbmF0b3IgKyAnJSc7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGRpc3BsYXlWYWwgPSB2YWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRhdGFbMF0uZGlzcGxheVZhbHVlID0gdGhpcy5nZXRGb3JtYXR0ZWREaXNwbGF5VmFsKGRpc3BsYXlWYWwgYXMgc3RyaW5nKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVswXS5wcm9ncmVzc0JhcldpZHRoID0gd2lkdGggYXMgc3RyaW5nO1xuICAgICAgICAgICAgdGhpcy5kYXRhWzBdLmNscyA9IFRZUEVfQ0xBU1NfTUFQW3RoaXMudHlwZV07XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICd0eXBlJykge1xuICAgICAgICAgICAgdGhpcy5vblR5cGVDaGFuZ2UoKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdtaW52YWx1ZScgfHwga2V5ID09PSAnbWF4dmFsdWUnIHx8IGtleSA9PT0gJ2RhdGF2YWx1ZScgfHwga2V5ID09PSAnZGF0YXNldCcgfHwga2V5ID09PSAnZGlzcGxheWZvcm1hdCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXBhcmVEYXRhKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtdWx0aS1iYXIgcHJvZ3Jlc3MtYmFyIHt7YmFyLmNsc319XCIgKm5nRm9yPVwibGV0IGJhciBvZiBkYXRhXCIgW3N0eWxlLndpZHRoXT1cImJhci5wcm9ncmVzc0JhcldpZHRoXCJcbiAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIiBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImRhdGF2YWx1ZVwiIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwibWludmFsdWVcIiBbYXR0ci5hcmlhLXZhbHVlbWF4XT1cIm1heHZhbHVlXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhbGFiZWwgfHwgJ1Byb2dyZXNzIGJhcidcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIj5cbiAgICA8c3BhbiBjbGFzcz1cImFwcC1wcm9ncmVzcy1sYWJlbFwiIFthdHRyLmRhdGEtY2FwdGlvbi1wbGFjZW1lbnRdPVwiY2FwdGlvbnBsYWNlbWVudFwiPnt7YmFyLmRpc3BsYXlWYWx1ZX19PC9zcGFuPlxuPC9kaXY+XG4iXX0=
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9iYXNpYy9wcm9ncmVzcy9zcmMvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcHJvZ3Jlc3Mvc3JjL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDaEQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7OztJQ0h4QyxBQUhGLDhCQUV3RSxjQUNZO0lBQUEsWUFBb0I7SUFDeEcsQUFEd0csaUJBQU8sRUFDekc7Ozs7SUFKRCxvRUFBMEM7SUFBQyxnREFBb0M7SUFFbEMsMENBQXFCOztJQUNwQyxjQUFnRDs7SUFBQyxjQUFvQjtJQUFwQix5Q0FBb0I7O0FESzFHLE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDO0FBQzVDLE1BQU0sYUFBYSxHQUFrQixFQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFD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QUFTOztzQkFBb0IsU0FBUzt1QkFBQyxjQUFjOztzQkFBeUIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7O2tGQXZCL0ksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge2ZpbmRWYWx1ZU9mLCBpc0RlZmluZWR9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7SVdpZGdldENvbmZpZywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHtyZWdpc3RlclByb3BzfSBmcm9tICcuL3Byb2dyZXNzLWJhci5wcm9wcyc7XG5pbXBvcnQge2dldERlY2ltYWxDb3VudCwgaXNQZXJjZW50YWdlVmFsdWV9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7ZGVib3VuY2UsIGlzQXJyYXl9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAncHJvZ3Jlc3MgYXBwLXByb2dyZXNzJztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7d2lkZ2V0VHlwZTogJ3dtLXByb2dyZXNzLWJhcicsIGhvc3RDbGFzczogREVGQVVMVF9DTFN9O1xuXG4vLyBtYXAgb2YgcHJvZ3Jlc3MtYmFyIHR5cGUgYW5kIGNsYXNzZXNcbmV4cG9ydCBjb25zdCBUWVBFX0NMQVNTX01BUCA9IHtcbiAgICAnZGVmYXVsdCc6ICcnLFxuICAgICdkZWZhdWx0LXN0cmlwZWQnOiAncHJvZ3Jlc3MtYmFyLXN0cmlwZWQnLFxuICAgICdzdWNjZXNzJzogJ3Byb2dyZXNzLWJhci1zdWNjZXNzJyxcbiAgICAnc3VjY2Vzcy1zdHJpcGVkJzogJ3Byb2dyZXNzLWJhci1zdWNjZXNzIHByb2dyZXNzLWJhci1zdHJpcGVkJyxcbiAgICAnaW5mbyc6ICdwcm9ncmVzcy1iYXItaW5mbycsXG4gICAgJ2luZm8tc3RyaXBlZCc6ICdwcm9ncmVzcy1iYXItaW5mbyBwcm9ncmVzcy1iYXItc3RyaXBlZCcsXG4gICAgJ3dhcm5pbmcnOiAncHJvZ3Jlc3MtYmFyLXdhcm5pbmcnLFxuICAgICd3YXJuaW5nLXN0cmlwZWQnOiAncHJvZ3Jlc3MtYmFyLXdhcm5pbmcgcHJvZ3Jlc3MtYmFyLXN0cmlwZWQnLFxuICAgICdkYW5nZXInOiAncHJvZ3Jlc3MtYmFyLWRhbmdlcicsXG4gICAgJ2Rhbmdlci1zdHJpcGVkJzogJ3Byb2dyZXNzLWJhci1kYW5nZXIgcHJvZ3Jlc3MtYmFyLXN0cmlwZWQnXG59O1xuXG5cbi8vIGludGVyZmFjZSBmb3IgdGhlIHByb2dyZXNzLWJhciBpbmZvXG5pbnRlcmZhY2UgSVByb2dyZXNzSW5mbyB7XG4gICAgY2xzOiBzdHJpbmc7XG4gICAgcHJvZ3Jlc3NCYXJXaWR0aDogc3RyaW5nO1xuICAgIGRpc3BsYXlWYWx1ZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bVByb2dyZXNzQmFyXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihQcm9ncmVzc0JhckNvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgZGlzcGxheWZvcm1hdDogc3RyaW5nO1xuICAgIHB1YmxpYyBkYXRhdmFsdWU6IHN0cmluZztcbiAgICBwdWJsaWMgbWludmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgbWF4dmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nO1xuICAgIHB1YmxpYyBkYXRhc2V0OiBBcnJheTxhbnk+O1xuICAgIHB1YmxpYyBoaW50OiBzdHJpbmc7XG4gICAgcHVibGljIGFyaWFsYWJlbDogc3RyaW5nO1xuICAgIHB1YmxpYyB0YWJpbmRleDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZURhdGE6IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFzRGF0YXNldDogYm9vbGVhbjtcblxuICAgIC8vIHByb2dyZXNzLWJhciBkYXRhLCBuZ0ZvciBpbiB0aGUgdGVtcGxhdGUgaXRlcmF0ZXMgb24gdGhpc1xuICAgIHB1YmxpYyBkYXRhOiBBcnJheTxJUHJvZ3Jlc3NJbmZvPiA9IFt7XG4gICAgICAgIGNsczogVFlQRV9DTEFTU19NQVAuZGVmYXVsdCxcbiAgICAgICAgcHJvZ3Jlc3NCYXJXaWR0aDogJzAlJyxcbiAgICAgICAgZGlzcGxheVZhbHVlOiAnMCdcbiAgICB9XTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBBdHRyaWJ1dGUoJ2RhdGFzZXQnKSBkYXRhc2V0OiBzdHJpbmcsIEBBdHRyaWJ1dGUoJ2RhdGFzZXQuYmluZCcpIGJvdW5kRGF0YXNldDogc3RyaW5nLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuXG4gICAgICAgIC8vIGZsYWcgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyIGRhdGFzZXQgaXMgcHJvdmlkZWQgb3Igbm90XG4gICAgICAgIHRoaXMuaGFzRGF0YXNldCA9ICEhKGRhdGFzZXQgfHwgYm91bmREYXRhc2V0KTtcblxuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcblxuICAgICAgICB0aGlzLl9wcmVwYXJlRGF0YSA9IGRlYm91bmNlKCgpID0+IHRoaXMucHJlcGFyZURhdGEoKSwgNTApO1xuICAgIH1cblxuICAgIC8vIHVwZGF0ZSB0aGUgcHJvcGVyIGNsYXNzZXMgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB0eXBlXG4gICAgcHJvdGVjdGVkIG9uVHlwZUNoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0RhdGFzZXQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFbMF0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFbMF0uY2xzID0gVFlQRV9DTEFTU19NQVBbdGhpcy50eXBlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHJldHVybnMgdGhlIGZvcm1hdHRlZCBkaXNwbGF5IHZhbHVlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaXNwbGF5Zm9ybWF0XG4gICAgcHJvdGVjdGVkIGdldEZvcm1hdHRlZERpc3BsYXlWYWwodmFsOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSB0aGlzLmRpc3BsYXlmb3JtYXQgfHwgJzknO1xuXG4gICAgICAgIHZhbCA9IHBhcnNlRmxvYXQoJycgKyB2YWwpO1xuICAgICAgICB2YWwgPSAodmFsLnRvRml4ZWQoZ2V0RGVjaW1hbENvdW50KGZvcm1hdCkpKTtcblxuICAgICAgICBpZiAoZm9ybWF0ICYmIGZvcm1hdC5pbmNsdWRlcygnJScpKSB7XG4gICAgICAgICAgICB2YWwgPSBgJHt2YWx9JWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcHJlcGFyZURhdGEoKSB7XG4gICAgICAgIC8vIHdoZW4gdGhlIGRhdGFzZXQgaXMgcHJvdmlkZWQsIGl0ZXJhdGUgb3ZlciB0aGUgZGF0YXNldCB0byBzZXQgdGhlIHByb3BlciB2YWx1ZXMgaW4gdGhlIGRhdGFcbiAgICAgICAgaWYgKHRoaXMuZGF0YXNldCAmJiBpc0FycmF5KHRoaXMuZGF0YXNldCkgJiYgdGhpcy50eXBlICYmIHRoaXMuZGF0YXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGFzZXQubWFwKChkYXR1bSk6IElQcm9ncmVzc0luZm8gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbDogc3RyaW5nID0gZmluZFZhbHVlT2YoZGF0dW0sIHRoaXMuZGF0YXZhbHVlKS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIGxldCBwZXJjZW50VmFsID0gdmFsO1xuICAgICAgICAgICAgICAgIGlmICh2YWwgJiYgIXZhbC5pbmNsdWRlcygnJScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBlcmNlbnRWYWwgPSBgJHt2YWx9JWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGNsczogVFlQRV9DTEFTU19NQVBbZmluZFZhbHVlT2YoZGF0dW0sIHRoaXMudHlwZSldLFxuICAgICAgICAgICAgICAgICAgICBwcm9ncmVzc0JhcldpZHRoOiBwZXJjZW50VmFsLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IHRoaXMuZ2V0Rm9ybWF0dGVkRGlzcGxheVZhbCh2YWwpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaWYgdGhlIGRhdGFzZXQgaXMgbm90IHByb3ZpZGVkLCB1cGRhdGUgdGhlIHZhbHVlcyBpbiB0aGUgZGVmYXVsdCBkYXRhXG4gICAgICAgICAgICBsZXQgd2lkdGg6IHN0cmluZyB8IG51bWJlciA9IDA7XG4gICAgICAgICAgICBsZXQgZGlzcGxheVZhbDogc3RyaW5nIHwgbnVtYmVyID0gMDtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChpc1BlcmNlbnRhZ2VWYWx1ZSh0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsID0gKHRoaXMuZGF0YXZhbHVlIHx8ICcwJScpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGRpc3BsYXlWYWwgPSB2YWw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRGVmaW5lZCh0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbm9taW5hdG9yID0gKCt0aGlzLm1heHZhbHVlIC0gK3RoaXMubWludmFsdWUpIHx8IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSAoKCt0aGlzLmRhdGF2YWx1ZSAtICt0aGlzLm1pbnZhbHVlKSAqIDEwMCkgLyBkZW5vbWluYXRvciArICclJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gZGlzcGxheVZhbCA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGF0YVswXS5kaXNwbGF5VmFsdWUgPSB0aGlzLmdldEZvcm1hdHRlZERpc3BsYXlWYWwoZGlzcGxheVZhbCBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgdGhpcy5kYXRhWzBdLnByb2dyZXNzQmFyV2lkdGggPSB3aWR0aCBhcyBzdHJpbmc7XG4gICAgICAgICAgICB0aGlzLmRhdGFbMF0uY2xzID0gVFlQRV9DTEFTU19NQVBbdGhpcy50eXBlXTtcblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3R5cGUnKSB7XG4gICAgICAgICAgICB0aGlzLm9uVHlwZUNoYW5nZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ21pbnZhbHVlJyB8fCBrZXkgPT09ICdtYXh2YWx1ZScgfHwga2V5ID09PSAnZGF0YXZhbHVlJyB8fCBrZXkgPT09ICdkYXRhc2V0JyB8fCBrZXkgPT09ICdkaXNwbGF5Zm9ybWF0Jykge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZURhdGEoKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGZvciAoYmFyIG9mIGRhdGE7IHRyYWNrIGJhcikge1xuICA8ZGl2IGNsYXNzPVwibXVsdGktYmFyIHByb2dyZXNzLWJhciB7e2Jhci5jbHN9fVwiIFtzdHlsZS53aWR0aF09XCJiYXIucHJvZ3Jlc3NCYXJXaWR0aFwiXG4gICAgcm9sZT1cInByb2dyZXNzYmFyXCIgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJkYXRhdmFsdWVcIiBbYXR0ci5hcmlhLXZhbHVlbWluXT1cIm1pbnZhbHVlXCIgW2F0dHIuYXJpYS12YWx1ZW1heF09XCJtYXh2YWx1ZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhbGFiZWwgfHwgJ1Byb2dyZXNzIGJhcidcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIj5cbiAgICA8c3BhbiBjbGFzcz1cImFwcC1wcm9ncmVzcy1sYWJlbFwiIFthdHRyLmRhdGEtY2FwdGlvbi1wbGFjZW1lbnRdPVwiY2FwdGlvbnBsYWNlbWVudFwiPnt7YmFyLmRpc3BsYXlWYWx1ZX19PC9zcGFuPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, Attribute, Inject, Optional, ViewChild, NgModule } from '@angular/core';
|
|
3
|
-
import * as i1 from '@angular/common';
|
|
4
3
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i1
|
|
4
|
+
import * as i1 from 'ng-circle-progress';
|
|
6
5
|
import { CircleProgressComponent, NgCircleProgressModule } from 'ng-circle-progress';
|
|
7
6
|
import { register, PROP_STRING, PROP_ANY, PROP_NUMBER, PROP_BOOLEAN, StylableComponent, styler, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
|
|
8
7
|
import { findValueOf, isDefined } from '@wm/core';
|
|
@@ -51,7 +50,7 @@ const calculatePercent = (value, min = 0, max = 0) => {
|
|
|
51
50
|
};
|
|
52
51
|
|
|
53
52
|
const _c0$1 = ["wmProgressBar", ""];
|
|
54
|
-
function
|
|
53
|
+
function ProgressBarComponent_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
55
54
|
i0.ɵɵelementStart(0, "div", 1)(1, "span", 2);
|
|
56
55
|
i0.ɵɵtext(2);
|
|
57
56
|
i0.ɵɵelementEnd()();
|
|
@@ -170,17 +169,17 @@ class ProgressBarComponent extends StylableComponent {
|
|
|
170
169
|
static { this.ɵfac = function ProgressBarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ProgressBarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵinjectAttribute('dataset'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
|
171
170
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProgressBarComponent, selectors: [["", "wmProgressBar", ""]], features: [i0.ɵɵProvidersFeature([
|
|
172
171
|
provideAsWidgetRef(ProgressBarComponent)
|
|
173
|
-
]), i0.ɵɵInheritDefinitionFeature], attrs: _c0$1, decls:
|
|
174
|
-
i0.ɵɵ
|
|
172
|
+
]), i0.ɵɵInheritDefinitionFeature], attrs: _c0$1, decls: 2, vars: 0, consts: [["role", "progressbar", 3, "class", "width", "tabindex"], ["role", "progressbar", 3, "tabindex"], [1, "app-progress-label"]], template: function ProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
173
|
+
i0.ɵɵrepeaterCreate(0, ProgressBarComponent_For_1_Template, 3, 12, "div", 0, i0.ɵɵrepeaterTrackByIdentity);
|
|
175
174
|
} if (rf & 2) {
|
|
176
|
-
i0.ɵɵ
|
|
177
|
-
} },
|
|
175
|
+
i0.ɵɵrepeater(ctx.data);
|
|
176
|
+
} }, encapsulation: 2 }); }
|
|
178
177
|
}
|
|
179
178
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProgressBarComponent, [{
|
|
180
179
|
type: Component,
|
|
181
180
|
args: [{ selector: '[wmProgressBar]', providers: [
|
|
182
181
|
provideAsWidgetRef(ProgressBarComponent)
|
|
183
|
-
], template: "<div class=\"multi-bar progress-bar {{bar.cls}}\"
|
|
182
|
+
], template: "@for (bar of data; track bar) {\n <div class=\"multi-bar progress-bar {{bar.cls}}\" [style.width]=\"bar.progressBarWidth\"\n role=\"progressbar\" [attr.aria-valuenow]=\"datavalue\" [attr.aria-valuemin]=\"minvalue\" [attr.aria-valuemax]=\"maxvalue\"\n [attr.aria-label]=\"arialabel || 'Progress bar'\" [tabindex]=\"tabindex\">\n <span class=\"app-progress-label\" [attr.data-caption-placement]=\"captionplacement\">{{bar.displayValue}}</span>\n </div>\n}\n" }]
|
|
184
183
|
}], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
|
|
185
184
|
type: Attribute,
|
|
186
185
|
args: ['dataset']
|
|
@@ -319,7 +318,7 @@ class ProgressCircleComponent extends StylableComponent {
|
|
|
319
318
|
i0.ɵɵelement(0, "circle-progress", 0);
|
|
320
319
|
} if (rf & 2) {
|
|
321
320
|
i0.ɵɵproperty("percent", ctx.percentagevalue)("options", ctx.options);
|
|
322
|
-
} }, dependencies: [i1
|
|
321
|
+
} }, dependencies: [i1.CircleProgressComponent], encapsulation: 2 }); }
|
|
323
322
|
}
|
|
324
323
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProgressCircleComponent, [{
|
|
325
324
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.props.ts","../../../../../projects/components/widgets/basic/progress/src/utils.ts","../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.component.html","../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.component.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.props.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.component.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.component.html","../../../../../projects/components/widgets/basic/progress/src/progress.module.ts","../../../../../projects/components/widgets/basic/progress/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-progress-bar',\n new Map(\n [\n ['captionplacement', {value: 'hidden', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', {value: 100, ...PROP_NUMBER}],\n ['minvalue', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'default', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {isNaN, isString} from \"lodash-es\";\n// This function returns the maximum number of decimal digits allowed.\nexport const getDecimalCount = (val: string) => {\n val = val || '9';\n val = val.replace(/\\%$/, '');\n\n const n = val.lastIndexOf('.');\n\n return (n === -1) ? 0 : (val.length - n - 1);\n};\n\n// returns true if the given value contains '%'\nexport const isPercentageValue = (val: string): boolean => {\n if (isString(val)) {\n val = val.trim();\n return val.charAt(val.length - 1) === '%';\n }\n return false;\n};\n\nexport const calculatePercent = (value: number , min: number = 0, max: number = 0): number => {\n const percent: number = ((value - min) / (max - min)) * 100;\n\n if (isNaN(percent)) {\n console.warn('Circle Progress Bar: One of the properties Min, Max or datavalue is not a valid number');\n return 0;\n }\n return Math.abs(percent);\n};\n","<div class=\"multi-bar progress-bar {{bar.cls}}\" *ngFor=\"let bar of data\" [style.width]=\"bar.progressBarWidth\"\n role=\"progressbar\" [attr.aria-valuenow]=\"datavalue\" [attr.aria-valuemin]=\"minvalue\" [attr.aria-valuemax]=\"maxvalue\"\n [attr.aria-label]=\"arialabel || 'Progress bar'\" [tabindex]=\"tabindex\">\n <span class=\"app-progress-label\" [attr.data-caption-placement]=\"captionplacement\">{{bar.displayValue}}</span>\n</div>\n","import {Attribute, Component, Inject, Injector, Optional} from '@angular/core';\n\nimport {findValueOf, isDefined} from '@wm/core';\nimport {IWidgetConfig, provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\n\nimport {registerProps} from './progress-bar.props';\nimport {getDecimalCount, isPercentageValue} from '../utils';\nimport {debounce, isArray} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'progress app-progress';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-progress-bar', hostClass: DEFAULT_CLS};\n\n// map of progress-bar type and classes\nexport const TYPE_CLASS_MAP = {\n 'default': '',\n 'default-striped': 'progress-bar-striped',\n 'success': 'progress-bar-success',\n 'success-striped': 'progress-bar-success progress-bar-striped',\n 'info': 'progress-bar-info',\n 'info-striped': 'progress-bar-info progress-bar-striped',\n 'warning': 'progress-bar-warning',\n 'warning-striped': 'progress-bar-warning progress-bar-striped',\n 'danger': 'progress-bar-danger',\n 'danger-striped': 'progress-bar-danger progress-bar-striped'\n};\n\n\n// interface for the progress-bar info\ninterface IProgressInfo {\n cls: string;\n progressBarWidth: string;\n displayValue: string;\n}\n\n@Component({\n selector: '[wmProgressBar]',\n templateUrl: './progress-bar.component.html',\n providers: [\n provideAsWidgetRef(ProgressBarComponent)\n ]\n})\nexport class ProgressBarComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n public displayformat: string;\n public datavalue: string;\n public minvalue: number;\n public maxvalue: number;\n public type: string;\n public dataset: Array<any>;\n public hint: string;\n public arialabel: string;\n public tabindex: string;\n\n private _prepareData: Function;\n private readonly hasDataset: boolean;\n\n // progress-bar data, ngFor in the template iterates on this\n public data: Array<IProgressInfo> = [{\n cls: TYPE_CLASS_MAP.default,\n progressBarWidth: '0%',\n displayValue: '0'\n }];\n\n constructor(inj: Injector, @Attribute('dataset') dataset: string, @Attribute('dataset.bind') boundDataset: string, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n // flag which determines whether dataset is provided or not\n this.hasDataset = !!(dataset || boundDataset);\n\n styler(this.nativeElement, this);\n\n this._prepareData = debounce(() => this.prepareData(), 50);\n }\n\n // update the proper classes when there is a change in type\n protected onTypeChange() {\n if (!this.hasDataset) {\n if (this.data[0]) {\n this.data[0].cls = TYPE_CLASS_MAP[this.type];\n }\n }\n }\n\n // returns the formatted display value based on the provided displayformat\n protected getFormattedDisplayVal(val: string | number): string {\n const format = this.displayformat || '9';\n\n val = parseFloat('' + val);\n val = (val.toFixed(getDecimalCount(format)));\n\n if (format && format.includes('%')) {\n val = `${val}%`;\n }\n return val;\n }\n\n protected prepareData() {\n // when the dataset is provided, iterate over the dataset to set the proper values in the data\n if (this.dataset && isArray(this.dataset) && this.type && this.datavalue) {\n this.data = this.dataset.map((datum): IProgressInfo => {\n const val: string = findValueOf(datum, this.datavalue).toString();\n let percentVal = val;\n if (val && !val.includes('%')) {\n percentVal = `${val}%`;\n }\n return {\n cls: TYPE_CLASS_MAP[findValueOf(datum, this.type)],\n progressBarWidth: percentVal,\n displayValue: this.getFormattedDisplayVal(val)\n };\n });\n } else {\n // if the dataset is not provided, update the values in the default data\n let width: string | number = 0;\n let displayVal: string | number = 0;\n if (this.datavalue) {\n if (isPercentageValue(this.datavalue)) {\n const val = (this.datavalue || '0%');\n width = displayVal = val;\n } else {\n if (isDefined(this.datavalue)) {\n const denominator = (+this.maxvalue - +this.minvalue) || 1;\n const val = ((+this.datavalue - +this.minvalue) * 100) / denominator + '%';\n width = displayVal = val;\n }\n }\n }\n this.data[0].displayValue = this.getFormattedDisplayVal(displayVal as string);\n this.data[0].progressBarWidth = width as string;\n this.data[0].cls = TYPE_CLASS_MAP[this.type];\n\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'type') {\n this.onTypeChange();\n } else if (key === 'minvalue' || key === 'maxvalue' || key === 'datavalue' || key === 'dataset' || key === 'displayformat') {\n this._prepareData();\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-progress-circle',\n new Map(\n [\n ['captionplacement', {value: 'inside', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavalue', {value: '30', ...PROP_STRING}],\n ['displayformat', {value: '9%', ...PROP_STRING}],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', {value: 100, ...PROP_NUMBER}],\n ['minvalue', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['subtitle', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING],\n ['type', {value: 'default', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {AfterViewInit, Component, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {CircleProgressComponent, CircleProgressOptionsInterface} from 'ng-circle-progress';\n\n\nimport {IRedrawableComponent, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\nimport {registerProps} from './progress-circle.props';\nimport {calculatePercent, getDecimalCount, isPercentageValue} from '../utils';\nimport {clone, debounce, extend} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'progress app-progress circle';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-progress-circle', hostClass: DEFAULT_CLS};\nconst DEFAULT_OPTIONS: CircleProgressOptionsInterface = {\n responsive: true,\n innerStrokeWidth: 10,\n outerStrokeWidth: 10,\n unitsFontSize: '15',\n space: -10,\n toFixed: 0,\n maxPercent: 100,\n showSubtitle: false,\n clockwise: true,\n startFromZero: false,\n renderOnClick: false,\n innerStrokeColor: '',\n outerStrokeColor: ''\n};\n\n// map of progress-bar type and classes\nexport const TYPE_CLASS_MAP_PC = {\n 'default': '',\n 'success': 'progress-circle-success',\n 'info': 'progress-circle-info',\n 'warning': 'progress-circle-warning',\n 'danger': 'progress-circle-danger',\n};\n\n\n\n@Component({\n selector: '[wmProgressCircle]',\n templateUrl: './progress-circle.component.html',\n providers: [\n provideAsWidgetRef(ProgressCircleComponent)\n ],\n exportAs: 'wmProgressCircle'\n})\nexport class ProgressCircleComponent extends StylableComponent implements AfterViewInit, IRedrawableComponent {\n static initializeProps = registerProps();\n\n public displayformat: string;\n public datavalue: string;\n public minvalue: number;\n public maxvalue: number;\n public type: string;\n public title: string;\n public subtitle: string;\n public captionplacement: string;\n public percentagevalue: number;\n public redraw: Function;\n public options: CircleProgressOptionsInterface;\n public hint: string;\n public arialabel: string;\n public displayValue: string;\n\n @ViewChild(CircleProgressComponent, { static: true }) circleRef: CircleProgressComponent;\n\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.options = clone(DEFAULT_OPTIONS);\n this.redraw = debounce(this._redraw, 100);\n }\n\n private _redraw () {\n this.circleRef.render();\n // Select the <tspan> element that contains the percentage value\n let tspanElement = $(this.nativeElement).find('svg text tspan:first');\n this.displayValue = this.options.showUnits ? tspanElement?.text() + '%' : tspanElement?.text();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.invokeEventCallback('beforerender', {'$event' : {}});\n this.options = Object.assign(this.circleRef.options, this.options);\n }\n\n getDefaultOptions() {\n return this.options;\n }\n\n getLib() {\n return 'ng-circle-progress';\n }\n\n overrideDefaults(options) {\n extend(this.options, options);\n }\n\n updateDisplayValueFormat() {\n // show title and subtitle only when captionplacement is 'inside'\n this.options.showTitle = this.options.showSubtitle = (this.captionplacement === 'inside');\n\n // show units when title value is empty and captionplacement is 'inside'\n this.options.showUnits = !this.title && this.options.showTitle && isPercentageValue(this.displayformat);\n this.options.toFixed = getDecimalCount(this.displayformat);\n\n if (this.options.showTitle) {\n this.options.title = this.title || 'auto';\n this.options.showSubtitle = !!this.subtitle;\n this.options.subtitle = this.subtitle || '';\n }\n this.redraw();\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n switch (key) {\n case 'type':\n this.$element.removeClass(TYPE_CLASS_MAP_PC[ov]);\n this.$element.addClass(TYPE_CLASS_MAP_PC[nv]);\n break;\n case 'minvalue':\n case 'maxvalue':\n case 'datavalue':\n if (isPercentageValue(this.datavalue)) {\n this.percentagevalue = parseFloat(this.datavalue);\n } else {\n this.percentagevalue = calculatePercent(parseFloat(this.datavalue), this.minvalue, this.maxvalue);\n }\n break;\n case 'displayformat':\n case 'captionplacement':\n case 'title':\n case 'subtitle':\n this.updateDisplayValueFormat();\n break;\n }\n super.onPropertyChange(key, nv, ov);\n }\n}\n","<circle-progress [percent]=\"percentagevalue\" [options]=\"options\"></circle-progress>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgCircleProgressModule } from 'ng-circle-progress';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { ProgressBarComponent } from './progress-bar/progress-bar.component';\nimport { ProgressCircleComponent } from './progress-circle/progress-circle.component';\n\nconst components = [\n ProgressBarComponent,\n ProgressCircleComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n NgCircleProgressModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ProgressModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG","_c0"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.props.ts","../../../../../projects/components/widgets/basic/progress/src/utils.ts","../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.component.html","../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.component.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.props.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.component.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.component.html","../../../../../projects/components/widgets/basic/progress/src/progress.module.ts","../../../../../projects/components/widgets/basic/progress/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-progress-bar',\n new Map(\n [\n ['captionplacement', {value: 'hidden', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', {value: 100, ...PROP_NUMBER}],\n ['minvalue', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'default', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {isNaN, isString} from \"lodash-es\";\n// This function returns the maximum number of decimal digits allowed.\nexport const getDecimalCount = (val: string) => {\n val = val || '9';\n val = val.replace(/\\%$/, '');\n\n const n = val.lastIndexOf('.');\n\n return (n === -1) ? 0 : (val.length - n - 1);\n};\n\n// returns true if the given value contains '%'\nexport const isPercentageValue = (val: string): boolean => {\n if (isString(val)) {\n val = val.trim();\n return val.charAt(val.length - 1) === '%';\n }\n return false;\n};\n\nexport const calculatePercent = (value: number , min: number = 0, max: number = 0): number => {\n const percent: number = ((value - min) / (max - min)) * 100;\n\n if (isNaN(percent)) {\n console.warn('Circle Progress Bar: One of the properties Min, Max or datavalue is not a valid number');\n return 0;\n }\n return Math.abs(percent);\n};\n","@for (bar of data; track bar) {\n <div class=\"multi-bar progress-bar {{bar.cls}}\" [style.width]=\"bar.progressBarWidth\"\n role=\"progressbar\" [attr.aria-valuenow]=\"datavalue\" [attr.aria-valuemin]=\"minvalue\" [attr.aria-valuemax]=\"maxvalue\"\n [attr.aria-label]=\"arialabel || 'Progress bar'\" [tabindex]=\"tabindex\">\n <span class=\"app-progress-label\" [attr.data-caption-placement]=\"captionplacement\">{{bar.displayValue}}</span>\n </div>\n}\n","import {Attribute, Component, Inject, Injector, Optional} from '@angular/core';\n\nimport {findValueOf, isDefined} from '@wm/core';\nimport {IWidgetConfig, provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\n\nimport {registerProps} from './progress-bar.props';\nimport {getDecimalCount, isPercentageValue} from '../utils';\nimport {debounce, isArray} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'progress app-progress';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-progress-bar', hostClass: DEFAULT_CLS};\n\n// map of progress-bar type and classes\nexport const TYPE_CLASS_MAP = {\n 'default': '',\n 'default-striped': 'progress-bar-striped',\n 'success': 'progress-bar-success',\n 'success-striped': 'progress-bar-success progress-bar-striped',\n 'info': 'progress-bar-info',\n 'info-striped': 'progress-bar-info progress-bar-striped',\n 'warning': 'progress-bar-warning',\n 'warning-striped': 'progress-bar-warning progress-bar-striped',\n 'danger': 'progress-bar-danger',\n 'danger-striped': 'progress-bar-danger progress-bar-striped'\n};\n\n\n// interface for the progress-bar info\ninterface IProgressInfo {\n cls: string;\n progressBarWidth: string;\n displayValue: string;\n}\n\n@Component({\n selector: '[wmProgressBar]',\n templateUrl: './progress-bar.component.html',\n providers: [\n provideAsWidgetRef(ProgressBarComponent)\n ]\n})\nexport class ProgressBarComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n public displayformat: string;\n public datavalue: string;\n public minvalue: number;\n public maxvalue: number;\n public type: string;\n public dataset: Array<any>;\n public hint: string;\n public arialabel: string;\n public tabindex: string;\n\n private _prepareData: Function;\n private readonly hasDataset: boolean;\n\n // progress-bar data, ngFor in the template iterates on this\n public data: Array<IProgressInfo> = [{\n cls: TYPE_CLASS_MAP.default,\n progressBarWidth: '0%',\n displayValue: '0'\n }];\n\n constructor(inj: Injector, @Attribute('dataset') dataset: string, @Attribute('dataset.bind') boundDataset: string, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n // flag which determines whether dataset is provided or not\n this.hasDataset = !!(dataset || boundDataset);\n\n styler(this.nativeElement, this);\n\n this._prepareData = debounce(() => this.prepareData(), 50);\n }\n\n // update the proper classes when there is a change in type\n protected onTypeChange() {\n if (!this.hasDataset) {\n if (this.data[0]) {\n this.data[0].cls = TYPE_CLASS_MAP[this.type];\n }\n }\n }\n\n // returns the formatted display value based on the provided displayformat\n protected getFormattedDisplayVal(val: string | number): string {\n const format = this.displayformat || '9';\n\n val = parseFloat('' + val);\n val = (val.toFixed(getDecimalCount(format)));\n\n if (format && format.includes('%')) {\n val = `${val}%`;\n }\n return val;\n }\n\n protected prepareData() {\n // when the dataset is provided, iterate over the dataset to set the proper values in the data\n if (this.dataset && isArray(this.dataset) && this.type && this.datavalue) {\n this.data = this.dataset.map((datum): IProgressInfo => {\n const val: string = findValueOf(datum, this.datavalue).toString();\n let percentVal = val;\n if (val && !val.includes('%')) {\n percentVal = `${val}%`;\n }\n return {\n cls: TYPE_CLASS_MAP[findValueOf(datum, this.type)],\n progressBarWidth: percentVal,\n displayValue: this.getFormattedDisplayVal(val)\n };\n });\n } else {\n // if the dataset is not provided, update the values in the default data\n let width: string | number = 0;\n let displayVal: string | number = 0;\n if (this.datavalue) {\n if (isPercentageValue(this.datavalue)) {\n const val = (this.datavalue || '0%');\n width = displayVal = val;\n } else {\n if (isDefined(this.datavalue)) {\n const denominator = (+this.maxvalue - +this.minvalue) || 1;\n const val = ((+this.datavalue - +this.minvalue) * 100) / denominator + '%';\n width = displayVal = val;\n }\n }\n }\n this.data[0].displayValue = this.getFormattedDisplayVal(displayVal as string);\n this.data[0].progressBarWidth = width as string;\n this.data[0].cls = TYPE_CLASS_MAP[this.type];\n\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'type') {\n this.onTypeChange();\n } else if (key === 'minvalue' || key === 'maxvalue' || key === 'datavalue' || key === 'dataset' || key === 'displayformat') {\n this._prepareData();\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-progress-circle',\n new Map(\n [\n ['captionplacement', {value: 'inside', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavalue', {value: '30', ...PROP_STRING}],\n ['displayformat', {value: '9%', ...PROP_STRING}],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', {value: 100, ...PROP_NUMBER}],\n ['minvalue', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['subtitle', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING],\n ['type', {value: 'default', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {AfterViewInit, Component, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {CircleProgressComponent, CircleProgressOptionsInterface} from 'ng-circle-progress';\n\n\nimport {IRedrawableComponent, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\nimport {registerProps} from './progress-circle.props';\nimport {calculatePercent, getDecimalCount, isPercentageValue} from '../utils';\nimport {clone, debounce, extend} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'progress app-progress circle';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-progress-circle', hostClass: DEFAULT_CLS};\nconst DEFAULT_OPTIONS: CircleProgressOptionsInterface = {\n responsive: true,\n innerStrokeWidth: 10,\n outerStrokeWidth: 10,\n unitsFontSize: '15',\n space: -10,\n toFixed: 0,\n maxPercent: 100,\n showSubtitle: false,\n clockwise: true,\n startFromZero: false,\n renderOnClick: false,\n innerStrokeColor: '',\n outerStrokeColor: ''\n};\n\n// map of progress-bar type and classes\nexport const TYPE_CLASS_MAP_PC = {\n 'default': '',\n 'success': 'progress-circle-success',\n 'info': 'progress-circle-info',\n 'warning': 'progress-circle-warning',\n 'danger': 'progress-circle-danger',\n};\n\n\n\n@Component({\n selector: '[wmProgressCircle]',\n templateUrl: './progress-circle.component.html',\n providers: [\n provideAsWidgetRef(ProgressCircleComponent)\n ],\n exportAs: 'wmProgressCircle'\n})\nexport class ProgressCircleComponent extends StylableComponent implements AfterViewInit, IRedrawableComponent {\n static initializeProps = registerProps();\n\n public displayformat: string;\n public datavalue: string;\n public minvalue: number;\n public maxvalue: number;\n public type: string;\n public title: string;\n public subtitle: string;\n public captionplacement: string;\n public percentagevalue: number;\n public redraw: Function;\n public options: CircleProgressOptionsInterface;\n public hint: string;\n public arialabel: string;\n public displayValue: string;\n\n @ViewChild(CircleProgressComponent, { static: true }) circleRef: CircleProgressComponent;\n\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.options = clone(DEFAULT_OPTIONS);\n this.redraw = debounce(this._redraw, 100);\n }\n\n private _redraw () {\n this.circleRef.render();\n // Select the <tspan> element that contains the percentage value\n let tspanElement = $(this.nativeElement).find('svg text tspan:first');\n this.displayValue = this.options.showUnits ? tspanElement?.text() + '%' : tspanElement?.text();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.invokeEventCallback('beforerender', {'$event' : {}});\n this.options = Object.assign(this.circleRef.options, this.options);\n }\n\n getDefaultOptions() {\n return this.options;\n }\n\n getLib() {\n return 'ng-circle-progress';\n }\n\n overrideDefaults(options) {\n extend(this.options, options);\n }\n\n updateDisplayValueFormat() {\n // show title and subtitle only when captionplacement is 'inside'\n this.options.showTitle = this.options.showSubtitle = (this.captionplacement === 'inside');\n\n // show units when title value is empty and captionplacement is 'inside'\n this.options.showUnits = !this.title && this.options.showTitle && isPercentageValue(this.displayformat);\n this.options.toFixed = getDecimalCount(this.displayformat);\n\n if (this.options.showTitle) {\n this.options.title = this.title || 'auto';\n this.options.showSubtitle = !!this.subtitle;\n this.options.subtitle = this.subtitle || '';\n }\n this.redraw();\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n switch (key) {\n case 'type':\n this.$element.removeClass(TYPE_CLASS_MAP_PC[ov]);\n this.$element.addClass(TYPE_CLASS_MAP_PC[nv]);\n break;\n case 'minvalue':\n case 'maxvalue':\n case 'datavalue':\n if (isPercentageValue(this.datavalue)) {\n this.percentagevalue = parseFloat(this.datavalue);\n } else {\n this.percentagevalue = calculatePercent(parseFloat(this.datavalue), this.minvalue, this.maxvalue);\n }\n break;\n case 'displayformat':\n case 'captionplacement':\n case 'title':\n case 'subtitle':\n this.updateDisplayValueFormat();\n break;\n }\n super.onPropertyChange(key, nv, ov);\n }\n}\n","<circle-progress [percent]=\"percentagevalue\" [options]=\"options\"></circle-progress>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgCircleProgressModule } from 'ng-circle-progress';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { ProgressBarComponent } from './progress-bar/progress-bar.component';\nimport { ProgressCircleComponent } from './progress-circle/progress-circle.component';\n\nconst components = [\n ProgressBarComponent,\n ProgressCircleComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n NgCircleProgressModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ProgressModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG","_c0"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@wm/components/base'), require('@angular/forms'), require('@wm/core'), require('@wm/components/input'), require('lodash-es')) :
|
|
3
3
|
typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@wm/components/base', '@angular/forms', '@wm/core', '@wm/components/input', 'lodash-es'], factory) :
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.basic = global.wm.components.basic || {}, global.wm.components.basic.richtexteditor = {}), global.ng.core, global.ng.common, global.wm.components.base, global.ng.forms, global.wm.core, global.wm.components.input, global._));
|
|
5
|
-
})(this, (function (exports, i0,
|
|
5
|
+
})(this, (function (exports, i0, common, i1, forms, core, input, lodashEs) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopNamespaceDefault(e) {
|
|
8
8
|
var n = Object.create(null);
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
var i0__namespace = /*#__PURE__*/_interopNamespaceDefault(i0);
|
|
25
|
-
var i2__namespace = /*#__PURE__*/_interopNamespaceDefault(i2);
|
|
26
25
|
var i1__namespace = /*#__PURE__*/_interopNamespaceDefault(i1);
|
|
27
26
|
|
|
28
27
|
const richTextProps = new Map([
|
|
@@ -45,8 +44,8 @@
|
|
|
45
44
|
};
|
|
46
45
|
|
|
47
46
|
const _c0 = ["wmRichTextEditor", ""];
|
|
48
|
-
function
|
|
49
|
-
i0__namespace.ɵɵelement(0, "div",
|
|
47
|
+
function RichTextEditorComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
+
i0__namespace.ɵɵelement(0, "div", 1);
|
|
50
49
|
} if (rf & 2) {
|
|
51
50
|
const ctx_r0 = i0__namespace.ɵɵnextContext();
|
|
52
51
|
i0__namespace.ɵɵproperty("innerHTML", ctx_r0.proxyModel, i0__namespace.ɵɵsanitizeHtml);
|
|
@@ -224,23 +223,23 @@
|
|
|
224
223
|
static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: RichTextEditorComponent, selectors: [["div", "wmRichTextEditor", ""]], exportAs: ["wmRichTextEditor"], features: [i0__namespace.ɵɵProvidersFeature([
|
|
225
224
|
i1.provideAs(RichTextEditorComponent, forms.NG_VALUE_ACCESSOR, true),
|
|
226
225
|
i1.provideAsWidgetRef(RichTextEditorComponent)
|
|
227
|
-
]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], [
|
|
226
|
+
]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], [1, "ta-preview", 3, "innerHTML"], ["hidden", "", 1, "model-holder", 3, "disabled"]], template: function RichTextEditorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
228
227
|
i0__namespace.ɵɵelement(0, "div", 0);
|
|
229
|
-
i0__namespace.ɵɵtemplate(1,
|
|
228
|
+
i0__namespace.ɵɵtemplate(1, RichTextEditorComponent_Conditional_1_Template, 1, 1, "div", 1);
|
|
230
229
|
i0__namespace.ɵɵelement(2, "input", 2);
|
|
231
230
|
} if (rf & 2) {
|
|
232
231
|
i0__namespace.ɵɵadvance();
|
|
233
|
-
i0__namespace.ɵɵ
|
|
232
|
+
i0__namespace.ɵɵconditional(ctx.showpreview ? 1 : -1);
|
|
234
233
|
i0__namespace.ɵɵadvance();
|
|
235
234
|
i0__namespace.ɵɵproperty("disabled", ctx.disabled);
|
|
236
|
-
} },
|
|
235
|
+
} }, encapsulation: 2 }); }
|
|
237
236
|
}
|
|
238
237
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(RichTextEditorComponent, [{
|
|
239
238
|
type: i0.Component,
|
|
240
239
|
args: [{ selector: 'div[wmRichTextEditor]', providers: [
|
|
241
240
|
i1.provideAs(RichTextEditorComponent, forms.NG_VALUE_ACCESSOR, true),
|
|
242
241
|
i1.provideAsWidgetRef(RichTextEditorComponent)
|
|
243
|
-
], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n<div [innerHTML]=\"proxyModel\" class=\"ta-preview\"
|
|
242
|
+
], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n@if (showpreview) {\n <div [innerHTML]=\"proxyModel\" class=\"ta-preview\"></div>\n}\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n" }]
|
|
244
243
|
}], () => [{ type: i0__namespace.Injector }, { type: i1__namespace.SanitizePipe }, { type: i0__namespace.NgZone }, { type: undefined, decorators: [{
|
|
245
244
|
type: i0.Inject,
|
|
246
245
|
args: ['EXPLICIT_CONTEXT']
|
|
@@ -255,21 +254,21 @@
|
|
|
255
254
|
class RichTextEditorModule {
|
|
256
255
|
static { this.ɵfac = function RichTextEditorModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RichTextEditorModule)(); }; }
|
|
257
256
|
static { this.ɵmod = /*@__PURE__*/ i0__namespace.ɵɵdefineNgModule({ type: RichTextEditorModule }); }
|
|
258
|
-
static { this.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [
|
|
257
|
+
static { this.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [common.CommonModule,
|
|
259
258
|
i1.WmComponentsModule] }); }
|
|
260
259
|
}
|
|
261
260
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(RichTextEditorModule, [{
|
|
262
261
|
type: i0.NgModule,
|
|
263
262
|
args: [{
|
|
264
263
|
imports: [
|
|
265
|
-
|
|
264
|
+
common.CommonModule,
|
|
266
265
|
i1.WmComponentsModule
|
|
267
266
|
],
|
|
268
267
|
declarations: [...components],
|
|
269
268
|
exports: [...components]
|
|
270
269
|
}]
|
|
271
270
|
}], null, null); })();
|
|
272
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(RichTextEditorModule, { declarations: [RichTextEditorComponent], imports: [
|
|
271
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(RichTextEditorModule, { declarations: [RichTextEditorComponent], imports: [common.CommonModule,
|
|
273
272
|
i1.WmComponentsModule], exports: [RichTextEditorComponent] }); })();
|
|
274
273
|
|
|
275
274
|
exports.RichTextEditorComponent = RichTextEditorComponent;
|
|
@@ -7,10 +7,9 @@ import { registerProps } from './rich-text-editor.props';
|
|
|
7
7
|
import { extend } from "lodash-es";
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@wm/components/base";
|
|
10
|
-
import * as i2 from "@angular/common";
|
|
11
10
|
const _c0 = ["wmRichTextEditor", ""];
|
|
12
|
-
function
|
|
13
|
-
i0.ɵɵelement(0, "div",
|
|
11
|
+
function RichTextEditorComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵelement(0, "div", 1);
|
|
14
13
|
} if (rf & 2) {
|
|
15
14
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
16
15
|
i0.ɵɵproperty("innerHTML", ctx_r0.proxyModel, i0.ɵɵsanitizeHtml);
|
|
@@ -188,23 +187,23 @@ export class RichTextEditorComponent extends BaseFormCustomComponent {
|
|
|
188
187
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RichTextEditorComponent, selectors: [["div", "wmRichTextEditor", ""]], exportAs: ["wmRichTextEditor"], features: [i0.ɵɵProvidersFeature([
|
|
189
188
|
provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),
|
|
190
189
|
provideAsWidgetRef(RichTextEditorComponent)
|
|
191
|
-
]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], [
|
|
190
|
+
]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], [1, "ta-preview", 3, "innerHTML"], ["hidden", "", 1, "model-holder", 3, "disabled"]], template: function RichTextEditorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
192
191
|
i0.ɵɵelement(0, "div", 0);
|
|
193
|
-
i0.ɵɵtemplate(1,
|
|
192
|
+
i0.ɵɵtemplate(1, RichTextEditorComponent_Conditional_1_Template, 1, 1, "div", 1);
|
|
194
193
|
i0.ɵɵelement(2, "input", 2);
|
|
195
194
|
} if (rf & 2) {
|
|
196
195
|
i0.ɵɵadvance();
|
|
197
|
-
i0.ɵɵ
|
|
196
|
+
i0.ɵɵconditional(ctx.showpreview ? 1 : -1);
|
|
198
197
|
i0.ɵɵadvance();
|
|
199
198
|
i0.ɵɵproperty("disabled", ctx.disabled);
|
|
200
|
-
} },
|
|
199
|
+
} }, encapsulation: 2 }); }
|
|
201
200
|
}
|
|
202
201
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RichTextEditorComponent, [{
|
|
203
202
|
type: Component,
|
|
204
203
|
args: [{ selector: 'div[wmRichTextEditor]', providers: [
|
|
205
204
|
provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),
|
|
206
205
|
provideAsWidgetRef(RichTextEditorComponent)
|
|
207
|
-
], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n<div [innerHTML]=\"proxyModel\" class=\"ta-preview\"
|
|
206
|
+
], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n@if (showpreview) {\n <div [innerHTML]=\"proxyModel\" class=\"ta-preview\"></div>\n}\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n" }]
|
|
208
207
|
}], () => [{ type: i0.Injector }, { type: i1.SanitizePipe }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
209
208
|
type: Inject,
|
|
210
209
|
args: ['EXPLICIT_CONTEXT']
|
|
@@ -212,4 +211,4 @@ export class RichTextEditorComponent extends BaseFormCustomComponent {
|
|
|
212
211
|
type: Optional
|
|
213
212
|
}] }], null); })();
|
|
214
213
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RichTextEditorComponent, { className: "RichTextEditorComponent", filePath: "rich-text-editor.component.ts", lineNumber: 59 }); })();
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvci9zcmMvcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvci9zcmMvcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0lDUGpDLHlCQUEyRTs7O0lBQXRFLGdFQUF3Qjs7QURVN0IsTUFBTSxXQUFXLEdBQUcsRUFBQyxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLDZCQUE2QixFQUFDLENBQUM7QUFFaEcsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO0lBQ3RCLElBQUksU0FBUyxDQUFDO0lBQ2QseUVBQXlFO0lBQ3pF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QUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLE9BQU87UUFDWCxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNkLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO3dIQTlKUSx1QkFBdUIsa0lBc0UrRCxrQkFBa0I7b0VBdEV4Ryx1QkFBdUIsaUhBTnJCO2dCQUNQLFNBQVMsQ0FBQyx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7Z0JBQzNELGtCQUFrQixDQUFDLHVCQUF1QixDQUFDO2FBQzlDO1lDdkRMLHlCQUEwQjtZQUMxQix3RUFBcUU7WUFDckUsMkJBQXlEOztZQURQLGNBQWlCO1lBQWpCLHNDQUFpQjtZQUN2QyxjQUFxQjtZQUFyQix1Q0FBcUI7OztpRkR3RHBDLHVCQUF1QjtjQVRuQyxTQUFTOzJCQUNJLHVCQUF1QixhQUV0QjtvQkFDUCxTQUFTLDBCQUEwQixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQzNELGtCQUFrQix5QkFBeUI7aUJBQzlDLFlBQ1Msa0JBQWtCOztzQkF3RTRELE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFROztrRkF0RW5ILHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgU2VjdXJpdHlDb250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtzZXRBdHRyLCBzZXRDU1MsIHNldEh0bWx9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7QVBQTFlfU1RZTEVTX1RZUEUsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTYW5pdGl6ZVBpcGUsIHN0eWxlcn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0Jhc2VGb3JtQ3VzdG9tQ29tcG9uZW50fSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dCc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9yaWNoLXRleHQtZWRpdG9yLnByb3BzJztcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cblxuY29uc3QgV0lER0VUX0lORk8gPSB7d2lkZ2V0VHlwZTogJ3dtLXJpY2h0ZXh0ZWRpdG9yJywgaG9zdENsYXNzOiAnYXBwLXJpY2h0ZXh0ZWRpdG9yIGNsZWFyZml4J307XG5cbmNvbnN0IGdldENoYW5nZUV2dCA9ICgpID0+IHtcbiAgICBsZXQgY2hhbmdlRXZ0O1xuICAgIC8vIGZvciBJRSB0aGUgZXZlbnQgY29uc3RydWN0b3IgZG9lc24ndCB3b3JrIHNvIHVzZSB0aGUgY3JlYXRlRXZlbnQgcHJvdG9cbiAgICBpZiAodHlwZW9mKEV2ZW50KSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjaGFuZ2VFdnQgPSBuZXcgRXZlbnQoJ2NoYW5nZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYW5nZUV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgICAgICBjaGFuZ2VFdnQuaW5pdEV2ZW50KCdjaGFuZ2UnLCB0cnVlLCB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZUV2dDtcbn07XG5cbmRlY2xhcmUgY29uc3QgXywgJDtcblxuY29uc3Qgb3ZlcnJpZGVTdW1tZXJOb3RlID0gKCkgPT4ge1xuICAgIGlmICghJC5zdW1tZXJub3RlLl9fb3ZlcmlkZGVuKSB7XG4gICAgICAgIC8vIG92ZXJyaWRlIHN1bW1lcm5vdGUgbWV0aG9kc1xuXG4gICAgICAgIGNvbnN0IG9yaWdGbiA9ICQuc3VtbWVybm90ZS51aV90ZW1wbGF0ZSgpLmJ1dHRvbi5iaW5kKCQuc3VtbWVybm90ZSk7XG5cbiAgICAgICAgJC5zdW1tZXJub3RlLnVpX3RlbXBsYXRlLmJ1dHRvbiA9ICguLi5hcmdzKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHJldFZhbCA9IG9yaWdGbiguLi5hcmdzKTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdDYWxsYmFjayA9IHJldFZhbC5jYWxsYmFjaztcblxuICAgICAgICAgICAgcmV0VmFsLmNhbGxiYWNrID0gKCRub2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gYWRkIGJzMyBidG4gY2xhc3MgdG8gdGhlIGJ1dHRvbnNcbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcygnYnRuJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdDYWxsYmFjaygkbm9kZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJldFZhbDtcbiAgICAgICAgfTtcbiAgICAgICAgJC5zdW1tZXJub3RlLl9fb3ZlcmlkZGVuID0gdHJ1ZTtcbiAgICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Rpdlt3bVJpY2hUZXh0RWRpdG9yXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JpY2gtdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoUmljaFRleHRFZGl0b3JDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50KVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bVJpY2hUZXh0RWRpdG9yJ1xufSlcbmV4cG9ydCBjbGFzcyBSaWNoVGV4dEVkaXRvckNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICAkcmljaFRleHRFZGl0b3I7XG4gICAgJGhpZGRlbklucHV0RWxlO1xuXG4gICAgcHJveHlNb2RlbDtcbiAgICBfb3BlcmF0aW9uU3RhY2sgPSBbXTtcbiAgICBpc0VkaXRvckxvYWRlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHNob3dwcmV2aWV3OiBhbnk7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgRURJVE9SX0RFRkFVTFRfT1BUSU9OUyA9IHtcbiAgICAgICAgdG9vbGJhcjogW1xuICAgICAgICAgICAgLy8gW2dyb3VwTmFtZSwgW2xpc3Qgb2YgYnV0dG9uXV1cbiAgICAgICAgICAgIFsnbWlzYycsIFsndW5kbycsICdyZWRvJ11dLFxuICAgICAgICAgICAgWydzdHlsZScsIFsnc3R5bGUnXV0sXG4gICAgICAgICAgICBbJ2ZvbnRuYW1lJywgWydmb250bmFtZSddXSxcbiAgICAgICAgICAgIFsnZm9udHNpemUnLCBbJ2ZvbnRzaXplJ11dLFxuICAgICAgICAgICAgWydoZWlnaHQnLCBbJ2hlaWdodCddXSxcbiAgICAgICAgICAgIFsnc3R5bGUnLCBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdjbGVhciddXSxcbiAgICAgICAgICAgIFsnZm9udCcsIFsnc3RyaWtldGhyb3VnaCcsICdzdXBlcnNjcmlwdCcsICdzdWJzY3JpcHQnXV0sXG4gICAgICAgICAgICBbJ2NvbG9yJywgWydjb2xvciddXSxcbiAgICAgICAgICAgIFsnaW5zZXJ0JywgWyd0YWJsZScsICdwaWN0dXJlJywgJ2xpbmsnLCAndmlkZW8nLCAnaHInXV0sXG4gICAgICAgICAgICBbJ3BhcmEnLCBbJ3VsJywgJ29sJywgJ3BhcmFncmFwaCddXSxcbiAgICAgICAgICAgIFsnbWlzYycsIFsnY29kZXZpZXcnLCAnZnVsbHNjcmVlbicsICdoZWxwJ11dXG4gICAgICAgIF0sXG4gICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgICAgb25Jbml0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRvckxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX29wZXJhdGlvblN0YWNrLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRpb25TdGFjay5mb3JFYWNoKG9wZXJhdGlvblBhcmFtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEFycmF5LmZyb20ob3BlcmF0aW9uUGFyYW0ua2V5cygpKVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBvcGVyYXRpb25QYXJhbS5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbihrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRpb25TdGFjayA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNoYW5nZTogKGNvbnRlbnRzLCBlZGl0YWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJveHlNb2RlbCA9IHRoaXMuc2FuaXRpemVQaXBlLnRyYW5zZm9ybShjb250ZW50cywgU2VjdXJpdHlDb250ZXh0LkhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UoY29udGVudHMsIGdldENoYW5nZUV2dCgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmb250TmFtZXM6IFsnQXJpYWwnLCAnQXJpYWwgQmxhY2snLCAnQ29taWMgU2FucyBNUycsICdDb3VyaWVyIE5ldycsICdNZXJyaXdlYXRoZXInXSxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICd3cml0ZSBoZXJlLi4uJyxcbiAgICAgICAgbWluSGVpZ2h0OiAxMDAsXG4gICAgICAgIGRpc2FibGVSZXNpemVFZGl0b3I6IHRydWVcbiAgICB9O1xuXG4gICAgZ2V0IGh0bWxjb250ZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdjb2RlJyk7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdldCBkYXRhdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0bWxjb250ZW50O1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBzZXQgZGF0YXZhbHVlKG52KSB7XG4gICAgICAgIGlmIChudiAhPT0gdW5kZWZpbmVkICYmIG52ICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiRoaWRkZW5JbnB1dEVsZS52YWwobnYpO1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdyZXNldCcpO1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdjb2RlJywgbnYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgcHJpdmF0ZSBzYW5pdGl6ZVBpcGU6IFNhbml0aXplUGlwZSwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0lORk8sIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUiwgWydoZWlnaHQnXSk7XG4gICAgICAgIG92ZXJyaWRlU3VtbWVyTm90ZSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLiRyaWNoVGV4dEVkaXRvciA9ICQodGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyaWNoVGV4dEVkaXRvcl0nKSk7XG4gICAgICAgIHRoaXMuJGhpZGRlbklucHV0RWxlID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQubW9kZWwtaG9sZGVyJykpO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmluaXRFZGl0b3IoKTtcbiAgICAgICAgJCgnLm5vdGUtZWRpdGFibGUnKS5hdHRyKCdhcmlhLWxhYmVsJywgJ3RleHRib3gnKTtcbiAgICB9XG5cbiAgICBpbml0RWRpdG9yKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2JlZm9yZXJlbmRlcicsIHsnJGV2ZW50JyA6IHt9fSk7XG4gICAgICAgICAgICB0aGlzLiRyaWNoVGV4dEVkaXRvci5zdW1tZXJub3RlKHRoaXMuRURJVE9SX0RFRkFVTFRfT1BUSU9OUyk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdE9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVESVRPUl9ERUZBVUxUX09QVElPTlM7XG4gICAgfVxuXG4gICAgZ2V0TGliKCkge1xuICAgICAgICByZXR1cm4gJ3N1bW1lcm5vdGUnO1xuICAgIH1cblxuICAgIG92ZXJyaWRlRGVmYXVsdHMob3B0aW9ucykge1xuICAgICAgICBleHRlbmQodGhpcy5FRElUT1JfREVGQVVMVF9PUFRJT05TLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAncGxhY2Vob2xkZXInKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmZvcm1FZGl0b3JPcGVyYXRpb24oJ3BsYWNlaG9sZGVyJywgbnYpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Rpc2FibGVkJyB8fCBrZXkgPT09ICdyZWFkb25seScpIHtcbiAgICAgICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbihudiA/ICdkaXNhYmxlJyA6ICdlbmFibGUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdHlsZUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICBpZiAoa2V5ID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdoZWlnaHQnLCBudik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwZXJmb3JtRWRpdG9yT3BlcmF0aW9uKGtleSwgdmFsdWU/KSB7XG4gICAgICAgIGlmICh0aGlzLmlzRWRpdG9yTG9hZGVkKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHNldENTUyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm5vdGUtZWRpdGFibGUnKSwga2V5LCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BsYWNlaG9sZGVyJykge1xuICAgICAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBzZXRIdG1sKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYubm90ZS1wbGFjZWhvbGRlcicpLCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGlmIGVkaXRvciBjb250ZW50IGlzIGVtcHR5IHRoZW4gc3VtbWVybm90ZSgnY29kZScpIGlzIHJldHVybmluZyBlbXB0eSBwIHRhZ3MgbGlrZSA8cD48L2JyPjwvcD4uIFNvIGNoZWNraW5nIGZvciBlbXB0eSBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZC5cbiAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBrZXkgPT09ICdjb2RlJyAmJiB0aGlzLiRyaWNoVGV4dEVkaXRvci5zdW1tZXJub3RlKCdpc0VtcHR5JykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuJHJpY2hUZXh0RWRpdG9yLnN1bW1lcm5vdGUoJ2NvZGUnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQgPT09ICcnID8gY29udGVudCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuJHJpY2hUZXh0RWRpdG9yLnN1bW1lcm5vdGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBvcDogYW55ID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgb3Auc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fb3BlcmF0aW9uU3RhY2sucHVzaChvcCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDdXJyZW50UG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlcmZvcm1FZGl0b3JPcGVyYXRpb24oJ2NyZWF0ZVJhbmdlJyk7XG4gICAgfVxuXG4gICAgdW5kbygpIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCd1bmRvJyk7XG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbignZm9jdXMnKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdkZXN0cm95Jyk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiByaWNoVGV4dEVkaXRvcj48L2Rpdj5cbjxkaXYgW2lubmVySFRNTF09XCJwcm94eU1vZGVsXCIgY2xhc3M9XCJ0YS1wcmV2aWV3XCIgKm5nSWY9XCJzaG93cHJldmlld1wiPjwvZGl2PlxuPGlucHV0IGNsYXNzPVwibW9kZWwtaG9sZGVyXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgaGlkZGVuPlxuIl19
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvci9zcmMvcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvci9zcmMvcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7SUNOL0IseUJBQXVEOzs7SUFBbEQsZ0VBQXdCOztBRFMvQixNQUFNLFdBQVcsR0FBRyxFQUFDLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUMsQ0FBQztBQUVoRyxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7SUFDdEIsSUFBSSxTQUFTLENBQUM7SUFDZCx5RUFBeUU7SUFDekUsSUFBSSxPQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDL0IsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7U0FBTSxDQUFDO1FBQ0osU0FBUyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFJRixNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtJQUM1QixJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1Qiw4QkFBOEI7UUFFOUIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwRSxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFO1lBRTFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQy9CLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFFckMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtnQkFDakMsbUNBQW1DO2dCQUNuQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDO1lBQ0YsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFXRixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQXVCO2FBQ3pELG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBbUR6QyxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsYUFBYTtJQUNiLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYTtJQUNiLElBQUksU0FBUyxDQUFDLEVBQUU7UUFDWixJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxHQUFhLEVBQVUsWUFBMEIsRUFBVSxNQUFjLEVBQTBDLGVBQW9CO1FBQy9JLEtBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRFYsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBL0RyRixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUt2QiwyQkFBc0IsR0FBRztZQUNyQixPQUFPLEVBQUU7Z0JBQ0wsZ0NBQWdDO2dCQUNoQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDcEIsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDbkQsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNwQixDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdkQsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDL0M7WUFDRCxTQUFTLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLEdBQUcsRUFBRTtvQkFDVCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztvQkFDM0IsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTs0QkFDMUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDNUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQ2xDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQzFDLENBQUMsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO29CQUM5QixDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFO29CQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzlFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzNCLENBQUM7YUFDSjtZQUNELFNBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUM7WUFDbkYsV0FBVyxFQUFFLGVBQWU7WUFDNUIsU0FBUyxFQUFFLEdBQUc7WUFDZCxtQkFBbUIsRUFBRSxJQUFJO1NBQzVCLENBQUM7UUFzQkUsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUUsa0JBQWtCLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDakYsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxFQUFDLFFBQVEsRUFBRyxFQUFFLEVBQUMsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQU87UUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFRO1FBQzNDLElBQUksR0FBRyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQzthQUFNLElBQUksR0FBRyxLQUFLLFVBQVUsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNyQixJQUFJLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsR0FBRyxFQUFFLEtBQU07UUFDOUIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEYsQ0FBQztpQkFBTSxJQUFJLEdBQUcsS0FBSyxhQUFhLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkYsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLGlKQUFpSjtnQkFDakosSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQ3pGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4RCxPQUFPLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNoRCxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sRUFBRSxHQUFRLElBQUksR0FBRyxFQUFFLENBQUM7WUFDMUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsT0FBTztRQUNYLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7d0hBOUpRLHVCQUF1QixrSUFzRStELGtCQUFrQjtvRUF0RXhHLHVCQUF1QixpSEFOckI7Z0JBQ1AsU0FBUyxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQztnQkFDM0Qsa0JBQWtCLENBQUMsdUJBQXVCLENBQUM7YUFDOUM7WUN2REwseUJBQTBCO1lBQzFCLGdGQUFtQjtZQUduQiwyQkFBeUQ7O1lBSHpELGNBRUM7WUFGRCwwQ0FFQztZQUMyQixjQUFxQjtZQUFyQix1Q0FBcUI7OztpRkRzRHBDLHVCQUF1QjtjQVRuQyxTQUFTOzJCQUNJLHVCQUF1QixhQUV0QjtvQkFDUCxTQUFTLDBCQUEwQixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQzNELGtCQUFrQix5QkFBeUI7aUJBQzlDLFlBQ1Msa0JBQWtCOztzQkF3RTRELE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFROztrRkF0RW5ILHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgU2VjdXJpdHlDb250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtzZXRBdHRyLCBzZXRDU1MsIHNldEh0bWx9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7QVBQTFlfU1RZTEVTX1RZUEUsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTYW5pdGl6ZVBpcGUsIHN0eWxlcn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0Jhc2VGb3JtQ3VzdG9tQ29tcG9uZW50fSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dCc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9yaWNoLXRleHQtZWRpdG9yLnByb3BzJztcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cblxuY29uc3QgV0lER0VUX0lORk8gPSB7d2lkZ2V0VHlwZTogJ3dtLXJpY2h0ZXh0ZWRpdG9yJywgaG9zdENsYXNzOiAnYXBwLXJpY2h0ZXh0ZWRpdG9yIGNsZWFyZml4J307XG5cbmNvbnN0IGdldENoYW5nZUV2dCA9ICgpID0+IHtcbiAgICBsZXQgY2hhbmdlRXZ0O1xuICAgIC8vIGZvciBJRSB0aGUgZXZlbnQgY29uc3RydWN0b3IgZG9lc24ndCB3b3JrIHNvIHVzZSB0aGUgY3JlYXRlRXZlbnQgcHJvdG9cbiAgICBpZiAodHlwZW9mKEV2ZW50KSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjaGFuZ2VFdnQgPSBuZXcgRXZlbnQoJ2NoYW5nZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYW5nZUV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgICAgICBjaGFuZ2VFdnQuaW5pdEV2ZW50KCdjaGFuZ2UnLCB0cnVlLCB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZUV2dDtcbn07XG5cbmRlY2xhcmUgY29uc3QgXywgJDtcblxuY29uc3Qgb3ZlcnJpZGVTdW1tZXJOb3RlID0gKCkgPT4ge1xuICAgIGlmICghJC5zdW1tZXJub3RlLl9fb3ZlcmlkZGVuKSB7XG4gICAgICAgIC8vIG92ZXJyaWRlIHN1bW1lcm5vdGUgbWV0aG9kc1xuXG4gICAgICAgIGNvbnN0IG9yaWdGbiA9ICQuc3VtbWVybm90ZS51aV90ZW1wbGF0ZSgpLmJ1dHRvbi5iaW5kKCQuc3VtbWVybm90ZSk7XG5cbiAgICAgICAgJC5zdW1tZXJub3RlLnVpX3RlbXBsYXRlLmJ1dHRvbiA9ICguLi5hcmdzKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHJldFZhbCA9IG9yaWdGbiguLi5hcmdzKTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdDYWxsYmFjayA9IHJldFZhbC5jYWxsYmFjaztcblxuICAgICAgICAgICAgcmV0VmFsLmNhbGxiYWNrID0gKCRub2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gYWRkIGJzMyBidG4gY2xhc3MgdG8gdGhlIGJ1dHRvbnNcbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcygnYnRuJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdDYWxsYmFjaygkbm9kZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJldFZhbDtcbiAgICAgICAgfTtcbiAgICAgICAgJC5zdW1tZXJub3RlLl9fb3ZlcmlkZGVuID0gdHJ1ZTtcbiAgICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Rpdlt3bVJpY2hUZXh0RWRpdG9yXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JpY2gtdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoUmljaFRleHRFZGl0b3JDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50KVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bVJpY2hUZXh0RWRpdG9yJ1xufSlcbmV4cG9ydCBjbGFzcyBSaWNoVGV4dEVkaXRvckNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICAkcmljaFRleHRFZGl0b3I7XG4gICAgJGhpZGRlbklucHV0RWxlO1xuXG4gICAgcHJveHlNb2RlbDtcbiAgICBfb3BlcmF0aW9uU3RhY2sgPSBbXTtcbiAgICBpc0VkaXRvckxvYWRlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHNob3dwcmV2aWV3OiBhbnk7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgRURJVE9SX0RFRkFVTFRfT1BUSU9OUyA9IHtcbiAgICAgICAgdG9vbGJhcjogW1xuICAgICAgICAgICAgLy8gW2dyb3VwTmFtZSwgW2xpc3Qgb2YgYnV0dG9uXV1cbiAgICAgICAgICAgIFsnbWlzYycsIFsndW5kbycsICdyZWRvJ11dLFxuICAgICAgICAgICAgWydzdHlsZScsIFsnc3R5bGUnXV0sXG4gICAgICAgICAgICBbJ2ZvbnRuYW1lJywgWydmb250bmFtZSddXSxcbiAgICAgICAgICAgIFsnZm9udHNpemUnLCBbJ2ZvbnRzaXplJ11dLFxuICAgICAgICAgICAgWydoZWlnaHQnLCBbJ2hlaWdodCddXSxcbiAgICAgICAgICAgIFsnc3R5bGUnLCBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdjbGVhciddXSxcbiAgICAgICAgICAgIFsnZm9udCcsIFsnc3RyaWtldGhyb3VnaCcsICdzdXBlcnNjcmlwdCcsICdzdWJzY3JpcHQnXV0sXG4gICAgICAgICAgICBbJ2NvbG9yJywgWydjb2xvciddXSxcbiAgICAgICAgICAgIFsnaW5zZXJ0JywgWyd0YWJsZScsICdwaWN0dXJlJywgJ2xpbmsnLCAndmlkZW8nLCAnaHInXV0sXG4gICAgICAgICAgICBbJ3BhcmEnLCBbJ3VsJywgJ29sJywgJ3BhcmFncmFwaCddXSxcbiAgICAgICAgICAgIFsnbWlzYycsIFsnY29kZXZpZXcnLCAnZnVsbHNjcmVlbicsICdoZWxwJ11dXG4gICAgICAgIF0sXG4gICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgICAgb25Jbml0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRvckxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX29wZXJhdGlvblN0YWNrLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRpb25TdGFjay5mb3JFYWNoKG9wZXJhdGlvblBhcmFtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEFycmF5LmZyb20ob3BlcmF0aW9uUGFyYW0ua2V5cygpKVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBvcGVyYXRpb25QYXJhbS5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbihrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRpb25TdGFjayA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNoYW5nZTogKGNvbnRlbnRzLCBlZGl0YWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJveHlNb2RlbCA9IHRoaXMuc2FuaXRpemVQaXBlLnRyYW5zZm9ybShjb250ZW50cywgU2VjdXJpdHlDb250ZXh0LkhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UoY29udGVudHMsIGdldENoYW5nZUV2dCgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmb250TmFtZXM6IFsnQXJpYWwnLCAnQXJpYWwgQmxhY2snLCAnQ29taWMgU2FucyBNUycsICdDb3VyaWVyIE5ldycsICdNZXJyaXdlYXRoZXInXSxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICd3cml0ZSBoZXJlLi4uJyxcbiAgICAgICAgbWluSGVpZ2h0OiAxMDAsXG4gICAgICAgIGRpc2FibGVSZXNpemVFZGl0b3I6IHRydWVcbiAgICB9O1xuXG4gICAgZ2V0IGh0bWxjb250ZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdjb2RlJyk7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdldCBkYXRhdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0bWxjb250ZW50O1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBzZXQgZGF0YXZhbHVlKG52KSB7XG4gICAgICAgIGlmIChudiAhPT0gdW5kZWZpbmVkICYmIG52ICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiRoaWRkZW5JbnB1dEVsZS52YWwobnYpO1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdyZXNldCcpO1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdjb2RlJywgbnYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgcHJpdmF0ZSBzYW5pdGl6ZVBpcGU6IFNhbml0aXplUGlwZSwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0lORk8sIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUiwgWydoZWlnaHQnXSk7XG4gICAgICAgIG92ZXJyaWRlU3VtbWVyTm90ZSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLiRyaWNoVGV4dEVkaXRvciA9ICQodGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyaWNoVGV4dEVkaXRvcl0nKSk7XG4gICAgICAgIHRoaXMuJGhpZGRlbklucHV0RWxlID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQubW9kZWwtaG9sZGVyJykpO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmluaXRFZGl0b3IoKTtcbiAgICAgICAgJCgnLm5vdGUtZWRpdGFibGUnKS5hdHRyKCdhcmlhLWxhYmVsJywgJ3RleHRib3gnKTtcbiAgICB9XG5cbiAgICBpbml0RWRpdG9yKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2JlZm9yZXJlbmRlcicsIHsnJGV2ZW50JyA6IHt9fSk7XG4gICAgICAgICAgICB0aGlzLiRyaWNoVGV4dEVkaXRvci5zdW1tZXJub3RlKHRoaXMuRURJVE9SX0RFRkFVTFRfT1BUSU9OUyk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdE9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVESVRPUl9ERUZBVUxUX09QVElPTlM7XG4gICAgfVxuXG4gICAgZ2V0TGliKCkge1xuICAgICAgICByZXR1cm4gJ3N1bW1lcm5vdGUnO1xuICAgIH1cblxuICAgIG92ZXJyaWRlRGVmYXVsdHMob3B0aW9ucykge1xuICAgICAgICBleHRlbmQodGhpcy5FRElUT1JfREVGQVVMVF9PUFRJT05TLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAncGxhY2Vob2xkZXInKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmZvcm1FZGl0b3JPcGVyYXRpb24oJ3BsYWNlaG9sZGVyJywgbnYpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Rpc2FibGVkJyB8fCBrZXkgPT09ICdyZWFkb25seScpIHtcbiAgICAgICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbihudiA/ICdkaXNhYmxlJyA6ICdlbmFibGUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdHlsZUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICBpZiAoa2V5ID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdoZWlnaHQnLCBudik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwZXJmb3JtRWRpdG9yT3BlcmF0aW9uKGtleSwgdmFsdWU/KSB7XG4gICAgICAgIGlmICh0aGlzLmlzRWRpdG9yTG9hZGVkKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHNldENTUyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm5vdGUtZWRpdGFibGUnKSwga2V5LCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BsYWNlaG9sZGVyJykge1xuICAgICAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBzZXRIdG1sKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYubm90ZS1wbGFjZWhvbGRlcicpLCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGlmIGVkaXRvciBjb250ZW50IGlzIGVtcHR5IHRoZW4gc3VtbWVybm90ZSgnY29kZScpIGlzIHJldHVybmluZyBlbXB0eSBwIHRhZ3MgbGlrZSA8cD48L2JyPjwvcD4uIFNvIGNoZWNraW5nIGZvciBlbXB0eSBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZC5cbiAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBrZXkgPT09ICdjb2RlJyAmJiB0aGlzLiRyaWNoVGV4dEVkaXRvci5zdW1tZXJub3RlKCdpc0VtcHR5JykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuJHJpY2hUZXh0RWRpdG9yLnN1bW1lcm5vdGUoJ2NvZGUnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQgPT09ICcnID8gY29udGVudCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuJHJpY2hUZXh0RWRpdG9yLnN1bW1lcm5vdGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBvcDogYW55ID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgb3Auc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fb3BlcmF0aW9uU3RhY2sucHVzaChvcCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDdXJyZW50UG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlcmZvcm1FZGl0b3JPcGVyYXRpb24oJ2NyZWF0ZVJhbmdlJyk7XG4gICAgfVxuXG4gICAgdW5kbygpIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCd1bmRvJyk7XG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbignZm9jdXMnKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdkZXN0cm95Jyk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiByaWNoVGV4dEVkaXRvcj48L2Rpdj5cbkBpZiAoc2hvd3ByZXZpZXcpIHtcbiAgPGRpdiBbaW5uZXJIVE1MXT1cInByb3h5TW9kZWxcIiBjbGFzcz1cInRhLXByZXZpZXdcIj48L2Rpdj5cbn1cbjxpbnB1dCBjbGFzcz1cIm1vZGVsLWhvbGRlclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGhpZGRlbj5cbiJdfQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { SecurityContext, Component, Inject, Optional, NgModule } from '@angular/core';
|
|
3
|
-
import * as i2 from '@angular/common';
|
|
4
3
|
import { CommonModule } from '@angular/common';
|
|
5
4
|
import * as i1 from '@wm/components/base';
|
|
6
5
|
import { PROP_STRING, PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, register, registerFormWidget, styler, APPLY_STYLES_TYPE, provideAs, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
|
|
@@ -29,8 +28,8 @@ const registerProps = () => {
|
|
|
29
28
|
};
|
|
30
29
|
|
|
31
30
|
const _c0 = ["wmRichTextEditor", ""];
|
|
32
|
-
function
|
|
33
|
-
i0.ɵɵelement(0, "div",
|
|
31
|
+
function RichTextEditorComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelement(0, "div", 1);
|
|
34
33
|
} if (rf & 2) {
|
|
35
34
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
36
35
|
i0.ɵɵproperty("innerHTML", ctx_r0.proxyModel, i0.ɵɵsanitizeHtml);
|
|
@@ -208,23 +207,23 @@ class RichTextEditorComponent extends BaseFormCustomComponent {
|
|
|
208
207
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RichTextEditorComponent, selectors: [["div", "wmRichTextEditor", ""]], exportAs: ["wmRichTextEditor"], features: [i0.ɵɵProvidersFeature([
|
|
209
208
|
provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),
|
|
210
209
|
provideAsWidgetRef(RichTextEditorComponent)
|
|
211
|
-
]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], [
|
|
210
|
+
]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], [1, "ta-preview", 3, "innerHTML"], ["hidden", "", 1, "model-holder", 3, "disabled"]], template: function RichTextEditorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
212
211
|
i0.ɵɵelement(0, "div", 0);
|
|
213
|
-
i0.ɵɵtemplate(1,
|
|
212
|
+
i0.ɵɵtemplate(1, RichTextEditorComponent_Conditional_1_Template, 1, 1, "div", 1);
|
|
214
213
|
i0.ɵɵelement(2, "input", 2);
|
|
215
214
|
} if (rf & 2) {
|
|
216
215
|
i0.ɵɵadvance();
|
|
217
|
-
i0.ɵɵ
|
|
216
|
+
i0.ɵɵconditional(ctx.showpreview ? 1 : -1);
|
|
218
217
|
i0.ɵɵadvance();
|
|
219
218
|
i0.ɵɵproperty("disabled", ctx.disabled);
|
|
220
|
-
} },
|
|
219
|
+
} }, encapsulation: 2 }); }
|
|
221
220
|
}
|
|
222
221
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RichTextEditorComponent, [{
|
|
223
222
|
type: Component,
|
|
224
223
|
args: [{ selector: 'div[wmRichTextEditor]', providers: [
|
|
225
224
|
provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),
|
|
226
225
|
provideAsWidgetRef(RichTextEditorComponent)
|
|
227
|
-
], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n<div [innerHTML]=\"proxyModel\" class=\"ta-preview\"
|
|
226
|
+
], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n@if (showpreview) {\n <div [innerHTML]=\"proxyModel\" class=\"ta-preview\"></div>\n}\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n" }]
|
|
228
227
|
}], () => [{ type: i0.Injector }, { type: i1.SanitizePipe }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
229
228
|
type: Inject,
|
|
230
229
|
args: ['EXPLICIT_CONTEXT']
|