{"version":3,"file":"ng-zorro-antd-core-config.mjs","sources":["../../components/core/config/config.ts","../../components/core/config/config.service.ts","../../components/core/config/public-api.ts","../../components/core/config/ng-zorro-antd-core-config.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 { Direction } from '@angular/cdk/bidi';\nimport { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\n\nimport { ThemeType } from '@ant-design/icons-angular';\n\nimport { NzBreakpointEnum } from 'ng-zorro-antd/core/services';\nimport {\n  NzSafeAny,\n  NzShapeSCType,\n  NzSizeDSType,\n  NzSizeLDSType,\n  NzSizeMDSType,\n  NzTSType\n} from 'ng-zorro-antd/core/types';\n\nexport interface NzConfig {\n  affix?: AffixConfig;\n  select?: SelectConfig;\n  alert?: AlertConfig;\n  anchor?: AnchorConfig;\n  avatar?: AvatarConfig;\n  backTop?: BackTopConfig;\n  badge?: BadgeConfig;\n  button?: ButtonConfig;\n  card?: CardConfig;\n  carousel?: CarouselConfig;\n  cascader?: CascaderConfig;\n  codeEditor?: CodeEditorConfig;\n  collapse?: CollapseConfig;\n  collapsePanel?: CollapsePanelConfig;\n  datePicker?: DatePickerConfig;\n  descriptions?: DescriptionsConfig;\n  drawer?: DrawerConfig;\n  dropDown?: DropDownConfig;\n  empty?: EmptyConfig;\n  filterTrigger?: FilterTriggerConfig;\n  form?: FormConfig;\n  icon?: IconConfig;\n  message?: MessageConfig;\n  modal?: ModalConfig;\n  notification?: NotificationConfig;\n  pageHeader?: PageHeaderConfig;\n  pagination?: PaginationConfig;\n  progress?: ProgressConfig;\n  rate?: RateConfig;\n  space?: SpaceConfig;\n  spin?: SpinConfig;\n  switch?: SwitchConfig;\n  table?: TableConfig;\n  tabs?: TabsConfig;\n  timePicker?: TimePickerConfig;\n  tree?: TreeConfig;\n  treeSelect?: TreeSelectConfig;\n  typography?: TypographyConfig;\n  image?: ImageConfig;\n  popconfirm?: PopConfirmConfig;\n  popover?: PopoverConfig;\n  imageExperimental?: ImageExperimentalConfig;\n}\n\nexport interface SelectConfig {\n  nzBorderless?: boolean;\n  nzSuffixIcon?: TemplateRef<NzSafeAny> | string | null;\n  nzBackdrop?: boolean;\n}\n\nexport interface AffixConfig {\n  nzOffsetBottom?: number;\n  nzOffsetTop?: number;\n}\n\nexport interface AlertConfig {\n  nzCloseable?: boolean;\n  nzShowIcon?: boolean;\n}\n\nexport interface AvatarConfig {\n  nzShape?: NzShapeSCType;\n  nzSize?: NzSizeLDSType | number;\n  nzGap?: number;\n}\n\nexport interface AnchorConfig {\n  nzBounds?: number;\n  nzOffsetBottom?: number;\n  nzOffsetTop?: number;\n  nzShowInkInFixed?: boolean;\n}\n\nexport interface BackTopConfig {\n  nzVisibilityHeight?: number;\n}\n\nexport interface BadgeConfig {\n  nzColor?: number;\n  nzOverflowCount?: number;\n  nzShowZero?: number;\n}\n\nexport interface ButtonConfig {\n  nzSize?: 'large' | 'default' | 'small';\n}\n\nexport interface CodeEditorConfig {\n  assetsRoot?: string | SafeUrl;\n  defaultEditorOption?: NzSafeAny;\n  useStaticLoading?: boolean;\n\n  onLoad?(): void;\n\n  onFirstEditorInit?(): void;\n\n  onInit?(): void;\n}\n\nexport interface CardConfig {\n  nzSize?: NzSizeDSType;\n  nzHoverable?: boolean;\n  nzBordered?: boolean;\n  nzBorderless?: boolean;\n}\n\nexport interface CarouselConfig {\n  nzAutoPlay?: boolean;\n  nzAutoPlaySpeed?: boolean;\n  nzDots?: boolean;\n  nzEffect?: 'scrollx' | 'fade' | string;\n  nzEnableSwipe?: boolean;\n  nzVertical?: boolean;\n}\n\nexport interface CascaderConfig {\n  nzSize?: string;\n  nzBackdrop?: boolean;\n}\n\nexport interface CollapseConfig {\n  nzAccordion?: boolean;\n  nzBordered?: boolean;\n  nzGhost?: boolean;\n}\n\nexport interface CollapsePanelConfig {\n  nzShowArrow?: boolean;\n}\n\nexport interface DatePickerConfig {\n  nzSeparator?: string;\n  nzSuffixIcon?: string | TemplateRef<NzSafeAny>;\n  nzBackdrop?: boolean;\n}\n\nexport interface DescriptionsConfig {\n  nzBordered?: boolean;\n  nzColumn?: { [key in NzBreakpointEnum]?: number } | number;\n  nzSize?: 'default' | 'middle' | 'small';\n  nzColon?: boolean;\n}\n\nexport interface DrawerConfig {\n  nzMask?: boolean;\n  nzMaskClosable?: boolean;\n  nzCloseOnNavigation?: boolean;\n  nzDirection?: Direction;\n}\n\nexport interface DropDownConfig {\n  nzBackdrop?: boolean;\n}\n\nexport interface EmptyConfig {\n  nzDefaultEmptyContent?: Type<NzSafeAny> | TemplateRef<string> | string | undefined;\n}\n\nexport interface FilterTriggerConfig {\n  nzBackdrop?: boolean;\n}\n\nexport interface FormConfig {\n  nzNoColon?: boolean;\n  nzAutoTips?: Record<string, Record<string, string>>;\n  nzTooltipIcon?: string | { type: string; theme: ThemeType };\n}\n\nexport interface IconConfig {\n  nzTheme?: 'fill' | 'outline' | 'twotone';\n  nzTwotoneColor?: string;\n}\n\nexport interface MessageConfig {\n  nzAnimate?: boolean;\n  nzDuration?: number;\n  nzMaxStack?: number;\n  nzPauseOnHover?: boolean;\n  nzTop?: number | string;\n  nzDirection?: Direction;\n}\n\nexport interface ModalConfig {\n  nzMask?: boolean;\n  nzMaskClosable?: boolean;\n  nzCloseOnNavigation?: boolean;\n  nzDirection?: Direction;\n}\n\nexport interface NotificationConfig extends MessageConfig {\n  nzTop?: string | number;\n  nzBottom?: string | number;\n  nzPlacement?: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';\n}\n\nexport interface PageHeaderConfig {\n  nzGhost: boolean;\n}\n\nexport interface PaginationConfig {\n  nzSize?: 'default' | 'small';\n  nzPageSizeOptions?: number[];\n  nzShowSizeChanger?: boolean;\n  nzShowQuickJumper?: boolean;\n  nzSimple?: boolean;\n}\n\nexport interface ProgressConfig {\n  nzGapDegree?: number;\n  nzGapPosition?: 'top' | 'right' | 'bottom' | 'left';\n  nzShowInfo?: boolean;\n  nzStrokeSwitch?: number;\n  nzStrokeWidth?: number;\n  nzSize?: 'default' | 'small';\n  nzStrokeLinecap?: 'round' | 'square';\n  nzStrokeColor?: string;\n}\n\nexport interface RateConfig {\n  nzAllowClear?: boolean;\n  nzAllowHalf?: boolean;\n}\n\nexport interface SpaceConfig {\n  nzSize?: 'small' | 'middle' | 'large' | number;\n}\n\nexport interface SpinConfig {\n  nzIndicator?: TemplateRef<NzSafeAny>;\n}\n\nexport interface SwitchConfig {\n  nzSize: NzSizeDSType;\n}\n\nexport interface TableConfig {\n  nzBordered?: boolean;\n  nzSize?: NzSizeMDSType;\n  nzShowQuickJumper?: boolean;\n  nzLoadingIndicator?: TemplateRef<NzSafeAny>;\n  nzShowSizeChanger?: boolean;\n  nzSimple?: boolean;\n  nzHideOnSinglePage?: boolean;\n}\n\nexport interface TabsConfig {\n  nzAnimated?:\n    | boolean\n    | {\n        inkBar: boolean;\n        tabPane: boolean;\n      };\n  nzSize?: NzSizeLDSType;\n  nzType?: 'line' | 'card';\n  nzTabBarGutter?: number;\n  nzShowPagination?: boolean;\n}\n\nexport interface TimePickerConfig {\n  nzAllowEmpty?: boolean;\n  nzClearText?: string;\n  nzNowText?: string;\n  nzOkText?: string;\n  nzFormat?: string;\n  nzHourStep?: number;\n  nzMinuteStep?: number;\n  nzSecondStep?: number;\n  nzPopupClassName?: string;\n  nzUse12Hours?: string;\n  nzSuffixIcon?: string | TemplateRef<NzSafeAny>;\n  nzBackdrop?: boolean;\n}\n\nexport interface TreeConfig {\n  nzBlockNode?: boolean;\n  nzShowIcon?: boolean;\n  nzHideUnMatched?: boolean;\n}\n\nexport interface TreeSelectConfig {\n  nzShowIcon?: string;\n  nzShowLine?: boolean;\n  nzDropdownMatchSelectWidth?: boolean;\n  nzHideUnMatched?: boolean;\n  nzSize?: 'large' | 'small' | 'default';\n  nzBackdrop?: boolean;\n}\n\nexport interface TypographyConfig {\n  nzEllipsisRows?: number;\n  nzCopyTooltips?: [NzTSType, NzTSType] | null;\n  nzCopyIcons: [NzTSType, NzTSType];\n  nzEditTooltip?: null | NzTSType;\n  nzEditIcon: NzTSType;\n}\n\nexport interface ImageConfig {\n  nzFallback?: string;\n  nzPlaceholder?: string;\n  nzDisablePreview?: string;\n  nzCloseOnNavigation?: boolean;\n  nzDirection?: Direction;\n}\n\nexport interface ImageExperimentalConfig {\n  nzFallback?: string;\n  nzPlaceholder?: string;\n  nzDisablePreview?: string;\n  nzCloseOnNavigation?: boolean;\n  nzDirection?: Direction;\n  nzAutoSrcset?: boolean;\n  nzSrcLoader?(params: { src: string; width: number }): string;\n}\n\nexport interface PopConfirmConfig {\n  nzPopconfirmBackdrop?: boolean;\n  nzAutofocus?: null | 'ok' | 'cancel';\n}\n\nexport interface PopoverConfig {\n  nzPopoverBackdrop?: boolean;\n}\n\nexport type NzConfigKey = keyof NzConfig;\n\n/**\n * User should provide an object implements this interface to set global configurations.\n */\nexport const NZ_CONFIG = new InjectionToken<NzConfig>('nz-config');\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 { Inject, Injectable, Optional } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, mapTo } from 'rxjs/operators';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { NzConfig, NzConfigKey, NZ_CONFIG } from './config';\n\nconst isDefined = function (value?: NzSafeAny): boolean {\n  return value !== undefined;\n};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NzConfigService {\n  private configUpdated$ = new Subject<keyof NzConfig>();\n\n  /** Global config holding property. */\n  private readonly config: NzConfig;\n\n  constructor(@Optional() @Inject(NZ_CONFIG) defaultConfig?: NzConfig) {\n    this.config = defaultConfig || {};\n  }\n\n  getConfig(): NzConfig {\n    return this.config;\n  }\n\n  getConfigForComponent<T extends NzConfigKey>(componentName: T): NzConfig[T] {\n    return this.config[componentName];\n  }\n\n  getConfigChangeEventForComponent(componentName: NzConfigKey): Observable<void> {\n    return this.configUpdated$.pipe(\n      filter(n => n === componentName),\n      mapTo(undefined)\n    );\n  }\n\n  set<T extends NzConfigKey>(componentName: T, value: NzConfig[T]): void {\n    this.config[componentName] = { ...this.config[componentName], ...value };\n    this.configUpdated$.next(componentName);\n  }\n}\n\n/* eslint-disable no-invalid-this */\n\n/**\n * This decorator is used to decorate properties. If a property is decorated, it would try to load default value from\n * config.\n */\n// eslint-disable-next-line\nexport function WithConfig<T>() {\n  return function ConfigDecorator(\n    target: NzSafeAny,\n    propName: NzSafeAny,\n    originalDescriptor?: TypedPropertyDescriptor<T>\n  ): NzSafeAny {\n    const privatePropName = `$$__zorroConfigDecorator__${propName}`;\n\n    Object.defineProperty(target, privatePropName, {\n      configurable: true,\n      writable: true,\n      enumerable: false\n    });\n\n    return {\n      get(): T | undefined {\n        const originalValue = originalDescriptor?.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\n        const assignedByUser = (this.propertyAssignCounter?.[propName] || 0) > 1;\n        const configValue = this.nzConfigService.getConfigForComponent(this._nzModuleName)?.[propName];\n        if (assignedByUser && isDefined(originalValue)) {\n          return originalValue;\n        } else {\n          return isDefined(configValue) ? configValue : originalValue;\n        }\n      },\n      set(value?: T): void {\n        // If the value is assigned, we consider the newly assigned value as 'assigned by user'.\n        this.propertyAssignCounter = this.propertyAssignCounter || {};\n        this.propertyAssignCounter[propName] = (this.propertyAssignCounter[propName] || 0) + 1;\n\n        if (originalDescriptor?.set) {\n          originalDescriptor.set.bind(this)(value!);\n        } else {\n          this[privatePropName] = value;\n        }\n      },\n      configurable: true,\n      enumerable: true\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 * from './config.service';\nexport * from './config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}