{"version":3,"file":"ng-zorro-antd-core-config.mjs","sources":["../../components/core/config/config.ts","../../components/core/config/css-variables.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\ninterface MonacoEnvironment {\n  globalAPI?: boolean;\n  baseUrl?: string;\n  getWorker?(workerId: string, label: string): Promise<Worker> | Worker;\n  getWorkerUrl?(workerId: string, label: string): string;\n}\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  segmented?: SegmentedConfig;\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  theme?: Theme;\n  prefixCls?: PrefixCls;\n}\n\nexport interface PrefixCls {\n  prefixCls?: string;\n  iconPrefixCls?: string;\n}\n\nexport interface Theme {\n  primaryColor?: string;\n  infoColor?: string;\n  successColor?: string;\n  processingColor?: string;\n  errorColor?: string;\n  warningColor?: string;\n  [key: string]: string | undefined;\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  extraConfig?: NzSafeAny;\n  defaultEditorOption?: NzSafeAny;\n  useStaticLoading?: boolean;\n  monacoEnvironment?: MonacoEnvironment;\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' | 'top' | 'bottom';\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 SegmentedConfig {\n  nzSize?: NzSizeLDSType;\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\n/**\n * Sync from @ant-design/colors(https://github.com/ant-design/ant-design-colors)\n */\nimport { TinyColor } from '@ctrl/tinycolor';\n\nimport { generate } from 'ng-zorro-antd/core/color';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { canUseDom, updateCSS } from 'ng-zorro-antd/core/util';\n\nimport { Theme } from './config';\n\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\n\nexport function getStyle(globalPrefixCls: string, theme: Theme): string {\n  const variables: Record<string, string> = {};\n\n  const formatColor = (color: TinyColor, updater?: (cloneColor: TinyColor) => TinyColor | undefined): string => {\n    let clone = color.clone();\n    clone = updater?.(clone) || clone;\n    return clone.toRgbString();\n  };\n\n  const fillColor = (colorVal: string, type: string): void => {\n    const baseColor = new TinyColor(colorVal);\n    const colorPalettes = generate(baseColor.toRgbString());\n\n    variables[`${type}-color`] = formatColor(baseColor);\n    variables[`${type}-color-disabled`] = colorPalettes[1];\n    variables[`${type}-color-hover`] = colorPalettes[4];\n    variables[`${type}-color-active`] = colorPalettes[7];\n    variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n    variables[`${type}-color-deprecated-bg`] = colorPalettes[1];\n    variables[`${type}-color-deprecated-border`] = colorPalettes[3];\n  };\n\n  // ================ Primary Color ================\n  if (theme.primaryColor) {\n    fillColor(theme.primaryColor, 'primary');\n\n    const primaryColor = new TinyColor(theme.primaryColor);\n    const primaryColors = generate(primaryColor.toRgbString());\n\n    // Legacy - We should use semantic naming standard\n    primaryColors.forEach((color, index) => {\n      variables[`primary-${index + 1}`] = color;\n    });\n    // Deprecated\n    variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n    variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n    variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n    variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n    variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n\n    const primaryActiveColor = new TinyColor(primaryColors[0]);\n    variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c =>\n      c.setAlpha(c.getAlpha() * 0.3)\n    );\n    variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n  }\n\n  // ================ Success Color ================\n  if (theme.successColor) {\n    fillColor(theme.successColor, 'success');\n  }\n\n  // ================ Warning Color ================\n  if (theme.warningColor) {\n    fillColor(theme.warningColor, 'warning');\n  }\n\n  // ================= Error Color =================\n  if (theme.errorColor) {\n    fillColor(theme.errorColor, 'error');\n  }\n\n  // ================= Info Color ==================\n  if (theme.infoColor) {\n    fillColor(theme.infoColor, 'info');\n  }\n\n  // Convert to css variables\n  const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n\n  return `\n  :root {\n    ${cssList.join('\\n')}\n  }\n  `.trim();\n}\n\nexport function registerTheme(globalPrefixCls: string, theme: Theme): void {\n  const style = getStyle(globalPrefixCls, theme);\n\n  if (canUseDom()) {\n    updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n  } else {\n    warn(`NzConfigService: SSR do not support dynamic theme with css variables.`);\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 { 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';\nimport { registerTheme } from './css-variables';\n\nconst isDefined = function (value?: NzSafeAny): boolean {\n  return value !== undefined;\n};\n\nconst defaultPrefixCls = 'ant';\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    if (this.config.theme) {\n      // If theme is set with NZ_CONFIG, register theme to make sure css variables work\n      registerTheme(this.getConfig().prefixCls?.prefixCls || defaultPrefixCls, this.config.theme);\n    }\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    if (componentName === 'theme' && this.config.theme) {\n      registerTheme(this.getConfig().prefixCls?.prefixCls || defaultPrefixCls, this.config.theme);\n    }\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';\nexport * from './css-variables';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;AAGG;AAuXH;;AAEG;MACU,SAAS,GAAG,IAAI,cAAc,CAAW,WAAW;;AC7XjE;;;AAGG;AAaH,MAAM,gBAAgB,GAAG,CAAQ,KAAA,EAAA,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAE/C,SAAA,QAAQ,CAAC,eAAuB,EAAE,KAAY,EAAA;IAC5D,MAAM,SAAS,GAA2B,EAAE,CAAC;AAE7C,IAAA,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAE,OAA0D,KAAY;AAC3G,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC1B,QAAA,KAAK,GAAG,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAG,KAAK,CAAC,KAAI,KAAK,CAAC;AAClC,QAAA,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;AAC7B,KAAC,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,IAAY,KAAU;AACzD,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAExD,SAAS,CAAC,CAAG,EAAA,IAAI,CAAQ,MAAA,CAAA,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACpD,SAAS,CAAC,CAAG,EAAA,IAAI,CAAiB,eAAA,CAAA,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACvD,SAAS,CAAC,CAAG,EAAA,IAAI,CAAc,YAAA,CAAA,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACpD,SAAS,CAAC,CAAG,EAAA,IAAI,CAAe,aAAA,CAAA,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACrD,QAAA,SAAS,CAAC,CAAG,EAAA,IAAI,gBAAgB,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QACnF,SAAS,CAAC,CAAG,EAAA,IAAI,CAAsB,oBAAA,CAAA,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5D,SAAS,CAAC,CAAG,EAAA,IAAI,CAA0B,wBAAA,CAAA,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAClE,KAAC,CAAC;;IAGF,IAAI,KAAK,CAAC,YAAY,EAAE;AACtB,QAAA,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAEzC,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;;QAG3D,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;YACrC,SAAS,CAAC,WAAW,KAAK,GAAG,CAAC,CAAE,CAAA,CAAC,GAAG,KAAK,CAAC;AAC5C,SAAC,CAAC,CAAC;;AAEH,QAAA,SAAS,CAAC,+BAA+B,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,QAAA,SAAS,CAAC,+BAA+B,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,QAAA,SAAS,CAAC,+BAA+B,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF,QAAA,SAAS,CAAC,+BAA+B,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,SAAS,CAAC,+BAA+B,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAE7G,MAAM,kBAAkB,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,SAAS,CAAC,sCAAsC,CAAC,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC,IACnF,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAC/B,CAAC;AACF,QAAA,SAAS,CAAC,sCAAsC,CAAC,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,KAAA;;IAGD,IAAI,KAAK,CAAC,YAAY,EAAE;AACtB,QAAA,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAC1C,KAAA;;IAGD,IAAI,KAAK,CAAC,YAAY,EAAE;AACtB,QAAA,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAC1C,KAAA;;IAGD,IAAI,KAAK,CAAC,UAAU,EAAE;AACpB,QAAA,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACtC,KAAA;;IAGD,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,QAAA,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACpC,KAAA;;IAGD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,EAAA,EAAK,eAAe,CAAA,CAAA,EAAI,GAAG,CAAA,EAAA,EAAK,SAAS,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC;IAErG,OAAO,CAAA;;AAEH,IAAA,EAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;GAErB,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAEe,SAAA,aAAa,CAAC,eAAuB,EAAE,KAAY,EAAA;IACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAE/C,IAAI,SAAS,EAAE,EAAE;AACf,QAAA,SAAS,CAAC,KAAK,EAAE,GAAG,gBAAgB,CAAA,cAAA,CAAgB,CAAC,CAAC;AACvD,KAAA;AAAM,SAAA;QACL,IAAI,CAAC,CAAuE,qEAAA,CAAA,CAAC,CAAC;AAC/E,KAAA;AACH;;ACvGA;;;AAGG;AAWH,MAAM,SAAS,GAAG,UAAU,KAAiB,EAAA;IAC3C,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC;MAKlB,eAAe,CAAA;AAM1B,IAAA,WAAA,CAA2C,aAAwB,EAAA;;AAL3D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAkB,CAAC;AAMrD,QAAA,IAAI,CAAC,MAAM,GAAG,aAAa,IAAI,EAAE,CAAC;AAClC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;YAErB,aAAa,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,KAAI,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7F,SAAA;KACF;IAED,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAED,IAAA,qBAAqB,CAAwB,aAAgB,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KACnC;AAED,IAAA,gCAAgC,CAAC,aAA0B,EAAA;QACzD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,EAChC,KAAK,CAAC,SAAS,CAAC,CACjB,CAAC;KACH;IAED,GAAG,CAAwB,aAAgB,EAAE,KAAkB,EAAA;;AAC7D,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAK,EAAA,KAAK,CAAE,CAAC;QACzE,IAAI,aAAa,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YAClD,aAAa,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,KAAI,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7F,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACzC;;AAnCU,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAMM,SAAS,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAN9B,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;8BAOc,QAAQ;;8BAAI,MAAM;+BAAC,SAAS,CAAA;;;AAgC3C;AAEA;;;AAGG;AACH;SACgB,UAAU,GAAA;AACxB,IAAA,OAAO,SAAS,eAAe,CAC7B,MAAiB,EACjB,QAAmB,EACnB,kBAA+C,EAAA;AAE/C,QAAA,MAAM,eAAe,GAAG,CAA6B,0BAAA,EAAA,QAAQ,EAAE,CAAC;AAEhE,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AAC7C,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,KAAK;AAClB,SAAA,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,GAAA;;AACD,gBAAA,MAAM,aAAa,GAAG,CAAA,kBAAkB,KAAlB,IAAA,IAAA,kBAAkB,KAAlB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,kBAAkB,CAAE,GAAG,IAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5G,gBAAA,MAAM,cAAc,GAAG,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC;AACzE,gBAAA,MAAM,WAAW,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,CAAC;AAC/F,gBAAA,IAAI,cAAc,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE;AAC9C,oBAAA,OAAO,aAAa,CAAC;AACtB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,SAAS,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC;AAC7D,iBAAA;aACF;AACD,YAAA,GAAG,CAAC,KAAS,EAAA;;gBAEX,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;AAC9D,gBAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEvF,gBAAA,IAAI,kBAAkB,KAAlB,IAAA,IAAA,kBAAkB,uBAAlB,kBAAkB,CAAE,GAAG,EAAE;oBAC3B,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAM,CAAC,CAAC;AAC3C,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;AAC/B,iBAAA;aACF;AACD,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,UAAU,EAAE,IAAI;SACjB,CAAC;AACJ,KAAC,CAAC;AACJ;;AC5GA;;;AAGG;;ACHH;;AAEG;;;;"}