@alyle/ui
Version:
Minimal Design, a set of components for Angular
1 lines • 29.1 kB
Source Map (JSON)
{"version":3,"file":"alyle-ui-checkbox.mjs","sources":["../../../lib/checkbox/checkbox-config.ts","../../../lib/checkbox/checkbox.ts","../../../lib/checkbox/checkbox.html","../../../lib/checkbox/checkbox.module.ts","../../../lib/checkbox/alyle-ui-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/** Default `ly-checkbox` options that can be overridden. */\nexport interface LyCheckboxDefaultOptions {\n /** Default theme color palette to be used for checkboxes. */\n color?: string;\n}\n\n/** Injection token to be used to override the default options for `ly-checkbox`. */\nexport const LY_CHECKBOX_DEFAULT_OPTIONS = new InjectionToken<LyCheckboxDefaultOptions>(\n 'ly-checkbox-default-options',\n {\n providedIn: 'root',\n factory: LY_CHECKBOX_DEFAULT_OPTIONS_FACTORY,\n },\n);\n\n/** @docs-private */\nexport function LY_CHECKBOX_DEFAULT_OPTIONS_FACTORY(): LyCheckboxDefaultOptions {\n return {\n color: 'accent'\n };\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n LyCoreStyles as LyCommonStyles,\n LyFocusState,\n LyTheme2,\n mixinDisableRipple,\n ThemeVariables,\n ThemeRef,\n st2c,\n StyleRenderer,\n LY_COMMON_STYLES,\n StyleCollection,\n LyClasses,\n StyleTemplate,\n Style,\n WithStyles } from '@alyle/ui';\nimport { Color } from '@alyle/ui/color';\nimport { Platform } from '@angular/cdk/platform';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { LyCheckboxDefaultOptions, LY_CHECKBOX_DEFAULT_OPTIONS, LY_CHECKBOX_DEFAULT_OPTIONS_FACTORY } from './checkbox-config';\n\nconst STYLE_PRIORITY = -2;\nconst DEFAULT_DISABLE_RIPPLE = false;\n// Default checkbox configuration.\nconst defaults = LY_CHECKBOX_DEFAULT_OPTIONS_FACTORY();\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport const enum CheckboxState {\n /** The initial state of the component before any user interaction. */\n Init = 'Init',\n /** The state representing the component when it's becoming checked. */\n Checked = 'Checked',\n /** The state representing the component when it's becoming unchecked. */\n Unchecked = 'Unchecked',\n /** The state representing the component when it's becoming indeterminate. */\n Indeterminate = 'Indeterminate',\n}\n\nexport interface LyCheckboxTheme {\n /** Styles for Checkbox Component. */\n root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);\n /** Styles that apply when a color is set. */\n color?: (classes: LyClasses<typeof STYLES>, color: Color) => StyleTemplate;\n}\n\nexport interface LyCheckboxVariables {\n checkbox?: LyCheckboxTheme;\n}\n\nexport const STYLES = (theme: ThemeVariables & LyCheckboxVariables, ref: ThemeRef) => {\n const checkbox = ref.selectorsOf(STYLES);\n const { after } = theme;\n return {\n $name: LyCheckbox.и,\n $priority: STYLE_PRIORITY,\n root: ( ) => (_className: string) => `${_className}{display:inline-flex;-webkit-tap-highlight-color:transparent;}${_className}${checkbox.disabled}:not(${checkbox.checked}) ${checkbox.icon}:before{color:${theme.disabled.contrast};}${_className}${checkbox.disabled}{pointer-events:none;}${_className}${checkbox.disabled} ${checkbox.layout}{color:${theme.text.secondary};}${_className}${checkbox.disabled}${checkbox.indeterminate} ${checkbox.icon}:before,${_className}${checkbox.disabled}${checkbox.checked} ${checkbox.icon}:before{border:0;background:${theme.disabled.contrast};}${_className}${checkbox.onFocusByKeyboard} ${checkbox.icon}::after{box-shadow:0 0 0 12px;opacity:.13;border-radius:50%;}${_className}:not(${checkbox.checked}) ${checkbox.icon}{color:${theme.text.secondary};}${_className}${checkbox.checked} ${checkbox.icon}::before,${_className}${checkbox.indeterminate} ${checkbox.icon}::before{background:currentColor;-webkit-print-color-adjust:exact;color-adjust:exact;}${_className}${checkbox.checked} ${checkbox.icon} polyline,${_className}${checkbox.indeterminate} ${checkbox.icon} polyline{stroke-dashoffset:0;}${st2c((\n (theme.checkbox\n && theme.checkbox.root\n && (theme.checkbox.root instanceof StyleCollection\n ? theme.checkbox.root.setTransformer(fn => fn(checkbox))\n : theme.checkbox.root(checkbox))\n )), `${_className}`)}`,\n layout: () => (_className: string) => `${_className}{display:inline-flex;align-items:baseline;cursor:pointer;user-select:none;white-space:nowrap;}${_className} ${checkbox.label}{user-select:auto;}`,\n icon: (_className: string) => `${_className}{position:relative;margin:auto;margin-${after}:8px;width:16px;height:16px;user-select:none;}${_className}::before,${_className}::after{content:'';}${st2c((LY_COMMON_STYLES.fill), `${_className}::before,${_className}::after`)}${_className}::before,${_className}::after{width:16px;height:16px;margin:auto;box-sizing:border-box;}${_className}::before{border:solid 2px;border-radius:2px;}${_className} svg{position:absolute;left:0;}${_className} svg polyline{fill:none;stroke:${theme.background.primary.default};stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18px;stroke-dashoffset:18px;}`,\n label: (_className: string) => `${_className}{line-height:24px;}`,\n unchecked: null,\n checked: null,\n indeterminate: null,\n input: LY_COMMON_STYLES.visuallyHidden,\n onFocusByKeyboard: null,\n disabled: ( ) => (_className: string) => `${_className} ${checkbox.input}{visibility:hidden;}${_className} ${checkbox.icon}{color:inherit !important;}`,\n animations: ( ) => (_className: string) => `${_className} ${checkbox.icon} svg polyline{transition:all ${theme.animations.durations.complex}ms ${theme.animations.curves.deceleration};transform:rotate(0deg);transform-origin:center;}`,\n indeterminateToUnchecked: null,\n indeterminateToChecked: null,\n checkedToUnChecked: null,\n checkedToIndeterminate: null,\n uncheckedToChecked: null,\n uncheckedToIndeterminate: null,\n };\n};\n\n/**\n * This allows it to support [(ngModel)].\n * @ignore\n */\nexport const LY_CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => LyCheckbox),\n multi: true\n};\n\n/** Change event object emitted by LyCheckbox. */\nexport class LyCheckboxChange {\n /** The source LyCheckbox of the event. */\n source: LyCheckbox;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\n/** @docs-private */\nexport class LyCheckboxBase {\n constructor(\n public _theme: LyTheme2,\n public _ngZone: NgZone,\n public _platform: Platform\n ) { }\n}\n\n/** @docs-private */\nexport const LyCheckboxMixinBase = mixinDisableRipple(LyCheckboxBase);\n\n/**\n * @dynamic\n */\n@Component({\n selector: 'ly-checkbox',\n templateUrl: 'checkbox.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n StyleRenderer,\n LY_CHECKBOX_CONTROL_VALUE_ACCESSOR,\n ],\n exportAs: 'lyCheckbox',\n inputs: [\n 'disableRipple'\n ],\n standalone: false\n})\nexport class LyCheckbox extends LyCheckboxMixinBase implements WithStyles,\n ControlValueAccessor, OnInit, AfterViewInit, OnDestroy {\n /** @ignore */\n static readonly и = 'LyCheckbox';\n /**\n * styles\n * @ignore\n */\n readonly classes = this._theme.renderStyleSheet(STYLES);\n protected _color: string;\n protected _colorClass: string;\n protected _checked: boolean;\n protected _disabled;\n private _onFocusByKeyboardState: boolean;\n private _currentCheckState: CheckboxState = CheckboxState.Init;\n private _currentCheckStateClass: string;\n\n readonly ;\n\n @ViewChild('innerContainer') _innerContainer: ElementRef<HTMLDivElement>;\n\n /** The value attribute of the native input element */\n @Input() value: string;\n\n @Input() name: string | null = null;\n\n /** Checkbox color when checked */\n @Input()\n @Style<string | null>(\n val => (\n theme: ThemeVariables & LyCheckboxVariables,\n ref: ThemeRef\n ) => {\n const checkbox = ref.selectorsOf(STYLES);\n const color = theme.colorOf(val);\n if (theme.checkbox && theme.checkbox.color) {\n return theme.checkbox.color(checkbox, color);\n }\n throw new Error(`${LyCheckbox.и}: styles theme.checkbox.color is undefined`);\n }\n , STYLE_PRIORITY)\n color: string | null;\n\n /**\n * Whether the checkbox is checked.\n */\n @Input()\n get checked(): boolean { return this._checked; }\n set checked(val: BooleanInput) {\n const newVal = coerceBooleanProperty(val);\n if (newVal !== this.checked) {\n this._checked = newVal;\n this._updateCheckedState();\n this._markForCheck();\n }\n }\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n set indeterminate(value: BooleanInput) {\n const newVal = coerceBooleanProperty(value);\n if (newVal !== this.indeterminate) {\n this._indeterminate = newVal;\n this.indeterminateChange.emit(this._indeterminate);\n this._updateCheckboxState();\n this._markForCheck();\n }\n }\n private _indeterminate = false;\n\n @Input()\n get required() {\n return this._required;\n }\n set required(val: BooleanInput) {\n this._required = coerceBooleanProperty(val);\n }\n private _required: boolean;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(val: BooleanInput) {\n const newVal = coerceBooleanProperty(val);\n if (newVal !== this.disabled) {\n this._disabled = newVal;\n if (newVal) {\n this._renderer.addClass(this._el.nativeElement, this.classes.disabled);\n } else {\n this._renderer.removeClass(this._el.nativeElement, this.classes.disabled);\n }\n this._markForCheck();\n }\n }\n\n /** Event emitted when the checkbox's `checked` value changes. */\n @Output() readonly change: EventEmitter<LyCheckboxChange> = new EventEmitter<LyCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input') _inputElement: ElementRef<HTMLInputElement>;\n\n _onTouched: () => any = () => {};\n private _controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n constructor(\n public _commonStyles: LyCommonStyles,\n _theme: LyTheme2,\n private _el: ElementRef,\n private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef,\n private _focusState: LyFocusState,\n readonly sRenderer: StyleRenderer,\n ngZone: NgZone,\n platform: Platform,\n @Inject(LY_CHECKBOX_DEFAULT_OPTIONS)\n private _options?: LyCheckboxDefaultOptions,\n ) {\n super(_theme, ngZone, platform);\n this._options = this._options || defaults;\n this._triggerElement = this._el;\n this._rippleConfig = {\n centered: true,\n radius: 'containerSize',\n percentageToIncrease: 150\n };\n }\n\n ngOnInit() {\n this._renderer.addClass(this._el.nativeElement, this.classes.root);\n // set default color\n if (!this.color) {\n this.color = this._options?.color || defaults.color!;\n }\n }\n\n ngAfterViewInit() {\n const focusState = this._focusState.listen(this._inputElement, this._el);\n if (focusState) {\n focusState.subscribe((event) => {\n if (this._onFocusByKeyboardState === true) {\n this._renderer.removeClass(this._el.nativeElement, this.classes.onFocusByKeyboard);\n this._onFocusByKeyboardState = false;\n }\n if (event === 'keyboard') {\n this._onFocusByKeyboardState = true;\n this._renderer.addClass(this._el.nativeElement, this.classes.onFocusByKeyboard);\n }\n this._onTouched();\n });\n }\n\n this._rippleContainer = this._innerContainer;\n\n // set default disable ripple\n if (this.disableRipple == null) {\n this.disableRipple = DEFAULT_DISABLE_RIPPLE;\n }\n this._renderer.addClass(this._el.nativeElement, this.classes.animations);\n }\n\n ngOnDestroy() {\n this._focusState.unlisten(this._el);\n this._removeRippleEvents();\n }\n\n /** @docs-private */\n writeValue(value: any): void {\n this.checked = !!value;\n }\n\n /** @docs-private */\n registerOnChange(fn: (value: any) => void): void {\n this._controlValueAccessorChangeFn = fn;\n }\n\n /** @docs-private */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /** @docs-private */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle() {\n this.checked = !this.checked;\n this._controlValueAccessorChangeFn(this.checked);\n }\n\n _onInputClick(event: Event) {\n event.stopPropagation();\n if (!this.disabled) {\n if (this.indeterminate) {\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this._updateCheckboxState();\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n this.checked = !this.checked;\n this._emitChangeEvent();\n }\n this._markForCheck();\n }\n\n _onChange(event: Event) {\n event.stopPropagation();\n }\n\n private _emitChangeEvent() {\n this._controlValueAccessorChangeFn(this.checked);\n this.change.emit({\n source: this,\n checked: this.checked\n });\n }\n\n private _updateCheckedState() {\n this.sRenderer.toggleClass(this.classes.checked, !!this.checked);\n this.sRenderer.toggleClass(this.classes.unchecked, !this.checked);\n }\n\n private _updateCheckboxState() {\n const oldState = this._currentCheckState;\n const newState = this.indeterminate\n ? CheckboxState.Indeterminate\n : this.checked\n ? CheckboxState.Checked\n : CheckboxState.Unchecked;\n if (oldState === newState) {\n return;\n }\n this.sRenderer.toggleClass(this.classes.indeterminate, newState === CheckboxState.Indeterminate);\n\n let newClass: null | string = null;\n switch (oldState) {\n case CheckboxState.Init:\n break;\n case CheckboxState.Indeterminate:\n newClass = newState === CheckboxState.Checked\n ? this.classes.indeterminateToChecked\n : this.classes.indeterminateToUnchecked;\n break;\n case CheckboxState.Checked:\n newClass = newState === CheckboxState.Indeterminate\n ? this.classes.checkedToIndeterminate\n : this.classes.checkedToUnChecked;\n break;\n case CheckboxState.Unchecked:\n newClass = newState === CheckboxState.Indeterminate\n ? this.classes.uncheckedToIndeterminate\n : this.classes.uncheckedToChecked;\n break;\n }\n if (newClass) {\n this.sRenderer.updateClass(newClass, this._currentCheckStateClass);\n this._currentCheckStateClass = newClass;\n const animationClass = this._currentCheckStateClass;\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.sRenderer.removeClass(animationClass);\n }, 1000);\n });\n }\n this._currentCheckState = newState;\n }\n\n private _markForCheck() {\n this._changeDetectorRef.markForCheck();\n }\n\n}\n","\n<label [className]=\"classes.layout\">\n <input #input\n [className]=\"classes.input\"\n type=\"checkbox\"\n [checked]=\"checked\"\n [required]=\"required\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n [disabled]=\"disabled\"\n (click)=\"_onInputClick($event)\"\n (change)=\"_onChange($event)\"\n >\n <div #innerContainer [className]=\"classes.icon\">\n <svg width=\"16px\" height=\"16px\" viewBox=\"0 0 20 20\">\n <polyline [attr.points]=\"indeterminate ? '5 10 10 10 15 10' : '4 11 8 15 16 6'\"></polyline>\n </svg>\n </div>\n <div #label [class]=\"classes.label\">\n <ng-content></ng-content>\n </div>\n</label>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LyCommonModule } from '@alyle/ui';\n\nimport { LyCheckbox } from './checkbox';\n\n@NgModule({\n declarations: [\n LyCheckbox\n ],\n imports: [\n CommonModule,\n LyCommonModule\n ],\n exports: [\n LyCommonModule,\n LyCheckbox\n ]\n})\nexport class LyCheckboxModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}