@wavemaker-ai/app-ng-runtime 1.0.0-rc.322 → 1.0.0-rc.326
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/base/bundles/index.umd.js +30 -9
- package/components/base/fesm2022/index.mjs +30 -9
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/index.d.ts +5 -1
- package/components/basic/anchor/bundles/index.umd.js +1 -1
- package/components/basic/anchor/fesm2022/index.mjs +1 -1
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/icon/bundles/index.umd.js +1 -1
- package/components/basic/icon/fesm2022/index.mjs +1 -1
- package/components/basic/icon/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/bundles/index.umd.js +1 -1
- package/components/basic/search/fesm2022/index.mjs +1 -1
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/bundles/index.umd.js +1 -1
- package/components/basic/spinner/fesm2022/index.mjs +1 -1
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/chart/bundles/index.umd.js +1 -1
- package/components/chart/fesm2022/index.mjs +1 -1
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/bundles/index.umd.js +1 -1
- package/components/containers/accordion/fesm2022/index.mjs +1 -1
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +1 -1
- package/components/containers/panel/fesm2022/index.mjs +1 -1
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/bundles/index.umd.js +1 -1
- package/components/containers/tabs/fesm2022/index.mjs +1 -1
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/bundles/index.umd.js +1 -1
- package/components/containers/wizard/fesm2022/index.mjs +1 -1
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/data/card/bundles/index.umd.js +1 -1
- package/components/data/card/fesm2022/index.mjs +1 -1
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +1 -1
- package/components/data/form/fesm2022/index.mjs +1 -1
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/list/bundles/index.umd.js +1 -1
- package/components/data/list/fesm2022/index.mjs +1 -1
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/bundles/index.umd.js +3 -0
- package/components/data/pagination/fesm2022/index.mjs +3 -0
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/table/bundles/index.umd.js +9 -2
- package/components/data/table/fesm2022/index.mjs +9 -2
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/bundles/index.umd.js +1 -1
- package/components/dialogs/default/fesm2022/index.mjs +1 -1
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/input/button/bundles/index.umd.js +1 -1
- package/components/input/button/fesm2022/index.mjs +1 -1
- package/components/input/button/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +1 -1
- package/components/input/checkbox/fesm2022/index.mjs +1 -1
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +1 -1
- package/components/input/dataset-aware-form/fesm2022/index.mjs +1 -1
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +1 -1
- package/components/input/file-upload/fesm2022/index.mjs +1 -1
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/bundles/index.umd.js +1 -1
- package/components/input/rating/fesm2022/index.mjs +1 -1
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/bundles/index.umd.js +1 -1
- package/components/input/slider/fesm2022/index.mjs +1 -1
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/bundles/index.umd.js +1 -1
- package/components/input/switch/fesm2022/index.mjs +1 -1
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/text/bundles/index.umd.js +1 -1
- package/components/input/text/fesm2022/index.mjs +1 -1
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/navigation/breadcrumb/bundles/index.umd.js +3 -3
- package/components/navigation/breadcrumb/fesm2022/index.mjs +4 -4
- package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/bundles/index.umd.js +1 -1
- package/components/navigation/menu/fesm2022/index.mjs +1 -1
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/bundles/index.umd.js +1 -1
- package/components/navigation/navbar/fesm2022/index.mjs +1 -1
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/page/default/bundles/index.umd.js +1 -0
- package/components/page/default/fesm2022/index.mjs +1 -0
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/core/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 +7 -4
- package/runtime/base/fesm2022/index.mjs +7 -4
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +3 -3
- package/transpiler/bundles/index.umd.js +3 -0
- package/transpiler/fesm2022/index.mjs +3 -0
- package/transpiler/fesm2022/index.mjs.map +1 -1
|
@@ -165,7 +165,7 @@ class SliderComponent extends BaseFormCustomComponent {
|
|
|
165
165
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: SliderComponent, isStandalone: true, selector: "[wmSlider]", providers: [
|
|
166
166
|
provideAs(SliderComponent, NG_VALUE_ACCESSOR, true),
|
|
167
167
|
provideAsWidgetRef(SliderComponent)
|
|
168
|
-
], 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 <wm-app-icon [iconclass]=\"starticon\" [iconurl]=\"starticonurl\"></wm-app-icon> \n </button>\n }\n <div class=\"slider-control\">\n @if(!showmarkers){\n <span [textContent]=\"minvalue||0\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue||100\" 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||readonly\" [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 <wm-app-icon [iconclass]=\"endicon\" [iconurl]=\"endiconurl\"></wm-app-icon> \n </button>\n }\n</div>\n\n} @else {\n @if(!showmarkers){\n <span [textContent]=\"minvalue||0\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue||100\" 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||readonly\"\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"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
168
|
+
], 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 <wm-app-icon [iconclass]=\"starticon\" [iconurl]=\"starticonurl\"></wm-app-icon> \n </button>\n }\n <div class=\"slider-control\">\n @if(!showmarkers){\n <span [textContent]=\"minvalue||0\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue||100\" 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||readonly\" [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 <wm-app-icon [iconclass]=\"endicon\" [iconurl]=\"endiconurl\"></wm-app-icon> \n </button>\n }\n</div>\n\n} @else {\n @if(!showmarkers){\n <span [textContent]=\"minvalue||0\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue||100\" 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||readonly\"\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"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
169
169
|
}
|
|
170
170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: SliderComponent, decorators: [{
|
|
171
171
|
type: Component,
|
|
@@ -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 ['showicons', PROP_BOOLEAN],\n ['starticon',{value : 'wi wi-minus', ...PROP_STRING}],\n ['endicon',{value : 'wi wi-plus', ...PROP_STRING}],\n ['starticonurl', PROP_STRING],\n ['endiconurl', 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 WmAppIconComponent\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, WmAppIconComponent],\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 starticonurl:string;\n public endiconurl: 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 const tickCount = this.step > 0 ? Math.floor((this.maxvalue||100 - this.minvalue||0) / this.step) + 1 : 0;\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 <wm-app-icon [iconclass]=\"starticon\" [iconurl]=\"starticonurl\"></wm-app-icon> \n </button>\n }\n <div class=\"slider-control\">\n @if(!showmarkers){\n <span [textContent]=\"minvalue||0\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue||100\" 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||readonly\" [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 <wm-app-icon [iconclass]=\"endicon\" [iconurl]=\"endiconurl\"></wm-app-icon> \n </button>\n }\n</div>\n\n} @else {\n @if(!showmarkers){\n <span [textContent]=\"minvalue||0\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue||100\" 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||readonly\"\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
|
+
{"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 ['starticonurl', PROP_STRING],\n ['endiconurl', 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 WmAppIconComponent\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, WmAppIconComponent],\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 starticonurl:string;\n public endiconurl: 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 const tickCount = this.step > 0 ? Math.floor((this.maxvalue||100 - this.minvalue||0) / this.step) + 1 : 0;\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 <wm-app-icon [iconclass]=\"starticon\" [iconurl]=\"starticonurl\"></wm-app-icon> \n </button>\n }\n <div class=\"slider-control\">\n @if(!showmarkers){\n <span [textContent]=\"minvalue||0\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue||100\" 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||readonly\" [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 <wm-app-icon [iconclass]=\"endicon\" [iconurl]=\"endiconurl\"></wm-app-icon> \n </button>\n }\n</div>\n\n} @else {\n @if(!showmarkers){\n <span [textContent]=\"minvalue||0\" class=\"app-slider-value pull-left\"></span>\n <span [textContent]=\"maxvalue||100\" 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||readonly\"\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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"}
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: SwitchComponent, isStandalone: true, selector: "[wmSwitch]", providers: [
|
|
208
208
|
base.provideAs(SwitchComponent, forms.NG_VALUE_ACCESSOR, true),
|
|
209
209
|
base.provideAsWidgetRef(SwitchComponent)
|
|
210
|
-
], exportAs: ["wmSwitch"], usesInheritance: true, ngImport: i0__namespace, template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n @for (opt of datasetItems; track opt) {\n <a\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [title]=\"hint?hint:opt.key\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [title]=\"hint?.[opt.index-1]?hint[opt.index-1]:(hint?.[0]?hint[0]:(opt[displayfield]||opt.label))\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n @if (opt.dataObject && (opt.dataObject[iconclass] || opt.dataObject[iconurl]) && (!opt.selected || !checkediconclass)) {\n <wm-app-icon [iconclass]=\"opt.dataObject[iconclass] || opt['icon']\" [iconurl]=\"opt.dataObject[iconurl] || opt['icon']\"></wm-app-icon>\n }\n @if (opt.selected && (checkediconclass || checkediconurl)) {\n <wm-app-icon [iconclass]=\"checkediconclass\" [iconurl]=\"checkediconurl\"></wm-app-icon>\n }\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n }\n</div>\n@if (!multiple) {\n <span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n </span>\n}\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: base.TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
210
|
+
], exportAs: ["wmSwitch"], usesInheritance: true, ngImport: i0__namespace, template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n @for (opt of datasetItems; track opt) {\n <a\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [title]=\"hint?hint:opt.key\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [title]=\"hint?.[opt.index-1]?hint[opt.index-1]:(hint?.[0]?hint[0]:(opt[displayfield]||opt.label))\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n @if (opt.dataObject && (opt.dataObject[iconclass] || opt.dataObject[iconurl]) && (!opt.selected || !checkediconclass)) {\n <wm-app-icon [iconclass]=\"opt.dataObject[iconclass] || opt['icon']\" [iconurl]=\"opt.dataObject[iconurl] || opt['icon']\"></wm-app-icon>\n }\n @if (opt.selected && (checkediconclass || checkediconurl)) {\n <wm-app-icon [iconclass]=\"checkediconclass\" [iconurl]=\"checkediconurl\"></wm-app-icon>\n }\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n }\n</div>\n@if (!multiple) {\n <span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n </span>\n}\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: base.TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
211
211
|
}
|
|
212
212
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: SwitchComponent, decorators: [{
|
|
213
213
|
type: i0.Component,
|
|
@@ -191,7 +191,7 @@ class SwitchComponent extends DatasetAwareFormComponent {
|
|
|
191
191
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: SwitchComponent, isStandalone: true, selector: "[wmSwitch]", providers: [
|
|
192
192
|
provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
|
|
193
193
|
provideAsWidgetRef(SwitchComponent)
|
|
194
|
-
], exportAs: ["wmSwitch"], usesInheritance: true, ngImport: i0, template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n @for (opt of datasetItems; track opt) {\n <a\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [title]=\"hint?hint:opt.key\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [title]=\"hint?.[opt.index-1]?hint[opt.index-1]:(hint?.[0]?hint[0]:(opt[displayfield]||opt.label))\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n @if (opt.dataObject && (opt.dataObject[iconclass] || opt.dataObject[iconurl]) && (!opt.selected || !checkediconclass)) {\n <wm-app-icon [iconclass]=\"opt.dataObject[iconclass] || opt['icon']\" [iconurl]=\"opt.dataObject[iconurl] || opt['icon']\"></wm-app-icon>\n }\n @if (opt.selected && (checkediconclass || checkediconurl)) {\n <wm-app-icon [iconclass]=\"checkediconclass\" [iconurl]=\"checkediconurl\"></wm-app-icon>\n }\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n }\n</div>\n@if (!multiple) {\n <span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n </span>\n}\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
194
|
+
], exportAs: ["wmSwitch"], usesInheritance: true, ngImport: i0, template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n @for (opt of datasetItems; track opt) {\n <a\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [title]=\"hint?hint:opt.key\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [title]=\"hint?.[opt.index-1]?hint[opt.index-1]:(hint?.[0]?hint[0]:(opt[displayfield]||opt.label))\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n @if (opt.dataObject && (opt.dataObject[iconclass] || opt.dataObject[iconurl]) && (!opt.selected || !checkediconclass)) {\n <wm-app-icon [iconclass]=\"opt.dataObject[iconclass] || opt['icon']\" [iconurl]=\"opt.dataObject[iconurl] || opt['icon']\"></wm-app-icon>\n }\n @if (opt.selected && (checkediconclass || checkediconurl)) {\n <wm-app-icon [iconclass]=\"checkediconclass\" [iconurl]=\"checkediconurl\"></wm-app-icon>\n }\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n }\n</div>\n@if (!multiple) {\n <span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n </span>\n}\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
195
195
|
}
|
|
196
196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: SwitchComponent, decorators: [{
|
|
197
197
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/switch/src/switch.props.ts","../../../../../projects/components/widgets/input/switch/src/switch.component.ts","../../../../../projects/components/widgets/input/switch/src/switch.component.html","../../../../../projects/components/widgets/input/switch/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 switchProps = new Map(\n [\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'yes, no, maybe', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['hint', PROP_ANY],\n ['arialabel', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['checkediconclass', {value : '',...PROP_STRING}],\n ['checkediconurl', {value : '', PROP_STRING}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\n\nexport const registerProps = () => {\n register(\n 'wm-switch',\n switchProps\n );\n registerFormWidget(\n FormWidgetType.SWITCH,\n new Map(switchProps)\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n new Map(switchProps)\n );\n};\n","import { CommonModule } from '@angular/common';\nimport {AfterViewInit, Component, Inject, Injector, OnDestroy, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {$appDigest, debounce, isDefined, setCSS, toBoolean} from '@wm/core';\nimport { DataSetItem, provideAs, provideAsWidgetRef, styler, TextContentDirective, WmAppIconComponent } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input/dataset-aware-form';\n\nimport { registerProps } from './switch.props';\nimport {find, findIndex, forEach, isArray, isNull, isUndefined, trim} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-switch';\nconst WIDGET_CONFIG = {widgetType: 'wm-switch', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, WmAppIconComponent],\n selector: '[wmSwitch]',\n templateUrl: './switch.component.html',\n providers: [\n provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SwitchComponent)\n ],\n exportAs: 'wmSwitch'\n})\nexport class SwitchComponent extends DatasetAwareFormComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n options = [];\n selectedItem: DataSetItem;\n iconclass;\n iconurl: string;\n checkediconclass;\n checkediconurl: string;\n multiple: boolean;\n private btnwidth;\n public disabled: boolean;\n public required: boolean;\n private _debounceSetSelectedValue: Function | null = null;\n public name: string;\n public hint:any;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.multiple = this.getAttr(\"multiple\") === \"true\";\n this.checkediconclass = this.getAttr(\"checkediconclass\");\n this.checkediconurl = this.getAttr(\"checkediconurl\");\n\n this._debounceSetSelectedValue = debounce((val) => {\n this.setSelectedValue();\n this.updateHighlighter(val);\n // only for default value trigger app digest to apply the selectedItem\n if (val) {\n $appDigest();\n }\n }, 200);\n\n const datasetSubscription = this.dataset$.subscribe(() => this.updateSwitchOptions());\n\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe(() => {\n if (this._debounceSetSelectedValue) {\n this._debounceSetSelectedValue(true);\n }\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement as HTMLElement, this);\n }\n\n onStyleChange(key: string, nv: any, ov?: any) {\n if (key === 'height') {\n setCSS(this.nativeElement, 'overflow', nv ? 'auto' : '');\n } else {\n super.onStyleChange(key, nv, ov);\n }\n }\n\n // This function sets the selectedItem by either using compareby fields or selected flag on datasetItems.\n private setSelectedValue() {\n if (isDefined(this.datavalue) || isDefined(this.toBeProcessedDatavalue)) {\n this.selectedItem = find(this.datasetItems, {selected: true});\n return;\n }\n\n // If no value is provided, set first value as default if options are available else set -1 ie no selection\n // this.selectOptAtIndex(0);\n }\n\n // set the css for switch overlay element.\n // set the selected index from the datasetItems and highlight the datavalue on switch.\n private updateSwitchOptions() {\n if (this.datasetItems.length && !this.multiple) {\n this.btnwidth = (100 / this.datasetItems.length);\n setCSS(this.nativeElement.querySelector('.app-switch-overlay') as HTMLElement, 'width', this.btnwidth + '%');\n }\n\n if (this._debounceSetSelectedValue) {\n this._debounceSetSelectedValue(true);\n }\n }\n\n // This function animates the highlighted span on to the selected value.\n private updateHighlighter(skipAnimation?) {\n const handler = $(this.nativeElement).find('span.app-switch-overlay');\n\n this.setSelectedValue();\n\n let left,\n index = this.selectedItem ? findIndex(this.datasetItems, {key: this.selectedItem.key}) : -1;\n\n if (index === undefined || index === null) {\n index = -1;\n }\n left = index * this.btnwidth;\n if (skipAnimation) {\n handler.css('left', left + '%');\n } else {\n handler.animate({\n left: left + '%'\n }, 300);\n }\n }\n\n selectOptAtIndex($index) {\n if (!this.datasetItems.length) {\n return;\n }\n const opt = this.datasetItems[$index];\n this._modelByValue = opt.value;\n }\n\n // Triggered on selected the option from the switch.\n // set the index and highlight the default value. Invoke onchange event handler.\n selectOpt($event, $index, option) {\n $event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n if(this.multiple) {\n const keys = [];\n this.datasetItems[$index].selected = !this.datasetItems[$index].selected;\n forEach(this.datasetItems, (item: any) => {\n if(item.selected)\n keys.push(item.key);\n });\n this.modelByKey = keys;\n this.selectedItem = find(this.datasetItems, {selected: true});\n }\n else {\n this.modelByKey = option.key;\n if (!this.multiple && this.selectedItem && $index === findIndex(this.datasetItems, {key: this.selectedItem.key})) {\n if (this.datasetItems.length === 2) {\n $index = $index === 1 ? 0 : 1;\n } else {\n return;\n }\n }\n this.selectedItem = this.datasetItems[$index];\n this.updateHighlighter();\n }\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n $appDigest();\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'disabled' && !toBoolean(nv)) {\n this.nativeElement.removeAttribute(key);\n } else {\n if(key==='hint')\n {\n if (isUndefined(nv) || isNull(nv) || trim(nv) === '') {\n this.hint=[];\n }\n else if (!isArray(nv)) {\n this.hint= [nv];\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Nullify debounced function closure\n // This closure captures 'this' and prevents garbage collection\n this._debounceSetSelectedValue = null;\n\n // MEMORY LEAK FIX: Clear options array\n this.options = [];\n\n // MEMORY LEAK FIX: Clear selected item reference\n this.selectedItem = null;\n\n // MEMORY LEAK FIX: Clear hint array\n if (this.hint) {\n this.hint = [];\n }\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n @for (opt of datasetItems; track opt) {\n <a\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [title]=\"hint?hint:opt.key\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [title]=\"hint?.[opt.index-1]?hint[opt.index-1]:(hint?.[0]?hint[0]:(opt[displayfield]||opt.label))\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n @if (opt.dataObject && (opt.dataObject[iconclass] || opt.dataObject[iconurl]) && (!opt.selected || !checkediconclass)) {\n <wm-app-icon [iconclass]=\"opt.dataObject[iconclass] || opt['icon']\" [iconurl]=\"opt.dataObject[iconurl] || opt['icon']\"></wm-app-icon>\n }\n @if (opt.selected && (checkediconclass || checkediconurl)) {\n <wm-app-icon [iconclass]=\"checkediconclass\" [iconurl]=\"checkediconurl\"></wm-app-icon>\n }\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n }\n</div>\n@if (!multiple) {\n <span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n </span>\n}\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\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/switch/src/switch.props.ts","../../../../../projects/components/widgets/input/switch/src/switch.component.ts","../../../../../projects/components/widgets/input/switch/src/switch.component.html","../../../../../projects/components/widgets/input/switch/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 switchProps = new Map(\n [\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'yes, no, maybe', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['hint', PROP_ANY],\n ['arialabel', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['checkediconclass', {value : '',...PROP_STRING}],\n ['checkediconurl', {value : '', PROP_STRING}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\n\nexport const registerProps = () => {\n register(\n 'wm-switch',\n switchProps\n );\n registerFormWidget(\n FormWidgetType.SWITCH,\n new Map(switchProps)\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n new Map(switchProps)\n );\n};\n","import { CommonModule } from '@angular/common';\nimport {AfterViewInit, Component, Inject, Injector, OnDestroy, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {$appDigest, debounce, isDefined, setCSS, toBoolean} from '@wm/core';\nimport { DataSetItem, provideAs, provideAsWidgetRef, styler, TextContentDirective, WmAppIconComponent } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input/dataset-aware-form';\n\nimport { registerProps } from './switch.props';\nimport {find, findIndex, forEach, isArray, isNull, isUndefined, trim} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-switch';\nconst WIDGET_CONFIG = {widgetType: 'wm-switch', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, WmAppIconComponent],\n selector: '[wmSwitch]',\n templateUrl: './switch.component.html',\n providers: [\n provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SwitchComponent)\n ],\n exportAs: 'wmSwitch'\n})\nexport class SwitchComponent extends DatasetAwareFormComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n options = [];\n selectedItem: DataSetItem;\n iconclass;\n iconurl: string;\n checkediconclass;\n checkediconurl: string;\n multiple: boolean;\n private btnwidth;\n public disabled: boolean;\n public required: boolean;\n private _debounceSetSelectedValue: Function | null = null;\n public name: string;\n public hint:any;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.multiple = this.getAttr(\"multiple\") === \"true\";\n this.checkediconclass = this.getAttr(\"checkediconclass\");\n this.checkediconurl = this.getAttr(\"checkediconurl\");\n\n this._debounceSetSelectedValue = debounce((val) => {\n this.setSelectedValue();\n this.updateHighlighter(val);\n // only for default value trigger app digest to apply the selectedItem\n if (val) {\n $appDigest();\n }\n }, 200);\n\n const datasetSubscription = this.dataset$.subscribe(() => this.updateSwitchOptions());\n\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe(() => {\n if (this._debounceSetSelectedValue) {\n this._debounceSetSelectedValue(true);\n }\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement as HTMLElement, this);\n }\n\n onStyleChange(key: string, nv: any, ov?: any) {\n if (key === 'height') {\n setCSS(this.nativeElement, 'overflow', nv ? 'auto' : '');\n } else {\n super.onStyleChange(key, nv, ov);\n }\n }\n\n // This function sets the selectedItem by either using compareby fields or selected flag on datasetItems.\n private setSelectedValue() {\n if (isDefined(this.datavalue) || isDefined(this.toBeProcessedDatavalue)) {\n this.selectedItem = find(this.datasetItems, {selected: true});\n return;\n }\n\n // If no value is provided, set first value as default if options are available else set -1 ie no selection\n // this.selectOptAtIndex(0);\n }\n\n // set the css for switch overlay element.\n // set the selected index from the datasetItems and highlight the datavalue on switch.\n private updateSwitchOptions() {\n if (this.datasetItems.length && !this.multiple) {\n this.btnwidth = (100 / this.datasetItems.length);\n setCSS(this.nativeElement.querySelector('.app-switch-overlay') as HTMLElement, 'width', this.btnwidth + '%');\n }\n\n if (this._debounceSetSelectedValue) {\n this._debounceSetSelectedValue(true);\n }\n }\n\n // This function animates the highlighted span on to the selected value.\n private updateHighlighter(skipAnimation?) {\n const handler = $(this.nativeElement).find('span.app-switch-overlay');\n\n this.setSelectedValue();\n\n let left,\n index = this.selectedItem ? findIndex(this.datasetItems, {key: this.selectedItem.key}) : -1;\n\n if (index === undefined || index === null) {\n index = -1;\n }\n left = index * this.btnwidth;\n if (skipAnimation) {\n handler.css('left', left + '%');\n } else {\n handler.animate({\n left: left + '%'\n }, 300);\n }\n }\n\n selectOptAtIndex($index) {\n if (!this.datasetItems.length) {\n return;\n }\n const opt = this.datasetItems[$index];\n this._modelByValue = opt.value;\n }\n\n // Triggered on selected the option from the switch.\n // set the index and highlight the default value. Invoke onchange event handler.\n selectOpt($event, $index, option) {\n $event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n if(this.multiple) {\n const keys = [];\n this.datasetItems[$index].selected = !this.datasetItems[$index].selected;\n forEach(this.datasetItems, (item: any) => {\n if(item.selected)\n keys.push(item.key);\n });\n this.modelByKey = keys;\n this.selectedItem = find(this.datasetItems, {selected: true});\n }\n else {\n this.modelByKey = option.key;\n if (!this.multiple && this.selectedItem && $index === findIndex(this.datasetItems, {key: this.selectedItem.key})) {\n if (this.datasetItems.length === 2) {\n $index = $index === 1 ? 0 : 1;\n } else {\n return;\n }\n }\n this.selectedItem = this.datasetItems[$index];\n this.updateHighlighter();\n }\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n $appDigest();\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'disabled' && !toBoolean(nv)) {\n this.nativeElement.removeAttribute(key);\n } else {\n if(key==='hint')\n {\n if (isUndefined(nv) || isNull(nv) || trim(nv) === '') {\n this.hint=[];\n }\n else if (!isArray(nv)) {\n this.hint= [nv];\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Nullify debounced function closure\n // This closure captures 'this' and prevents garbage collection\n this._debounceSetSelectedValue = null;\n\n // MEMORY LEAK FIX: Clear options array\n this.options = [];\n\n // MEMORY LEAK FIX: Clear selected item reference\n this.selectedItem = null;\n\n // MEMORY LEAK FIX: Clear hint array\n if (this.hint) {\n this.hint = [];\n }\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n @for (opt of datasetItems; track opt) {\n <a\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [title]=\"hint?hint:opt.key\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [title]=\"hint?.[opt.index-1]?hint[opt.index-1]:(hint?.[0]?hint[0]:(opt[displayfield]||opt.label))\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n @if (opt.dataObject && (opt.dataObject[iconclass] || opt.dataObject[iconurl]) && (!opt.selected || !checkediconclass)) {\n <wm-app-icon [iconclass]=\"opt.dataObject[iconclass] || opt['icon']\" [iconurl]=\"opt.dataObject[iconurl] || opt['icon']\"></wm-app-icon>\n }\n @if (opt.selected && (checkediconclass || checkediconurl)) {\n <wm-app-icon [iconclass]=\"checkediconclass\" [iconurl]=\"checkediconurl\"></wm-app-icon>\n }\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n }\n</div>\n@if (!multiple) {\n <span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n </span>\n}\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1044,7 +1044,7 @@
|
|
|
1044
1044
|
base.provideAs(InputTextComponent, i2.NG_VALUE_ACCESSOR, true),
|
|
1045
1045
|
base.provideAs(InputTextComponent, i2.NG_VALIDATORS, true),
|
|
1046
1046
|
base.provideAsWidgetRef(InputTextComponent)
|
|
1047
|
-
], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: i2.NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: i3.IMaskDirective }], usesInheritance: true, ngImport: i0__namespace, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass || leadingiconurl\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <wm-app-icon [iconclass]=\"leadingiconclass\" [iconurl]=\"leadingiconurl\"></wm-app-icon>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass || trailingiconurl\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <wm-app-icon [iconclass]=\"trailingiconclass\" [iconurl]=\"trailingiconurl\"></wm-app-icon>\n</button>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: i2.FormsModule }, { kind: "directive", type: i2__namespace.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__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2__namespace.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2__namespace.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: i3.IMaskModule }, { kind: "directive", type: i3__namespace.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
1047
|
+
], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: i2.NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: i3.IMaskDirective }], usesInheritance: true, ngImport: i0__namespace, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass || leadingiconurl\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <wm-app-icon [iconclass]=\"leadingiconclass\" [iconurl]=\"leadingiconurl\"></wm-app-icon>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass || trailingiconurl\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <wm-app-icon [iconclass]=\"trailingiconclass\" [iconurl]=\"trailingiconurl\"></wm-app-icon>\n</button>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: i2.FormsModule }, { kind: "directive", type: i2__namespace.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__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2__namespace.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2__namespace.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: i3.IMaskModule }, { kind: "directive", type: i3__namespace.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
1048
1048
|
}
|
|
1049
1049
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: InputTextComponent, decorators: [{
|
|
1050
1050
|
type: i0.Component,
|
|
@@ -1030,7 +1030,7 @@ class InputTextComponent extends BaseInput {
|
|
|
1030
1030
|
provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
|
|
1031
1031
|
provideAs(InputTextComponent, NG_VALIDATORS, true),
|
|
1032
1032
|
provideAsWidgetRef(InputTextComponent)
|
|
1033
|
-
], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: IMaskDirective }], usesInheritance: true, ngImport: i0, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass || leadingiconurl\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <wm-app-icon [iconclass]=\"leadingiconclass\" [iconurl]=\"leadingiconurl\"></wm-app-icon>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass || trailingiconurl\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <wm-app-icon [iconclass]=\"trailingiconclass\" [iconurl]=\"trailingiconurl\"></wm-app-icon>\n</button>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: IMaskModule }, { kind: "directive", type: i3.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
1033
|
+
], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: IMaskDirective }], usesInheritance: true, ngImport: i0, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass || leadingiconurl\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <wm-app-icon [iconclass]=\"leadingiconclass\" [iconurl]=\"leadingiconurl\"></wm-app-icon>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass || trailingiconurl\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <wm-app-icon [iconclass]=\"trailingiconclass\" [iconurl]=\"trailingiconurl\"></wm-app-icon>\n</button>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: IMaskModule }, { kind: "directive", type: i3.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
1034
1034
|
}
|
|
1035
1035
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: InputTextComponent, decorators: [{
|
|
1036
1036
|
type: Component,
|