{"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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"}