@wavemaker/app-ng-runtime 11.14.2-rc.6311 → 11.15.0-1.246
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 +13 -2
- package/build-task/esm2022/input/default/checkbox/checkbox.build.mjs +9 -2
- package/build-task/esm2022/input/default/radioset/radioset.build.mjs +6 -2
- package/build-task/fesm2022/index.mjs +13 -2
- package/build-task/fesm2022/index.mjs.map +1 -1
- package/components/base/bundles/index.umd.js +271 -128
- package/components/base/esm2022/public_api.mjs +2 -2
- package/components/base/esm2022/utils/autolayout-utils.mjs +252 -0
- package/components/base/esm2022/utils/live-utils.mjs +10 -7
- package/components/base/esm2022/utils/widget-utils.mjs +8 -1
- package/components/base/esm2022/widgets/common/base/base.component.mjs +7 -8
- package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +4 -1
- package/components/base/esm2022/widgets/common/container/container.directive.mjs +28 -150
- package/components/base/esm2022/widgets/common/container/container.props.mjs +6 -2
- package/components/base/fesm2022/index.mjs +273 -129
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/public_api.d.ts +1 -1
- package/components/base/utils/autolayout-utils.d.ts +29 -0
- package/components/base/utils/widget-utils.d.ts +1 -0
- package/components/base/widgets/common/container/container.directive.d.ts +7 -9
- package/components/basic/label/bundles/index.umd.js +4 -0
- package/components/basic/label/esm2022/label.directive.mjs +5 -1
- package/components/basic/label/fesm2022/index.mjs +4 -0
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/bundles/index.umd.js +13 -11
- package/components/basic/search/esm2022/search.component.mjs +14 -12
- package/components/basic/search/fesm2022/index.mjs +13 -11
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/chart/bundles/index.umd.js +2 -2
- package/components/chart/esm2022/chart.utils.mjs +3 -3
- package/components/chart/fesm2022/index.mjs +2 -2
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -0
- package/components/containers/accordion/accordion.directive.d.ts +4 -0
- package/components/containers/accordion/bundles/index.umd.js +34 -0
- package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +6 -2
- package/components/containers/accordion/esm2022/accordion.directive.mjs +32 -2
- package/components/containers/accordion/fesm2022/index.mjs +36 -2
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/bundles/index.umd.js +34 -0
- package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +6 -2
- package/components/containers/tabs/esm2022/tabs.component.mjs +33 -4
- package/components/containers/tabs/fesm2022/index.mjs +36 -2
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -0
- package/components/containers/tabs/tabs.component.d.ts +5 -1
- package/components/containers/wizard/bundles/index.umd.js +46 -2
- package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +8 -2
- package/components/containers/wizard/esm2022/wizard.component.mjs +42 -4
- package/components/containers/wizard/fesm2022/index.mjs +48 -4
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +4 -0
- package/components/containers/wizard/wizard.component.d.ts +1 -0
- package/components/data/form/bundles/index.umd.js +28 -1
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +4 -1
- package/components/data/form/esm2022/form.component.mjs +24 -2
- package/components/data/form/esm2022/form.props.mjs +3 -2
- package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +2 -1
- package/components/data/form/fesm2022/index.mjs +29 -2
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form.component.d.ts +3 -0
- package/components/data/list/bundles/index.umd.js +0 -9
- package/components/data/list/esm2022/list-item.directive.mjs +1 -10
- package/components/data/list/fesm2022/index.mjs +0 -9
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/bundles/index.umd.js +6 -2
- package/components/data/pagination/esm2022/pagination.component.mjs +7 -3
- package/components/data/pagination/fesm2022/index.mjs +6 -2
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/table/bundles/index.umd.js +21 -4
- package/components/data/table/esm2022/table.component.mjs +22 -5
- package/components/data/table/fesm2022/index.mjs +21 -4
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +6 -2
- package/components/dialogs/alert-dialog/bundles/index.umd.js +18 -8
- package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +17 -7
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +15 -5
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +12 -3
- package/components/input/checkbox/checkbox.component.d.ts +2 -0
- package/components/input/checkbox/esm2022/checkbox.component.mjs +9 -3
- package/components/input/checkbox/esm2022/checkbox.props.mjs +5 -2
- package/components/input/checkbox/fesm2022/index.mjs +12 -3
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/bundles/index.umd.js +12 -1
- package/components/input/checkboxset/checkboxset.component.d.ts +1 -0
- package/components/input/checkboxset/esm2022/checkboxset.component.mjs +11 -1
- package/components/input/checkboxset/esm2022/checkboxset.props.mjs +3 -2
- package/components/input/checkboxset/fesm2022/index.mjs +12 -1
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/base-date-time/base-date-time.component.d.ts +0 -1
- package/components/input/epoch/base-date-time/bundles/index.umd.js +29 -27
- package/components/input/epoch/base-date-time/esm2022/base-date-time.component.mjs +30 -28
- package/components/input/epoch/base-date-time/fesm2022/index.mjs +29 -27
- package/components/input/epoch/base-date-time/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/bundles/index.umd.js +4 -3
- package/components/input/epoch/date/esm2022/date.component.mjs +5 -4
- package/components/input/epoch/date/fesm2022/index.mjs +4 -3
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date-time/bundles/index.umd.js +5 -4
- package/components/input/epoch/date-time/esm2022/date-time.component.mjs +7 -6
- package/components/input/epoch/date-time/fesm2022/index.mjs +6 -5
- package/components/input/epoch/date-time/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +1 -1
- package/components/input/file-upload/esm2022/file-upload.props.mjs +2 -2
- package/components/input/file-upload/fesm2022/index.mjs +1 -1
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/bundles/index.umd.js +13 -1
- package/components/input/radioset/esm2022/radioset.component.mjs +11 -1
- package/components/input/radioset/esm2022/radioset.props.mjs +4 -2
- package/components/input/radioset/fesm2022/index.mjs +13 -1
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/radioset.component.d.ts +1 -0
- package/components/input/slider/bundles/index.umd.js +86 -16
- package/components/input/slider/esm2022/slider.component.mjs +76 -9
- package/components/input/slider/esm2022/slider.props.mjs +5 -1
- package/components/input/slider/fesm2022/index.mjs +79 -8
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +12 -3
- package/components/input/text/bundles/index.umd.js +24 -3
- package/components/input/text/esm2022/input-text/input-text.component.mjs +6 -3
- package/components/input/text/esm2022/input-text/input-text.props.mjs +5 -2
- package/components/input/text/esm2022/number-locale/number-locale.mjs +16 -1
- package/components/input/text/fesm2022/index.mjs +24 -3
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/input-text/input-text.component.d.ts +4 -0
- package/components/input/text/number-locale/number-locale.d.ts +12 -0
- package/components/navigation/breadcrumb/bundles/index.umd.js +2 -2
- package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +3 -3
- package/components/navigation/breadcrumb/fesm2022/index.mjs +2 -2
- package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/bundles/index.umd.js +12 -0
- package/components/navigation/popover/esm2022/popover.component.mjs +13 -1
- package/components/navigation/popover/fesm2022/index.mjs +12 -0
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/popover.component.d.ts +2 -0
- package/components/page/default/bundles/index.umd.js +0 -4
- package/components/page/default/esm2022/router-outlet.directive.mjs +1 -5
- package/components/page/default/fesm2022/index.mjs +0 -4
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/header/bundles/index.umd.js +4 -3
- package/components/page/header/esm2022/header.component.mjs +5 -4
- package/components/page/header/fesm2022/index.mjs +4 -3
- package/components/page/header/fesm2022/index.mjs.map +1 -1
- package/components/page/header/header.component.d.ts +2 -1
- package/core/bundles/index.umd.js +90 -6
- package/core/enums/enums.d.ts +1 -0
- package/core/esm2022/enums/enums.mjs +2 -1
- package/core/esm2022/utils/build-utils.mjs +5 -1
- package/core/esm2022/utils/utils.mjs +5 -2
- package/core/esm2022/utils/watcher.mjs +83 -4
- package/core/fesm2022/index.mjs +91 -4
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/utils/watcher.d.ts +2 -0
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/esm2022/oAuth.service.mjs +1 -1
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/oAuth.service.d.ts +1 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +33 -31
- package/runtime/base/components/base-prefab.component.d.ts +6 -4
- package/runtime/base/esm2022/components/app-component/app.component.mjs +1 -1
- package/runtime/base/esm2022/components/base-page.component.mjs +2 -5
- package/runtime/base/esm2022/components/base-partial.component.mjs +2 -2
- package/runtime/base/esm2022/components/base-prefab.component.mjs +20 -12
- package/runtime/base/esm2022/components/base-spa-page.component.mjs +1 -4
- package/runtime/base/esm2022/services/http-interceptor.services.mjs +14 -13
- package/runtime/base/fesm2022/index.mjs +34 -31
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/runtime-base.module.d.ts +2 -1
- package/runtime/dynamic/app/app.config.d.ts +1 -1
- package/runtime/dynamic/bundles/index.umd.js +1 -1
- package/runtime/dynamic/esm2022/app/app.config.mjs +7 -7
- package/runtime/dynamic/fesm2022/index.mjs +2 -2
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +17 -15
|
@@ -3,19 +3,30 @@ import { FormsModule, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';
|
|
|
3
3
|
import { Component, Inject, Injector, Optional, ViewChild } from '@angular/core';
|
|
4
4
|
import { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';
|
|
5
5
|
import { registerProps } from './slider.props';
|
|
6
|
-
import { isDefined } from "@wm/core";
|
|
6
|
+
import { App, isDefined, switchClass } from "@wm/core";
|
|
7
|
+
import { CommonModule } from "@angular/common";
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@
|
|
9
|
+
import * as i1 from "@wm/core";
|
|
10
|
+
import * as i2 from "@angular/forms";
|
|
11
|
+
import * as i3 from "@angular/common";
|
|
9
12
|
const DEFAULT_CLS = 'app-slider slider';
|
|
10
13
|
const WIDGET_CONFIG = {
|
|
11
14
|
widgetType: 'wm-slider',
|
|
12
15
|
hostClass: DEFAULT_CLS
|
|
13
16
|
};
|
|
17
|
+
const RANGE_LABEL_POSITION = {
|
|
18
|
+
top: 'range-label-top',
|
|
19
|
+
side: 'range-label-side',
|
|
20
|
+
bottom: 'range-label-bottom',
|
|
21
|
+
};
|
|
14
22
|
export class SliderComponent extends BaseFormCustomComponent {
|
|
15
23
|
static { this.initializeProps = registerProps(); }
|
|
16
|
-
constructor(inj, explicitContext) {
|
|
24
|
+
constructor(inj, explicitContext, app) {
|
|
17
25
|
super(inj, WIDGET_CONFIG, explicitContext);
|
|
26
|
+
this.app = app;
|
|
27
|
+
this.isPrism = false;
|
|
18
28
|
styler(this.nativeElement, this);
|
|
29
|
+
this.isPrism = this.app.isPrism;
|
|
19
30
|
}
|
|
20
31
|
// change and blur events are added from the template
|
|
21
32
|
handleEvent(node, eventName, callback, locals) {
|
|
@@ -24,8 +35,17 @@ export class SliderComponent extends BaseFormCustomComponent {
|
|
|
24
35
|
}
|
|
25
36
|
}
|
|
26
37
|
handleChange(newVal) {
|
|
38
|
+
this.updateSliderValue();
|
|
27
39
|
this.invokeOnChange(this.datavalue, { type: 'change' }, this.ngModel.valid);
|
|
28
40
|
}
|
|
41
|
+
updateSliderValue() {
|
|
42
|
+
const sliderValue = 100 - ((((Number(this.datavalue) || 0) - (this.minvalue || 0)) / ((this.maxvalue || 100) - (this.minvalue || 0))) * 100);
|
|
43
|
+
const slider = this.nativeElement.querySelector('.slider-control');
|
|
44
|
+
if (slider) {
|
|
45
|
+
const safePercent = Math.min(100, Math.max(0, sliderValue));
|
|
46
|
+
slider.style.setProperty('--end', `${safePercent}%`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
29
49
|
onPropertyChange(key, nv, ov) {
|
|
30
50
|
if (key === 'tabindex') {
|
|
31
51
|
return;
|
|
@@ -35,6 +55,13 @@ export class SliderComponent extends BaseFormCustomComponent {
|
|
|
35
55
|
this.renderMarkers();
|
|
36
56
|
}
|
|
37
57
|
}
|
|
58
|
+
else if (key === 'rangelabelposition') {
|
|
59
|
+
switchClass(this.nativeElement, RANGE_LABEL_POSITION[nv], RANGE_LABEL_POSITION[ov]);
|
|
60
|
+
}
|
|
61
|
+
else if (key === 'datavalue') {
|
|
62
|
+
this.datavalue = (nv === "" || nv === null) ? (this.datavalue ?? 50) : nv;
|
|
63
|
+
this.updateSliderValue();
|
|
64
|
+
}
|
|
38
65
|
super.onPropertyChange(key, nv, ov);
|
|
39
66
|
}
|
|
40
67
|
renderMarkers() {
|
|
@@ -61,6 +88,46 @@ export class SliderComponent extends BaseFormCustomComponent {
|
|
|
61
88
|
if (this.showmarkers) {
|
|
62
89
|
setTimeout(() => { this.renderMarkers(); }, 40);
|
|
63
90
|
}
|
|
91
|
+
if (this.datavalue) {
|
|
92
|
+
setTimeout(() => { this.updateSliderValue(); });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
decrementButtonClick(event) {
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
event.stopPropagation();
|
|
98
|
+
if (this.disabled) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const step = Number(this.step) || 1;
|
|
102
|
+
const min = Number(this.minvalue) || 0;
|
|
103
|
+
let value = Number(this.datavalue ?? 50);
|
|
104
|
+
value = value - step;
|
|
105
|
+
if (value <= min) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (!isNaN(min)) {
|
|
109
|
+
value = Math.max(value, min);
|
|
110
|
+
}
|
|
111
|
+
this.datavalue = value;
|
|
112
|
+
this.handleChange();
|
|
113
|
+
}
|
|
114
|
+
incrementButtonClick(event) {
|
|
115
|
+
event.preventDefault();
|
|
116
|
+
event.stopPropagation();
|
|
117
|
+
if (this.disabled) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const step = Number(this.step) || 1;
|
|
121
|
+
const max = Number(this.maxvalue) || 100;
|
|
122
|
+
let value = Number(this.datavalue ?? 50);
|
|
123
|
+
value = value + step;
|
|
124
|
+
if (value >= max)
|
|
125
|
+
return;
|
|
126
|
+
if (!isNaN(max)) {
|
|
127
|
+
value = Math.min(value, max);
|
|
128
|
+
}
|
|
129
|
+
this.datavalue = value;
|
|
130
|
+
this.handleChange();
|
|
64
131
|
}
|
|
65
132
|
ngOnDestroy() {
|
|
66
133
|
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
@@ -72,25 +139,25 @@ export class SliderComponent extends BaseFormCustomComponent {
|
|
|
72
139
|
// Call parent ngOnDestroy
|
|
73
140
|
super.ngOnDestroy();
|
|
74
141
|
}
|
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SliderComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
142
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SliderComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: i1.App }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
143
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SliderComponent, isStandalone: true, selector: "[wmSlider]", providers: [
|
|
77
144
|
provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),
|
|
78
145
|
provideAsWidgetRef(SliderComponent)
|
|
79
|
-
], viewQueries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n", dependencies: [{ kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type:
|
|
146
|
+
], viewQueries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (isPrism) {\n<div class=\"slider-container\">\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"decrementButton\" (click)=\"decrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"starticon\"></i></button>\n }\n <div class=\"slider-control\">\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n }\n <input class=\"range-input\" type=\"range\" aria-orientation=\"horizontal\" focus-target [title]=\"datavalue\"\n [attr.min]=\"minvalue\" [attr.max]=\"maxvalue\" [attr.step]=\"step\" [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{ standalone: true }\" [disabled]=\"disabled\" [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\" (blur)=\"invokeOnTouched($event)\" (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\" [tabindex]=\"tabindex\" />\n <p class=\"active-slider\"></p>\n </div>\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"incrementButton\" (click)=\"incrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"endicon\"></i>\n </button>\n }\n</div>\n\n} @else {\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n}\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n", dependencies: [{ kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
80
147
|
}
|
|
81
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SliderComponent, decorators: [{
|
|
82
149
|
type: Component,
|
|
83
|
-
args: [{ standalone: true, imports: [TextContentDirective, FormsModule], selector: '[wmSlider]', providers: [
|
|
150
|
+
args: [{ standalone: true, imports: [TextContentDirective, FormsModule, CommonModule], selector: '[wmSlider]', providers: [
|
|
84
151
|
provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),
|
|
85
152
|
provideAsWidgetRef(SliderComponent)
|
|
86
|
-
], template: "@if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n" }]
|
|
153
|
+
], template: "@if (isPrism) {\n<div class=\"slider-container\">\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"decrementButton\" (click)=\"decrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"starticon\"></i></button>\n }\n <div class=\"slider-control\">\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n }\n <input class=\"range-input\" type=\"range\" aria-orientation=\"horizontal\" focus-target [title]=\"datavalue\"\n [attr.min]=\"minvalue\" [attr.max]=\"maxvalue\" [attr.step]=\"step\" [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{ standalone: true }\" [disabled]=\"disabled\" [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\" (blur)=\"invokeOnTouched($event)\" (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\" [tabindex]=\"tabindex\" />\n <p class=\"active-slider\"></p>\n </div>\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"incrementButton\" (click)=\"incrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"endicon\"></i>\n </button>\n }\n</div>\n\n} @else {\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n}\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n" }]
|
|
87
154
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: undefined, decorators: [{
|
|
88
155
|
type: Inject,
|
|
89
156
|
args: ['EXPLICIT_CONTEXT']
|
|
90
157
|
}, {
|
|
91
158
|
type: Optional
|
|
92
|
-
}] }], propDecorators: { ngModel: [{
|
|
159
|
+
}] }, { type: i1.App }], propDecorators: { ngModel: [{
|
|
93
160
|
type: ViewChild,
|
|
94
161
|
args: [NgModel]
|
|
95
162
|
}] } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9zbGlkZXIvc3JjL3NsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvc2xpZGVyL3NyYy9zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILG1CQUFtQixFQUVuQixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixvQkFBb0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBYSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDOzs7QUFHbkMsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLENBQUM7QUFDeEMsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFNBQVMsRUFBRSxXQUFXO0NBQ3pCLENBQUM7QUFZRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSx1QkFBdUI7YUFDakQsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFrQnpDLFlBQVksR0FBYSxFQUEwQyxlQUFvQjtRQUNuRixLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUMzQyxNQUFNLENB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LFNBQVMsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO1lBQ25ELGtCQUFrQixDQUFDLGVBQWUsQ0FBQztTQUN0QyxtRUFrQlUsT0FBTyx1RUNoRHRCLDJ4Q0FxQ0EsNENEYmMsb0JBQW9CLGtGQUFFLFdBQVc7OzRGQVFsQyxlQUFlO2tCQVYzQixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxZQUNsQyxZQUFZLGFBRVg7d0JBQ1AsU0FBUyxrQkFBa0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO3dCQUNuRCxrQkFBa0IsaUJBQWlCO3FCQUN0Qzs7MEJBcUIyQixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTt5Q0FINUMsT0FBTztzQkFBMUIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBjb252ZXJ0RGF0YVRvT2JqZWN0LFxuICAgIElXaWRnZXRDb25maWcsXG4gICAgcHJvdmlkZUFzLFxuICAgIHByb3ZpZGVBc1dpZGdldFJlZixcbiAgICBzdHlsZXIsXG4gICAgVGV4dENvbnRlbnREaXJlY3RpdmVcbn0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2VcIjtcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95LCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZUZvcm1DdXN0b21Db21wb25lbnR9IGZyb20gJ0B3bS9jb21wb25lbnRzL2lucHV0L2Jhc2UtZm9ybS1jdXN0b20nO1xuXG5pbXBvcnQge3JlZ2lzdGVyUHJvcHN9IGZyb20gJy4vc2xpZGVyLnByb3BzJztcbmltcG9ydCB7aXNEZWZpbmVkfSBmcm9tIFwiQHdtL2NvcmVcIjtcblxuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtc2xpZGVyIHNsaWRlcic7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1zbGlkZXInLFxuICAgIGhvc3RDbGFzczogREVGQVVMVF9DTFNcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RleHRDb250ZW50RGlyZWN0aXZlLCBGb3Jtc01vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdbd21TbGlkZXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKFNsaWRlckNvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoU2xpZGVyQ29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2xpZGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1DdXN0b21Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgbWludmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgbWF4dmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIHN0ZXA6IG51bWJlcjtcbiAgICBwdWJsaWMgc2hvcnRjdXRrZXk6IHN0cmluZztcbiAgICBwdWJsaWMgdGFiaW5kZXg6IGFueTtcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuICAgIHB1YmxpYyBhcmlhbGFiZWw6IHN0cmluZztcbiAgICBwdWJsaWMgbWFya2VybGFiZWx0ZXh0OiBzdHJpbmdcbiAgICBwdWJsaWMgc2hvd21hcmtlcnM6IGJvb2xlYW47XG5cbiAgICBAVmlld0NoaWxkKE5nTW9kZWwpIG5nTW9kZWw6IE5nTW9kZWw7XG4gICAgcHVibGljIG1hcmtlckl0ZW1zOiBhbnlbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgIH1cblxuICAgIC8vIGNoYW5nZSBhbmQgYmx1ciBldmVudHMgYXJlIGFkZGVkIGZyb20gdGhlIHRlbXBsYXRlXG4gICAgcHJvdGVjdGVkIGhhbmRsZUV2ZW50KG5vZGU6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSkge1xuICAgICAgICBpZiAoZXZlbnROYW1lICE9PSAnY2hhbmdlJyAmJiBldmVudE5hbWUgIT09ICdibHVyJykge1xuICAgICAgICAgICAgc3VwZXIuaGFuZGxlRXZlbnQobm9kZSwgZXZlbnROYW1lLCBjYWxsYmFjaywgbG9jYWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDaGFuZ2UobmV3VmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5kYXRhdmFsdWUsIHt0eXBlOiAnY2hhbmdlJ30sIHRoaXMubmdNb2RlbC52YWxpZCk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYoa2V5ID09PSAnc2hvd21hcmtlcnMnfHxrZXkgPT09ICdtYXJrZXJsYWJlbHRleHQnIHx8IGtleSA9PT0gJ21pbnZhbHVlJ3x8a2V5ID09PSAnbWF4dmFsdWUnfHxrZXkgPT09ICdzdGVwJykge1xuICAgICAgICAgICAgaWYodGhpcy5zaG93bWFya2Vycykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyTWFya2VycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgIH1cbiAgICBwcml2YXRlIHJlbmRlck1hcmtlcnMoKSB7XG4gICAgICAgIGNvbnN0IHNsaWRlclRyYWNrID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5yYW5nZS1pbnB1dCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCB0cmFja1dpZHRoID0gc2xpZGVyVHJhY2s/Lm9mZnNldFdpZHRoLTl8fCAwO1xuICAgICAgICBsZXQgdGlja0NvdW50PTA7XG4gICAgICAgIGlmKGlzRGVmaW5lZCh0aGlzLm1pbnZhbHVlKSAmJiBpc0RlZmluZWQodGhpcy5tYXh2YWx1ZSkpe1xuICAgICAgICAgICAgdGlja0NvdW50ID0gdGhpcy5zdGVwID4gMCA/IE1hdGguZmxvb3IoKHRoaXMubWF4dmFsdWUgLSB0aGlzLm1pbnZhbHVlKSAvIHRoaXMuc3RlcCkgKyAxIDogMDtcbiAgICAgICAgfSBlbHNle1xuICAgICAgICAgICAgdGlja0NvdW50ID0gdGhpcy5zdGVwID4gMCA/IE1hdGguZmxvb3IoMTAwIC8gdGhpcy5zdGVwKSArIDEgOiAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhYmVscyA9IGNvbnZlcnREYXRhVG9PYmplY3QodGhpcy5tYXJrZXJsYWJlbHRleHQpO1xuICAgICAgICB0aGlzLm1hcmtlckl0ZW1zID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGlja0NvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPSAoKHRyYWNrV2lkdGggLyAodGlja0NvdW50IC0gMSkpICogaSk7XG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IGxhYmVscz8uW2ldPy5kYXRhVmFsdWUgPz8gKEFycmF5LmlzQXJyYXkobGFiZWxzKSA/ICh0eXBlb2YgbGFiZWxzW2ldID09PSAnb2JqZWN0JyAmJiBsYWJlbHNbaV0/LnRpdGxlID8gbGFiZWxzW2ldLnRpdGxlIDogbGFiZWxzW2ldKSA6IGAke2l9YCk7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IEFycmF5LmlzQXJyYXkobGFiZWxzKSAmJiB0eXBlb2YgbGFiZWxzW2ldID09PSAnb2JqZWN0JyAmJiBsYWJlbHNbaV0/LnBvc2l0aW9uID8gbGFiZWxzW2ldLnBvc2l0aW9uIDogJ3VwJztcbiAgICAgICAgICAgIHRoaXMubWFya2VySXRlbXMucHVzaCh7IGxhYmVsLCBwb3NpdGlvbiwgbGVmdCB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmKHRoaXMuc2hvd21hcmtlcnMpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMucmVuZGVyTWFya2VycygpO30sIDQwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIFZpZXdDaGlsZCByZWZlcmVuY2VcbiAgICAgICAgdGhpcy5uZ01vZGVsID0gbnVsbDtcblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIG1hcmtlciBpdGVtcyBhcnJheVxuICAgICAgICBpZiAodGhpcy5tYXJrZXJJdGVtcykge1xuICAgICAgICAgICAgdGhpcy5tYXJrZXJJdGVtcyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2FsbCBwYXJlbnQgbmdPbkRlc3Ryb3lcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCJAaWYoIXNob3dtYXJrZXJzKXtcbiAgPHNwYW4gW3RleHRDb250ZW50XT1cIm1pbnZhbHVlXCIgY2xhc3M9XCJhcHAtc2xpZGVyLXZhbHVlIHB1bGwtbGVmdFwiPjwvc3Bhbj5cbiAgPHNwYW4gW3RleHRDb250ZW50XT1cIm1heHZhbHVlXCIgY2xhc3M9XCJhcHAtc2xpZGVyLXZhbHVlIHB1bGwtcmlnaHRcIj48L3NwYW4+XG59XG48aW5wdXQgY2xhc3M9XCJyYW5nZS1pbnB1dFwiIGFyaWEtb3JpZW50YXRpb249XCJob3Jpem9udGFsXCJcbiAgZm9jdXMtdGFyZ2V0XG4gIHR5cGU9XCJyYW5nZVwiIFt0aXRsZV09XCJkYXRhdmFsdWVcIlxuICBbYXR0ci5taW5dPVwibWludmFsdWVcIlxuICBbYXR0ci5tYXhdPVwibWF4dmFsdWVcIlxuICBbYXR0ci5zdGVwXT1cInN0ZXBcIlxuICBbKG5nTW9kZWwpXT1cImRhdGF2YWx1ZVwiXG4gIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbYXR0ci5hY2Nlc3NrZXldPVwic2hvcnRjdXRrZXlcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFsYWJlbFwiXG4gIChibHVyKT1cImludm9rZU9uVG91Y2hlZCgkZXZlbnQpXCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIi8+XG5AaWYgKHJlYWRvbmx5IHx8IGRpc2FibGVkKSB7XG4gIDxkaXYgYXJpYS1yZWFkb25seT1cInRydWVcIiBjbGFzcz1cInJlYWRvbmx5LXdyYXBwZXJcIj48L2Rpdj5cbn1cbkBpZihzaG93bWFya2Vycyl7XG4gICAgPGRpdiBjbGFzcz1cIm1hcmtlci1jb250YWluZXJcIj5cbkBmb3IgKG1hcmtlciBvZiBtYXJrZXJJdGVtczsgdHJhY2sgbWFya2VyKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItd3JhcHBlclwiXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwieyBsZWZ0OiBtYXJrZXIubGVmdCArICdweCcgfVwiXG4gICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwibWFya2VyLmxhYmVsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2VyLWxhYmVsXCIgW25nQ2xhc3NdPVwibWFya2VyLnBvc2l0aW9uXCIgW2F0dHIudGl0bGVdPVwibWFya2VyLmxhYmVsXCI+XG4gICAgICAgICAgICAgICAge3sgbWFya2VyLmxhYmVsIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItZG90XCIgW2F0dHIudGl0bGVdPVwibWFya2VyLmxhYmVsXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG59XG4iXX0=
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9zbGlkZXIvc3JjL3NsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvc2xpZGVyL3NyYy9zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILG1CQUFtQixFQUVuQixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixvQkFBb0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBYSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUcvQyxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztBQUN4QyxNQUFNLGFBQWEsR0FBa0I7SUFDakMsVUFBVSxFQUFFLFdBQVc7SUFDdkIsU0FBUyxFQUFFLFdBQVc7Q0FDekIsQ0FBQztBQUNGLE1BQU0sb0JBQW9CLEdBQTRCO0lBQ3BELEdBQUcsRUFBRSxpQkFBaUI7SUFDdEIsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixNQUFNLEVBQUUsb0JBQW9CO0NBQzdCLENB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RG5DYyxvQkFBb0Isa0ZBQUUsV0FBVyw0d0JBQUUsWUFBWTs7NEZBUWhELGVBQWU7a0JBVjNCLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxZQUNoRCxZQUFZLGFBRVg7d0JBQ1AsU0FBUyxrQkFBa0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO3dCQUNuRCxrQkFBa0IsaUJBQWlCO3FCQUN0Qzs7MEJBeUIyQixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTsyREFINUMsT0FBTztzQkFBMUIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBjb252ZXJ0RGF0YVRvT2JqZWN0LFxuICAgIElXaWRnZXRDb25maWcsXG4gICAgcHJvdmlkZUFzLFxuICAgIHByb3ZpZGVBc1dpZGdldFJlZixcbiAgICBzdHlsZXIsXG4gICAgVGV4dENvbnRlbnREaXJlY3RpdmVcbn0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2VcIjtcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95LCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZUZvcm1DdXN0b21Db21wb25lbnR9IGZyb20gJ0B3bS9jb21wb25lbnRzL2lucHV0L2Jhc2UtZm9ybS1jdXN0b20nO1xuXG5pbXBvcnQge3JlZ2lzdGVyUHJvcHN9IGZyb20gJy4vc2xpZGVyLnByb3BzJztcbmltcG9ydCB7QXBwLCBpc0RlZmluZWQsIHN3aXRjaENsYXNzfSBmcm9tIFwiQHdtL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtc2xpZGVyIHNsaWRlcic7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1zbGlkZXInLFxuICAgIGhvc3RDbGFzczogREVGQVVMVF9DTFNcbn07XG5jb25zdCBSQU5HRV9MQUJFTF9QT1NJVElPTjoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gIHRvcDogJ3JhbmdlLWxhYmVsLXRvcCcsXG4gIHNpZGU6ICdyYW5nZS1sYWJlbC1zaWRlJyxcbiAgYm90dG9tOiAncmFuZ2UtbGFiZWwtYm90dG9tJyxcbn07XG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZXh0Q29udGVudERpcmVjdGl2ZSwgRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdbd21TbGlkZXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKFNsaWRlckNvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoU2xpZGVyQ29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2xpZGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1DdXN0b21Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgbWludmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgbWF4dmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIHN0ZXA6IG51bWJlcjtcbiAgICBwdWJsaWMgc2hvcnRjdXRrZXk6IHN0cmluZztcbiAgICBwdWJsaWMgdGFiaW5kZXg6IGFueTtcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuICAgIHB1YmxpYyBhcmlhbGFiZWw6IHN0cmluZztcbiAgICBwdWJsaWMgbWFya2VybGFiZWx0ZXh0OiBzdHJpbmdcbiAgICBwdWJsaWMgc2hvd21hcmtlcnM6IGJvb2xlYW47XG4gICAgcHVibGljIHNob3dpY29uczogYm9vbGVhbjtcbiAgICBwdWJsaWMgc3RhcnRpY29uOiBzdHJpbmc7XG4gICAgcHVibGljIGVuZGljb246c3RyaW5nO1xuICAgIHB1YmxpYyBpc1ByaXNtOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKE5nTW9kZWwpIG5nTW9kZWw6IE5nTW9kZWw7XG4gICAgcHVibGljIG1hcmtlckl0ZW1zOiBhbnlbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSwgcHVibGljIGFwcD86IEFwcCkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgICAgICB0aGlzLmlzUHJpc20gPSB0aGlzLmFwcC5pc1ByaXNtO1xuICAgIH1cblxuICAgIC8vIGNoYW5nZSBhbmQgYmx1ciBldmVudHMgYXJlIGFkZGVkIGZyb20gdGhlIHRlbXBsYXRlXG4gICAgcHJvdGVjdGVkIGhhbmRsZUV2ZW50KG5vZGU6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSkge1xuICAgICAgICBpZiAoZXZlbnROYW1lICE9PSAnY2hhbmdlJyAmJiBldmVudE5hbWUgIT09ICdibHVyJykge1xuICAgICAgICAgICAgc3VwZXIuaGFuZGxlRXZlbnQobm9kZSwgZXZlbnROYW1lLCBjYWxsYmFjaywgbG9jYWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDaGFuZ2UobmV3VmFsPzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlclZhbHVlKCk7XG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5kYXRhdmFsdWUsIHt0eXBlOiAnY2hhbmdlJ30sIHRoaXMubmdNb2RlbC52YWxpZCk7XG4gICAgfVxuXG4gICAgdXBkYXRlU2xpZGVyVmFsdWUoKSB7XG4gICAgICAgIGNvbnN0IHNsaWRlclZhbHVlID0gMTAwIC0gKCgoKE51bWJlcih0aGlzLmRhdGF2YWx1ZSkgfHwgMCkgLSAodGhpcy5taW52YWx1ZSB8fCAwKSkgLyAoKHRoaXMubWF4dmFsdWUgfHwgMTAwKSAtICh0aGlzLm1pbnZhbHVlIHx8IDApKSkgKiAxMDApO1xuICAgICAgICBjb25zdCBzbGlkZXIgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNsaWRlci1jb250cm9sJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmIChzbGlkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNhZmVQZXJjZW50ID0gTWF0aC5taW4oMTAwLCBNYXRoLm1heCgwLCBzbGlkZXJWYWx1ZSkpO1xuICAgICAgICAgICAgc2xpZGVyLnN0eWxlLnNldFByb3BlcnR5KCctLWVuZCcsIGAke3NhZmVQZXJjZW50fSVgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKGtleSA9PT0gJ3Nob3dtYXJrZXJzJ3x8a2V5ID09PSAnbWFya2VybGFiZWx0ZXh0JyB8fCBrZXkgPT09ICdtaW52YWx1ZSd8fGtleSA9PT0gJ21heHZhbHVlJ3x8a2V5ID09PSAnc3RlcCcpIHtcbiAgICAgICAgICAgIGlmKHRoaXMuc2hvd21hcmtlcnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlck1hcmtlcnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmKGtleSA9PT0gJ3JhbmdlbGFiZWxwb3NpdGlvbicpe1xuICAgICAgICAgICAgIHN3aXRjaENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgUkFOR0VfTEFCRUxfUE9TSVRJT05bbnZdLCBSQU5HRV9MQUJFTF9QT1NJVElPTltvdl0pO1xuICAgICAgICB9ZWxzZSBpZihrZXkgPT09ICdkYXRhdmFsdWUnKXtcbiAgICAgICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IChudiA9PT0gXCJcIiB8fCBudiA9PT0gbnVsbCkgPyAodGhpcy5kYXRhdmFsdWUgPz8gNTApIDogbnZcbiAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlclZhbHVlKClcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICB9XG4gICAgcHJpdmF0ZSByZW5kZXJNYXJrZXJzKCkge1xuICAgICAgICBjb25zdCBzbGlkZXJUcmFjayA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucmFuZ2UtaW5wdXQnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgdHJhY2tXaWR0aCA9IHNsaWRlclRyYWNrPy5vZmZzZXRXaWR0aC05fHwgMDtcbiAgICAgICAgbGV0IHRpY2tDb3VudD0wO1xuICAgICAgICBpZihpc0RlZmluZWQodGhpcy5taW52YWx1ZSkgJiYgaXNEZWZpbmVkKHRoaXMubWF4dmFsdWUpKXtcbiAgICAgICAgICAgIHRpY2tDb3VudCA9IHRoaXMuc3RlcCA+IDAgPyBNYXRoLmZsb29yKCh0aGlzLm1heHZhbHVlIC0gdGhpcy5taW52YWx1ZSkgLyB0aGlzLnN0ZXApICsgMSA6IDA7XG4gICAgICAgIH0gZWxzZXtcbiAgICAgICAgICAgIHRpY2tDb3VudCA9IHRoaXMuc3RlcCA+IDAgPyBNYXRoLmZsb29yKDEwMCAvIHRoaXMuc3RlcCkgKyAxIDogMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYWJlbHMgPSBjb252ZXJ0RGF0YVRvT2JqZWN0KHRoaXMubWFya2VybGFiZWx0ZXh0KTtcbiAgICAgICAgdGhpcy5tYXJrZXJJdGVtcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRpY2tDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gKCh0cmFja1dpZHRoIC8gKHRpY2tDb3VudCAtIDEpKSAqIGkpO1xuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBsYWJlbHM/LltpXT8uZGF0YVZhbHVlID8/IChBcnJheS5pc0FycmF5KGxhYmVscykgPyAodHlwZW9mIGxhYmVsc1tpXSA9PT0gJ29iamVjdCcgJiYgbGFiZWxzW2ldPy50aXRsZSA/IGxhYmVsc1tpXS50aXRsZSA6IGxhYmVsc1tpXSkgOiBgJHtpfWApO1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBBcnJheS5pc0FycmF5KGxhYmVscykgJiYgdHlwZW9mIGxhYmVsc1tpXSA9PT0gJ29iamVjdCcgJiYgbGFiZWxzW2ldPy5wb3NpdGlvbiA/IGxhYmVsc1tpXS5wb3NpdGlvbiA6ICd1cCc7XG4gICAgICAgICAgICB0aGlzLm1hcmtlckl0ZW1zLnB1c2goeyBsYWJlbCwgcG9zaXRpb24sIGxlZnQgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBpZih0aGlzLnNob3dtYXJrZXJzKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLnJlbmRlck1hcmtlcnMoKTt9LCA0MCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpcy5kYXRhdmFsdWUpe1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMudXBkYXRlU2xpZGVyVmFsdWUoKTt9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlY3JlbWVudEJ1dHRvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RlcCA9IE51bWJlcih0aGlzLnN0ZXApIHx8IDE7XG4gICAgICAgIGNvbnN0IG1pbiA9IE51bWJlcih0aGlzLm1pbnZhbHVlKSB8fCAwO1xuXG4gICAgICAgIGxldCB2YWx1ZSA9IE51bWJlcih0aGlzLmRhdGF2YWx1ZSA/PyA1MCk7XG4gICAgICAgIHZhbHVlID0gdmFsdWUgLSBzdGVwO1xuICAgICAgICBpZiAodmFsdWUgPD0gbWluKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc05hTihtaW4pKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IE1hdGgubWF4KHZhbHVlLCBtaW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kYXRhdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UoKVxuICAgIH1cblxuXG4gICAgaW5jcmVtZW50QnV0dG9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGVwID0gTnVtYmVyKHRoaXMuc3RlcCkgfHwgMTtcbiAgICAgICAgY29uc3QgbWF4ID0gTnVtYmVyKHRoaXMubWF4dmFsdWUpIHx8IDEwMDtcblxuICAgICAgICBsZXQgdmFsdWUgPSBOdW1iZXIodGhpcy5kYXRhdmFsdWUgPz8gNTApO1xuICAgICAgICB2YWx1ZSA9IHZhbHVlICsgc3RlcDtcbiAgICAgICAgaWYgKHZhbHVlID49IG1heCkgIHJldHVybjtcblxuICAgICAgICBpZiAoIWlzTmFOKG1heCkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gTWF0aC5taW4odmFsdWUsIG1heCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZSgpXG4gICAgfVxuXG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBWaWV3Q2hpbGQgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMubmdNb2RlbCA9IG51bGw7XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBtYXJrZXIgaXRlbXMgYXJyYXlcbiAgICAgICAgaWYgKHRoaXMubWFya2VySXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMubWFya2VySXRlbXMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbGwgcGFyZW50IG5nT25EZXN0cm95XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiQGlmIChpc1ByaXNtKSB7XG48ZGl2IGNsYXNzPVwic2xpZGVyLWNvbnRhaW5lclwiPlxuICBAaWYgKHNob3dpY29ucykge1xuICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb25cIiB0eXBlPVwiYnV0dG9uXCIgbmFtZT1cImRlY3JlbWVudEJ1dHRvblwiIChjbGljayk9XCJkZWNyZW1lbnRCdXR0b25DbGljaygkZXZlbnQpXCI+XG4gICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nQ2xhc3NdPVwic3RhcnRpY29uXCI+PC9pPjwvYnV0dG9uPlxuICB9XG4gIDxkaXYgY2xhc3M9XCJzbGlkZXItY29udHJvbFwiPlxuICAgIEBpZighc2hvd21hcmtlcnMpe1xuICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJtaW52YWx1ZVwiIGNsYXNzPVwiYXBwLXNsaWRlci12YWx1ZSBwdWxsLWxlZnRcIj48L3NwYW4+XG4gICAgPHNwYW4gW3RleHRDb250ZW50XT1cIm1heHZhbHVlXCIgY2xhc3M9XCJhcHAtc2xpZGVyLXZhbHVlIHB1bGwtcmlnaHRcIj48L3NwYW4+XG4gICAgfVxuICAgIDxpbnB1dCBjbGFzcz1cInJhbmdlLWlucHV0XCIgdHlwZT1cInJhbmdlXCIgYXJpYS1vcmllbnRhdGlvbj1cImhvcml6b250YWxcIiBmb2N1cy10YXJnZXQgW3RpdGxlXT1cImRhdGF2YWx1ZVwiXG4gICAgICBbYXR0ci5taW5dPVwibWludmFsdWVcIiBbYXR0ci5tYXhdPVwibWF4dmFsdWVcIiBbYXR0ci5zdGVwXT1cInN0ZXBcIiBbKG5nTW9kZWwpXT1cImRhdGF2YWx1ZVwiXG4gICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYXR0ci5hY2Nlc3NrZXldPVwic2hvcnRjdXRrZXlcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhbGFiZWxcIiAoYmx1cik9XCJpbnZva2VPblRvdWNoZWQoJGV2ZW50KVwiIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIC8+XG4gICAgPHAgY2xhc3M9XCJhY3RpdmUtc2xpZGVyXCI+PC9wPlxuICA8L2Rpdj5cbiAgQGlmIChzaG93aWNvbnMpIHtcbiAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1pY29uXCIgdHlwZT1cImJ1dHRvblwiIG5hbWU9XCJpbmNyZW1lbnRCdXR0b25cIiAoY2xpY2spPVwiaW5jcmVtZW50QnV0dG9uQ2xpY2soJGV2ZW50KVwiPlxuICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ0NsYXNzXT1cImVuZGljb25cIj48L2k+XG4gIDwvYnV0dG9uPlxuICB9XG48L2Rpdj5cblxufSBAZWxzZSB7XG4gIEBpZighc2hvd21hcmtlcnMpe1xuICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibWludmFsdWVcIiBjbGFzcz1cImFwcC1zbGlkZXItdmFsdWUgcHVsbC1sZWZ0XCI+PC9zcGFuPlxuICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibWF4dmFsdWVcIiBjbGFzcz1cImFwcC1zbGlkZXItdmFsdWUgcHVsbC1yaWdodFwiPjwvc3Bhbj5cbn1cbjxpbnB1dCBjbGFzcz1cInJhbmdlLWlucHV0XCIgYXJpYS1vcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICBmb2N1cy10YXJnZXRcbiAgdHlwZT1cInJhbmdlXCIgW3RpdGxlXT1cImRhdGF2YWx1ZVwiXG4gIFthdHRyLm1pbl09XCJtaW52YWx1ZVwiXG4gIFthdHRyLm1heF09XCJtYXh2YWx1ZVwiXG4gIFthdHRyLnN0ZXBdPVwic3RlcFwiXG4gIFsobmdNb2RlbCldPVwiZGF0YXZhbHVlXCJcbiAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFthdHRyLmFjY2Vzc2tleV09XCJzaG9ydGN1dGtleVwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYWxhYmVsXCJcbiAgKGJsdXIpPVwiaW52b2tlT25Ub3VjaGVkKCRldmVudClcIlxuICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiLz5cbn1cbkBpZiAocmVhZG9ubHkgfHwgZGlzYWJsZWQpIHtcbiAgPGRpdiBhcmlhLXJlYWRvbmx5PVwidHJ1ZVwiIGNsYXNzPVwicmVhZG9ubHktd3JhcHBlclwiPjwvZGl2PlxufVxuQGlmKHNob3dtYXJrZXJzKXtcbiAgICA8ZGl2IGNsYXNzPVwibWFya2VyLWNvbnRhaW5lclwiPlxuQGZvciAobWFya2VyIG9mIG1hcmtlckl0ZW1zOyB0cmFjayBtYXJrZXIpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtlci13cmFwcGVyXCJcbiAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGxlZnQ6IG1hcmtlci5sZWZ0ICsgJ3B4JyB9XCJcbiAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJtYXJrZXIubGFiZWxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItbGFiZWxcIiBbbmdDbGFzc109XCJtYXJrZXIucG9zaXRpb25cIiBbYXR0ci50aXRsZV09XCJtYXJrZXIubGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyBtYXJrZXIubGFiZWwgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtlci1kb3RcIiBbYXR0ci50aXRsZV09XCJtYXJrZXIubGFiZWxcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbn1cbiJdfQ==
|
|
@@ -16,9 +16,13 @@ export const sliderProps = new Map([
|
|
|
16
16
|
['tabindex', { value: 0, ...PROP_NUMBER }],
|
|
17
17
|
['showmarkers', { value: false, ...PROP_BOOLEAN }],
|
|
18
18
|
['markerlabeltext', PROP_ANY],
|
|
19
|
+
['showicons', PROP_BOOLEAN],
|
|
20
|
+
['starticon', { value: 'wi wi-minus', ...PROP_STRING }],
|
|
21
|
+
['endicon', { value: 'wi wi-plus', ...PROP_STRING }],
|
|
22
|
+
['rangelabelposition', { value: 'bottom', ...PROP_STRING }],
|
|
19
23
|
]);
|
|
20
24
|
export const registerProps = () => {
|
|
21
25
|
register('wm-slider', sliderProps);
|
|
22
26
|
registerFormWidget(FormWidgetType.SLIDER, new Map(sliderProps));
|
|
23
27
|
};
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLnByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L3NsaWRlci9zcmMvc2xpZGVyLnByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQzlCO0lBQ0ksQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO0lBQ3RCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUMxQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7SUFDMUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3JCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUMxQixDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUM7SUFDekIsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO0lBQ3pCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNyQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7SUFDMUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDO0lBQzVCLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO0lBQ3hDLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNyQixDQUFDLFVBQVUsRUFBRSxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxXQUFXLEVBQUMsQ0FBQztJQUN4QyxDQUFDLGFBQWEsRUFBQyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxZQUFZLEVBQUMsQ0FBQztJQUMvQyxDQUFDLGlCQUFpQixFQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUM7SUFDM0IsQ0FBQyxXQUFXLEVBQUMsRUFBQyxLQUFLLEVBQUcsYUFBYSxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7SUFDckQsQ0FBQyxTQUFTLEVBQUMsRUFBQyxLQUFLLEVBQUcsWUFBWSxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7SUFDbEQsQ0FBQyxvQkFBb0IsRUFBQyxFQUFDLEtBQUssRUFBRyxRQUFRLEVBQUUsR0FBRyxXQUFXLEVBQUMsQ0FBQztDQUM1RCxDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQzlCLFFBQVEsQ0FDSixXQUFXLEVBQ1gsV0FBVyxDQUNkLENBQUM7SUFDRixrQkFBa0IsQ0FDZCxjQUFjLENBQUMsTUFBTSxFQUNyQixJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FDdkIsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UFJPUF9BTlksIFBST1BfQk9PTEVBTiwgUFJPUF9OVU1CRVIsIFBST1BfU1RSSU5HLCByZWdpc3RlciwgcmVnaXN0ZXJGb3JtV2lkZ2V0fSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7Rm9ybVdpZGdldFR5cGV9IGZyb20gJ0B3bS9jb3JlJztcblxuZXhwb3J0IGNvbnN0IHNsaWRlclByb3BzID0gbmV3IE1hcChcbiAgICBbXG4gICAgICAgIFsnY2xhc3MnLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnZGF0YXZhbHVlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2Rpc2FibGVkJywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgWydoaW50JywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2FyaWFsYWJlbCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydtYXh2YWx1ZScsIFBST1BfTlVNQkVSXSxcbiAgICAgICAgWydtaW52YWx1ZScsIFBST1BfTlVNQkVSXSxcbiAgICAgICAgWyduYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ3JlYWRvbmx5JywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgWydzaG9ydGN1dGtleScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydzaG93Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgWydzdGVwJywgUFJPUF9OVU1CRVJdLFxuICAgICAgICBbJ3RhYmluZGV4Jywge3ZhbHVlOiAwLCAuLi5QUk9QX05VTUJFUn1dLFxuICAgICAgICBbJ3Nob3dtYXJrZXJzJyx7dmFsdWU6IGZhbHNlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgWydtYXJrZXJsYWJlbHRleHQnLFBST1BfQU5ZXSxcbiAgICAgICAgWydzaG93aWNvbnMnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICBbJ3N0YXJ0aWNvbicse3ZhbHVlIDogJ3dpIHdpLW1pbnVzJywgLi4uUFJPUF9TVFJJTkd9XSxcbiAgICAgICAgWydlbmRpY29uJyx7dmFsdWUgOiAnd2kgd2ktcGx1cycsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgIFsncmFuZ2VsYWJlbHBvc2l0aW9uJyx7dmFsdWUgOiAnYm90dG9tJywgLi4uUFJPUF9TVFJJTkd9XSxcbiAgICBdXG4pO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJQcm9wcyA9ICgpID0+IHtcbiAgICByZWdpc3RlcihcbiAgICAgICAgJ3dtLXNsaWRlcicsXG4gICAgICAgIHNsaWRlclByb3BzXG4gICAgKTtcbiAgICByZWdpc3RlckZvcm1XaWRnZXQoXG4gICAgICAgIEZvcm1XaWRnZXRUeXBlLlNMSURFUixcbiAgICAgICAgbmV3IE1hcChzbGlkZXJQcm9wcylcbiAgICApO1xufTtcbiJdfQ==
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { PROP_STRING, PROP_BOOLEAN, PROP_NUMBER, PROP_ANY, register, registerFormWidget, styler, convertDataToObject, TextContentDirective, provideAs, provideAsWidgetRef } from '@wm/components/base';
|
|
2
|
-
import * as
|
|
2
|
+
import * as i2 from '@angular/forms';
|
|
3
3
|
import { FormsModule, NgModel, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
5
|
import { ViewChild, Inject, Optional, Component } from '@angular/core';
|
|
6
6
|
import { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';
|
|
7
|
-
import
|
|
7
|
+
import * as i1 from '@wm/core';
|
|
8
|
+
import { FormWidgetType, switchClass, isDefined } from '@wm/core';
|
|
9
|
+
import * as i3 from '@angular/common';
|
|
10
|
+
import { CommonModule } from '@angular/common';
|
|
8
11
|
|
|
9
12
|
const sliderProps = new Map([
|
|
10
13
|
['class', PROP_STRING],
|
|
@@ -22,6 +25,10 @@ const sliderProps = new Map([
|
|
|
22
25
|
['tabindex', { value: 0, ...PROP_NUMBER }],
|
|
23
26
|
['showmarkers', { value: false, ...PROP_BOOLEAN }],
|
|
24
27
|
['markerlabeltext', PROP_ANY],
|
|
28
|
+
['showicons', PROP_BOOLEAN],
|
|
29
|
+
['starticon', { value: 'wi wi-minus', ...PROP_STRING }],
|
|
30
|
+
['endicon', { value: 'wi wi-plus', ...PROP_STRING }],
|
|
31
|
+
['rangelabelposition', { value: 'bottom', ...PROP_STRING }],
|
|
25
32
|
]);
|
|
26
33
|
const registerProps = () => {
|
|
27
34
|
register('wm-slider', sliderProps);
|
|
@@ -33,11 +40,19 @@ const WIDGET_CONFIG = {
|
|
|
33
40
|
widgetType: 'wm-slider',
|
|
34
41
|
hostClass: DEFAULT_CLS
|
|
35
42
|
};
|
|
43
|
+
const RANGE_LABEL_POSITION = {
|
|
44
|
+
top: 'range-label-top',
|
|
45
|
+
side: 'range-label-side',
|
|
46
|
+
bottom: 'range-label-bottom',
|
|
47
|
+
};
|
|
36
48
|
class SliderComponent extends BaseFormCustomComponent {
|
|
37
49
|
static { this.initializeProps = registerProps(); }
|
|
38
|
-
constructor(inj, explicitContext) {
|
|
50
|
+
constructor(inj, explicitContext, app) {
|
|
39
51
|
super(inj, WIDGET_CONFIG, explicitContext);
|
|
52
|
+
this.app = app;
|
|
53
|
+
this.isPrism = false;
|
|
40
54
|
styler(this.nativeElement, this);
|
|
55
|
+
this.isPrism = this.app.isPrism;
|
|
41
56
|
}
|
|
42
57
|
// change and blur events are added from the template
|
|
43
58
|
handleEvent(node, eventName, callback, locals) {
|
|
@@ -46,8 +61,17 @@ class SliderComponent extends BaseFormCustomComponent {
|
|
|
46
61
|
}
|
|
47
62
|
}
|
|
48
63
|
handleChange(newVal) {
|
|
64
|
+
this.updateSliderValue();
|
|
49
65
|
this.invokeOnChange(this.datavalue, { type: 'change' }, this.ngModel.valid);
|
|
50
66
|
}
|
|
67
|
+
updateSliderValue() {
|
|
68
|
+
const sliderValue = 100 - ((((Number(this.datavalue) || 0) - (this.minvalue || 0)) / ((this.maxvalue || 100) - (this.minvalue || 0))) * 100);
|
|
69
|
+
const slider = this.nativeElement.querySelector('.slider-control');
|
|
70
|
+
if (slider) {
|
|
71
|
+
const safePercent = Math.min(100, Math.max(0, sliderValue));
|
|
72
|
+
slider.style.setProperty('--end', `${safePercent}%`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
51
75
|
onPropertyChange(key, nv, ov) {
|
|
52
76
|
if (key === 'tabindex') {
|
|
53
77
|
return;
|
|
@@ -57,6 +81,13 @@ class SliderComponent extends BaseFormCustomComponent {
|
|
|
57
81
|
this.renderMarkers();
|
|
58
82
|
}
|
|
59
83
|
}
|
|
84
|
+
else if (key === 'rangelabelposition') {
|
|
85
|
+
switchClass(this.nativeElement, RANGE_LABEL_POSITION[nv], RANGE_LABEL_POSITION[ov]);
|
|
86
|
+
}
|
|
87
|
+
else if (key === 'datavalue') {
|
|
88
|
+
this.datavalue = (nv === "" || nv === null) ? (this.datavalue ?? 50) : nv;
|
|
89
|
+
this.updateSliderValue();
|
|
90
|
+
}
|
|
60
91
|
super.onPropertyChange(key, nv, ov);
|
|
61
92
|
}
|
|
62
93
|
renderMarkers() {
|
|
@@ -83,6 +114,46 @@ class SliderComponent extends BaseFormCustomComponent {
|
|
|
83
114
|
if (this.showmarkers) {
|
|
84
115
|
setTimeout(() => { this.renderMarkers(); }, 40);
|
|
85
116
|
}
|
|
117
|
+
if (this.datavalue) {
|
|
118
|
+
setTimeout(() => { this.updateSliderValue(); });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
decrementButtonClick(event) {
|
|
122
|
+
event.preventDefault();
|
|
123
|
+
event.stopPropagation();
|
|
124
|
+
if (this.disabled) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const step = Number(this.step) || 1;
|
|
128
|
+
const min = Number(this.minvalue) || 0;
|
|
129
|
+
let value = Number(this.datavalue ?? 50);
|
|
130
|
+
value = value - step;
|
|
131
|
+
if (value <= min) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (!isNaN(min)) {
|
|
135
|
+
value = Math.max(value, min);
|
|
136
|
+
}
|
|
137
|
+
this.datavalue = value;
|
|
138
|
+
this.handleChange();
|
|
139
|
+
}
|
|
140
|
+
incrementButtonClick(event) {
|
|
141
|
+
event.preventDefault();
|
|
142
|
+
event.stopPropagation();
|
|
143
|
+
if (this.disabled) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const step = Number(this.step) || 1;
|
|
147
|
+
const max = Number(this.maxvalue) || 100;
|
|
148
|
+
let value = Number(this.datavalue ?? 50);
|
|
149
|
+
value = value + step;
|
|
150
|
+
if (value >= max)
|
|
151
|
+
return;
|
|
152
|
+
if (!isNaN(max)) {
|
|
153
|
+
value = Math.min(value, max);
|
|
154
|
+
}
|
|
155
|
+
this.datavalue = value;
|
|
156
|
+
this.handleChange();
|
|
86
157
|
}
|
|
87
158
|
ngOnDestroy() {
|
|
88
159
|
// MEMORY LEAK FIX: Clear ViewChild reference
|
|
@@ -94,24 +165,24 @@ class SliderComponent extends BaseFormCustomComponent {
|
|
|
94
165
|
// Call parent ngOnDestroy
|
|
95
166
|
super.ngOnDestroy();
|
|
96
167
|
}
|
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SliderComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SliderComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: i1.App }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
98
169
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SliderComponent, isStandalone: true, selector: "[wmSlider]", providers: [
|
|
99
170
|
provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),
|
|
100
171
|
provideAsWidgetRef(SliderComponent)
|
|
101
|
-
], viewQueries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n", dependencies: [{ kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type:
|
|
172
|
+
], viewQueries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (isPrism) {\n<div class=\"slider-container\">\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"decrementButton\" (click)=\"decrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"starticon\"></i></button>\n }\n <div class=\"slider-control\">\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n }\n <input class=\"range-input\" type=\"range\" aria-orientation=\"horizontal\" focus-target [title]=\"datavalue\"\n [attr.min]=\"minvalue\" [attr.max]=\"maxvalue\" [attr.step]=\"step\" [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{ standalone: true }\" [disabled]=\"disabled\" [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\" (blur)=\"invokeOnTouched($event)\" (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\" [tabindex]=\"tabindex\" />\n <p class=\"active-slider\"></p>\n </div>\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"incrementButton\" (click)=\"incrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"endicon\"></i>\n </button>\n }\n</div>\n\n} @else {\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n}\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n", dependencies: [{ kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
102
173
|
}
|
|
103
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SliderComponent, decorators: [{
|
|
104
175
|
type: Component,
|
|
105
|
-
args: [{ standalone: true, imports: [TextContentDirective, FormsModule], selector: '[wmSlider]', providers: [
|
|
176
|
+
args: [{ standalone: true, imports: [TextContentDirective, FormsModule, CommonModule], selector: '[wmSlider]', providers: [
|
|
106
177
|
provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),
|
|
107
178
|
provideAsWidgetRef(SliderComponent)
|
|
108
|
-
], template: "@if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n" }]
|
|
179
|
+
], template: "@if (isPrism) {\n<div class=\"slider-container\">\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"decrementButton\" (click)=\"decrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"starticon\"></i></button>\n }\n <div class=\"slider-control\">\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n }\n <input class=\"range-input\" type=\"range\" aria-orientation=\"horizontal\" focus-target [title]=\"datavalue\"\n [attr.min]=\"minvalue\" [attr.max]=\"maxvalue\" [attr.step]=\"step\" [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{ standalone: true }\" [disabled]=\"disabled\" [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\" (blur)=\"invokeOnTouched($event)\" (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\" [tabindex]=\"tabindex\" />\n <p class=\"active-slider\"></p>\n </div>\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"incrementButton\" (click)=\"incrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"endicon\"></i>\n </button>\n }\n</div>\n\n} @else {\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n}\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n" }]
|
|
109
180
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: undefined, decorators: [{
|
|
110
181
|
type: Inject,
|
|
111
182
|
args: ['EXPLICIT_CONTEXT']
|
|
112
183
|
}, {
|
|
113
184
|
type: Optional
|
|
114
|
-
}] }], propDecorators: { ngModel: [{
|
|
185
|
+
}] }, { type: i1.App }], propDecorators: { ngModel: [{
|
|
115
186
|
type: ViewChild,
|
|
116
187
|
args: [NgModel]
|
|
117
188
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/slider/src/slider.props.ts","../../../../../projects/components/widgets/input/slider/src/slider.component.ts","../../../../../projects/components/widgets/input/slider/src/slider.component.html","../../../../../projects/components/widgets/input/slider/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const sliderProps = new Map(\n [\n ['class', PROP_STRING],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['showmarkers',{value: false, ...PROP_BOOLEAN}],\n ['markerlabeltext',PROP_ANY],\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-slider',\n sliderProps\n );\n registerFormWidget(\n FormWidgetType.SLIDER,\n new Map(sliderProps)\n );\n};\n","import {\n convertDataToObject,\n IWidgetConfig,\n provideAs,\n provideAsWidgetRef,\n styler,\n TextContentDirective\n} from \"@wm/components/base\";\nimport {FormsModule, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\nimport {Component, Inject, Injector, OnDestroy, Optional, ViewChild} from '@angular/core';\nimport {BaseFormCustomComponent} from '@wm/components/input/base-form-custom';\n\nimport {registerProps} from './slider.props';\nimport {isDefined} from \"@wm/core\";\n\n\nconst DEFAULT_CLS = 'app-slider slider';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-slider',\n hostClass: DEFAULT_CLS\n};\n\n@Component({\n standalone: true,\n imports: [TextContentDirective, FormsModule],\n selector: '[wmSlider]',\n templateUrl: './slider.component.html',\n providers: [\n provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SliderComponent)\n ]\n})\nexport class SliderComponent extends BaseFormCustomComponent implements OnDestroy {\n static initializeProps = registerProps();\n\n public minvalue: number;\n public maxvalue: number;\n public disabled: boolean;\n public step: number;\n public shortcutkey: string;\n public tabindex: any;\n public name: string;\n public readonly: boolean;\n public hint: string;\n public arialabel: string;\n public markerlabeltext: string\n public showmarkers: boolean;\n\n @ViewChild(NgModel) ngModel: NgModel;\n public markerItems: any[];\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n public handleChange(newVal: boolean) {\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'tabindex') {\n return;\n }\n else if(key === 'showmarkers'||key === 'markerlabeltext' || key === 'minvalue'||key === 'maxvalue'||key === 'step') {\n if(this.showmarkers) {\n this.renderMarkers();\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n private renderMarkers() {\n const sliderTrack = this.nativeElement.querySelector('.range-input') as HTMLElement;\n const trackWidth = sliderTrack?.offsetWidth-9|| 0;\n let tickCount=0;\n if(isDefined(this.minvalue) && isDefined(this.maxvalue)){\n tickCount = this.step > 0 ? Math.floor((this.maxvalue - this.minvalue) / this.step) + 1 : 0;\n } else{\n tickCount = this.step > 0 ? Math.floor(100 / this.step) + 1 : 0;\n }\n const labels = convertDataToObject(this.markerlabeltext);\n this.markerItems = [];\n for (let i = 0; i < tickCount; i++) {\n const left = ((trackWidth / (tickCount - 1)) * i);\n const label = labels?.[i]?.dataValue ?? (Array.isArray(labels) ? (typeof labels[i] === 'object' && labels[i]?.title ? labels[i].title : labels[i]) : `${i}`);\n const position = Array.isArray(labels) && typeof labels[i] === 'object' && labels[i]?.position ? labels[i].position : 'up';\n this.markerItems.push({ label, position, left });\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if(this.showmarkers) {\n setTimeout(() => {this.renderMarkers();}, 40);\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild reference\n this.ngModel = null;\n\n // MEMORY LEAK FIX: Clear marker items array\n if (this.markerItems) {\n this.markerItems = [];\n }\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","@if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/slider/src/slider.props.ts","../../../../../projects/components/widgets/input/slider/src/slider.component.ts","../../../../../projects/components/widgets/input/slider/src/slider.component.html","../../../../../projects/components/widgets/input/slider/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const sliderProps = new Map(\n [\n ['class', PROP_STRING],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['showmarkers',{value: false, ...PROP_BOOLEAN}],\n ['markerlabeltext',PROP_ANY],\n ['showicons', PROP_BOOLEAN],\n ['starticon',{value : 'wi wi-minus', ...PROP_STRING}],\n ['endicon',{value : 'wi wi-plus', ...PROP_STRING}],\n ['rangelabelposition',{value : 'bottom', ...PROP_STRING}],\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-slider',\n sliderProps\n );\n registerFormWidget(\n FormWidgetType.SLIDER,\n new Map(sliderProps)\n );\n};\n","import {\n convertDataToObject,\n IWidgetConfig,\n provideAs,\n provideAsWidgetRef,\n styler,\n TextContentDirective\n} from \"@wm/components/base\";\nimport {FormsModule, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\nimport {Component, Inject, Injector, OnDestroy, Optional, ViewChild} from '@angular/core';\nimport {BaseFormCustomComponent} from '@wm/components/input/base-form-custom';\n\nimport {registerProps} from './slider.props';\nimport {App, isDefined, switchClass} from \"@wm/core\";\nimport { CommonModule } from \"@angular/common\";\n\n\nconst DEFAULT_CLS = 'app-slider slider';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-slider',\n hostClass: DEFAULT_CLS\n};\nconst RANGE_LABEL_POSITION: {[key: string]: string} = {\n top: 'range-label-top',\n side: 'range-label-side',\n bottom: 'range-label-bottom',\n};\n@Component({\n standalone: true,\n imports: [TextContentDirective, FormsModule, CommonModule],\n selector: '[wmSlider]',\n templateUrl: './slider.component.html',\n providers: [\n provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SliderComponent)\n ]\n})\nexport class SliderComponent extends BaseFormCustomComponent implements OnDestroy {\n static initializeProps = registerProps();\n\n public minvalue: number;\n public maxvalue: number;\n public disabled: boolean;\n public step: number;\n public shortcutkey: string;\n public tabindex: any;\n public name: string;\n public readonly: boolean;\n public hint: string;\n public arialabel: string;\n public markerlabeltext: string\n public showmarkers: boolean;\n public showicons: boolean;\n public starticon: string;\n public endicon:string;\n public isPrism: boolean = false;\n\n @ViewChild(NgModel) ngModel: NgModel;\n public markerItems: any[];\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, public app?: App) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.isPrism = this.app.isPrism;\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n public handleChange(newVal?: boolean) {\n this.updateSliderValue();\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n updateSliderValue() {\n const sliderValue = 100 - ((((Number(this.datavalue) || 0) - (this.minvalue || 0)) / ((this.maxvalue || 100) - (this.minvalue || 0))) * 100);\n const slider = this.nativeElement.querySelector('.slider-control') as HTMLElement;\n if (slider) {\n const safePercent = Math.min(100, Math.max(0, sliderValue));\n slider.style.setProperty('--end', `${safePercent}%`);\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'tabindex') {\n return;\n }\n else if(key === 'showmarkers'||key === 'markerlabeltext' || key === 'minvalue'||key === 'maxvalue'||key === 'step') {\n if(this.showmarkers) {\n this.renderMarkers();\n }\n } else if(key === 'rangelabelposition'){\n switchClass(this.nativeElement, RANGE_LABEL_POSITION[nv], RANGE_LABEL_POSITION[ov]);\n }else if(key === 'datavalue'){\n this.datavalue = (nv === \"\" || nv === null) ? (this.datavalue ?? 50) : nv\n this.updateSliderValue()\n }\n super.onPropertyChange(key, nv, ov);\n }\n private renderMarkers() {\n const sliderTrack = this.nativeElement.querySelector('.range-input') as HTMLElement;\n const trackWidth = sliderTrack?.offsetWidth-9|| 0;\n let tickCount=0;\n if(isDefined(this.minvalue) && isDefined(this.maxvalue)){\n tickCount = this.step > 0 ? Math.floor((this.maxvalue - this.minvalue) / this.step) + 1 : 0;\n } else{\n tickCount = this.step > 0 ? Math.floor(100 / this.step) + 1 : 0;\n }\n const labels = convertDataToObject(this.markerlabeltext);\n this.markerItems = [];\n for (let i = 0; i < tickCount; i++) {\n const left = ((trackWidth / (tickCount - 1)) * i);\n const label = labels?.[i]?.dataValue ?? (Array.isArray(labels) ? (typeof labels[i] === 'object' && labels[i]?.title ? labels[i].title : labels[i]) : `${i}`);\n const position = Array.isArray(labels) && typeof labels[i] === 'object' && labels[i]?.position ? labels[i].position : 'up';\n this.markerItems.push({ label, position, left });\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if(this.showmarkers) {\n setTimeout(() => {this.renderMarkers();}, 40);\n }\n if(this.datavalue){\n setTimeout(() => {this.updateSliderValue();});\n }\n }\n\n decrementButtonClick(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled) {\n return;\n }\n\n const step = Number(this.step) || 1;\n const min = Number(this.minvalue) || 0;\n\n let value = Number(this.datavalue ?? 50);\n value = value - step;\n if (value <= min) {\n return;\n }\n if (!isNaN(min)) {\n value = Math.max(value, min);\n }\n\n this.datavalue = value;\n this.handleChange()\n }\n\n\n incrementButtonClick(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled) {\n return;\n }\n\n const step = Number(this.step) || 1;\n const max = Number(this.maxvalue) || 100;\n\n let value = Number(this.datavalue ?? 50);\n value = value + step;\n if (value >= max) return;\n\n if (!isNaN(max)) {\n value = Math.min(value, max);\n }\n\n this.datavalue = value;\n this.handleChange()\n }\n\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild reference\n this.ngModel = null;\n\n // MEMORY LEAK FIX: Clear marker items array\n if (this.markerItems) {\n this.markerItems = [];\n }\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","@if (isPrism) {\n<div class=\"slider-container\">\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"decrementButton\" (click)=\"decrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"starticon\"></i></button>\n }\n <div class=\"slider-control\">\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n }\n <input class=\"range-input\" type=\"range\" aria-orientation=\"horizontal\" focus-target [title]=\"datavalue\"\n [attr.min]=\"minvalue\" [attr.max]=\"maxvalue\" [attr.step]=\"step\" [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{ standalone: true }\" [disabled]=\"disabled\" [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\" (blur)=\"invokeOnTouched($event)\" (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\" [tabindex]=\"tabindex\" />\n <p class=\"active-slider\"></p>\n </div>\n @if (showicons) {\n <button class=\"btn-icon\" type=\"button\" name=\"incrementButton\" (click)=\"incrementButtonClick($event)\">\n <i aria-hidden=\"true\" [ngClass]=\"endicon\"></i>\n </button>\n }\n</div>\n\n} @else {\n @if(!showmarkers){\n <span [textContent]=\"minvalue\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue\" class=\"app-slider-value pull-right\"></span>\n}\n<input class=\"range-input\" aria-orientation=\"horizontal\"\n focus-target\n type=\"range\" [title]=\"datavalue\"\n [attr.min]=\"minvalue\"\n [attr.max]=\"maxvalue\"\n [attr.step]=\"step\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [attr.name]=\"name\"\n [tabindex]=\"tabindex\"/>\n}\n@if (readonly || disabled) {\n <div aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n}\n@if(showmarkers){\n <div class=\"marker-container\">\n@for (marker of markerItems; track marker) {\n <div class=\"marker-wrapper\"\n [ngStyle]=\"{ left: marker.left + 'px' }\"\n [attr.title]=\"marker.label\">\n <div class=\"marker-label\" [ngClass]=\"marker.position\" [attr.title]=\"marker.label\">\n {{ marker.label }}\n </div>\n <div class=\"marker-dot\" [attr.title]=\"marker.label\"></div>\n </div>\n }\n </div>\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { NgModel } from '@angular/forms';
|
|
2
2
|
import { Injector, OnDestroy } from '@angular/core';
|
|
3
3
|
import { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';
|
|
4
|
+
import { App } from "@wm/core";
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class SliderComponent extends BaseFormCustomComponent implements OnDestroy {
|
|
7
|
+
app?: App;
|
|
6
8
|
static initializeProps: void;
|
|
7
9
|
minvalue: number;
|
|
8
10
|
maxvalue: number;
|
|
@@ -16,15 +18,22 @@ export declare class SliderComponent extends BaseFormCustomComponent implements
|
|
|
16
18
|
arialabel: string;
|
|
17
19
|
markerlabeltext: string;
|
|
18
20
|
showmarkers: boolean;
|
|
21
|
+
showicons: boolean;
|
|
22
|
+
starticon: string;
|
|
23
|
+
endicon: string;
|
|
24
|
+
isPrism: boolean;
|
|
19
25
|
ngModel: NgModel;
|
|
20
26
|
markerItems: any[];
|
|
21
|
-
constructor(inj: Injector, explicitContext: any);
|
|
27
|
+
constructor(inj: Injector, explicitContext: any, app?: App);
|
|
22
28
|
protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any): void;
|
|
23
|
-
handleChange(newVal
|
|
29
|
+
handleChange(newVal?: boolean): void;
|
|
30
|
+
updateSliderValue(): void;
|
|
24
31
|
onPropertyChange(key: string, nv: any, ov?: any): void;
|
|
25
32
|
private renderMarkers;
|
|
26
33
|
ngAfterViewInit(): void;
|
|
34
|
+
decrementButtonClick(event: Event): void;
|
|
35
|
+
incrementButtonClick(event: Event): void;
|
|
27
36
|
ngOnDestroy(): void;
|
|
28
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SliderComponent, [null, { optional: true; }]>;
|
|
37
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SliderComponent, [null, { optional: true; }, null]>;
|
|
29
38
|
static ɵcmp: i0.ɵɵComponentDeclaration<SliderComponent, "[wmSlider]", never, {}, {}, never, never, true, never>;
|
|
30
39
|
}
|