{"version":3,"file":"ng-zorro-antd-segmented.mjs","sources":["../../components/segmented/segmented.service.ts","../../components/segmented/segmented-item.component.ts","../../components/segmented/types.ts","../../components/segmented/segmented.component.ts","../../components/segmented/segmented.module.ts","../../components/segmented/public-api.ts","../../components/segmented/ng-zorro-antd-segmented.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { _IdGenerator } from '@angular/cdk/a11y';\nimport { computed, DestroyRef, inject, Injectable, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';\n\nimport { isAnimationEnabled } from 'ng-zorro-antd/core/animation';\n\n@Injectable()\nexport class NzSegmentedService {\n  private readonly defaultName = inject(_IdGenerator).getId('segmented_');\n\n  readonly name = signal<string | null>(this.defaultName);\n  readonly selected$ = new ReplaySubject<string | number>(1);\n  readonly activated$ = new ReplaySubject<HTMLElement>(1);\n  readonly change$ = new Subject<string | number>();\n  readonly disabled$ = new ReplaySubject<boolean>(1);\n  readonly animating$ = new BehaviorSubject<boolean>(false);\n  readonly keydown$ = new Subject<KeyboardEvent>();\n\n  private readonly _animating = toSignal(this.animating$, { initialValue: false });\n  readonly animationEnabled = isAnimationEnabled(() => true);\n  readonly showThumb = computed(() => this.animationEnabled() && this._animating());\n\n  constructor() {\n    inject(DestroyRef).onDestroy(() => {\n      this.selected$.complete();\n      this.activated$.complete();\n      this.change$.complete();\n      this.disabled$.complete();\n      this.animating$.complete();\n      this.keydown$.complete();\n    });\n  }\n\n  setName(name: string | null | undefined): void {\n    this.name.set(typeof name === 'undefined' ? this.defaultName : name);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  DestroyRef,\n  ElementRef,\n  inject,\n  input,\n  OnInit,\n  signal,\n  TemplateRef,\n  viewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { of } from 'rxjs';\nimport { filter, map, switchMap, take, tap } from 'rxjs/operators';\n\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzSegmentedService } from './segmented.service';\n\n@Component({\n  selector: 'label[nz-segmented-item],label[nzSegmentedItem]',\n  exportAs: 'nzSegmentedItem',\n  imports: [NzIconModule, NgTemplateOutlet],\n  template: `\n    <input\n      class=\"ant-segmented-item-input\"\n      type=\"radio\"\n      [disabled]=\"finalDisabled()\"\n      [checked]=\"isChecked()\"\n      [attr.name]=\"name()\"\n      (click)=\"$event.stopPropagation()\"\n    />\n    <div class=\"ant-segmented-item-label\" [attr.aria-selected]=\"isChecked()\">\n      @if (nzIcon(); as icon) {\n        <span class=\"ant-segmented-item-icon\">\n          <nz-icon [nzType]=\"icon\" />\n        </span>\n        @if (hasLabel()) {\n          <span>\n            <ng-template [ngTemplateOutlet]=\"content\" />\n          </span>\n        }\n      } @else {\n        <ng-template [ngTemplateOutlet]=\"content\" />\n      }\n    </div>\n\n    <ng-template #content>\n      <ng-content />\n    </ng-template>\n  `,\n  host: {\n    class: 'ant-segmented-item',\n    '[class.ant-segmented-item-selected]': '!showThumb() && isChecked()',\n    '[class.ant-segmented-item-disabled]': 'finalDisabled()',\n    '(click)': 'handleClick()',\n    '(keydown)': 'handleKeydown($event)'\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None\n})\nexport class NzSegmentedItemComponent implements OnInit {\n  private readonly service = inject(NzSegmentedService);\n  private readonly elementRef = inject(ElementRef);\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly templateRef = viewChild.required('content', { read: TemplateRef });\n\n  readonly nzValue = input.required<string | number>();\n  readonly nzIcon = input<string>();\n  readonly nzDisabled = input(false, { transform: booleanAttribute });\n  readonly hasLabel = computed(() =>\n    this.templateRef()\n      .createEmbeddedView({})\n      .rootNodes.some(node => node.textContent.trim().length > 0)\n  );\n\n  protected readonly showThumb = this.service.showThumb;\n  protected readonly name = this.service.name.asReadonly();\n  protected readonly isChecked = signal(false);\n  protected readonly parentDisabled = toSignal(this.service.disabled$, { initialValue: false });\n  readonly finalDisabled = computed(() => this.nzDisabled() || this.parentDisabled());\n\n  ngOnInit(): void {\n    this.service.selected$\n      .pipe(\n        tap(value => {\n          this.isChecked.set(false);\n          if (value === this.nzValue()) {\n            this.service.activated$.next(this.elementRef.nativeElement);\n          }\n        }),\n        switchMap(value => {\n          if (!this.service.animationEnabled()) {\n            return of(value);\n          }\n          return this.service.animating$.pipe(\n            filter(animating => !animating), // done\n            take(1),\n            map(() => value)\n          );\n        }),\n        filter(value => value === this.nzValue()),\n        takeUntilDestroyed(this.destroyRef)\n      )\n      .subscribe(() => this.isChecked.set(true));\n  }\n\n  handleClick(): void {\n    if (!this.nzDisabled() && !this.parentDisabled()) {\n      this.service.selected$.next(this.nzValue());\n      this.service.change$.next(this.nzValue());\n    }\n  }\n\n  handleKeydown(event: KeyboardEvent): void {\n    if (this.finalDisabled()) {\n      return;\n    }\n    if (\n      event.keyCode === LEFT_ARROW ||\n      event.keyCode === RIGHT_ARROW ||\n      event.keyCode === UP_ARROW ||\n      event.keyCode === DOWN_ARROW\n    ) {\n      this.service.keydown$.next(event);\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport type NzSegmentedOption = {\n  value: string | number;\n  disabled?: boolean;\n} & (NzSegmentedWithLabel | NzSegmentedWithIcon);\n\nexport interface NzSegmentedWithLabel {\n  label: string;\n  icon?: string;\n}\n\nexport interface NzSegmentedWithIcon {\n  icon: string;\n  label?: string;\n}\n\nexport type NzSegmentedOptions = Array<NzSegmentedOption | string | number>;\n\nexport function normalizeOptions(unnormalized: NzSegmentedOptions): NzSegmentedOption[] {\n  return unnormalized.map(item => {\n    if (typeof item === 'string' || typeof item === 'number') {\n      return {\n        label: `${item}`,\n        value: item\n      };\n    }\n\n    return item;\n  });\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n  afterNextRender,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChildren,\n  effect,\n  EventEmitter,\n  forwardRef,\n  inject,\n  Injector,\n  Input,\n  OnChanges,\n  Output,\n  signal,\n  SimpleChanges,\n  viewChildren,\n  ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { filter } from 'rxjs/operators';\n\nimport { withAnimationCheck } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { requestAnimationFrame } from 'ng-zorro-antd/core/polyfill';\nimport { NgStyleInterface, NzSizeLDSType, OnChangeType, OnTouchedType } from 'ng-zorro-antd/core/types';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzSegmentedItemComponent } from './segmented-item.component';\nimport { NzSegmentedService } from './segmented.service';\nimport { normalizeOptions, NzSegmentedOption, NzSegmentedOptions } from './types';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'segmented';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-segmented',\n  exportAs: 'nzSegmented',\n  template: `\n    <!-- thumb motion div -->\n    <div class=\"ant-segmented-group\">\n      @if (showThumb()) {\n        <div\n          class=\"ant-segmented-thumb\"\n          [style]=\"thumbStyle()\"\n          [animate.enter]=\"thumbAnimationEnter()\"\n          (transitionend)=\"handleTransitionEnd($event)\"\n        ></div>\n      }\n\n      <ng-content>\n        @for (item of normalizedOptions; track item.value) {\n          <label nz-segmented-item [nzIcon]=\"item.icon\" [nzValue]=\"item.value\" [nzDisabled]=\"item.disabled\">\n            {{ item.label }}\n          </label>\n        }\n      </ng-content>\n    </div>\n  `,\n  host: {\n    class: 'ant-segmented',\n    '[class.ant-segmented-disabled]': 'nzDisabled',\n    '[class.ant-segmented-rtl]': `dir() === 'rtl'`,\n    '[class.ant-segmented-lg]': `nzSize === 'large'`,\n    '[class.ant-segmented-sm]': `nzSize === 'small'`,\n    '[class.ant-segmented-block]': `nzBlock`,\n    '[class.ant-segmented-vertical]': `nzVertical`,\n    '[class.ant-segmented-shape-round]': `nzShape === 'round'`,\n    // a11y\n    role: 'radiogroup',\n    'aria-label': 'segmented control',\n    '[attr.tabindex]': 'nzDisabled ? undefined : 0'\n  },\n  providers: [\n    NzSegmentedService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NzSegmentedComponent),\n      multi: true\n    }\n  ],\n  imports: [NzIconModule, NzOutletModule, NzSegmentedItemComponent]\n})\nexport class NzSegmentedComponent implements OnChanges, ControlValueAccessor {\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n  private readonly service = inject(NzSegmentedService);\n  private readonly injector = inject(Injector);\n  protected readonly dir = inject(Directionality).valueSignal;\n\n  @Input({ transform: booleanAttribute }) nzBlock: boolean = false;\n  @Input({ transform: booleanAttribute }) nzDisabled = false;\n  @Input() nzOptions: NzSegmentedOptions = [];\n  @Input({ transform: booleanAttribute }) nzVertical: boolean = false;\n  @Input() nzShape: 'default' | 'round' = 'default';\n  @Input() @WithConfig() nzSize: NzSizeLDSType = 'default';\n\n  /**\n   * @description set the `name` attribute of the segmented item native `input[type=\"radio\"]`\n   * @since 20.3.0\n   */\n  @Input() nzName?: string;\n\n  @Output() readonly nzValueChange = new EventEmitter<number | string>();\n\n  private viewItemCmps = viewChildren(NzSegmentedItemComponent);\n  private contentItemCmps = contentChildren(NzSegmentedItemComponent);\n  private renderedItemCmps = computed(() => this.viewItemCmps().concat(this.contentItemCmps()));\n  private isDisabledFirstChange = true;\n\n  protected value?: number | string;\n  protected readonly thumbStyle = signal<NgStyleInterface | null>(null);\n  protected readonly thumbAnimationEnter = withAnimationCheck(() => 'ant-segmented-thumb-motion-appear-active');\n  protected readonly showThumb = this.service.showThumb;\n  protected normalizedOptions: NzSegmentedOption[] = [];\n  protected onChange: OnChangeType = () => {};\n  protected onTouched: OnTouchedType = () => {};\n\n  constructor() {\n    this.service.selected$.pipe(takeUntilDestroyed()).subscribe(value => {\n      this.value = value;\n    });\n\n    this.service.activated$.pipe(takeUntilDestroyed()).subscribe(element => {\n      this.thumbStyle.update(prevStyle => {\n        const nextStyle = this.calcThumbStyle(element);\n\n        if (prevStyle && nextStyle) {\n          // Trigger animation to end position\n          requestAnimationFrame(() => {\n            this.thumbStyle.set(this.getThumbStyle(nextStyle));\n          });\n        } else if (nextStyle) {\n          return this.getThumbStyle(nextStyle);\n        }\n        return prevStyle;\n      });\n    });\n\n    this.service.change$.pipe(takeUntilDestroyed()).subscribe(value => {\n      this.nzValueChange.emit(value);\n      this.onChange(value);\n      this.service.animating$.next(true);\n    });\n\n    this.service.keydown$\n      .pipe(\n        filter(() => !this.nzDisabled),\n        takeUntilDestroyed()\n      )\n      .subscribe(event => this.onKeyDown(event));\n\n    afterNextRender(() => {\n      effect(\n        () => {\n          const itemCmps = this.renderedItemCmps();\n\n          if (!itemCmps.length) {\n            return;\n          }\n\n          if (\n            this.value === undefined || // If no value is set, select the first item\n            !itemCmps.some(item => item.nzValue() === this.value) // handle value not in options\n          ) {\n            this.service.selected$.next(itemCmps[0].nzValue());\n          }\n        },\n        { injector: this.injector }\n      );\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzName, nzOptions, nzDisabled } = changes;\n    if (nzName) {\n      this.service.setName(this.nzName);\n    }\n    if (nzOptions) {\n      this.normalizedOptions = normalizeOptions(nzOptions.currentValue);\n    }\n    if (nzDisabled) {\n      this.service.disabled$.next(nzDisabled.currentValue);\n    }\n  }\n\n  private onOffset(offset: number): void {\n    const items = this.renderedItemCmps();\n    const total = items.length;\n    const originIndex = items.findIndex(item => item.nzValue() === this.value);\n    let nextIndex = (originIndex + offset + total) % total;\n\n    // find out the next non-disabled item\n    while (items[nextIndex].nzDisabled()) {\n      nextIndex = (nextIndex + Math.sign(offset) + total) % total;\n      // avoid circular loop\n      if (nextIndex === originIndex) {\n        break;\n      }\n    }\n\n    const nextOption = items[nextIndex];\n    if (nextOption) {\n      this.service.selected$.next(nextOption.nzValue());\n      this.service.change$.next(nextOption.nzValue());\n    }\n  }\n\n  // change selected item by direction keyboard interaction\n  private onKeyDown(event: KeyboardEvent): void {\n    switch (event.keyCode) {\n      case UP_ARROW:\n        this.onOffset(-1);\n        break;\n      case LEFT_ARROW:\n        this.onOffset(this.dir() === 'rtl' ? 1 : -1);\n        break;\n      case DOWN_ARROW:\n        this.onOffset(1);\n        break;\n      case RIGHT_ARROW:\n        this.onOffset(this.dir() === 'rtl' ? -1 : 1);\n        break;\n    }\n  }\n\n  writeValue(value: number | string): void {\n    this.service.selected$.next(value);\n  }\n\n  registerOnChange(fn: OnChangeType): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: OnTouchedType): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(disabled: boolean): void {\n    this.nzDisabled = (this.isDisabledFirstChange && this.nzDisabled) || disabled;\n    this.isDisabledFirstChange = false;\n  }\n\n  /************* Thumb Animation *************/\n\n  private calcThumbStyle(element?: HTMLElement): NgStyleInterface | null {\n    if (!element || !element.offsetParent) {\n      return null;\n    }\n\n    const parentElement = element.parentElement;\n    if (!parentElement) {\n      return null;\n    }\n\n    const style: NgStyleInterface = {\n      left: element.offsetLeft,\n      right: parentElement.clientWidth - element.clientWidth - element.offsetLeft,\n      width: element.clientWidth,\n      top: element.offsetTop,\n      bottom: parentElement.clientHeight - element.clientHeight - element.offsetTop,\n      height: element.clientHeight\n    };\n\n    if (this.nzVertical) {\n      return {\n        left: 0,\n        right: 0,\n        width: 0,\n        top: style.top,\n        bottom: style.bottom,\n        height: style.height\n      };\n    }\n\n    return {\n      left: style.left,\n      right: style.right,\n      width: style.width,\n      top: 0,\n      bottom: 0,\n      height: 0\n    };\n  }\n\n  private getThumbStyle(targetStyle: NgStyleInterface): NgStyleInterface {\n    if (this.nzVertical) {\n      return {\n        transform: `translateY(${targetStyle.top}px)`,\n        width: '100%',\n        height: `${targetStyle.height}px`\n      };\n    }\n\n    const isRtl = this.dir() === 'rtl';\n    const transformValue = isRtl ? -targetStyle.right : targetStyle.left;\n\n    return {\n      transform: `translateX(${transformValue}px)`,\n      width: `${targetStyle.width}px`,\n      height: '100%'\n    };\n  }\n\n  protected handleTransitionEnd(event: TransitionEvent): void {\n    if (event.propertyName === 'transform') {\n      this.service.animating$.next(false);\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { NzSegmentedItemComponent } from './segmented-item.component';\nimport { NzSegmentedComponent } from './segmented.component';\n\n@NgModule({\n  imports: [NzSegmentedComponent, NzSegmentedItemComponent],\n  exports: [NzSegmentedComponent, NzSegmentedItemComponent]\n})\nexport class NzSegmentedModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport { NzSegmentedItemComponent } from './segmented-item.component';\nexport { NzSegmentedComponent } from './segmented.component';\nexport { NzSegmentedModule } from './segmented.module';\nexport * from './types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}