ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 15.8 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-segmented.mjs","sources":["../../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\nexport type NzSegmentedOption = {\n value: string | number;\n useTemplate?: boolean;\n disabled?: boolean;\n className?: string;\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 type NzNormalizedOptions = NzSegmentedOption[];\n\nexport function normalizeOptions(unnormalized: NzSegmentedOptions): NzNormalizedOptions {\n return unnormalized.map(item => {\n if (typeof item === 'string' || typeof item === 'number') {\n return {\n label: `${item}`,\n value: item\n } as NzSegmentedOption;\n }\n\n return item as NzSegmentedOption;\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 { Direction, Directionality } from '@angular/cdk/bidi';\nimport { NgClass } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ThumbAnimationProps, thumbMotion } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzSafeAny, NzSizeLDSType, OnChangeType, OnTouchedType } from 'ng-zorro-antd/core/types';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { normalizeOptions, NzNormalizedOptions, 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 (animationState) {\n <div\n [ngClass]=\"{ 'ant-segmented-thumb': true, 'ant-segmented-thumb-motion': true }\"\n [@thumbMotion]=\"animationState\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"\n ></div>\n }\n\n @for (item of normalizedOptions; track item; let i = $index) {\n <label\n #itemLabels\n [ngClass]=\"{\n 'ant-segmented-item': true,\n 'ant-segmented-item-selected': i === selectedIndex,\n 'ant-segmented-item-disabled': !!nzDisabled || item.disabled\n }\"\n >\n <input class=\"ant-segmented-item-input\" type=\"radio\" [checked]=\"i === selectedIndex\" />\n <div class=\"ant-segmented-item-label\" (click)=\"!item.disabled && handleOptionClick(i)\">\n @if (item.icon) {\n <span class=\"ant-segmented-item-icon\"><span nz-icon [nzType]=\"item.icon\"></span></span>\n <span>\n <ng-container\n *nzStringTemplateOutlet=\"item.useTemplate && nzLabelTemplate; context: { $implicit: item, index: i }\"\n >\n {{ item.label }}\n </ng-container>\n </span>\n } @else {\n <ng-container\n *nzStringTemplateOutlet=\"item.useTemplate && nzLabelTemplate; context: { $implicit: item, index: i }\"\n >\n {{ item.label }}\n </ng-container>\n }\n </div>\n </label>\n }\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 },\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NzSegmentedComponent), multi: true }],\n animations: [thumbMotion],\n imports: [NgClass, NzIconModule, NzOutletModule],\n standalone: true\n})\nexport class NzSegmentedComponent implements OnChanges, ControlValueAccessor {\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n @ViewChildren('itemLabels', { read: ElementRef }) listOfOptions!: QueryList<ElementRef>;\n\n @Input({ transform: booleanAttribute })\n nzBlock: boolean = false;\n\n @Input({ transform: booleanAttribute })\n nzDisabled: boolean = false;\n\n @Input() nzOptions: NzSegmentedOptions = [];\n\n @Input() @WithConfig() nzSize: NzSizeLDSType = 'default';\n\n @Input() nzLabelTemplate: TemplateRef<{ $implicit: NzSegmentedOption; index: number }> | null = null;\n\n @Output() readonly nzValueChange = new EventEmitter<number>();\n\n public dir: Direction = 'ltr';\n\n public selectedIndex = 0;\n public transitionedToIndex = -1;\n public animationState: null | { value: string; params: ThumbAnimationProps } = null;\n\n public normalizedOptions: NzNormalizedOptions = [];\n\n private destroy$ = new Subject<void>();\n\n onChange: OnChangeType = () => {};\n\n onTouched: OnTouchedType = () => {};\n\n constructor(\n public readonly nzConfigService: NzConfigService,\n private readonly cdr: ChangeDetectorRef,\n private readonly directionality: Directionality\n ) {\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { nzOptions } = changes;\n if (nzOptions) {\n this.normalizedOptions = normalizeOptions(nzOptions.currentValue);\n }\n }\n\n handleOptionClick(index: number): void {\n if (this.nzDisabled) {\n return;\n }\n\n this.changeSelectedIndex(index);\n\n this.onChange(index);\n this.nzValueChange.emit(index);\n }\n\n handleThumbAnimationDone(e: NzSafeAny): void {\n if (e.fromState === 'from') {\n this.selectedIndex = this.transitionedToIndex;\n this.transitionedToIndex = -1;\n this.animationState = null;\n this.cdr.detectChanges();\n }\n }\n\n writeValue(value: number | null): void {\n if (typeof value === 'number' && value > -1) {\n this.changeSelectedIndex(value);\n this.cdr.markForCheck();\n }\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 private changeSelectedIndex(index: number): void {\n if (!this.listOfOptions || this.selectedIndex === -1 || this.selectedIndex === index) {\n return;\n }\n\n this.animationState = {\n value: 'from',\n params: getThumbAnimationProps(this.listOfOptions.get(this.selectedIndex)!.nativeElement!)\n };\n this.selectedIndex = -1;\n this.cdr.detectChanges();\n\n this.animationState = {\n value: 'to',\n params: getThumbAnimationProps(this.listOfOptions.get(index)!.nativeElement!)\n };\n this.transitionedToIndex = index;\n this.cdr.detectChanges();\n }\n}\n\nfunction getThumbAnimationProps(element: HTMLElement): ThumbAnimationProps {\n return {\n transform: element.offsetLeft,\n width: element.clientWidth\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 { NzSegmentedComponent } from './segmented.component';\n\n@NgModule({\n imports: [NzSegmentedComponent],\n exports: [NzSegmentedComponent]\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 { NzSegmentedModule } from './segmented.module';\nexport { NzSegmentedComponent } from './segmented.component';\nexport * from './types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}