@servoy/jw-bootstrap-switch-ng2
Version:
Bootstrap Switch for Angular 18+
1 lines • 30.1 kB
Source Map (JSON)
{"version":3,"file":"servoy-jw-bootstrap-switch-ng2.mjs","sources":["../../../projects/jw-bootstrap-switch-ng2/src/lib/jw-bootstrap-switch-ng2.component.ts","../../../projects/jw-bootstrap-switch-ng2/src/lib/jw-bootstrap-switch-ng2.module.ts","../../../projects/jw-bootstrap-switch-ng2/src/public_api.ts","../../../projects/jw-bootstrap-switch-ng2/src/servoy-jw-bootstrap-switch-ng2.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n Input,\n Output,\n HostListener,\n AfterViewInit,\n forwardRef,\n SimpleChanges,\n EventEmitter,\n ViewChild,\n OnChanges,\n Renderer2,\n ChangeDetectorRef\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR\n} from '@angular/forms';\n\nconst callback = () => {\n};\n\nconst CUSTOM_INPUT: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => JwBootstrapSwitchNg2Component),\n multi: true\n};\n\n@Component({\n selector: 'bSwitch',\n providers: [CUSTOM_INPUT],\n template: `\n <div [ngClass]=\"getWrapperClasses()\" [style.width]=\"(handleWidth + labelWidth ) +'px'\">\n <div #container [ngClass]=\"baseClass + '-container'\"\n [style.width]=\"((handleWidth * 2) + labelWidth) +'px'\"\n [style.margin-left]=\"getLabelMarginLeft()\"><!--\n --><span #on [innerHTML]=\"(inverse) ? offText : onText\"\n [ngClass]=\"(inverse) ? getOffClasses() : getOnClasses()\"></span><!--\n --><span #label [ngClass]=\"baseClass + '-label'\"> {{ labelText }}</span><!--\n --><span #off [innerHTML]=\"(inverse) ? onText : offText\"\n [ngClass]=\"(inverse) ? getOnClasses() : getOffClasses()\"></span><!--\n --><input type=\"checkbox\" [(ngModel)]=\"value\" [readonly]=\"readonly\" [disabled]=\"disabled\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </div>\n </div>`,\n standalone: false\n})\n\nexport class JwBootstrapSwitchNg2Component implements AfterViewInit, ControlValueAccessor, OnChanges {\n // Defining Default Options for Switch\n public handleWidth: number = 0;\n public labelWidth: number = 0;\n public labelText: string = '';\n public inverse: boolean = false;\n public baseClass: string = 'bootstrap-switch';\n public onText: string = 'ON';\n public offText: string = 'OFF';\n public disabled: boolean = false;\n public readonly: boolean = false;\n\n private _focused: boolean = false;\n private _size: any = 'normal';\n private _animate: boolean = true;\n private _innerAnimate: boolean = true;\n private _indeterminate: boolean = false;\n private _onColor: string = 'primary';\n private _offColor: string = 'default';\n private _wrapperClass: string = 'wrapper';\n private _innerState: boolean = false;\n private _innerHandleWidth: string | number = 'auto';\n private _innerLabelWidth: string | number = 'auto';\n\n private _dragStart: any = null;\n private _dragEnd: any = null;\n\n private _onTouchedCallback: () => void = callback;\n private _onChangeCallback: (_: any) => void = callback;\n\n @Output() changeState: EventEmitter<any> = new EventEmitter<any>();\n\n\n // Defining DOM Elements\n @ViewChild('container') container: ElementRef;\n @ViewChild('on') on: ElementRef;\n @ViewChild('label') label: ElementRef;\n @ViewChild('off') off: ElementRef;\n\n private $on(): any {\n return this.on.nativeElement;\n }\n\n private $off(): any {\n return this.off.nativeElement;\n }\n\n private $label(): any {\n return this.label.nativeElement;\n }\n\n private $container(): any {\n return this.container.nativeElement;\n }\n\n /**\n * @description: Function to set the Classes for the Wrapper Div\n * @returns string\n */\n public getWrapperClasses() {\n let output: string = this.baseClass + ' ' + this.baseClass + '-' + this._wrapperClass;\n\n if (this._focused) {\n output += ' ' + this.baseClass + '-focused';\n }\n if (this.readonly) {\n output += ' ' + this.baseClass + '-readonly';\n }\n\n if (this._size != null) {\n output += ' ' + this.baseClass + '-' + this._size;\n }\n\n if (this._innerState) {\n output += ' ' + this.baseClass + '-on';\n } else {\n output += ' ' + this.baseClass + '-off';\n }\n\n if (this._animate) {\n output += ' ' + this.baseClass + '-animate';\n }\n\n if (this.disabled) {\n output += ' ' + this.baseClass + '-disabled';\n }\n\n if (this._indeterminate || this._innerState === null || typeof this._innerState === 'undefined') {\n output += ' ' + this.baseClass + '-indeterminate';\n }\n\n if (this.inverse) {\n output += ' ' + this.baseClass + '-inverse';\n }\n return output;\n }\n\n /**\n * @description Function to set the css classes for #on\n * @returns string\n */\n public getOnClasses(): string {\n let output: string = this.baseClass + '-handle-on';\n\n if (this._onColor) {\n output += ' ' + this.baseClass + '-' + this._onColor;\n }\n\n return output;\n }\n\n /**\n * @description Function to set the css classes for #off\n * @returns string\n */\n public getOffClasses(): string {\n let output: string = this.baseClass + '-handle-off';\n\n if (this._offColor) {\n output += ' ' + this.baseClass + '-' + this._offColor;\n }\n\n return output;\n }\n\n /**\n * @description Function set the marging of the #label when change the state\n * @returns string\n */\n public getLabelMarginLeft(): string {\n let width = (this.inverse) ? -this.handleWidth : 0;\n if (this._indeterminate || this._innerState === null || typeof this._innerState === 'undefined') {\n width = -(this.handleWidth / 2);\n } else if (this._dragEnd) {\n width = this._dragEnd;\n } else if (!this._innerState) {\n if (!this.inverse) {\n width = -this.handleWidth;\n } else {\n width = 0;\n }\n }\n return width + 'px';\n }\n\n constructor(private cd: ChangeDetectorRef, private render: Renderer2) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['setLabelText'] ||\n changes['setOnText'] ||\n changes['setHandleWidth'] ||\n changes['setLabelWidth'] ||\n changes['setOffText'] ||\n changes['setSize']) {\n this.calculateWith(true);\n }\n }\n\n ngAfterViewInit() {\n this.calculateWith();\n }\n\n @HostListener('click') onClick() {\n if (!this.disabled && !this.readonly && !this._dragEnd) {\n this.setStateValue(!this._innerState);\n } else if (this._dragEnd) {\n this._dragEnd = null;\n }\n }\n\n @HostListener('keydown', ['$event']) onKeyDown(e: KeyboardEvent) {\n if (!e.which || this.disabled || this.readonly) {\n return;\n }\n switch (e.which) {\n case 37:\n e.preventDefault();\n e.stopImmediatePropagation();\n this.setStateValue(false);\n break;\n case 39:\n e.preventDefault();\n e.stopImmediatePropagation();\n this.setStateValue(true);\n break;\n\n }\n }\n\n private onDragStart(e: any): void {\n if (e.target === this.$label()) {\n if (this._dragStart || this.disabled || this.readonly) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this._dragStart = (e.pageX || e.touches[0].pageX) - parseInt(this.$container().style.marginLeft, 10);\n if (this._animate) {\n this._animate = !this._animate;\n }\n }\n }\n\n private onDragMove(e: any): void {\n if (this._dragStart) {\n e.preventDefault();\n const difference = (e.pageX || e.touches[0].pageX) - this._dragStart;\n if (difference < -Number(this.handleWidth) || difference > 0) {\n return;\n }\n this._dragEnd = difference;\n }\n }\n\n private onDragEnd(e: Event, removeDragEnd: boolean = false) {\n if (this._dragStart) {\n e.preventDefault();\n e.stopPropagation();\n if (this._dragEnd) {\n const state = this._dragEnd > -(Number(this.handleWidth) / 2);\n this.setStateValue((this.inverse) ? !state : state);\n }\n this._dragStart = null;\n if (removeDragEnd) {\n this._dragEnd = null;\n }\n if (this._innerAnimate) {\n this._animate = true;\n }\n }\n }\n\n @HostListener('touchstart', ['$event']) onTouchStart(e: any) {\n this.onDragStart(e);\n }\n\n @HostListener('mousedown', ['$event']) onMouseDown(e: any) {\n this.onDragStart(e);\n }\n\n @HostListener('touchmove', ['$event']) onTouchMove(e: any) {\n this.onDragMove(e);\n }\n\n @HostListener('mousemove', ['$event']) onMouseMove(e: any) {\n this.onDragMove(e);\n }\n\n @HostListener('mouseup', ['$event']) onMouseUp(e: Event) {\n this.onDragEnd(e);\n }\n\n @HostListener('touchend', ['$event']) onTouchEnd(e: Event) {\n this.onDragEnd(e, true);\n }\n\n @HostListener('mouseleave', ['$event']) onMouseLeave(e: Event) {\n this.onDragEnd(e, true);\n }\n\n onFocus() {\n this._focused = true;\n }\n\n onBlur() {\n this._focused = false;\n this._onTouchedCallback();\n }\n\n /**\n * @description Function to make recalculate the size of the elements when options change\n * @param disableAnimation\n */\n private calculateWith(disableAnimation: boolean = false): void {\n if (disableAnimation && this._innerAnimate) {\n this._animate = false;\n }\n setTimeout(() => {\n this.render.setStyle(this.$on(), 'width', 'auto');\n this.render.setStyle(this.$off(), 'width', 'auto');\n this.render.setStyle(this.$label(), 'width', 'auto');\n\n const width = (this._innerHandleWidth === 'auto')\n ? Math.max(this.$on().offsetWidth, this.$off().offsetWidth)\n : this._innerHandleWidth;\n\n if (this.$label().offsetWidth < width) {\n if (this._innerLabelWidth === 'auto') {\n this.labelWidth = Number(width);\n } else {\n this.labelWidth = Number(this._innerLabelWidth);\n }\n } else {\n if (this._innerLabelWidth === 'auto') {\n this.labelWidth = this.$label().offsetWidth;\n } else {\n this.labelWidth = Number(this._innerLabelWidth);\n }\n }\n\n this.handleWidth = Number(width);\n\n this.render.setStyle(this.$label(), 'width', this.labelWidth + 'px');\n this.render.setStyle(this.$on(), 'width', this.handleWidth + 'px');\n this.render.setStyle(this.$off(), 'width', this.handleWidth + 'px');\n setTimeout(() => {\n if (disableAnimation && this._innerAnimate) {\n this._animate = true;\n }\n });\n this.cd.markForCheck();\n });\n }\n\n // Functions to set inputs and the private variables of the Switch\n @Input('switch-base-class') set setBaseClass(value: string) {\n this.baseClass = value;\n }\n\n @Input('switch-wrapper-class') set setWrapperClass(value: string) {\n this._wrapperClass = value;\n }\n\n @Input('switch-off-text') set setOffText(value: string) {\n this.offText = (value) ? value : 'OFF';\n }\n\n @Input('switch-label-text') set setLabelText(value: string) {\n this.labelText = value;\n }\n\n @Input('switch-on-text') set setOnText(value: string) {\n this.onText = (value) ? value : 'ON';\n }\n\n @Input('switch-size') set setSize(value: string) {\n if (value) {\n this._size = value;\n }\n }\n\n @Input('switch-animate') set setAnimate(value: boolean) {\n this._animate = value;\n this._innerAnimate = value;\n }\n\n @Input('switch-on-color') set setOnColor(value: string) {\n if (value) {\n this._onColor = value;\n }\n }\n\n @Input('switch-off-color') set setOffColor(value: string) {\n if (value) {\n this._offColor = value;\n }\n }\n\n @Input('switch-disabled') set setDisabled(value: boolean) {\n this.disabled = value;\n }\n\n @Input('switch-readonly') set setReadOnly(value: boolean) {\n this.readonly = value;\n }\n\n @Input('switch-indeterminate') set setIndeterminate(value: boolean) {\n this._indeterminate = value;\n }\n\n @Input('switch-inverse') set setInverse(value: boolean) {\n this.inverse = value;\n }\n\n @Input('switch-handle-width') set setHandleWidth(value: number | 'auto') {\n this._innerHandleWidth = (typeof (value) !== 'undefined') ? value : 'auto';\n }\n\n @Input('switch-label-width') set setLabelWidth(value: number | 'auto') {\n this._innerLabelWidth = (typeof (value) !== 'undefined') ? value : 'auto';\n }\n\n get value(): boolean {\n return this._innerState;\n }\n\n set value(v: boolean) {\n if (v === null || typeof v === 'undefined') {\n this._indeterminate = true;\n }\n this.setStateValue(v);\n }\n\n private setStateValue(v: boolean): void {\n if (v !== this._innerState) {\n\n this._onChangeCallback(v);\n\n this.changeState.emit({\n previousValue: this._innerState,\n currentValue: v\n });\n this._innerState = v;\n }\n }\n\n writeValue(value: boolean) {\n if (value !== this._innerState) {\n this._innerState = value;\n this.cd.markForCheck();\n }\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n registerOnChange(fn: any) {\n this._onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this._onTouchedCallback = fn;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { JwBootstrapSwitchNg2Component } from './jw-bootstrap-switch-ng2.component';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule\n ],\n declarations: [JwBootstrapSwitchNg2Component],\n exports: [JwBootstrapSwitchNg2Component]\n})\nexport class JwBootstrapSwitchNg2Module { }\n","/*\n * Public API Surface of jw-bootstrap-switch-ng2\n */\n\nexport * from './lib/jw-bootstrap-switch-ng2.component';\nexport * from './lib/jw-bootstrap-switch-ng2.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}