ng-toggle-button
Version:
Angular toggle button switch
1 lines • 23.6 kB
Source Map (JSON)
{"version":3,"file":"ng-toggle-button.mjs","sources":["../../../projects/ng-toggle/src/lib/ng-toggle.config.ts","../../../projects/ng-toggle/src/lib/ng-toggle.component.ts","../../../projects/ng-toggle/src/lib/ng-toggle.component.html","../../../projects/ng-toggle/src/lib/ng-toggle.module.ts","../../../projects/ng-toggle/src/public-api.ts","../../../projects/ng-toggle/src/ng-toggle-button.ts"],"sourcesContent":["import { toggleConfig, valueConfig } from \"./ng-toggle.component\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn:'root'\n})\nexport class NgToggleConfig {\n value?: any;\n name?: string;\n disabled?: boolean;\n height?: number;\n width?: number;\n margin?: number;\n fontSize?: number;\n speed?: number;\n color?: string | toggleConfig;\n switchColor?: string | toggleConfig;\n labels?: boolean | toggleConfig;\n values?: valueConfig;\n fontColor?: string | toggleConfig;\n textAlign?: string | toggleConfig;\n}\n","import { Component, OnInit, Input, forwardRef, Output, EventEmitter, OnChanges, SimpleChanges, ElementRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgToggleConfig } from './ng-toggle.config';\nimport { CommonModule } from '@angular/common';\n\nconst DEFAULT_COLOR_CHECKED = '#0099CC'\nconst DEFAULT_COLOR_UNCHECKED = '#e0e0e0'\nconst DEFAULT_LABEL_CHECKED = ''\nconst DEFAULT_LABEL_UNCHECKED = ''\nconst DEFAULT_SWITCH_COLOR = '#fff'\nconst DISABLED_COLOR = '#dbdbdb'\nconst DISABLED_BUTTON_COLOR = 'silver'\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'ng-toggle',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './ng-toggle.component.html',\n styleUrls: ['./ng-toggle.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgToggleComponent),\n multi: true\n }\n ]\n})\nexport class NgToggleComponent implements OnInit, ControlValueAccessor, OnChanges {\n\n @Input() value: any = this.config.value || true\n @Input() name: string = this.config.name || ''\n @Input() disabled: boolean = this.config.disabled || false\n\n @Input() height: number = this.config.height || 25\n @Input() width: number = this.config.width || 45\n @Input() margin: number = this.config.margin || 2\n @Input() fontSize?: number = this.config.fontSize || undefined\n @Input() speed: number = this.config.speed || 300\n @Input() color?: string | toggleConfig = this.config.color\n @Input() switchColor?: string | toggleConfig = this.config.switchColor\n @Input() labels: boolean | toggleConfig = this.config.labels || true\n @Input() fontColor?: string | toggleConfig = this.config.fontColor || undefined\n @Input() values: valueConfig = this.config.values || {checked: true, unchecked: false}\n @Input() textAlign: string | toggleConfig = this.config.textAlign || {\n checked: 'left',\n unchecked: 'right',\n }\n @Input() id: string = ''\n @Input('aria-label') ariaLabel: string | null = null;\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n @Input('aria-describedby') ariaDescribedby!: string;\n cssColors: boolean = false\n\n @Output() change = new EventEmitter()\n @Output() valueChange = new EventEmitter()\n toggled!: boolean\n focused!: boolean;\n private _uniqueId: string;\n\n constructor(\n private config: NgToggleConfig,\n private _elementRef: ElementRef<HTMLElement>,\n ) {\n this._uniqueId = 'ng-toggle-'+(++nextUniqueId);\n this.id = this.id || this._uniqueId\n this.ariaLabel = this.ariaLabel || this.name || this.id\n }\n\n ngOnInit() {\n this.setToogle()\n }\n\n onChange = (_:any) => { }\n onTouch = () => { }\n\n onInput(value: boolean) {\n this.value = value;\n this.onTouch();\n this.onChange(this.value);\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.setToogle();\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n setToogle() {\n const value = this.value\n let index = Object.values(this.values).findIndex(el => el == value)\n if(index > -1)\n this.toggled = Object.keys(this.values)[index] == 'checked' ? true : false\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (const propName in changes) {\n const chng = changes[propName];\n if(propName == 'value')\n this.writeValue(chng.currentValue)\n }\n }\n\n get coreStyle () {\n return {\n width: px(this.width),\n height: px(this.height),\n transition: `all ${this.speed}ms`,\n backgroundColor: this.cssColors\n ? null\n : (this.disabled ? this.colorDisabled : this.colorCurrent),\n borderRadius: px(Math.round(this.height / 2))\n }\n }\n get buttonRadius () {\n const radius = this.height - this.margin * 2;\n return radius > 0 ? radius : 0;\n }\n get distance () {\n return px(this.width - this.height + this.margin)\n }\n get buttonStyle () {\n const transition = `all ${this.speed}ms`\n const margin = px(this.margin)\n const transform = this.toggled\n ? translate(this.distance, margin)\n : translate(margin, margin)\n let background = this.switchColor\n ? this.switchColorCurrent\n : null\n background = this.disabled ? this.switchColorDisabled : background\n return {\n width: px(this.buttonRadius),\n height: px(this.buttonRadius),\n transition,\n transform,\n background,\n }\n }\n get labelStyle () {\n return {\n lineHeight: px(this.height),\n fontSize: this.fontSize ? px(this.fontSize) : null,\n color: this.fontColor ? this.fontColorCurrent : null,\n width: px(this.width - this.buttonRadius - this.margin),\n }\n }\n get labelLeftStyle () {\n return {\n ...this.labelStyle,\n textAlign: (this.textAlign as toggleConfig).checked || this.textAlign\n }\n }\n get labelRightStyle () {\n return {\n ...this.labelStyle,\n textAlign: (this.textAlign as toggleConfig).unchecked || this.textAlign\n }\n }\n\n get colorChecked () {\n let { color } = this\n if (!isObject(color)) {\n return color || DEFAULT_COLOR_CHECKED\n }\n return get(color, 'checked', DEFAULT_COLOR_CHECKED)\n }\n get colorUnchecked () {\n return get(this.color, 'unchecked', DEFAULT_COLOR_UNCHECKED)\n }\n get colorDisabled () {\n return get(this.color, 'disabled', DISABLED_COLOR)\n }\n get colorCurrent () {\n return this.toggled\n ? this.colorChecked\n : this.colorUnchecked\n }\n get labelChecked () {\n return get(this.labels, 'checked', DEFAULT_LABEL_CHECKED)\n }\n get labelUnchecked () {\n return get(this.labels, 'unchecked', DEFAULT_LABEL_UNCHECKED)\n }\n get switchColorChecked () {\n return get(this.switchColor, 'checked', DEFAULT_SWITCH_COLOR)\n }\n get switchColorUnchecked () {\n return get(this.switchColor, 'unchecked', DEFAULT_SWITCH_COLOR)\n }\n get switchColorDisabled(){\n return get(this.switchColor, 'disabled', DISABLED_BUTTON_COLOR)\n }\n\n get switchColorCurrent () {\n if (!isObject(this.switchColor)) {\n return this.switchColor || DEFAULT_SWITCH_COLOR\n }\n return this.toggled\n ? this.switchColorChecked\n : this.switchColorUnchecked\n }\n\n get fontColorChecked () {\n return get(this.fontColor, 'checked', DEFAULT_SWITCH_COLOR)\n }\n get fontColorUnchecked () {\n return get(this.fontColor, 'unchecked', DEFAULT_SWITCH_COLOR)\n }\n\n get fontColorDisabled(){\n return get(this.fontColor, 'disabled', DEFAULT_SWITCH_COLOR)\n }\n get fontColorCurrent () {\n if (!isObject(this.fontColor)) {\n return this.fontColor || DEFAULT_SWITCH_COLOR\n }\n if(this.disabled){\n return this.fontColorDisabled\n }\n return this.toggled\n ? this.fontColorChecked\n : this.fontColorUnchecked\n }\n\n get label() {\n if (this.ariaLabelledby) {\n return this.ariaLabelledby;\n }\n return this.ariaLabel ? null : `${this._uniqueId}-label`;\n }\n\n toggle(_event: any) {\n const toggled = !this.toggled;\n this.toggled = toggled;\n\n this.value = this.getValue(toggled)\n this.onTouch();\n this.onChange(this.value);\n this.valueChange.emit(this.value)\n }\n\n getValue(key: boolean) {\n return key === true ? this.values['checked'] : this.values['unchecked']\n }\n\n onFocus(event: FocusEvent) {\n if (!this.focused && event.relatedTarget) {\n this.focused = true;\n }\n }\n\n onFocusout(event: FocusEvent) {\n if (!this._elementRef.nativeElement.contains(event.relatedTarget as Element)) {\n this.focused = false;\n this.onTouch();\n }\n }\n}\n\nexport const isObject = (value: any) => {\n return typeof value === 'object'\n}\n\nexport const has = (object: Record<string, any>, key: any) => {\n return isObject(object) && object.hasOwnProperty(key)\n}\n\nexport const get = (object: any, key: string, defaultValue: string) => {\n return has(object, key) ? object[key] : defaultValue\n}\n\nexport const px = (value: number) => {\n return `${value}px`\n}\n\nexport const translate = (x: string, y: string) => {\n return `translate(${x}, ${y})`\n}\n\nexport type toggleConfig = {\n checked: string;\n unchecked: string;\n disabled?: string;\n};\n\nexport type valueConfig = {\n checked: any;\n unchecked: any;\n};\n","<label class=\"ng-toggle-switch\" [for]=\"id\" [attr.id]=\"label\">\n <input\n type=\"checkbox\"\n class=\"ng-toggle-switch-input\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n (change)=\"toggle($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onFocusout($event)\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"label\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"toggled\"\n role=\"checkbox\"\n >\n <div\n class=\"ng-toggle-switch-core\"\n [ngClass]=\"{'ng-toggle-focused': focused}\"\n [ngStyle]=\"coreStyle\"\n >\n <div\n class=\"ng-toggle-switch-button\"\n [ngStyle]=\"buttonStyle\">\n </div>\n </div>\n @if (labels) {\n @if (toggled) {\n <span\n class=\"ng-toggle-switch-label ng-toggle-left\"\n [ngStyle]=\"labelLeftStyle\"\n >\n {{labelChecked}}\n </span>\n } @else {\n <span\n class=\"ng-toggle-switch-label ng-toggle-right\"\n [ngStyle]=\"labelRightStyle\"\n >\n {{labelUnchecked}}\n </span>\n }\n }\n</label>","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgToggleComponent } from './ng-toggle.component';\nimport { NgToggleConfig } from './ng-toggle.config';\n\n@NgModule({\n imports: [NgToggleComponent],\n exports: [NgToggleComponent],\n providers: [NgToggleConfig]\n})\nexport class NgToggleModule {\n static forRoot(config: NgToggleConfig = {}): ModuleWithProviders<NgToggleModule> {\n return {\n ngModule: NgToggleModule,\n providers: [\n {\n provide: NgToggleConfig,\n useValue: config\n }\n ]\n }\n }\n}\n","/*\n * Public API Surface of ng-toogle\n */\n\nexport * from './lib/ng-toggle.module';\nexport * from './lib/ng-toggle.component';\nexport * from './lib/ng-toggle.config';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgToggleConfig"],"mappings":"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"}