UNPKG

ng-toggle-button

Version:
1 lines 22.6 kB
{"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) {\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) => {\n return typeof value === 'object'\n}\n\nexport const has = (object, key) => {\n return isObject(object) && object.hasOwnProperty(key)\n}\n\nexport const get = (object, key, defaultValue) => {\n return has(object, key) ? object[key] : defaultValue\n}\n\nexport const px = value => {\n return `${value}px`\n}\n\nexport const translate = (x, y) => {\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 <ng-container *ngIf=\"labels\">\n <span\n class=\"ng-toggle-switch-label ng-toggle-left\"\n [ngStyle]=\"labelLeftStyle\"\n *ngIf=\"toggled\"\n >\n {{labelChecked}}\n </span>\n <span\n class=\"ng-toggle-switch-label ng-toggle-right\"\n [ngStyle]=\"labelRightStyle\"\n *ngIf=\"!toggled\"\n >\n {{labelUnchecked}}\n </span>\n </ng-container>\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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"}