ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 34.3 kB
Source Map (JSON)
{"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 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 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 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 selector: 'nz-segmented',\n exportAs: 'nzSegmented',\n encapsulation: ViewEncapsulation.None,\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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"}