{"version":3,"file":"ng-nest-ui-base-form.mjs","sources":["../../../../lib/ng-nest/ui/base-form/base-form.property.ts","../../../../lib/ng-nest/ui/base-form/base-form.component.ts","../../../../lib/ng-nest/ui/base-form/base-form.module.ts","../../../../lib/ng-nest/ui/base-form/ng-nest-ui-base-form.ts"],"sourcesContent":["import { Component, TemplateRef, input, model } from '@angular/core';\r\nimport {\r\n  XAlign,\r\n  XBoolean,\r\n  XDirection,\r\n  XJustify,\r\n  XNumber,\r\n  XProperty,\r\n  XSize,\r\n  XTemplate,\r\n  XToBoolean,\r\n  XToCssPixelValue\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * 表单对象共有的参数\r\n */\r\nexport interface XFormOption {\r\n  /**\r\n   * 标签\r\n   */\r\n  label?: any;\r\n  /**\r\n   * 标签宽度\r\n   */\r\n  labelWidth?: string;\r\n  /**\r\n   * 标签文字对齐方式\r\n   */\r\n  labelAlign?: XAlign;\r\n  /**\r\n   * flex 布局下的子元素水平排列方式\r\n   */\r\n  justify?: XJustify;\r\n  /**\r\n   * flex 布局下的子元素垂直排列方式\r\n   */\r\n  align?: XAlign;\r\n  /**\r\n   * flex 布局下的子元素排列方向\r\n   */\r\n  direction?: XDirection;\r\n  /**\r\n   * 尺寸\r\n   */\r\n  size?: XSize;\r\n  /**\r\n   * 输入提示信息\r\n   */\r\n  placeholder?: string | string[];\r\n  /**\r\n   * 禁用\r\n   */\r\n  disabled?: boolean;\r\n  /**\r\n   * 必填\r\n   */\r\n  required?: boolean;\r\n  /**\r\n   * 正则验证规则\r\n   */\r\n  pattern?: RegExp;\r\n  /**\r\n   * 验证不通过提示文字\r\n   */\r\n  message?: string;\r\n  /**\r\n   * 激活状态\r\n   */\r\n  active?: boolean;\r\n  /**\r\n   * 输入框点击样式\r\n   */\r\n  pointer?: boolean;\r\n  /**\r\n   * 输入验证函数\r\n   */\r\n  inputValidator?: (value: any) => boolean;\r\n}\r\n\r\n/**\r\n * 表单对象共有的参数\r\n */\r\n@Component({ selector: 'x-formcontrol-prop', template: '' })\r\nexport class XFormControlProp extends XProperty {\r\n  /**\r\n   * @zh_CN 初始启用验证，在输入值都自动开启\r\n   * @en_US Initial enable validation, which is automatically enabled when the input value is\r\n   */\r\n  readonly validator = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 标签\r\n   * @en_US Label\r\n   */\r\n  readonly label = input<XTemplate>('');\r\n  /**\r\n   * @zh_CN 标签宽度\r\n   * @en_US Label width\r\n   */\r\n  readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 标签文字对齐方式\r\n   * @en_US Label text alignment method\r\n   */\r\n  readonly labelAlign = input<XAlign>('start');\r\n  /**\r\n   * @zh_CN flex 布局下的子元素水平排列方式\r\n   * @en_US The level of sub-element level arrangement under flex layout\r\n   */\r\n  readonly justify = input<XJustify>('start');\r\n  /**\r\n   * @zh_CN flex 布局下的子元素垂直排列方式\r\n   * @en_US sub-element vertical arrangement method under flex layout\r\n   */\r\n  readonly align = input<XAlign>('start');\r\n  /**\r\n   * @zh_CN flex 布局下的子元素排列方向\r\n   * @en_US The direction of the sub-element arrangement under flex layout\r\n   */\r\n  readonly direction = input<XDirection>('column');\r\n  /**\r\n   * @zh_CN 尺寸\r\n   * @en_US Size\r\n   */\r\n  readonly size = input<XSize>('medium');\r\n  /**\r\n   * @zh_CN 输入提示信息\r\n   * @en_US Enter prompt information\r\n   */\r\n  readonly placeholder = input<string | string[]>('');\r\n  /**\r\n   * @zh_CN 禁用\r\n   * @en_US Disabled\r\n   */\r\n  readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 必填\r\n   * @en_US Required\r\n   */\r\n  readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 只读\r\n   * @en_US Readonly\r\n   */\r\n  readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 值模板\r\n   * @en_US Node template\r\n   */\r\n  readonly valueTpl = input<TemplateRef<any>>();\r\n  /**\r\n   * @zh_CN 值模板参数\r\n   * @en_US Node template\r\n   */\r\n  readonly valueTplContext = input();\r\n  /**\r\n   * @zh_CN 前置标签\r\n   * @en_US Before label\r\n   */\r\n  readonly before = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 后置标签\r\n   * @en_US After label\r\n   */\r\n  readonly after = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 正则验证规则\r\n   * @en_US Regular verification rules\r\n   */\r\n  readonly pattern = input<RegExp | null>(null);\r\n  /**\r\n   * @zh_CN 验证不通过提示文字\r\n   * @en_US Verify not pass the prompt text\r\n   */\r\n  readonly message = input<string>('');\r\n  /**\r\n   * @zh_CN 激活状态\r\n   * @en_US Activation state\r\n   */\r\n  readonly active = model<boolean>(false);\r\n  /**\r\n   * @zh_CN 输入框点击样式\r\n   * @en_US Enter box click style\r\n   */\r\n  readonly pointer = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 输入验证函数\r\n   * @en_US Enter the verification function\r\n   */\r\n  readonly inputValidator = input<(value: any) => boolean>();\r\n}\r\n","import {\r\n  AbstractControl,\r\n  ControlValueAccessor,\r\n  NG_VALUE_ACCESSOR,\r\n  ValidationErrors,\r\n  ValidatorFn\r\n} from '@angular/forms';\r\nimport { ChangeDetectorRef, computed, forwardRef, inject, signal, Type } from '@angular/core';\r\nimport { XIsEmpty, XIsUndefined, XComponentConfigKey, XConfigService, XIsNull } from '@ng-nest/ui/core';\r\nimport { XFormControlProp } from './base-form.property';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\n\r\nexport function XValueAccessor<T>(component: Type<T>) {\r\n  return { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => component), multi: true };\r\n}\r\n\r\nexport function XFormInputValidator(func: (value: any) => boolean): ValidatorFn {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    const invalid = func ? !func(control.value) : null;\r\n    return invalid ? { inputValidator: true } : null;\r\n  };\r\n}\r\n\r\nexport function XFormControlFunction<C extends XComponentConfigKey>(configName: C) {\r\n  return class XFormControlFun extends XFormControlProp implements ControlValueAccessor {\r\n    config = inject(XConfigService).getConfigForComponent(configName);\r\n    cdr = inject(ChangeDetectorRef);\r\n    invalid = computed(() => {\r\n      return (\r\n        this.validatorComputed() &&\r\n        ((!XIsEmpty(this.value()) && this.invalidPattern()) || this.requiredIsEmpty() || this.invalidInputValidator())\r\n      );\r\n    });\r\n    invalidPattern = computed(() => {\r\n      const pattern = this.patternComputed();\r\n      if (!this.validatorComputed() || XIsUndefined(pattern) || XIsNull(pattern)) return false;\r\n      let result = false;\r\n\r\n      if (pattern && pattern !== null) {\r\n        result = !new RegExp(pattern as RegExp).test(this.value() as any);\r\n      }\r\n\r\n      return result;\r\n    });\r\n    requiredIsEmpty = computed(() => {\r\n      return this.validatorComputed() && this.requiredComputed() && XIsEmpty(this.value());\r\n    });\r\n    invalidMessage = computed(() => {\r\n      if (!this.validatorComputed()) return '';\r\n      const message = this.messageComputed();\r\n      return message as string;\r\n    });\r\n    value = signal<any | undefined>(undefined);\r\n    valueObservable = toObservable(this.value);\r\n    validatorSignal = signal(false);\r\n    disabledSignal = signal(false);\r\n    requiredSignal = signal(false);\r\n    patternSignal = signal<any>(null);\r\n    messageSignal = signal<string>('');\r\n\r\n    requiredComputed = computed(() => this.requiredSignal() || this.required());\r\n    disabledComputed = computed(() => this.disabledSignal() || this.disabled());\r\n    validatorComputed = computed(() => this.validatorSignal() || this.validator());\r\n    patternComputed = computed(() => {\r\n      const pattern = this.pattern();\r\n\r\n      if (Array.isArray(pattern) && pattern.length === 0) {\r\n        return null;\r\n      }\r\n\r\n      if (XIsEmpty(this.patternSignal())) {\r\n        if (Array.isArray(pattern)) {\r\n          if (pattern.length === 1) {\r\n            return pattern[0];\r\n          } else if (pattern.length > 1) {\r\n            const sources = pattern.map((regex) => `(${regex.source})`);\r\n            const combinedPattern = sources.join('|');\r\n            return new RegExp(combinedPattern);\r\n          }\r\n        }\r\n        return pattern;\r\n      } else {\r\n        return this.patternSignal();\r\n      }\r\n    });\r\n    messageComputed = computed(() => {\r\n      if (XIsEmpty(this.messageSignal())) return this.message();\r\n      else return this.messageSignal();\r\n    });\r\n\r\n    invalidInputValidator = signal(false);\r\n    onChange!: (value: any) => void;\r\n    onTouched!: () => void;\r\n    writeValue(value: any): void {\r\n      this.value.set(value);\r\n    }\r\n    registerOnChange(fn: (value: any) => void): void {\r\n      this.onChange = fn;\r\n    }\r\n    registerOnTouched(fn: () => void): void {\r\n      this.onTouched = fn;\r\n    }\r\n    setDisabledState(disabled: boolean) {\r\n      this.disabledSignal.set(disabled);\r\n    }\r\n    formControlValidator() {\r\n      this.validatorSignal.set(true);\r\n    }\r\n  };\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n  imports: [],\r\n  exports: []\r\n})\r\nexport class XBaseFormModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAgFA;;AAEG;AAEG,MAAO,gBAAiB,SAAQ,SAAS,CAAA;AAD/C,IAAA,WAAA,GAAA;;AAEE;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAoB,KAAK,sDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC/E;;;AAGG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAY,EAAE,iDAAC;AACrC;;;AAGG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAkB,EAAE,uDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACjF;;;AAGG;AACM,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,OAAO,sDAAC;AAC5C;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAW,OAAO,mDAAC;AAC3C;;;AAGG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,OAAO,iDAAC;AACvC;;;AAGG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAa,QAAQ,qDAAC;AAChD;;;AAGG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAQ,QAAQ,gDAAC;AACtC;;;AAGG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAoB,EAAE,uDAAC;AACnD;;;AAGG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,KAAK,qDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC9E;;;AAGG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,KAAK,qDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC9E;;;AAGG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,KAAK,qDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC9E;;;AAGG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAoB;AAC7C;;;AAGG;QACM,IAAA,CAAA,eAAe,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAE;AAClC;;;AAGG;QACM,IAAA,CAAA,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AACpC;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AACnC;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAgB,IAAI,mDAAC;AAC7C;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,EAAE,mDAAC;AACpC;;;AAGG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,kDAAC;AACvC;;;AAGG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAoB,KAAK,oDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC7E;;;AAGG;QACM,IAAA,CAAA,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA2B;AAC3D,IAAA;iIA1GY,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,8yFAD0B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAC5C,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,EAAE;;;ACvErD,SAAU,cAAc,CAAI,SAAkB,EAAA;AAClD,IAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9F;AAEM,SAAU,mBAAmB,CAAC,IAA6B,EAAA;IAC/D,OAAO,CAAC,OAAwB,KAA6B;AAC3D,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI;AAClD,QAAA,OAAO,OAAO,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI;AAClD,IAAA,CAAC;AACH;AAEM,SAAU,oBAAoB,CAAgC,UAAa,EAAA;IAC/E,OAAO,MAAM,eAAgB,SAAQ,gBAAgB,CAAA;AAA9C,QAAA,WAAA,GAAA;;YACL,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,UAAU,CAAC;AACjE,YAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,YAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACtB,gBAAA,QACE,IAAI,CAAC,iBAAiB,EAAE;qBACvB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAElH,YAAA,CAAC,mDAAC;AACF,YAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAC7B,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE;AACtC,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC;AAAE,oBAAA,OAAO,KAAK;gBACxF,IAAI,MAAM,GAAG,KAAK;AAElB,gBAAA,IAAI,OAAO,IAAI,OAAO,KAAK,IAAI,EAAE;AAC/B,oBAAA,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,OAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAS,CAAC;gBACnE;AAEA,gBAAA,OAAO,MAAM;AACf,YAAA,CAAC,0DAAC;AACF,YAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AAC9B,gBAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACtF,YAAA,CAAC,2DAAC;AACF,YAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAC7B,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAAE,oBAAA,OAAO,EAAE;AACxC,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE;AACtC,gBAAA,OAAO,OAAiB;AAC1B,YAAA,CAAC,0DAAC;AACF,YAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAkB,SAAS,iDAAC;AAC1C,YAAA,IAAA,CAAA,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1C,YAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,KAAK,2DAAC;AAC/B,YAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,KAAK,0DAAC;AAC9B,YAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,KAAK,0DAAC;AAC9B,YAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAM,IAAI,yDAAC;AACjC,YAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAS,EAAE,yDAAC;AAElC,YAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,4DAAC;AAC3E,YAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,4DAAC;AAC3E,YAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,6DAAC;AAC9E,YAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AAC9B,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAE9B,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAClD,oBAAA,OAAO,IAAI;gBACb;gBAEA,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE;AAClC,oBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC1B,wBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,4BAAA,OAAO,OAAO,CAAC,CAAC,CAAC;wBACnB;AAAO,6BAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,4BAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAA,CAAA,EAAI,KAAK,CAAC,MAAM,CAAA,CAAA,CAAG,CAAC;4BAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,4BAAA,OAAO,IAAI,MAAM,CAAC,eAAe,CAAC;wBACpC;oBACF;AACA,oBAAA,OAAO,OAAO;gBAChB;qBAAO;AACL,oBAAA,OAAO,IAAI,CAAC,aAAa,EAAE;gBAC7B;AACF,YAAA,CAAC,2DAAC;AACF,YAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AAC9B,gBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAAE,oBAAA,OAAO,IAAI,CAAC,OAAO,EAAE;;AACpD,oBAAA,OAAO,IAAI,CAAC,aAAa,EAAE;AAClC,YAAA,CAAC,2DAAC;AAEF,YAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,KAAK,iEAAC;QAkBvC;AAfE,QAAA,UAAU,CAAC,KAAU,EAAA;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACvB;AACA,QAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;QACpB;AACA,QAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;QACrB;AACA,QAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnC;QACA,oBAAoB,GAAA;AAClB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC;KACD;AACH;;MCvGa,eAAe,CAAA;iIAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kIAAf,eAAe,EAAA,CAAA,CAAA;kIAAf,eAAe,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE;AACV,iBAAA;;;ACLD;;AAEG;;;;"}