@next-bricks/form 1.10.8 → 1.10.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +1 -1
- package/dist/chunks/{4837.e47cfe9b.js → 4837.59ab16d8.js} +2 -2
- package/dist/chunks/{4837.e47cfe9b.js.map → 4837.59ab16d8.js.map} +1 -1
- package/dist/chunks/{4947.9dcc3022.js → 4947.e4665990.js} +3 -3
- package/dist/chunks/{4947.9dcc3022.js.map → 4947.e4665990.js.map} +1 -1
- package/dist/chunks/5399.9bf18611.js +2 -0
- package/dist/chunks/5399.9bf18611.js.map +1 -0
- package/dist/chunks/{7218.9e565040.js → 7218.1d36c6cf.js} +2 -2
- package/dist/chunks/{7218.9e565040.js.map → 7218.1d36c6cf.js.map} +1 -1
- package/dist/chunks/{9259.fd9cf6f6.js → 9259.43385314.js} +3 -3
- package/dist/chunks/{9259.fd9cf6f6.js.map → 9259.43385314.js.map} +1 -1
- package/dist/chunks/{eo-color-picker.da02666d.js → eo-color-picker.35f8818b.js} +2 -2
- package/dist/chunks/{eo-color-picker.da02666d.js.map → eo-color-picker.35f8818b.js.map} +1 -1
- package/dist/chunks/{eo-date-picker.648b4e2a.js → eo-date-picker.2cd6cdd6.js} +2 -2
- package/dist/chunks/{eo-date-picker.648b4e2a.js.map → eo-date-picker.2cd6cdd6.js.map} +1 -1
- package/dist/chunks/{eo-dynamic-form-item.3c1bb6f9.js → eo-dynamic-form-item.dedbe2af.js} +3 -3
- package/dist/chunks/{eo-dynamic-form-item.3c1bb6f9.js.map → eo-dynamic-form-item.dedbe2af.js.map} +1 -1
- package/dist/chunks/{eo-form-item.2c959bc5.js → eo-form-item.2977d047.js} +3 -3
- package/dist/chunks/{eo-form-item.2c959bc5.js.map → eo-form-item.2977d047.js.map} +1 -1
- package/dist/chunks/{eo-radio.89217faa.js → eo-radio.84a15ff7.js} +3 -3
- package/dist/chunks/{eo-radio.89217faa.js.map → eo-radio.84a15ff7.js.map} +1 -1
- package/dist/chunks/{eo-select.2aab788e.js → eo-select.323299b0.js} +3 -3
- package/dist/chunks/{eo-select.2aab788e.js.map → eo-select.323299b0.js.map} +1 -1
- package/dist/chunks/{eo-time-picker.7a6711f4.js → eo-time-picker.41cdd69d.js} +2 -2
- package/dist/chunks/{eo-time-picker.7a6711f4.js.map → eo-time-picker.41cdd69d.js.map} +1 -1
- package/dist/chunks/{eo-time-range-picker.204f1841.js → eo-time-range-picker.faa033a6.js} +2 -2
- package/dist/chunks/{eo-time-range-picker.204f1841.js.map → eo-time-range-picker.faa033a6.js.map} +1 -1
- package/dist/chunks/{eo-upload-file.62373afd.js → eo-upload-file.505d655f.js} +3 -3
- package/dist/chunks/{eo-upload-file.62373afd.js.map → eo-upload-file.505d655f.js.map} +1 -1
- package/dist/chunks/{eo-upload-image.5eb96a24.js → eo-upload-image.705818de.js} +3 -3
- package/dist/chunks/{eo-upload-image.5eb96a24.js.map → eo-upload-image.705818de.js.map} +1 -1
- package/dist/chunks/main.ba7df5cf.js +2 -0
- package/dist/chunks/{main.b1971ad8.js.map → main.ba7df5cf.js.map} +1 -1
- package/dist/index.b7e5e657.js +2 -0
- package/dist/{index.ae6a0a04.js.map → index.b7e5e657.js.map} +1 -1
- package/package.json +2 -2
- package/dist/chunks/5399.c9226446.js +0 -2
- package/dist/chunks/5399.c9226446.js.map +0 -1
- package/dist/chunks/main.b1971ad8.js +0 -2
- package/dist/index.ae6a0a04.js +0 -2
- /package/dist/chunks/{4947.9dcc3022.js.LICENSE.txt → 4947.e4665990.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9259.fd9cf6f6.js.LICENSE.txt → 9259.43385314.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-dynamic-form-item.3c1bb6f9.js.LICENSE.txt → eo-dynamic-form-item.dedbe2af.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-form-item.2c959bc5.js.LICENSE.txt → eo-form-item.2977d047.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-radio.89217faa.js.LICENSE.txt → eo-radio.84a15ff7.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-select.2aab788e.js.LICENSE.txt → eo-select.323299b0.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-upload-file.62373afd.js.LICENSE.txt → eo-upload-file.505d655f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-upload-image.5eb96a24.js.LICENSE.txt → eo-upload-image.705818de.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/9259.fd9cf6f6.js","mappings":"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","sources":["webpack:///./src/input/index.tsx","webpack:///../../src/useMergeRefs.ts","webpack:///./src/textarea/calculateAutoSizeStyle.ts","webpack:///./src/textarea/index.tsx","webpack:///../../src/PubSub.ts","webpack:///../../src/FormStore.ts","webpack:///./src/form/index.tsx","webpack:///./src/form-item/index.tsx","webpack:///./src/utils/formatOptions.ts","webpack:///./src/radio/host-context.css?b01e","webpack:///./src/radio/index.tsx","webpack:///./src/select/empty.svg","webpack:///./src/select/index.tsx","webpack:///./src/submit-buttons/index.tsx","webpack:///../../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","webpack:///../../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","webpack:///./src/checkbox/index.tsx","webpack:///./src/dynamic-form-item/i18n.ts","webpack:///./src/dynamic-form-item/index.tsx","webpack:///./src/search/index.tsx","webpack:///./src/icon-select/i18n.ts","webpack:///./src/icon-select/utils.ts","webpack:///./src/icon-select/index.tsx","webpack:///./src/upload/i18n.ts","webpack:///./src/upload/utils.ts","webpack:///./src/upload/Upload.tsx","webpack:///./src/upload/upload-image/utils.ts","webpack:///./src/upload/upload-image/index.tsx","webpack:///./src/general-switch/index.tsx","webpack:///./src/upload/upload-file/index.tsx","webpack:///./src/auto-complete/index.tsx","webpack:///../../node_modules/antd/es/time-picker/index.js","webpack:///./src/time-picker/index.tsx","webpack:///./src/date-picker/i18n.ts","webpack:///../../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack:///../../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack:///./src/date-picker/index.tsx","webpack:///./src/time-range-picker/i18n.ts","webpack:///./src/time-range-picker/index.tsx","webpack:///./src/color-picker/index.tsx","webpack:///./src/radio/host-context.css","webpack:///./src/auto-complete/styles.shadow.css","webpack:///./src/checkbox/checkbox.shadow.css","webpack:///./src/color-picker/styles.shadow.css","webpack:///./src/date-picker/styles.shadow.css","webpack:///./src/dynamic-form-item/dynamic-form-item.shadow.css","webpack:///./src/general-switch/styles.shadow.css","webpack:///./src/icon-select/styles.shadow.css","webpack:///./src/input/input.shadow.css","webpack:///./src/radio/index.shadow.css","webpack:///./src/search/styles.shadow.css","webpack:///./src/select/index.shadow.css","webpack:///./src/submit-buttons/index.shadow.css","webpack:///./src/textarea/textarea.shadow.css","webpack:///./src/time-picker/fix-style.shadow.css","webpack:///./src/time-picker/styles.shadow.css","webpack:///./src/time-range-picker/styles.shadow.css","webpack:///./src/upload/upload-file/styles.shadow.css","webpack:///./src/upload/upload-image/styles.shadow.css","webpack:///../../node_modules/dayjs/locale/zh-cn.js","webpack:///../../node_modules/dayjs/plugin/isoWeek.js","webpack:///../../node_modules/dayjs/plugin/quarterOfYear.js","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["import React, {\n useEffect,\n useState,\n useRef,\n forwardRef,\n createRef,\n useImperativeHandle,\n type ChangeEvent,\n type MouseEvent,\n type CSSProperties,\n} from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport { isNil } from \"lodash\";\nimport styleText from \"./input.shadow.css\";\nimport { FormItemElementBase, MessageBody } from \"@next-shared/form\";\nimport { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { ComponentSize, InputType } from \"../interface.js\";\nimport { useMergeRefs } from \"@next-shared/hooks\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface InputProps extends FormItemProps {\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n clearable?: boolean;\n autoFocus?: boolean;\n type?: InputType;\n size?: ComponentSize;\n maxLength?: number;\n minLength?: number;\n validateState?: string;\n inputStyle?: CSSProperties;\n}\n\nexport interface InputEvents {\n change: CustomEvent<string>;\n}\n\nexport interface InputEventsMap {\n onChange: \"change\";\n}\n\n/**\n * 通用输入框构件\n * @author sailor\n *\n * @part addon-wrapper - 包裹输入组件、前缀、后缀、前置和后置的容器\n * @part affix-wrapper - 包裹输入组件、前缀和后缀的容器\n * @part input - 输入组件\n * @part clear-icon - 清除按钮\n * @part prefix - 输入框前缀容器\n * @part suffix - 输入框后缀容器\n * @part before-addon - 输入框前置容器\n * @part after-addon - 输入框后置容器\n *\n * @slot addonBefore - 输入框前置标签\n * @slot addonAfter - 输入框后置标签\n * @slot prefix - 输入框前缀图标\n * @slot suffix - 输入框后缀图标\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-input\", {\n styleTexts: [styleText],\n alias: [\"form.general-input\"],\n})\nclass Input extends FormItemElementBase {\n #RCInputRef = createRef<RCInputRef>();\n\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 正则校验规则\n */\n @property() accessor pattern: string | undefined;\n\n /**\n * 表单校验最大长度\n */\n @property({\n type: Number,\n })\n accessor max: number | undefined;\n\n /**\n * 表单校验最小长度\n */\n @property({\n type: Number,\n })\n accessor min: number | undefined;\n\n /**\n * 错误时显示消息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 输入框值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否只读\n */\n @property({ type: Boolean })\n accessor readonly: boolean | undefined;\n\n /**\n * 是否显示清除按钮\n */\n @property({ type: Boolean })\n accessor clearable: boolean | undefined;\n\n /**\n * 是否自动聚焦\n */\n @property({\n type: Boolean,\n })\n accessor autoFocus: boolean | undefined;\n\n /**\n * 类型\n * @default \"text\"\n */\n @property() accessor type: InputType | undefined;\n\n /**\n * 大小\n * @default \"medium\"\n */\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 最小长度\n */\n @property({ type: Number })\n accessor minLength: number | undefined;\n\n /**\n * 最大长度\n */\n @property({ type: Number })\n accessor maxLength: number | undefined;\n\n /**\n * 输入框样式\n */\n @property({ attribute: false }) accessor inputStyle:\n | React.CSSProperties\n | undefined;\n\n /**\n * 值改变事件\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n handleInputChange = (value: string) => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n\n /**\n * focus\n */\n @method()\n focusInput() {\n return this.#RCInputRef.current?.focus();\n }\n\n /**\n * blur\n */\n @method()\n blurInput() {\n return this.#RCInputRef.current?.blur();\n }\n\n /**\n * 是否有 addonBefore 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasAddonBefore: boolean | undefined;\n\n /**\n * 是否有 addonAfter 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasAddonAfter: boolean | undefined;\n\n /**\n * 是否有 prefix 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasPrefix: boolean | undefined;\n\n /**\n * 是否有 suffix 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasSuffix: boolean | undefined;\n\n /**\n * 表单项校验方法\n */\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody) | undefined;\n\n renderCallback = (ref: RCInputRef) => {\n (this.#RCInputRef as any).current = ref;\n const addonBefore = this.#getSlotByName(\"addonBefore\");\n const addonAfter = this.#getSlotByName(\"addonAfter\");\n const prefix = this.#getSlotByName(\"prefix\");\n const suffix = this.#getSlotByName(\"suffix\");\n\n addonBefore?.addEventListener(\"slotchange\", () => {\n this.hasAddonBefore = addonBefore.assignedElements().length > 0;\n });\n addonAfter?.addEventListener(\"slotchange\", () => {\n this.hasAddonAfter = addonAfter.assignedElements().length > 0;\n });\n suffix?.addEventListener(\"slotchange\", () => {\n this.hasSuffix = suffix.assignedElements().length > 0;\n });\n prefix?.addEventListener(\"slotchange\", () => {\n this.hasPrefix = prefix.assignedElements().length > 0;\n });\n };\n\n #getSlotByName(name: string): HTMLSlotElement {\n return this.shadowRoot?.querySelector(\n `slot[name='${name}']`\n ) as HTMLSlotElement;\n }\n\n render() {\n return (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <RCInput\n formElement={this.getFormElement()}\n curElement={this}\n ref={this.renderCallback}\n name={this.name}\n label={this.label}\n required={this.required}\n pattern={this.pattern}\n min={this.min}\n max={this.max}\n message={this.message}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n validateState={this.validateState}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n readOnly={this.readonly}\n clearable={this.clearable}\n autoFocus={this.autoFocus}\n type={this.type}\n size={this.size}\n minLength={this.minLength}\n maxLength={this.maxLength}\n inputStyle={this.inputStyle}\n trigger=\"handleInputChange\"\n onInputChange={this.handleInputChange}\n validator={this.validator}\n />\n );\n }\n}\n\nexport interface RCInputProps extends InputProps {\n onInputChange?: (value: string) => void;\n}\n\nexport interface RCInputRef {\n focus: (options?: FocusOptions) => void;\n blur: () => void;\n}\n\n// eslint-disable-next-line react/display-name\nexport const RCInput = forwardRef<RCInputRef, RCInputProps>((props, ref) => {\n const {\n placeholder,\n clearable,\n disabled,\n readOnly,\n autoFocus,\n size = \"medium\",\n type = \"text\",\n maxLength,\n minLength,\n validateState,\n onInputChange,\n inputStyle,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputAffixWrapperRef = useRef<HTMLInputElement>(null);\n\n const [value, setValue] = useState<string>();\n const [focused, setFocused] = useState<boolean>();\n\n const searchInputRef = React.useCallback((element: HTMLInputElement) => {\n if (element && autoFocus) {\n Promise.resolve().then(() => {\n try {\n element.focus();\n } catch {\n // Do nothing.\n }\n });\n }\n }, []);\n\n const mergeInputRef = useMergeRefs([inputRef, searchInputRef]);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n useImperativeHandle(ref, () => ({\n focus: (options?: FocusOptions) => {\n inputRef.current?.focus(options);\n },\n blur: () => {\n inputRef.current?.blur();\n },\n }));\n\n const handleInputAffixWrapperClick = (e: MouseEvent<HTMLElement>) => {\n if (inputAffixWrapperRef.current?.contains(e.target as Element)) {\n inputRef.current?.focus();\n }\n };\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n onInputChange?.(e.target.value);\n };\n\n const handleFocus = () => {\n setFocused(true);\n };\n\n const handleBlur = () => {\n setFocused(false);\n };\n\n const handleClear = () => {\n setValue(\"\");\n onInputChange?.(\"\");\n };\n\n const getClearIcon = () => {\n if (!clearable) return null;\n\n const hidden = disabled || readOnly || !fixValue(value);\n return (\n <WrappedIcon\n className={classNames(\"input-clear-icon\", {\n \"input-clear-icon-hidden\": hidden,\n })}\n part=\"clear-icon\"\n lib=\"antd\"\n icon=\"close-circle\"\n theme=\"filled\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={handleClear}\n />\n );\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div\n part=\"addon-wrapper\"\n className={classNames(\n \"input-addon-wrapper\",\n size && `input-addon-wrapper-size-${size}`,\n validateState && `input-addon-wrapper-status-${validateState}`\n )}\n style={inputStyle}\n >\n <span part=\"before-addon\" className=\"input-before-addon\">\n <slot name=\"addonBefore\" />\n </span>\n <span\n ref={inputAffixWrapperRef}\n part=\"affix-wrapper\"\n className={classNames(\"input-affix-wrapper\", {\n \"input-affix-wrapper-focused\": focused,\n \"input-affix-wrapper-disabled\": disabled,\n \"input-affix-wrapper-readOnly\": readOnly,\n })}\n onClick={handleInputAffixWrapperClick}\n >\n <span part=\"prefix\" className=\"input-prefix\">\n <slot name=\"prefix\" />\n </span>\n <input\n part=\"input\"\n placeholder={placeholder}\n maxLength={maxLength}\n minLength={minLength}\n ref={mergeInputRef}\n className=\"input\"\n type={type}\n disabled={disabled}\n readOnly={readOnly}\n value={fixValue(value)}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n <span part=\"suffix\" className=\"input-suffix\">\n {getClearIcon()}\n <slot name=\"suffix\" />\n </span>\n </span>\n <span part=\"after-addon\" className=\"input-after-addon\">\n <slot name=\"addonAfter\" />\n </span>\n </div>\n </WrappedFormItem>\n );\n});\n\nfunction fixValue<T>(value: T) {\n return isNil(value) ? \"\" : String(value);\n}\n","import { Ref, RefCallback, MutableRefObject, useMemo } from \"react\";\n\nexport function useMergeRefs<Instance>(\n refs: (Ref<Instance> | undefined)[]\n): RefCallback<Instance> {\n const mergeRefs = useMemo(() => {\n return (value: Instance) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n (ref as MutableRefObject<Instance | null>).current = value;\n }\n });\n };\n }, refs);\n\n return mergeRefs;\n}\n","const HIDDEN_TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important;\n pointer-events: none !important;\n`;\n\nconst SIZING_STYLE = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"font-variant\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\",\n \"word-break\",\n \"white-space\",\n];\nlet hiddenTextarea: HTMLTextAreaElement;\n\nexport default function calculateAutoSizeStyle(\n uiTextNode: HTMLTextAreaElement,\n minRows: number | null = null,\n maxRows: number | null = null\n): React.CSSProperties {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement(\"textarea\");\n hiddenTextarea.setAttribute(\"tab-index\", \"-1\");\n hiddenTextarea.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenTextarea);\n }\n\n const uiTextNodeStyle = window.getComputedStyle(uiTextNode);\n const sizingStyle = SIZING_STYLE.map(\n (name) => `${name}:${uiTextNodeStyle.getPropertyValue(name)}`\n ).join(\";\");\n\n // equal style\n hiddenTextarea.setAttribute(\n \"style\",\n `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`\n );\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || \"\";\n\n let minHeight: number | undefined = undefined;\n let maxHeight: number | undefined = undefined;\n let overflowY: any;\n\n const borderSize = 2;\n const paddingSize = 8;\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = \" \";\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n overflowY = height > maxHeight ? \"\" : \"hidden\";\n height = Math.min(maxHeight, height);\n }\n }\n\n const style: React.CSSProperties = {\n height,\n overflowY,\n resize: \"none\",\n };\n\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n\n return style;\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport calculateAutoSizeStyle from \"./calculateAutoSizeStyle.js\";\nimport styleText from \"./textarea.shadow.css\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport \"@next-core/theme\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ntype AutoSize =\n | boolean\n | {\n minRows: number;\n maxRows: number;\n };\n\nexport interface TextareaProps extends FormItemProps {\n name?: string;\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n textareaStyle?: React.CSSProperties;\n minLength?: number;\n maxLength?: number;\n autoSize?: AutoSize;\n validateState?: string;\n onInputChange: (value: string) => void;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 通用多行文本输入框构件\n * @author sailor\n * @category form-input-basic\n */\n@defineElement(\"eo-textarea\", {\n styleTexts: [styleText],\n alias: [\"form.general-textarea\"],\n})\nclass Textarea extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 最小长度\n */\n @property({\n type: Number,\n })\n accessor minLength: number | undefined;\n\n /**\n * 最大长度\n */\n @property({\n type: Number,\n })\n accessor maxLength: number | undefined;\n\n /**\n * 大小自适应\n */\n @property({\n attribute: false,\n })\n accessor autoSize: AutoSize | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 表单校验最大长度\n */\n @property({\n type: Number,\n })\n accessor max: number | undefined;\n\n /**\n * 表单校验最小长度\n */\n @property({\n type: Number,\n })\n accessor min: number | undefined;\n\n /**\n * 校验信息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 自定义样式\n */\n @property({ attribute: false }) accessor textareaStyle:\n | React.CSSProperties\n | undefined;\n\n /**\n * @detail\n * @description 值改变事件\n */\n @event({ type: \"change\" })\n accessor #InputChangeEvent!: EventEmitter<string>;\n\n handleInputChange = (value: string) => {\n this.value = value;\n this.#InputChangeEvent.emit(value);\n };\n\n render() {\n return (\n <TextareaComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n value={this.value}\n required={this.required}\n placeholder={this.placeholder}\n disabled={this.disabled}\n minLength={this.minLength}\n maxLength={this.maxLength}\n autoSize={this.autoSize}\n notRender={this.notRender}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n textareaStyle={this.textareaStyle}\n validateState={this.validateState}\n max={this.max}\n min={this.min}\n message={this.message}\n trigger=\"handleInputChange\"\n onInputChange={this.handleInputChange}\n />\n );\n }\n}\n\nexport function TextareaComponent(props: TextareaProps) {\n const {\n name,\n placeholder,\n disabled,\n textareaStyle,\n minLength,\n maxLength,\n autoSize,\n validateState,\n onInputChange,\n } = props;\n const [value, setValue] = useState(props.value ?? \"\");\n const [autoSizeStyle, setAutoSizeStyle] = useState<React.CSSProperties>();\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n const [minRows, maxRows] = React.useMemo(() => {\n if (autoSize && typeof autoSize === \"object\") {\n return [autoSize.minRows, autoSize.maxRows];\n }\n\n return [];\n }, [autoSize]);\n\n const setAutoSize = useCallback(() => {\n const textareaElement = textareaRef.current as HTMLTextAreaElement;\n if (textareaElement && autoSize) {\n const textareaStyles = calculateAutoSizeStyle(\n textareaElement,\n minRows,\n maxRows\n );\n\n setAutoSizeStyle(textareaStyles);\n }\n }, [autoSize, maxRows, minRows]);\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ): void => {\n setValue(e.target.value);\n onInputChange(e.target.value);\n setAutoSize();\n };\n\n useEffect(() => {\n setValue(props.value ?? \"\");\n }, [props.value]);\n\n useEffect(() => {\n setAutoSize();\n }, [maxRows, minRows, setAutoSize]);\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <textarea\n ref={textareaRef}\n className={classNames({\n error: validateState === \"error\",\n })}\n name={name}\n value={value}\n disabled={disabled}\n style={{\n display: \"block\",\n height: 94,\n ...textareaStyle,\n ...autoSizeStyle,\n }}\n placeholder={placeholder}\n minLength={minLength}\n maxLength={maxLength}\n onChange={handleInputChange}\n />\n </WrappedFormItem>\n );\n}\n\nexport { Textarea };\n","import { remove } from \"lodash\";\n\nexport class PubSub {\n #topics: Record<string, { token: string; func: Function }[]> = {};\n #subUid = 0;\n\n publish(topic: string, body: any): void {\n if (!this.#topics[topic]) {\n return;\n }\n const subscribers = this.#topics[topic];\n let len = subscribers ? subscribers.length : 0;\n while (len--) {\n subscribers[len].func(topic, body);\n }\n }\n\n subscribe(topic: string, fn: (topic: string, detail: any) => void): string {\n if (!this.#topics[topic]) {\n this.#topics[topic] = [];\n }\n const token = (++this.#subUid).toString();\n this.#topics[topic].push({\n token: token,\n func: fn,\n });\n return token;\n }\n\n unsubscribe(token: string): void {\n for (const m in this.#topics) {\n if (this.#topics[m]) {\n remove(this.#topics[m], (item) => item.token === token);\n }\n }\n }\n}\n","import { isEmpty, isNil } from \"lodash\";\nimport { PubSub } from \"./PubSub.js\";\n\ninterface FormStoreOptions {\n onValuesChanged?: (data: any) => void;\n}\n\nexport interface FieldDetail {\n name: string;\n label?: string;\n notRender?: boolean;\n originProps?: Record<string, any>;\n validate: Validate;\n [k: string]: any;\n}\n\nexport interface MessageBody {\n message: string;\n type: string;\n}\n\nexport interface WatchOptions {\n needValidate?: boolean;\n}\n\ninterface Validate {\n required?: boolean;\n pattern?: string;\n min?: number;\n max?: number;\n message?: {\n required?: string;\n pattern?: string;\n min?: string;\n max?: string;\n };\n validator?: (value: any) => MessageBody | string;\n}\n\nlet uid = 0;\n\nclass Field {\n field: string;\n detail: FieldDetail;\n constructor(name: string, detail: FieldDetail) {\n this.field = name;\n this.detail = detail;\n }\n}\n\nexport class FormStore extends PubSub {\n static uid: number;\n static instance: Map<number, FormStore> = new Map();\n static getInstance(options?: FormStoreOptions): FormStore {\n if (!this.instance.get(uid)) {\n this.uid = uid;\n this.instance.set(this.uid, new FormStore(options));\n uid += 1;\n }\n return this.instance.get(this.uid) as FormStore;\n }\n\n #fields: Map<string, Field> = new Map();\n #options: FormStoreOptions | undefined;\n #formData!: Record<string, unknown>;\n #initData: Record<string, unknown> | undefined;\n\n constructor(options?: FormStoreOptions) {\n super();\n this.#formData = {};\n this.#options = options;\n }\n\n setField(name: string, detail: FieldDetail) {\n this.#fields.set(name, new Field(name, detail));\n }\n #getAllFields() {\n return [...this.#fields.keys()].filter((key) => {\n return !this.#fields.get(key)!.detail?.notRender;\n });\n }\n\n getAllValues() {\n const allFields = this.#getAllFields();\n const formData = Object.fromEntries(\n Object.entries(this.#formData)\n .map(([k, v]) => {\n if (allFields.includes(k)) {\n return [k, v];\n }\n return [];\n })\n .filter((item) => item.length)\n );\n return formData;\n }\n\n setInitValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n this.#initData = values;\n this.setFieldsValue(values, isEmitValuseChange);\n }\n\n setFieldsValueByInitData(name: string) {\n const value = this.#initData?.[name];\n if (!isNil(value)) {\n this.#formData[name] = value;\n this.publish(`${name}.init.value`, value);\n }\n }\n\n setFieldsValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n const newFormData: Record<string, unknown> = {\n ...this.#formData,\n };\n Object.entries(values).forEach(([k, v]) => {\n newFormData[k] = v;\n this.#initData && (this.#initData[k] = v);\n this.publish(`${k}.init.value`, v);\n });\n this.#formData = newFormData;\n\n if (isEmitValuseChange) {\n this.#options?.onValuesChanged?.({\n changedValues: values,\n allValues: this.getAllValues(),\n });\n }\n }\n\n resetFields(name?: string) {\n if (name) {\n delete this.#formData[name];\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#formData = {};\n this.publish(\"reset.fields\", null);\n }\n this.resetValidateState();\n }\n\n getFieldsValue(name?: string) {\n if (name) {\n return this.#formData[name];\n }\n return this.getAllValues();\n }\n\n removeField(name: string) {\n this.#fields.delete(name);\n }\n\n validateFields(\n callback: (err: boolean, value: any) => void\n ): boolean | Record<string, unknown> {\n const allFields = this.#getAllFields();\n const results: Array<MessageBody | undefined> = [];\n allFields.forEach((name) => {\n const field = this.#fields.get(name);\n if (field) {\n results.push(this.validateField(field.detail));\n }\n });\n\n if (results.some((result) => result?.type !== \"normal\")) {\n callback(\n true,\n results.filter((result) => result?.type !== \"normal\")\n );\n return false;\n } else {\n const formData = this.getAllValues();\n callback(false, formData);\n return formData;\n }\n }\n\n validateField(field: string | FieldDetail) {\n const fieldDetail =\n typeof field === \"string\" ? this.#fields.get(field)?.detail : field;\n if (!fieldDetail) return;\n const { name, label, validate } = fieldDetail;\n const validateValue = this.#formData[name];\n\n const messageBody = (message: string, type = \"error\") => {\n return {\n type,\n message,\n };\n };\n\n const getName = () => label ?? name;\n\n const valid = (validate: Validate, value: string): MessageBody => {\n const { required, pattern, message, min, max, validator } = validate;\n const label = getName();\n\n if (\n required &&\n (typeof value === \"object\"\n ? isEmpty(value)\n : value === undefined || value === null)\n ) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n\n if (pattern && value) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n if (min && (!value || value.length < min)) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n\n if (max && value && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\n }\n\n if (validator) {\n let result = \"\";\n let parsedValidator = [];\n if (Array.isArray(validator)) {\n parsedValidator = validator;\n } else {\n parsedValidator.push(validator);\n }\n\n for (const v of parsedValidator) {\n result = v(value);\n\n if (result) {\n break;\n }\n }\n return typeof result === \"string\"\n ? messageBody(result, result ? \"error\" : \"normal\")\n : (result as MessageBody);\n }\n\n return messageBody(\"\", \"normal\");\n };\n\n const result = valid(validate, validateValue as string);\n this.publish(`${name}.validate`, result);\n return result;\n }\n\n getValueFromEvent(e: React.ChangeEvent): any {\n if (!e || !e.target) {\n return e;\n }\n const target = e.target as HTMLInputElement;\n return target.type === \"checkbox\" ? target.checked : target.value;\n }\n\n resetValidateState() {\n this.publish(`reset.validate`, null);\n }\n\n onWatch(\n name: string,\n event: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n const value = this.getValueFromEvent(event);\n // default first params is value\n const realValue = Array.isArray(value) ? value[0] : value;\n\n this.setFieldsValue({\n [name]: realValue,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.apply(this, value);\n }\n }\n\n onChange(\n name: string,\n value: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n this.setFieldsValue({\n [name]: value,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.(value);\n }\n }\n}\n","import React, { useMemo } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n AbstractForm,\n FormStore,\n MessageBody,\n ColProps,\n} from \"@next-shared/form\";\nimport { ComponentSize, Layout } from \"../interface.js\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\ninterface FormProps {\n values?: Record<string, any>;\n layout?: Layout;\n size?: ComponentSize;\n}\n\nexport interface FormEvents {\n valuesChange?: Event;\n validateSuccess?: Event;\n validateError?: Event;\n}\n\nexport interface FormMapEvents {\n onValuesChange: \"values.change\";\n onValidateSuccess: \"validate.success\";\n onValidateError: \"validate.error\";\n}\n\n/**\n * 表单构件\n * @author sailor\n * @slot - 表单内容\n * @category form-input-basic\n */\n@defineElement(\"eo-form\", {\n alias: [\"form.general-form\"],\n})\nclass Form extends ReactNextElement implements FormProps, AbstractForm {\n formStore: FormStore;\n #values!: Record<string, unknown>;\n defaultEmitValuesChange = true;\n\n constructor() {\n super();\n this.formStore = FormStore.getInstance({\n onValuesChanged: this.handleValuesChange,\n });\n }\n\n get isFormElement(): true {\n return true;\n }\n\n set values(value: Record<string, unknown>) {\n this.#values = value;\n\n this.#setInitValue(value);\n }\n get values(): Record<string, unknown> {\n return this.#values;\n }\n\n #setInitValue(values: Record<string, unknown>) {\n this.formStore.setInitValue(values, this.defaultEmitValuesChange);\n }\n\n /**\n * 布局方式(默认 vertical 布局)\n * @default vertical\n */\n @property() accessor layout: Layout = \"vertical\";\n\n /**\n * 表单组件尺寸\n */\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 标签列布局样式(仅当 layout=\"horizontal\" 时有效)\n */\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps = {\n sm: {\n span: 24,\n },\n md: {\n span: 24,\n },\n lg: {\n span: 7,\n },\n xl: {\n span: 5,\n },\n xxl: {\n span: 4,\n },\n };\n\n /**\n * 输入控件列布局样式(仅当 layout=\"horizontal\" 时有效)\n */\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps = {\n sm: {\n span: 18,\n },\n md: {\n span: 18,\n },\n lg: {\n span: 13,\n },\n xl: {\n span: 16,\n },\n xxl: {\n span: 18,\n },\n };\n\n /**\n * 表单值变更事件\n * @detail\n */\n @event({ type: \"values.change\" }) accessor #valuesChangeEvent!: EventEmitter<\n Record<string, unknown>\n >;\n handleValuesChange = (values: Record<string, unknown>) => {\n this.#valuesChangeEvent.emit(values);\n };\n\n /**\n * 表单验证成功时触发事件\n */\n @event({ type: \"validate.success\" }) accessor #successEvent!: EventEmitter<\n Record<string, unknown>\n >;\n /**\n * 表单验证报错时触发事件\n */\n @event({ type: \"validate.error\" }) accessor #errorEvent!: EventEmitter<\n MessageBody[]\n >;\n\n /**\n * 表单校验方法\n */\n @method()\n validate(): boolean | Record<string, unknown> {\n return this.formStore.validateFields((err, values) => {\n if (err) {\n this.#errorEvent.emit(values);\n } else {\n this.#successEvent.emit(values);\n }\n });\n }\n\n /**\n * 表单设置值方法\n */\n @method()\n setInitValue(\n values: Record<string, unknown>,\n options?: { runInMacrotask?: boolean; runInMicrotask?: boolean }\n ) {\n if (options) {\n options.runInMicrotask &&\n queueMicrotask(() => {\n this.values = values;\n });\n options.runInMacrotask &&\n setTimeout(() => {\n this.values = values;\n });\n } else {\n this.values = values;\n }\n }\n\n /**\n * 表单重置值方法\n */\n @method()\n resetFields(name?: string) {\n this.formStore.resetFields(typeof name === \"string\" ? name : undefined);\n }\n\n /**\n * 获取表单值方法\n */\n @method()\n getFieldsValue(name?: string) {\n return this.formStore.getFieldsValue(\n typeof name === \"string\" ? name : undefined\n );\n }\n\n @property({\n attribute: false,\n })\n accessor formStyle: React.CSSProperties | undefined;\n\n /**\n * 校验表单字段方法\n */\n @method()\n validateField(name: string) {\n this.formStore.validateField(name);\n }\n\n /**\n * 重置表单校验状态方法\n */\n @method()\n resetValidateState() {\n this.formStore.resetValidateState();\n }\n\n render() {\n return (\n <FormComponent\n layout={this.layout}\n size={this.size}\n labelCol={this.labelCol}\n wrapperCol={this.wrapperCol}\n formStyle={this.formStyle}\n />\n );\n }\n}\n\ninterface FormComponentProps extends FormProps {\n formStyle?: React.CSSProperties;\n labelCol?: ColProps;\n wrapperCol?: ColProps;\n onValuesChange?: (value: Record<string, any>) => void;\n onValidateSuccess?: () => void;\n onValidateError?: () => void;\n}\n\nexport function FormComponent({\n layout = \"vertical\",\n formStyle,\n}: FormComponentProps) {\n const computedStyle = useMemo((): React.CSSProperties => {\n switch (layout) {\n case \"vertical\":\n case \"horizontal\": {\n return {\n display: \"flex\",\n flexDirection: \"column\",\n };\n }\n case \"inline\": {\n return {\n display: \"flex\",\n gap: 10,\n };\n }\n default:\n return {};\n }\n }, [layout]);\n\n return (\n <form>\n <slot\n style={{\n ...computedStyle,\n ...(formStyle ? formStyle : {}),\n }}\n />\n </form>\n );\n}\n\nexport { Form, FormProps };\n","import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport {\n AbstractForm,\n FormItemElementBase,\n MessageBody,\n ColProps,\n} from \"@next-shared/form\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport type { Form } from \"../form/index.jsx\";\nimport styleText from \"./FormItem.shadow.less\";\nimport classNames from \"classnames\";\nimport type { ComponentSize, Layout } from \"../interface.js\";\nimport {\n convertToItemColName,\n calcWrapperColOffsetWithoutLabel,\n} from \"./convertToItemColName.js\";\nimport \"@next-core/theme\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\ntype CurrentElement = HTMLElement & {\n size?: ComponentSize;\n validateState?: MessageBody | string;\n [key: string]: any;\n};\n\nexport interface FormItemProps {\n formElement?: AbstractForm | null;\n curElement?: CurrentElement;\n name?: string;\n label?: string;\n current?: HTMLElement;\n required?: boolean;\n pattern?: string;\n min?: number;\n max?: number;\n labelCol?: ColProps;\n wrapperCol?: ColProps;\n message?: Record<string, string>;\n layout?: Layout;\n size?: ComponentSize;\n trigger?: string;\n valuePropsName?: string;\n notRender?: boolean;\n helpBrick?: {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n placement?: \"right\" | \"bottom\";\n };\n labelBrick?: { useBrick: UseSingleBrickConf | UseSingleBrickConf[] };\n needValidate?: boolean;\n validator?: (value: any) => MessageBody | string;\n}\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * 通用输入框构件\n * @author sailor\n * @slot - 表单项内容\n * @category form-input-basic\n * @insider\n */\n@defineElement(\"eo-form-item\", {\n styleTexts: [styleText],\n alias: [\"form.general-form-item\"],\n})\nclass FormItem extends FormItemElementBase implements FormItemProps {\n @property({\n attribute: false,\n })\n accessor formElement: Form | undefined;\n\n @property({\n attribute: false,\n })\n accessor curElement: HTMLElement | undefined;\n\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n @property() accessor label: string | undefined;\n\n @property() accessor pattern: string | undefined;\n\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n @property({\n type: Number,\n })\n accessor max: number | undefined;\n\n @property({\n type: Number,\n })\n accessor min: number | undefined;\n\n /**\n * 表单项是否必填\n * @group basicFormItem\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 初始值\n */\n @property() accessor value: string | undefined;\n\n @property() accessor valuePropsName: string | undefined;\n\n @property() accessor layout: Layout | undefined;\n\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 是否自动去除前后的空白字符\n * @default true\n * @group advancedFormItem\n */\n @property({\n type: Boolean,\n })\n accessor trim = true;\n\n /**\n * 事件触发方法名\n */\n @property()\n accessor trigger!: string;\n\n /**\n * 表单项校验方法\n */\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody) | undefined;\n\n /**\n * 值变化时是否主动出发校验\n */\n @property({\n type: Boolean,\n })\n accessor needValidate: boolean | undefined;\n\n disconnectedCallback(): void {\n const name = this.name;\n const formInstance = this.formElement?.formStore;\n if (formInstance && name) {\n formInstance.removeField(name);\n formInstance.unsubscribe(`${name}.validate`);\n formInstance.unsubscribe(`${name}.init.value`);\n formInstance.unsubscribe(`${name}.reset.fields`);\n formInstance.unsubscribe(`reset.fields`);\n formInstance.unsubscribe(\"reset.validate\");\n }\n\n super.disconnectedCallback();\n }\n\n render() {\n return (\n <FormItemComponent\n formElement={this.formElement}\n curElement={this.curElement}\n label={this.label}\n name={this.name}\n required={this.required}\n pattern={this.pattern}\n min={this.min}\n max={this.max}\n message={this.message}\n size={this.size || this.formElement?.size}\n layout={this.layout || this.formElement?.layout}\n trigger={this.trigger}\n notRender={this.notRender}\n labelCol={this.labelCol}\n wrapperCol={this.wrapperCol}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n valuePropsName={this.valuePropsName}\n needValidate={this.needValidate}\n validator={this.validator}\n />\n );\n }\n}\n\nexport { FormItem };\n\nexport function FormItemComponent(props: FormItemProps) {\n const {\n name,\n label,\n required,\n pattern,\n max,\n min,\n message,\n formElement,\n curElement,\n valuePropsName = \"value\",\n size,\n trigger = \"onChange\",\n layout = \"horizontal\",\n helpBrick,\n labelBrick,\n needValidate = true,\n notRender,\n validator,\n } = props;\n const formInstance = formElement?.formStore;\n\n const labelCol = props.labelCol ?? formElement?.labelCol;\n const wrapperCol = props.wrapperCol ?? formElement?.wrapperCol;\n\n const finalWrapperCol = useMemo(() => {\n if (labelCol && wrapperCol && !label) {\n return calcWrapperColOffsetWithoutLabel(labelCol, wrapperCol);\n }\n\n return wrapperCol;\n }, [wrapperCol, label, labelCol]);\n\n const defaultValidateState = useRef<MessageBody>({\n message: \"\",\n type: \"normal\",\n });\n const [validateState, setValidateState] = useState<MessageBody>(\n defaultValidateState.current\n );\n\n useEffect(() => {\n if (!formInstance || !name || !curElement || curElement.$bindFormItem)\n return;\n const originTrigger = curElement[trigger];\n curElement[trigger] = (...args: any[]) =>\n formInstance.onWatch(name, args, originTrigger, {\n needValidate,\n });\n curElement.$bindFormItem = true;\n\n formInstance.subscribe(`${name}.validate`, (_, detail) => {\n setValidateState(detail);\n curElement.validateState = detail.type;\n });\n formInstance.subscribe(`${name}.init.value`, (_, v) => {\n curElement[valuePropsName] = v;\n curElement.validateState = \"\";\n setValidateState({\n message: \"\",\n type: \"normal\",\n });\n });\n formInstance.subscribe(`${name}.reset.fields`, () => {\n curElement[valuePropsName] = undefined;\n });\n formInstance.subscribe(\"reset.fields\", () => {\n curElement[valuePropsName] = undefined;\n });\n formInstance.subscribe(\"reset.validate\", () => {\n setValidateState(defaultValidateState.current);\n curElement.validateState = defaultValidateState.current.type;\n });\n\n formInstance.setFieldsValueByInitData(name);\n }, [curElement, formInstance, name, needValidate, trigger, valuePropsName]);\n\n useEffect(() => {\n if (!formInstance || !name || !curElement) return;\n formInstance.setField(name, {\n name,\n label,\n notRender,\n validate: {\n required,\n pattern,\n max,\n min,\n message,\n validator,\n },\n });\n if (layout === \"inline\") curElement.style.display = \"inline-block\";\n if (size) {\n curElement.size = formElement.size || size;\n }\n }, [\n curElement,\n formElement?.size,\n notRender,\n formInstance,\n label,\n layout,\n max,\n message,\n min,\n name,\n pattern,\n required,\n size,\n validator,\n ]);\n\n return (\n <div className={classNames(\"form-item\", layout)}>\n {label && (\n <div\n className={classNames(\n \"form-item-label-wrapper\",\n convertToItemColName(labelCol, layout)\n )}\n >\n <div className=\"form-item-label\">\n <label>\n {required && <span className=\"required\">*</span>}\n {label}\n </label>\n {labelBrick?.useBrick ? (\n <ReactUseMultipleBricks {...labelBrick}></ReactUseMultipleBricks>\n ) : null}\n </div>\n </div>\n )}\n <div\n className={classNames(\n \"form-item-wrapper\",\n convertToItemColName(finalWrapperCol, layout)\n )}\n >\n <div\n className={classNames(\"form-item-control\", {\n [`align-${helpBrick?.placement ?? \"bottom\"}`]: helpBrick,\n })}\n >\n <slot></slot>\n {helpBrick?.useBrick ? (\n <ReactUseMultipleBricks {...helpBrick}></ReactUseMultipleBricks>\n ) : null}\n </div>\n {formElement ? (\n <div\n className={classNames(\"message\", {\n error: validateState.type === \"error\",\n })}\n part=\"message\"\n >\n {validateState?.type !== \"normal\" && validateState.message}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n","import { get, uniqBy } from \"lodash\";\nimport { GeneralOption, GeneralComplexOption } from \"../interface.js\";\n\nexport function formatOptions(\n options: GeneralOption[] = [],\n fields?: { label?: string; value?: string }\n) {\n return uniqBy(\n options.map((op) => {\n if (typeof op === \"number\" || typeof op === \"string\") {\n return { label: op, value: op };\n }\n if (typeof op === \"boolean\") {\n return { label: String(op), value: op };\n }\n if (fields) {\n return {\n ...op,\n label: get(op, fields.label || \"label\"),\n value: get(op, fields.value || \"value\"),\n };\n }\n return { ...op, label: op.label, value: op.value };\n }),\n \"value\"\n ) as GeneralComplexOption[];\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { CSSProperties } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type {\n RadioType,\n GeneralOption,\n GeneralComplexOption,\n UIType,\n RadioGroupButtonStyle,\n ComponentSize,\n} from \"../interface.js\";\nimport styleText from \"./index.shadow.css\";\nimport classNames from \"classnames\";\nimport \"@next-core/theme\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport { isBoolean, isEqual } from \"lodash\";\nimport \"./host-context.css\";\n\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ninterface CustomOptions {\n url: string;\n description?: string;\n title: string;\n backgroundColor?: string;\n value: string;\n [propName: string]: any;\n}\n\nexport interface RadioProps {\n type?: RadioType;\n options: GeneralOption[] | CustomOptions[] | undefined;\n value?: any;\n disabled?: boolean;\n buttonStyle?: RadioGroupButtonStyle;\n size?: ComponentSize;\n ui?: UIType;\n useBrick?: UseSingleBrickConf;\n customStyle?: React.CSSProperties;\n}\nexport interface RadioEvents {\n change: CustomEvent<GeneralComplexOption>;\n optionsChange: CustomEvent<{\n options: GeneralComplexOption[];\n name: string;\n }>;\n}\nexport interface RadioEventsMapping {\n onValueChange: \"change\";\n onOptionsChange: \"optionsChange\";\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 通用单选构件\n * @author sailor\n * @category form-input-basic\n */\n@defineElement(\"eo-radio\", {\n styleTexts: [styleText],\n alias: [\"form.general-radio\"],\n})\nclass Radio extends FormItemElementBase {\n #formatOptions: GeneralComplexOption[] | undefined;\n /**\n * 下拉框字段名\n */\n @property() accessor name: string | undefined;\n\n /**\n * 单选框字段说明\n */\n @property() accessor label: string | undefined;\n\n /**\n * 单选框选项表\n * @required\n */\n @property({ attribute: false })\n accessor options: GeneralOption[] | undefined;\n\n /**\n * 单选框当前选中始值\n */\n @property({\n attribute: false,\n })\n accessor value: any | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false }) accessor message:\n | Record<string, string>\n | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 单选框样式类型\n * @default \"default\"\n */\n @property()\n accessor type: RadioType = \"default\";\n\n /**\n * UI样式\n * @default \"default\"\n */\n @property()\n accessor ui: UIType | undefined;\n\n /**\n * 大小,只对按钮样式生效\n * @default \"medium\"\n */\n @property()\n accessor size: ComponentSize | undefined;\n\n /**\n * 自定义radio的外层样式\n */\n @property({\n attribute: false,\n })\n accessor customStyle: React.CSSProperties | undefined;\n\n /**\n * 自定义radio的内容\n */\n @property({\n attribute: false,\n })\n accessor useBrick: UseSingleBrickConf | undefined;\n\n /**\n * 值变化事件\n */\n @event({ type: \"change\" }) accessor #changeEvent!: EventEmitter<\n GeneralComplexOption | undefined\n >;\n\n /**\n * 选项列表变化事件\n */\n @event({ type: \"options.change\" }) accessor #optionsChange!: EventEmitter<{\n options: {\n label: string;\n value: any;\n [key: string]: any;\n };\n name: string;\n }>;\n\n handleChange = (value: any): void => {\n this.value = value;\n this.#changeEvent.emit(\n this.#formatOptions?.find((item) => item?.value === value)\n );\n };\n\n #handleOptionsChange = (\n options: {\n label: string;\n value: any;\n [key: string]: any;\n },\n name: string\n ): void => {\n this.#optionsChange.emit({ options, name });\n };\n\n render() {\n this.#formatOptions = formatOptions(this.options);\n return (\n <RadioComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n useBrick={this.useBrick}\n ui={this.ui}\n disabled={this.disabled}\n size={this.size}\n options={this.#formatOptions}\n type={this.type}\n value={this.value}\n required={this.required}\n message={this.message}\n onChange={this.handleChange}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleChange\"\n optionsChange={this.#handleOptionsChange}\n customStyle={this.customStyle}\n />\n );\n }\n}\n\ninterface RadioComponentProps extends RadioProps, FormItemProps {\n onChange?: (value: any) => void;\n optionsChange?: (options: any, name: string) => void;\n}\n\nexport function RadioComponent(props: RadioComponentProps) {\n const { name, disabled, type, customStyle, optionsChange, size } = props;\n const [value, setValue] = React.useState(props.value);\n const [options, setOptions] = React.useState(props.options);\n\n React.useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n React.useEffect(() => {\n if (!isEqual(options, props.options)) {\n setOptions(props.options);\n optionsChange?.(props.options, name as string);\n }\n }, [name, options, optionsChange, props.options]);\n\n const handleChange = (\n e: React.ChangeEvent | React.MouseEvent,\n option: GeneralComplexOption\n ): void => {\n e.stopPropagation();\n setValue((option as GeneralComplexOption)?.value as any);\n props.onChange?.(option.value);\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div\n className={classNames(\"radio-group\", {\n dashboard: props.ui === \"dashboard\",\n })}\n >\n {options?.map((item: any) => {\n const icon = item.icon;\n const iconStyle: CSSProperties = icon?.iconStyle;\n const key = isBoolean(item.value)\n ? item.value.toString()\n : item.value;\n const isDisabled = item.disabled || disabled;\n return (\n <label\n htmlFor={key}\n style={customStyle}\n className={classNames(\"radio-item\", {\n disabled: isDisabled,\n checked: value === item.value,\n [size || \"medium\"]: type === \"button\",\n })}\n key={key}\n onClick={(e) => !isDisabled && handleChange(e, item)}\n >\n <span className=\"raido\">\n <input\n type=\"radio\"\n name={name}\n disabled={isDisabled}\n checked={value === item.value}\n onChange={(e) => !isDisabled && handleChange(e, item)}\n />\n <span\n className={classNames(\"radio-inner\", {\n checked: value === item.value,\n })}\n ></span>\n </span>\n {type === \"icon\" ? (\n <div className=\"content\">\n {icon && (\n <WrappedGeneralIcon\n {...icon}\n style={{\n fontSize: \"32px\",\n ...iconStyle,\n }}\n />\n )}\n <div>{item.label}</div>\n </div>\n ) : type === \"custom\" ? (\n <div className=\"custom-content\">\n {props.useBrick && (\n <ReactUseBrick\n useBrick={props.useBrick}\n data={item}\n ></ReactUseBrick>\n )}\n </div>\n ) : type === \"icon-circle\" || type === \"icon-square\" ? (\n <div\n className={classNames({\n \"icon-content\":\n type === \"icon-circle\" || type === \"icon-square\",\n })}\n >\n {item.icon && (\n <div\n className={classNames({\n \"circle-icon\": type === \"icon-circle\",\n \"square-icon\": type === \"icon-square\",\n })}\n >\n <WrappedGeneralIcon\n {...icon}\n style={{\n fontSize: \"46px\",\n ...iconStyle,\n }}\n />\n </div>\n )}\n <span title={item.label}>{item.label}</span>\n </div>\n ) : type === \"button\" ? (\n <div\n className={classNames(\"button-content\", {\n disabled: isDisabled,\n })}\n >\n <span>\n {icon && (\n <WrappedGeneralIcon\n {...icon}\n style={{\n fontSize: \"22px\",\n marginRight: \"4px\",\n verticalAlign: \"-0.25em\",\n ...iconStyle,\n }}\n />\n )}\n {item.label}\n </span>\n </div>\n ) : (\n <span className=\"content\">\n {icon && (\n <WrappedGeneralIcon\n {...icon}\n style={{\n fontSize: \"22px\",\n marginRight: \"8px\",\n verticalAlign: \"-0.25em\",\n ...iconStyle,\n }}\n />\n )}\n {item.label}\n </span>\n )}\n </label>\n );\n })}\n </div>\n </WrappedFormItem>\n );\n}\nexport { Radio };\n","import * as React from \"react\";\nconst SvgEmpty = props => <svg xmlns=\"http://www.w3.org/2000/svg\" xmlnsXlink=\"http://www.w3.org/1999/xlink\" width={56} height={53} {...props}><defs><linearGradient id=\"a\" x1=\"5.718%\" x2=\"83.05%\" y1=\"4.311%\" y2=\"88.915%\"><stop offset=\"0%\" stopColor=\"#D4D8E4\" /><stop offset=\"100%\" stopColor=\"#A9B0C4\" /></linearGradient><linearGradient id=\"g\" x1=\"41.823%\" x2=\"8.813%\" y1=\"24.795%\" y2=\"86.427%\"><stop offset=\"0%\" stopColor=\"#CCD0DD\" /><stop offset=\"100%\" stopColor=\"#9DA3B9\" /></linearGradient><filter id=\"b\" width=\"233.4%\" height=\"233.4%\" x=\"-57.2%\" y=\"-47.7%\" filterUnits=\"objectBoundingBox\"><feOffset dx={1} dy={2} in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" /><feGaussianBlur in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" stdDeviation={2} /><feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\" /><feColorMatrix in=\"shadowBlurOuter1\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22 0\" /></filter><filter id=\"e\" width=\"288.7%\" height=\"288.7%\" x=\"-94.4%\" y=\"-121.3%\" filterUnits=\"objectBoundingBox\"><feOffset dy={-2} in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" /><feGaussianBlur in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" stdDeviation={2} /><feColorMatrix in=\"shadowBlurOuter1\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" /></filter><path id=\"c\" d=\"M23.672 23.607h2.492a4 4 0 0 1 4 4v2.491a4 4 0 0 1-4 4h-2.492a4 4 0 0 1-4-4v-2.491a4 4 0 0 1 4-4\" /><path id=\"f\" d=\"M37.311 12.459a4 4 0 0 1 4 4v3.419l-7.418-7.419z\" /></defs><g fill=\"none\" fillRule=\"evenodd\"><path fill=\"#A6AAC3\" d=\"M39.682 33.967H10.81a2.8 2.8 0 0 0-1.94.782l-5.197 4.999v6.98a5.6 5.6 0 0 0 5.6 5.6H41.22a5.6 5.6 0 0 0 5.6-5.6v-6.98l-5.196-4.999a2.8 2.8 0 0 0-1.942-.782\" /><path fill=\"url(#a)\" d=\"m33.893 12.459 7.418 7.419v22.568a2.8 2.8 0 0 1-2.8 2.8h-26.53a2.8 2.8 0 0 1-2.8-2.8V18.459a6 6 0 0 1 6-6z\" /><use xlinkHref=\"#c\" fill=\"#000\" filter=\"url(#b)\" /><path fill=\"url(#d)\" stroke=\"#FFF\" strokeLinejoin=\"round\" d=\"M26.164 24.107c.966 0 1.841.391 2.475 1.025a3.5 3.5 0 0 1 1.025 2.475v2.491a3.5 3.5 0 0 1-1.025 2.475 3.5 3.5 0 0 1-2.475 1.025h-2.492a3.5 3.5 0 0 1-2.475-1.025 3.5 3.5 0 0 1-1.025-2.475v-2.491a3.5 3.5 0 0 1 1.025-2.475 3.5 3.5 0 0 1 2.475-1.025Z\" /><g transform=\"rotate(180 37.602 16.168)\"><use xlinkHref=\"#f\" fill=\"#000\" filter=\"url(#e)\" /><use xlinkHref=\"#f\" fill=\"url(#g)\" /></g><path fill=\"#D6D8E4\" d=\"M54.164 27.541c.253 0 .459.205.459.459v.918h.918a.459.459 0 1 1 0 .918h-.918v.918a.459.459 0 0 1-.918 0v-.918h-.918a.459.459 0 0 1 0-.918h.918V28c0-.254.205-.459.459-.459M1.377 20.197c.19 0 .344.154.344.344v.574h.574a.459.459 0 1 1 0 .918h-.574v.574a.344.344 0 0 1-.688 0l-.001-.574H.459a.459.459 0 0 1 0-.918h.573v-.574c0-.19.155-.344.345-.344\" opacity={0.3} /><path fill=\"#D6D8E4\" d=\"M24.787 43.53h.014c7.087.143 9.817-3.834 12.785-4.046l.19-.008h9.044v10.052a2.8 2.8 0 0 1-2.63 2.795l-.17.005H6.472l-.17-.005a2.8 2.8 0 0 1-2.63-2.795V39.475h8.126l.144-.004c2.485.004 5.214 3.898 12.83 4.06z\" /><path fill=\"#D6D8E4\" d=\"M13.77 2.2s2.308-.555 2.962-2.2c.943 1.35 1.429 1.933 2.547 2.189-1.522.453-2.183.963-2.704 2.401-.598-1.695-1.142-1.914-2.805-2.39\" opacity={0.5} /><path fill=\"#D6D8E4\" d=\"M41.311 6.64S47.464 5.194 49.21.917c2.514 3.508 3.81 5.025 6.791 5.691-4.059 1.18-5.822 2.503-7.21 6.243-1.594-4.406-3.045-4.976-7.479-6.213\" opacity={0.8} /></g></svg>;\nexport default SvgEmpty;","import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { GeneralComplexOption, GeneralOption } from \"../interface.js\";\nimport styleText from \"./index.shadow.css\";\nimport classNames from \"classnames\";\nimport \"@next-core/theme\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport type {\n Tag,\n TagProps,\n TagMapEvents,\n TagEvents,\n} from \"@next-bricks/basic/tag\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { isEmpty, groupBy, isNil, debounce } from \"lodash\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { handleHttpError, fetchByProvider } from \"@next-core/runtime\";\nimport Empty from \"./empty.svg\";\n\ninterface UseBackendConf {\n provider: string;\n args: any[] | ((...args: any[]) => any[]);\n transform?: (data: any) => void;\n}\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedTag = wrapBrick<Tag, TagProps, TagEvents, TagMapEvents>(\"eo-tag\", {\n onCheck: \"check\",\n onClose: \"close\",\n});\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst isSearchable = (value: UseBackendConf): value is UseBackendConf => {\n return typeof value?.provider === \"string\";\n};\n\nconst applyArgs = (\n args: any[] | ((query: string) => any[]),\n query: string\n): any => {\n if (Array.isArray(args)) {\n return args.map((arg) => applyArgs(arg, query));\n }\n if (typeof args === \"function\") {\n return (args as (query: string) => any[]).call(null, query);\n }\n\n return args;\n};\n\ntype RequestStatus = \"loading\" | \"success\" | \"error\";\n\nexport interface SelectProps extends FormItemProps {\n value?: any;\n options: GeneralComplexOption[];\n placeholder?: string;\n mode?: \"tags\" | \"multiple\";\n tokenSeparators?: string[];\n maxTagCount?: number;\n groupBy?: string;\n suffix?: { useBrick: UseSingleBrickConf };\n fields?: { label?: string; value?: string };\n useBackend?: UseBackendConf & {\n onValueChangeArgs?: any[] | ((...args: any[]) => any[]);\n // emptyConfig?: Partial<Record<RequestStatus, EasyopsEmptyProps>>;\n };\n debounceSearchDelay?: number;\n clearable?: boolean;\n disabled?: boolean;\n inputStyle?: React.CSSProperties;\n validateState?: string;\n onChange?: (value: any, options: GeneralComplexOption[]) => void;\n onValueChange?: (value: any) => void;\n optionsChange?: (options: any, name: string) => void;\n onFocus?: () => void;\n onSearch?: (value: string) => void;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 通用下拉选择构件\n * @author sailorshe\n * @category form-input-basic\n */\n@defineElement(\"eo-select\", {\n styleTexts: [styleText],\n alias: [\"form.general-select\"],\n})\nclass Select extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 字段文本\n */\n @property() accessor label: string | undefined;\n\n /**\n * 选项列表\n * @required\n */\n @property({ attribute: false })\n accessor options!: GeneralComplexOption[];\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: any | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false }) accessor message:\n | Record<string, string>\n | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 类型\n */\n @property()\n accessor mode: \"tags\" | \"multiple\" | undefined;\n\n /**\n * 自动分词的分隔符,仅在 mode=\"tags\" 时生效\n */\n @property({\n attribute: false,\n })\n accessor tokenSeparators: string[] | undefined;\n\n /**\n * 最多显示多少个 tag, 剩余的 tag 将被隐藏\n */\n @property()\n accessor maxTagCount: number | undefined;\n\n /**\n * 分组字段\n */\n @property()\n accessor groupBy: string | undefined;\n\n /**\n */\n @property({\n attribute: false,\n })\n accessor suffix: { useBrick: UseSingleBrickConf } | undefined;\n\n /**\n * 是否支持清除\n * @default true\n */\n @property({ type: Boolean })\n accessor clearable: boolean | undefined;\n\n /**\n * 列表指定字段作为 label 和 value\n */\n @property({\n attribute: false,\n })\n accessor fields: { label?: string; value?: string } | undefined;\n\n /**\n * 后端搜索\n */\n @property({\n attribute: false,\n })\n accessor useBackend: UseBackendConf | undefined;\n\n @property({\n type: Number,\n })\n accessor debounceSearchDelay: number | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputStyle: React.CSSProperties | undefined;\n\n /**\n * 下拉选择事件\n */\n @event({ type: \"change\" }) accessor #changeEvent!: EventEmitter<{\n value: string | string[];\n options: GeneralComplexOption[];\n }>;\n\n /**\n * 下拉框search事件\n */\n @event({ type: \"search\" }) accessor #searchEvent!: EventEmitter<{\n value: string;\n }>;\n\n /**\n * 下拉框focus事件\n */\n @event({ type: \"focus\" }) accessor #focusEvent!: EventEmitter<void>;\n\n /**\n * 选项列表变化事件\n */\n @event({ type: \"options.change\" }) accessor #optionsChange!: EventEmitter<{\n options: {\n label: string;\n value: any;\n [key: string]: any;\n };\n name: string;\n }>;\n\n handleChange = (\n value: string | string[],\n options: GeneralComplexOption[]\n ): void => {\n this.value = value;\n\n this.#changeEvent.emit({\n value,\n options,\n });\n };\n\n private _handleOptionsChange = (\n options: {\n label: string;\n value: any;\n [key: string]: any;\n },\n name: string\n ): void => {\n Promise.resolve().then(() => {\n this.#optionsChange.emit({ options, name });\n });\n };\n\n handleSearch = (value: string) => {\n this.#searchEvent.emit({\n value,\n });\n };\n\n handleFocus = () => {\n this.#focusEvent.emit();\n };\n\n render() {\n return (\n <SelectComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n value={this.value}\n disabled={this.disabled}\n placeholder={this.placeholder}\n required={this.required}\n mode={this.mode}\n tokenSeparators={this.tokenSeparators}\n maxTagCount={this.maxTagCount}\n groupBy={this.groupBy}\n suffix={this.suffix}\n fields={this.fields}\n useBackend={this.useBackend}\n debounceSearchDelay={this.debounceSearchDelay}\n clearable={this.clearable}\n trigger=\"handleChange\"\n inputStyle={this.inputStyle}\n validateState={this.validateState}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n options={this.options}\n onChange={this.handleChange}\n optionsChange={this._handleOptionsChange}\n onSearch={this.handleSearch}\n onFocus={this.handleFocus}\n />\n );\n }\n}\n\nexport function SelectComponent(props: SelectProps) {\n const {\n curElement,\n name,\n disabled,\n mode,\n tokenSeparators,\n maxTagCount,\n suffix,\n fields,\n useBackend,\n debounceSearchDelay,\n clearable = true,\n inputStyle,\n placeholder,\n validateState,\n optionsChange,\n onChange,\n onFocus,\n onValueChange,\n onSearch,\n } = props;\n\n const multiple = useMemo(\n () => mode && [\"multiple\", \"tags\"].includes(mode),\n [mode]\n );\n const selectRef = useRef<HTMLDivElement>(null);\n const inputSpanRef = useRef<HTMLSpanElement>(null);\n const shouldTriggerOnValueChangeArgs = useRef(true);\n const [inputValue, setInputValue] = useState<string>(\"\");\n const [inputWidth, setInputWidth] = useState<number>();\n const [value, setValue] = useState<any>(mode ? [] : undefined);\n const [requestStatus, setRequestStatus] = useState<RequestStatus>();\n const [options, setOptions] = useState<any[]>(\n formatOptions(props.options, fields) ?? []\n );\n const [isDropHidden, setIsDropHidden] = useState<boolean>(true);\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [selectedOptions, setSelectedOptions] = useState<\n GeneralComplexOption[]\n >([]);\n const [renderOptions, setRenderOptions] = useState<any[]>([]);\n const [focusOptionItem, setFocusOptionItem] = useState<GeneralComplexOption>(\n {} as GeneralComplexOption\n );\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setOptions(\n formatOptions(\n (props.options ?? []).concat(\n mode === \"tags\" && props.value ? props.value : []\n ),\n fields\n )\n );\n }, [props.options, fields, props.value, mode]);\n\n const handleSelectorClick = useCallback(() => {\n if (!value) {\n setIsDropHidden(false);\n setIsFocused(true);\n onFocus?.();\n inputRef.current && inputRef.current.focus();\n } else if (!disabled) {\n setIsDropHidden(!isDropHidden);\n setIsFocused(true);\n inputRef.current && inputRef.current.focus();\n }\n }, [disabled, isDropHidden, value, onFocus]);\n\n const handleChange = useCallback(\n (option: GeneralComplexOption<any>): void => {\n shouldTriggerOnValueChangeArgs.current = false;\n let newValue;\n if (multiple) {\n newValue = (value ?? []).includes(option.value)\n ? (value as string[]).filter((item) => item !== option.value)\n : (((value as any[]) ?? []).concat(option.value) as string[]);\n } else {\n newValue = option.value;\n }\n const getSelectOptions = () => {\n const hadSelected = selectedOptions.find(\n (item) => item.value === option.value\n );\n return hadSelected\n ? selectedOptions.filter((item) => item.value !== option.value)\n : selectedOptions.concat(option);\n };\n const newOptions = multiple ? getSelectOptions() : [option];\n setSelectedOptions(newOptions);\n setValue(newValue);\n onChange?.(newValue, newOptions);\n onValueChange?.(newValue);\n setIsDropHidden(!multiple);\n setFocusOptionItem(option);\n !multiple && setIsFocused(false);\n multiple && inputRef.current && inputRef.current.focus();\n setInputValue(\"\");\n },\n [multiple, onChange, onValueChange, selectedOptions, value]\n );\n\n const handleMultipleItemClose = useCallback(\n (closeValue: string | number | boolean) => {\n const newOptions = selectedOptions.filter(\n (item) => item.value !== closeValue\n );\n setSelectedOptions(newOptions);\n onChange?.(\n newOptions.map((item) => item.value),\n newOptions\n );\n },\n [onChange, selectedOptions]\n );\n\n const handleClear = (e: React.MouseEvent): void => {\n e.stopPropagation();\n setSelectedOptions([]);\n onChange?.(undefined, []);\n };\n\n const handleSearchQuery = useCallback(\n async (value = \"\", type: \"valueChange\" | \"search\") => {\n if (useBackend && isSearchable(useBackend)) {\n const {\n provider,\n args,\n onValueChangeArgs,\n transform = (data) => data,\n } = useBackend;\n try {\n setRequestStatus(\"loading\");\n const actualArgs = applyArgs(\n type === \"search\" ? args : onValueChangeArgs!,\n value\n );\n const result = await fetchByProvider(provider, actualArgs);\n if (isNil(result)) return;\n const transformedData = transform(result);\n const actualData = formatOptions(\n transformedData as unknown as GeneralOption[],\n fields as any\n );\n setRequestStatus(\"success\");\n setOptions(actualData);\n // 值设置后,需要回填\n if (type === \"valueChange\") {\n setSelectedOptions(\n actualData.filter((item) =>\n Array.isArray(props.value)\n ? props.value.includes(item.value)\n : item.value === props.value\n )\n );\n }\n } catch (e) {\n setRequestStatus(\"error\");\n handleHttpError(e);\n }\n }\n },\n [useBackend, fields, props.value]\n );\n\n const handleDebounceBackendSearch = useMemo(() => {\n return debounce(handleSearchQuery, debounceSearchDelay || 300);\n }, [debounceSearchDelay, handleSearchQuery]);\n\n const computedOptions = React.useMemo((): GeneralComplexOption[] => {\n return (mode === \"tags\" && inputValue ? [inputValue] : [])\n .map((item) => ({\n key: item,\n label: item,\n value: item,\n }))\n .concat(\n selectedOptions.filter(\n (selected) =>\n !options.find((option) => option.value === selected.value)\n ) as any\n )\n .concat(options);\n }, [inputValue, mode, options, selectedOptions]);\n\n useEffect(() => {\n const computedValue =\n multiple && props.value && !Array.isArray(props.value)\n ? [props.value]\n : props.value;\n setValue(computedValue);\n // 设置回填option\n if (computedValue) {\n setSelectedOptions(\n computedOptions.filter((item) =>\n multiple\n ? computedValue.includes(item.value)\n : item.value === props.value\n )\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, options]);\n\n useEffect(() => {\n optionsChange?.(computedOptions, name as string);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [computedOptions]);\n\n useEffect(() => {\n props?.useBackend?.onValueChangeArgs &&\n shouldTriggerOnValueChangeArgs.current &&\n !(Array.isArray(props.value)\n ? props.value.length === 0\n : isNil(props.value)) &&\n handleSearchQuery(props.value, \"valueChange\");\n shouldTriggerOnValueChangeArgs.current = true;\n }, [handleSearchQuery, props?.useBackend?.onValueChangeArgs, props.value]);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n const value = e.target.value;\n if (mode === \"tags\" && value) {\n const matchToken = tokenSeparators?.includes(value[value.length - 1]);\n const customValue =\n value && matchToken ? value.substring(0, value.length - 1) : value;\n if (matchToken) {\n handleChange({\n key: customValue,\n label: customValue,\n value: customValue,\n });\n } else {\n setInputValue(value);\n }\n } else {\n setInputValue(value);\n setIsDropHidden(false);\n onSearch?.(value);\n }\n handleDebounceBackendSearch(value, \"search\");\n },\n [handleChange, handleDebounceBackendSearch, mode, onSearch, tokenSeparators]\n );\n\n const handleKeydown = useCallback(\n (e: KeyboardEvent): void => {\n if (isFocused) {\n if (e.code === \"Enter\") {\n focusOptionItem && handleChange(focusOptionItem);\n }\n if (\n e.code === \"Backspace\" &&\n multiple &&\n inputValue === \"\" &&\n selectedOptions?.length\n ) {\n selectedOptions.pop();\n setSelectedOptions([...selectedOptions]);\n value.pop();\n setValue([...value]);\n }\n }\n if (!isDropHidden && focusOptionItem) {\n if (e.code === \"ArrowDown\") {\n const index = renderOptions.findIndex(\n (item) => item.value === focusOptionItem.value\n );\n setFocusOptionItem(\n renderOptions[\n index + 1 > renderOptions.length - 1\n ? renderOptions.length - 1\n : index + 1\n ]\n );\n }\n if (e.code === \"ArrowUp\") {\n const index = renderOptions.findIndex(\n (item) => item.value === focusOptionItem.value\n );\n setFocusOptionItem(renderOptions[index - 1 < 0 ? 0 : index - 1]);\n }\n }\n },\n [\n isFocused,\n multiple,\n inputValue,\n selectedOptions,\n isDropHidden,\n focusOptionItem,\n handleChange,\n value,\n renderOptions,\n ]\n );\n\n const isEmptyValue = useMemo(() => {\n return typeof selectedOptions === \"object\"\n ? isEmpty(selectedOptions)\n : selectedOptions === undefined;\n }, [selectedOptions]);\n\n useLayoutEffect(() => {\n const renderOptions = computedOptions.filter((item) =>\n inputValue\n ? (item.label as string)\n .toLocaleUpperCase()\n .includes(inputValue.toLocaleUpperCase())\n : true\n );\n setRenderOptions(renderOptions);\n setFocusOptionItem(renderOptions?.[0]);\n\n if (inputSpanRef.current) {\n setInputWidth(\n inputSpanRef.current?.offsetWidth === 0\n ? 4\n : inputSpanRef.current?.offsetWidth\n );\n }\n }, [computedOptions, handleChange, inputValue, mode, tokenSeparators]);\n\n useEffect(() => {\n const handleDocumentClick = (e: MouseEvent) => {\n e.stopPropagation();\n const path = e.composedPath();\n if (curElement && path.includes(curElement)) return;\n setIsFocused(false);\n setIsDropHidden(true);\n setInputValue(\"\");\n };\n document.addEventListener(\"keydown\", handleKeydown);\n document.addEventListener(\"click\", handleDocumentClick);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n document.removeEventListener(\"click\", handleDocumentClick);\n };\n }, [curElement, handleKeydown]);\n\n const renderSelector = useMemo(() => {\n let tagList: GeneralComplexOption[] = selectedOptions;\n if (maxTagCount) {\n const ellipsisInfo =\n selectedOptions.length - maxTagCount > 0\n ? {\n label: `+${selectedOptions.length - maxTagCount}`,\n key: \"$$key\",\n value: \"\",\n closable: false,\n }\n : null;\n tagList = selectedOptions.slice(0, maxTagCount);\n ellipsisInfo && tagList.push(ellipsisInfo);\n }\n const allOptions = computedOptions.reduce(\n (pre: any, cur: any) =>\n cur.options ? [...pre, ...cur.options] : [...pre, cur],\n []\n );\n\n const renderLabel = (option: GeneralComplexOption): React.ReactNode => {\n return (\n <div className=\"label\">\n <span className=\"text\">\n {multiple ? (\n <WrappedTag\n key={option.value as number}\n color={disabled ? \"#ddd\" : undefined}\n closable={option.closable ?? true}\n checkable={false}\n onClose={() => handleMultipleItemClose(option.value)}\n >\n {option.label}\n {multiple && suffix?.useBrick && (\n <ReactUseBrick useBrick={suffix.useBrick} data={option} />\n )}\n </WrappedTag>\n ) : (\n option.label\n )}\n </span>\n {!multiple && suffix?.useBrick && (\n <ReactUseBrick useBrick={suffix.useBrick} data={option} />\n )}\n </div>\n );\n };\n\n const renderMultipleLabel = (\n list: Array<GeneralComplexOption>\n ): React.ReactNode => {\n return list.map((item) => {\n let option: GeneralComplexOption;\n if (typeof item === \"object\") {\n option = item;\n } else {\n option =\n allOptions.find((option: any) => option.value === item) ??\n ({} as GeneralComplexOption);\n option.closeable = !disabled && option.closeable;\n }\n return renderLabel(option);\n });\n };\n\n return (\n <div\n className={classNames({\n \"selected-item\": multiple,\n \"select-single-item\": !multiple,\n })}\n style={\n isEmptyValue ? { color: \"var(--antd-input-placeholder-color)\" } : {}\n }\n >\n {selectedOptions?.length\n ? multiple\n ? renderMultipleLabel(tagList)\n : renderLabel(selectedOptions[0])\n : isFocused || inputValue\n ? \"\"\n : placeholder}\n </div>\n );\n }, [\n computedOptions,\n disabled,\n handleMultipleItemClose,\n inputValue,\n isEmptyValue,\n isFocused,\n maxTagCount,\n multiple,\n placeholder,\n selectedOptions,\n suffix,\n ]);\n\n const Options = useMemo(() => {\n const getSelectOption = (item: any): React.ReactNode => (\n <div\n key={item.value?.toString()}\n className={classNames(\"select-item\", \"select-item-option\", {\n disabled: item.disabled,\n \"select-option-hover\": item.value === focusOptionItem.value,\n \"select-option-selected\":\n typeof value !== \"object\"\n ? value === item?.value\n : (value as any[])?.includes(item.value),\n })}\n onClick={() => !item.disabled && handleChange(item)}\n onMouseOver={() => setFocusOptionItem(item)}\n onMouseLeave={() => setFocusOptionItem({} as any)}\n >\n <div className=\"select-item-option-content\">\n <div className=\"option\">\n <span className=\"label\">{item.label}</span>\n {suffix?.useBrick && (\n <ReactUseBrick useBrick={suffix.useBrick} data={item} />\n )}\n </div>\n {multiple && (\n <div className=\"is-checked\">\n <WrappedIcon\n {...{\n lib: \"antd\",\n icon: \"check\",\n theme: \"outlined\",\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n\n const renderGroupOption = (): React.ReactNode => {\n const optsGroup = Object.entries(groupBy(renderOptions, props.groupBy));\n\n return optsGroup.map(([group, options], index) =>\n group !== \"undefined\" ? (\n <div key={index} className=\"select-group-wrapper\">\n <div className=\"select-group-label\">{group}</div>\n {options.map((item) => getSelectOption(item))}\n </div>\n ) : (\n options.map((item) => getSelectOption(item))\n )\n );\n };\n\n const renderOption = () =>\n renderOptions.map((item: any) => {\n return getSelectOption(item);\n });\n\n return renderOptions.length > 0 ? (\n props.groupBy ? (\n renderGroupOption()\n ) : (\n renderOption()\n )\n ) : (\n <div className=\"empty-tips\">\n <Empty />\n <span>暂无数据</span>\n </div>\n );\n }, [\n renderOptions,\n props.groupBy,\n focusOptionItem,\n value,\n suffix,\n multiple,\n handleChange,\n ]);\n\n return (\n <WrappedFormItem exportparts=\"message\" {...(props as FormItemProps)}>\n <div\n className={classNames(\"select\", {\n \"select-disabled\": disabled,\n \"select-allow-clear\": clearable,\n \"select-single\": !multiple,\n \"select-multiple\": multiple,\n })}\n style={inputStyle}\n ref={selectRef}\n >\n <div\n className={classNames(\"select-selector\", {\n \"selector-focused\": isFocused,\n \"is-error\": validateState === \"error\",\n })}\n onClick={handleSelectorClick}\n >\n <div className=\"select-selection-overflow\">\n {multiple && renderSelector}\n <div className=\"input-item\">\n <div className=\"select-selection-search\">\n <span\n style={{ position: \"absolute\", opacity: \"0\" }}\n ref={inputSpanRef}\n >\n {inputValue}\n </span>\n <input\n style={{ width: inputWidth }}\n type=\"text\"\n value={inputValue}\n ref={inputRef}\n className=\"select-selection-search-input\"\n onChange={handleInputChange}\n />\n </div>\n {!multiple ? !inputValue && renderSelector : null}\n </div>\n </div>\n <span className=\"select-arrow\">\n {!isEmptyValue && clearable ? (\n <WrappedIcon\n className=\"close-btn\"\n lib=\"antd\"\n icon=\"close-circle\"\n theme=\"filled\"\n onClick={(e) => handleClear(e)}\n />\n ) : (\n <span\n className={classNames(\n \"anticon\",\n \"anticon-down \",\n \"ant-select-suffix\",\n {\n focus: isFocused,\n }\n )}\n >\n <WrappedIcon icon=\"down\" lib=\"antd\" theme=\"outlined\" />\n </span>\n )}\n </span>\n </div>\n <div\n style={{ ...(isDropHidden ? { display: \"none\" } : {}) }}\n className=\"select-dropdown\"\n >\n <div className=\"dropdown-list\">\n {requestStatus === \"loading\" ? (\n <div className=\"dropdown-list-loading-container\">\n <WrappedIcon\n {...{\n icon: \"loading\",\n lib: \"antd\",\n theme: \"outlined\",\n spinning: true,\n }}\n />\n </div>\n ) : (\n <div className=\"dropdown-inner\">{Options}</div>\n )}\n </div>\n </div>\n </div>\n </WrappedFormItem>\n );\n}\n\nexport { Select };\n","import React from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport styleText from \"./index.shadow.css\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type { ButtonType } from \"../interface.js\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\ninterface SubmitButtonsProps extends FormItemProps {\n curElement: HTMLElement;\n submitText?: string;\n submitType?: ButtonType;\n submitDisabled?: boolean;\n cancelText?: string;\n cancelType?: ButtonType;\n onSubmitClick?: (event: React.MouseEvent) => void;\n onCancelClick?: (event: React.MouseEvent) => void;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 表单提交按钮\n * @author zhendonghuang\n * @category form-input-basic\n */\n@defineElement(\"eo-submit-buttons\", {\n styleTexts: [styleText],\n alias: [\"form.submit-buttons\"],\n})\nclass SubmitButtons extends FormItemElementBase {\n /**\n * 提交按钮的文字\n * @default \"提交\"\n */\n @property() accessor submitText: string = \"提交\";\n\n /**\n * 取消按钮的文字,不设置则不显示取消按钮\n */\n @property()\n accessor cancelText: string | undefined;\n\n /**\n * 点击确定按钮后自动禁用\n */\n @property({ type: Boolean })\n accessor disableAfterClick: boolean | undefined;\n\n /**\n * 禁用提交按钮\n */\n @property({ type: Boolean }) accessor submitDisabled: boolean | undefined;\n\n /**\n * 提交按钮类型\n */\n @property() accessor submitType: ButtonType | undefined;\n\n /**\n * 取消按钮类型\n */\n @property() accessor cancelType: ButtonType | undefined;\n\n /**\n * 点击提交按钮触发的事件\n */\n @event({ type: \"submit\" }) accessor #submitEvent!: EventEmitter<void>;\n\n /**\n * 点击取消按钮触发的事件\n */\n @event({ type: \"cancel\" }) accessor #cancelEvent!: EventEmitter<void>;\n\n private _handleSubmitClick = (): void => {\n Promise.resolve().then(() => {\n this.#submitEvent.emit();\n if (this.getFormElement()) {\n (this.getFormElement() as any).validate();\n }\n if (this.disableAfterClick) {\n this.submitDisabled = true;\n }\n });\n };\n\n private _handleCancelClick = (): void => {\n Promise.resolve().then(() => {\n this.#cancelEvent.emit();\n });\n };\n\n render() {\n return (\n <ButtonsComponent\n formElement={this.getFormElement()}\n curElement={this}\n submitDisabled={this.submitDisabled}\n submitText={this.submitText}\n submitType={this.submitType}\n cancelText={this.cancelText}\n cancelType={this.cancelType}\n onCancelClick={this._handleCancelClick}\n onSubmitClick={this._handleSubmitClick}\n />\n );\n }\n}\n\nexport function ButtonsComponent(props: SubmitButtonsProps) {\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n {props.submitText && (\n <WrappedButton\n className={\"submitBtn\"}\n type={props.submitType || \"primary\"}\n onClick={props.onSubmitClick}\n disabled={props.submitDisabled}\n >\n {props.submitText}\n </WrappedButton>\n )}\n {props.cancelText && (\n <WrappedButton\n data-test-id=\"cancelBtn\"\n type={props.cancelType || \"text\"}\n onClick={props.onCancelClick}\n >\n {props.cancelText}\n </WrappedButton>\n )}\n </WrappedFormItem>\n );\n}\nexport { SubmitButtons };\n","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretRightOutlined = function CaretRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretRightOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CaretRightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CaretRightOutlined';\n}\nexport default RefIcon;","import React, { useEffect, useState, useMemo } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport \"@next-core/theme\";\nimport styleText from \"./checkbox.shadow.css\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport { intersection, isEqual, uniq } from \"lodash\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { CaretRightOutlined } from \"@ant-design/icons\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport type CheckboxType = \"default\" | \"icon\";\n\nexport declare type CheckboxValueType = string | number | boolean;\n\nexport interface CheckboxOptionType {\n label: React.ReactNode;\n value: any;\n style?: React.CSSProperties;\n disabled?: boolean;\n checkboxColor?: string;\n [propName: string]: any;\n}\n\nexport interface MenuIcon {\n [propName: string]: any;\n}\n\nexport interface OptionGroup {\n name: string;\n key: string;\n options: CheckboxOptionType[];\n}\n\nexport interface CheckboxProps extends FormItemProps {\n options?: CheckboxOptionType[];\n label?: string;\n value?: CheckboxValueType[];\n disabled?: boolean;\n type?: CheckboxType;\n isCustom?: boolean;\n isGroup?: boolean;\n optionGroups?: OptionGroup[];\n onChange?: (value: CheckboxValueType[]) => void;\n optionsChange?: (options: CheckboxOptionType[], name: string) => void;\n}\n\n/**\n * 表单复选框构件\n * @author derrickma\n * @category form-input-basic\n */\n@defineElement(\"eo-checkbox\", {\n styleTexts: [styleText],\n alias: [\"form.general-checkbox\"],\n})\nclass Checkbox extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n /**\n * 值\n */\n @property({ attribute: false })\n accessor value: CheckboxValueType[] | undefined;\n\n /**\n * 多选框选项表\n * @required\n */\n @property({ attribute: false })\n accessor options: CheckboxOptionType[] = [];\n\n /**\n * 类型\n * @default \"default\"\n */\n @property()\n accessor type: CheckboxType = \"default\";\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否为自定义\n * @default false\n */\n @property({ type: Boolean })\n accessor isCustom: boolean = false;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 校验文本\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否为复选框,为true时,则可设置分组数据 optionGroups\n */\n @property({\n type: Boolean,\n })\n accessor isGroup: boolean | undefined;\n\n /**\n * 多选框选项分组数据,需要设置 isGroup 为 true 才生效\n */\n @property({\n attribute: false,\n })\n accessor optionGroups: OptionGroup[] | undefined;\n\n /**\n * 复选框变化事件\n */\n @event({ type: \"change\" })\n accessor #checkboxChangeEvent!: EventEmitter<CheckboxOptionType[]>;\n\n handleCheckboxChange = (detail: CheckboxValueType[]) => {\n this.value = detail;\n const currentOptions = this.optionGroups\n ? this.optionGroups.reduce(\n (before: CheckboxOptionType[], after) => [\n ...before,\n ...after.options,\n ],\n []\n )\n : this.options;\n const currentSelectOption = formatOptions(currentOptions).filter((item) =>\n typeof item.value === \"object\" ? true : detail.includes(item.value)\n );\n this.#checkboxChangeEvent.emit(currentSelectOption);\n };\n\n /**\n * 复选框变化事件\n */\n @event({ type: \"options.change\" })\n accessor #optionsChangeEvent!: EventEmitter<{\n options: CheckboxOptionType[];\n name: string;\n }>;\n\n #handleOptionsChange = (options: CheckboxOptionType[], name: string) => {\n this.#optionsChangeEvent.emit({\n options,\n name,\n });\n };\n\n render() {\n return (\n <CheckboxComponent\n curElement={this}\n formElement={this.getFormElement()}\n options={formatOptions(this.options)}\n label={this.label}\n name={this.name}\n value={this.value}\n type={this.type}\n disabled={this.disabled}\n isCustom={this.isCustom}\n required={this.required}\n message={this.message}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleCheckboxChange\"\n onChange={this.handleCheckboxChange}\n optionsChange={this.#handleOptionsChange}\n isGroup={this.isGroup}\n optionGroups={this.optionGroups}\n />\n );\n }\n}\n\nfunction CheckboxComponent(props: CheckboxProps) {\n const { isGroup } = props;\n const [values, setValues] = useState<CheckboxValueType[]>(props?.value ?? []);\n const [options, setOptions] = useState<CheckboxOptionType[]>(\n props.options || []\n );\n const [collapseKeys, setCollapseKeys] = useState<string[]>(\n (props.optionGroups || []).map((o) => o.key)\n );\n const [optionGroups, setOptionGroups] = useState(props.optionGroups);\n useEffect(() => {\n if (!isEqual(optionGroups, props.optionGroups)) {\n setCollapseKeys((optionGroups || []).map((o) => o.key));\n setOptionGroups(props.optionGroups);\n }\n }, [props.optionGroups]);\n\n useEffect(() => {\n if (!isEqual(options, props.options)) {\n setOptions(props.options || []);\n props.optionsChange?.(props.options ?? [], props.name as string);\n }\n }, [options, props, props.options]);\n\n useEffect(() => {\n setValues(props?.value || []);\n }, [props.value]);\n\n const handleInputClick = (\n e: React.ChangeEvent<HTMLInputElement>,\n item: CheckboxOptionType\n ) => {\n e.stopPropagation();\n let newValue: CheckboxValueType[] = [];\n if (e.target.checked) {\n newValue = [...values, item.value];\n }\n if (!e.target.checked && values?.includes(item.value)) {\n newValue = [...values];\n const index = newValue.findIndex((i) => i == item.value);\n newValue.splice(index, 1);\n }\n setValues(newValue);\n props.onChange?.(newValue);\n };\n\n const getIcon = (item: CheckboxOptionType) => {\n let iconNode = null;\n const { icon } = item;\n if (icon) {\n if (\"imgSrc\" in icon) {\n const mergedIcon: any = {\n ...icon,\n imgSrc: icon.imgSrc,\n imgStyle: {\n marginRight: \"8px\",\n verticalAlign: \"-0.42em\",\n ...icon.imgStyle,\n },\n };\n iconNode = icon && (\n <WrappedIcon {...(mergedIcon as GeneralIconProps)} />\n );\n } else {\n iconNode = icon && (\n <WrappedIcon\n {...(icon as GeneralIconProps)}\n style={{\n fontSize: \"22px\",\n marginRight: \"8px\",\n verticalAlign: \"-0.25em\",\n }}\n />\n );\n }\n }\n return iconNode;\n };\n\n const IconCheckbox = (props: CheckboxProps) => {\n const { name, disabled = false, isCustom = false } = props;\n return (\n <>\n {options.map((item: any) => (\n <label\n key={item.value}\n className={\n disabled || item?.disabled\n ? classNames({\n disabledIconCheckbox: true,\n disabledIconCustomCheckbox: isCustom,\n })\n : classNames({\n iconCheckbox: true,\n iconCustomCheckbox: isCustom,\n })\n }\n >\n <div className={classNames({ inputBox: true })}>\n <input\n type=\"checkbox\"\n value={item.value}\n name={name}\n defaultChecked={values?.includes(item.value)}\n disabled={disabled || item?.disabled}\n onChange={(e) => handleInputClick(e, item)}\n />\n </div>\n <div className={classNames({ content: true })}>\n {item.icon && (\n <WrappedIcon\n {...(item.icon as GeneralIconProps)}\n style={{\n fontSize: isCustom ? \"52px\" : \"32px\",\n }}\n ></WrappedIcon>\n )}\n <div className={classNames({ text: true })}>\n {item.label || item.value}\n </div>\n </div>\n </label>\n ))}\n </>\n );\n };\n\n const CheckboxItem = (props: CheckboxProps) => {\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n minHeight: \"30px\",\n }}\n >\n <div className=\"checkboxWrapper\" part=\"checkbox-wrapper\">\n {props.options?.map((item: CheckboxOptionType) => {\n const disabled = item.disabled || props.disabled;\n return (\n <label\n key={item.value}\n className={classNames({\n checkboxLabel: true,\n checkboxLabelDisabled: disabled,\n checkboxLabelCheck: values.includes(item.value),\n })}\n part=\"checkbox-option\"\n >\n <span\n style={{ color: item.checkboxColor }}\n className={classNames({\n checkboxInputWrapper: true,\n checkboxInputWrapperDisabled: disabled,\n checkboxInputCheck: values.includes(item.value),\n })}\n >\n <input\n onChange={(e) => !disabled && handleInputClick(e, item)}\n disabled={disabled}\n defaultChecked={values?.includes(item.value)}\n className={classNames({\n checkboxInput: true,\n checkboxInputDisabled: disabled,\n })}\n type=\"checkbox\"\n id={item.value}\n ></input>\n <span\n className={classNames({ checkboxInner: true })}\n style={\n values.includes(item.value) && item.checkboxColor\n ? {\n background: item.checkboxColor,\n borderColor: item.checkboxColor,\n }\n : {}\n }\n ></span>\n </span>\n\n <span className={classNames({ checkboxText: true })}>\n <slot>\n {getIcon(item)}\n {item.label}\n </slot>\n </span>\n </label>\n );\n })}\n </div>\n </div>\n );\n };\n const CheckGroupItem = (props: CheckboxProps) => {\n const _optionGroups = useMemo(() => {\n return optionGroups?.map((option) => {\n const newOptions = formatOptions(option.options);\n const newOptionsKeys = newOptions.map((n) => n.value);\n const checkOptions = intersection(values, newOptionsKeys);\n const checkType =\n checkOptions.length === newOptionsKeys.length\n ? \"all\"\n : checkOptions.length > 0 &&\n checkOptions.length !== newOptionsKeys.length\n ? \"part\"\n : \"none\";\n return {\n ...option,\n options: newOptions,\n checkType,\n keys: newOptionsKeys,\n };\n });\n }, [optionGroups, props.value]);\n return (\n <div className=\"collapse-wrapper\">\n {\" \"}\n {_optionGroups?.map((i) => (\n <div key={i.key}>\n <div\n onClick={() => {\n if (collapseKeys.includes(i.key)) {\n const newKeys = collapseKeys.filter((key) => key !== i.key);\n setCollapseKeys(newKeys);\n } else {\n setCollapseKeys([...collapseKeys, i.key]);\n }\n }}\n className={classNames(\"collapse-header\")}\n >\n <span className=\"collapse-icon\">\n <CaretRightOutlined\n rotate={collapseKeys.includes(i.key) ? 90 : 0}\n rev=\"\"\n />\n </span>\n <label\n onClick={(e) => {\n e.stopPropagation();\n }}\n className={classNames({\n checkboxLabel: true,\n checkboxLabelCheck: i.checkType === \"all\",\n })}\n >\n <span\n className={classNames({\n checkboxInputWrapper: true,\n checkboxInputCheck: i.checkType === \"all\",\n checkboxInputPartCheck: i.checkType === \"part\",\n })}\n >\n <input\n className={classNames({\n checkboxInput: true,\n })}\n onChange={(e) => {\n e.stopPropagation();\n if (i.checkType === \"all\") {\n const newValue = values.filter(\n (v) => !i.keys.includes(v)\n );\n props.onChange?.(newValue);\n } else {\n props.onChange?.(uniq([...values, ...i.keys]));\n }\n }}\n type=\"checkbox\"\n ></input>\n <span className={classNames({ checkboxInner: true })}></span>\n </span>\n\n <span className={classNames({ checkboxText: true })}>\n {i.name}\n </span>\n </label>\n </div>\n <div\n className={classNames(\"collapse-content\", {\n \"collapse-content-visible\": collapseKeys.includes(i.key),\n })}\n >\n <CheckboxItem\n {...{ ...props, options: i.options }}\n ></CheckboxItem>\n </div>\n </div>\n ))}\n </div>\n );\n };\n return (\n <WrappedFormItem exportparts=\"message\" {...(props as FormItemProps)}>\n {props.type == \"icon\" ? (\n <IconCheckbox {...props}></IconCheckbox>\n ) : isGroup && props.optionGroups ? (\n <CheckGroupItem {...props}></CheckGroupItem>\n ) : (\n <CheckboxItem {...{ ...props, options: options }}></CheckboxItem>\n )}\n </WrappedFormItem>\n );\n}\n\nexport { Checkbox };\n","export enum K {\n UNIQUE = \"UNIQUE\",\n}\n\nconst en: Locale = {\n UNIQUE: \"{{ name }} can not repeat!\",\n};\n\nconst zh: Locale = {\n UNIQUE: \"{{ name }} 不能重复!\",\n};\n\nexport const NS = \"bricks/form/dynamic-form-item\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n Form,\n FormEvents,\n FormMapEvents,\n FormProps,\n} from \"../form/index.js\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport { UseBrickConf, UseSingleBrickConf } from \"@next-core/types\";\nimport styleText from \"./dynamic-form-item.shadow.css\";\nimport \"@next-core/theme\";\nimport { isEqual, flatten, omit, isEmpty } from \"lodash\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport classNames from \"classnames\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst WrappedForm = wrapBrick<Form, FormProps, FormEvents, FormMapEvents>(\n \"eo-form\",\n {\n onValuesChange: \"values.change\",\n onValidateSuccess: \"validate.success\",\n onValidateError: \"validate.error\",\n }\n);\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport function uniqueValidatorFN(\n props: DynamicFormItemProps,\n properties: any,\n t: any\n) {\n return () => {\n const fieldValue = props?.curElement?.value?.map(\n (v: any) => v[properties.name as string]\n );\n if (new Set(fieldValue).size !== fieldValue.length) {\n return (\n (properties.message as any)?.unique ??\n t(K.UNIQUE, { name: properties.label ?? properties.name })\n );\n }\n return \"\";\n };\n}\n\ntype DynamicFormValuesItem = Record<string, any>;\n\ninterface DynamicFormItemProps extends FormItemProps {\n form?: Form;\n useBrick?: UseBrickConf;\n value?: DynamicFormValuesItem[];\n validateState?: string;\n needValidate?: boolean;\n onChange?: (value: DynamicFormValuesItem[]) => void;\n onValuesChange?: (values: DynamicFormValuesItem[]) => void;\n onAdd?: (value: rowDataType) => void;\n onRemove?: (value: rowDataType) => void;\n hideRemoveButton?:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean);\n disabledRemoveButton?:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean);\n hideAddButton?: boolean | ((value: Record<string, any>[]) => boolean);\n disabledAddButton?: boolean | ((value: Record<string, any>[]) => boolean);\n}\ntype rowDataType = {\n detail: Record<string, any>;\n index: number;\n};\n\nexport const getRealValue = (\n property: boolean | ((...args: any[]) => boolean),\n args: any[]\n): boolean => {\n if (typeof property === \"function\") {\n return property(...args);\n }\n return property;\n};\n/**\n * 动态表单\n * @author sailor\n * @category form-input-basic\n */\n@defineElement(\"eo-dynamic-form-item\", {\n styleTexts: [styleText],\n alias: [\"form.dynamic-form-item\"],\n})\nclass DynamicFormItem extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n /**\n * 字段说明\n */\n @property() accessor label: string | undefined;\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: DynamicFormValuesItem[] | undefined;\n\n /**\n * 校验文本\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否隐藏每一行删除的按钮\n */\n @property({\n attribute: false,\n })\n accessor hideRemoveButton:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean)\n | undefined;\n\n /**\n * 是否禁止每一行删除的按钮\n */\n @property({\n attribute: false,\n })\n accessor disabledRemoveButton:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean)\n | undefined;\n\n /**\n * 是否隐藏添加的按钮\n */\n @property({\n attribute: false,\n })\n accessor hideAddButton:\n | boolean\n | ((value: Record<string, any>[]) => boolean)\n | undefined;\n\n /**\n * 是否禁止添加的按钮\n */\n @property({\n attribute: false,\n })\n accessor disabledAddButton:\n | boolean\n | ((value: Record<string, any>[]) => boolean)\n | undefined;\n\n /**\n * 动态表单子项构件列表\n */\n @property({\n attribute: false,\n })\n accessor useBrick: UseBrickConf | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<DynamicFormValuesItem[]>;\n\n /**\n * 增加一行时触发,detail为该行的默认值,index为该行的位置\n */\n @event({ type: \"row.add\" })\n accessor #addEvent!: EventEmitter<rowDataType>;\n\n /**\n * 移除一行时触发,detail为该行的值,index为该行的位置\n */\n @event({ type: \"row.remove\" })\n accessor #removeEvent!: EventEmitter<rowDataType>;\n\n #handleAdd = (value: rowDataType): void => {\n this.#addEvent.emit(value);\n };\n\n #handleRemove = (value: rowDataType): void => {\n this.#removeEvent.emit(value);\n };\n\n handleDynamicFormChange = (values: DynamicFormValuesItem[]) => {\n this.value = values;\n this.#changeEvent.emit(values);\n this.getFormElement()?.resetValidateState();\n };\n\n render() {\n return (\n <DynamicFormItemComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n required={this.required}\n useBrick={this.useBrick}\n value={this.value}\n validateState={this.validateState}\n needValidate={false}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleDynamicFormChange\"\n onChange={this.handleDynamicFormChange}\n onValuesChange={this.handleDynamicFormChange}\n message={this.message}\n onAdd={this.#handleAdd}\n onRemove={this.#handleRemove}\n hideAddButton={this.hideAddButton}\n hideRemoveButton={this.hideRemoveButton}\n disabledAddButton={this.disabledAddButton}\n disabledRemoveButton={this.disabledRemoveButton}\n />\n );\n }\n}\n\nexport function DynamicFormItemComponent(props: DynamicFormItemProps) {\n const { t } = useTranslation(NS);\n const {\n value,\n hideAddButton = false,\n hideRemoveButton = false,\n disabledRemoveButton = false,\n disabledAddButton = false,\n } = props;\n const formWrapperRef = useRef<HTMLDivElement>(null);\n const [values, setValues] = useState<DynamicFormValuesItem[]>(value ?? []);\n\n const [bricks, setBricks] = useState<UseSingleBrickConf[]>([]);\n\n const bricksOfNoLabel = useMemo(\n () => bricks.map((brick: any) => omit(brick, \"properties.label\")),\n [bricks]\n );\n\n const handleAddItem = () => {\n props.onAdd?.({ detail: {}, index: values.length });\n setValues(values.concat({}));\n };\n\n useEffect(() => {\n if (!isEqual(value, values)) {\n setValues(value ?? []);\n }\n }, [value]);\n\n useEffect(() => {\n if (props.useBrick) {\n const parsedUseBrick: UseSingleBrickConf[] = flatten(\n new Array(props.useBrick)\n );\n\n setBricks(\n parsedUseBrick.map((brick) => {\n const { properties = {} } = brick;\n if (properties.unique) {\n let parsedValidator: any = [\n uniqueValidatorFN(props, properties, t),\n ];\n if (properties.validator) {\n parsedValidator = [\n ...flatten(new Array(properties.validator)),\n ...parsedValidator,\n ];\n }\n return {\n ...brick,\n properties: {\n ...brick.properties,\n validator: parsedValidator,\n },\n };\n } else {\n return brick;\n }\n })\n );\n }\n }, [props.useBrick, props.curElement]);\n // istanbul ignore next;\n const validate = () => {\n const formWrapper = formWrapperRef.current;\n const forms = formWrapper?.querySelectorAll(\n \".dynamic-form\"\n ) as unknown as Form[];\n const result: Array<boolean | Record<string, unknown>> = [];\n if (forms.length) {\n forms.forEach((item) => {\n result.push(item.validate());\n });\n }\n return result.every(Boolean) ? \"\" : \"动态表单校验失败\";\n };\n\n // istanbul ignore next;\n const handleValuesChange = useCallback(\n (value: CustomEvent<DynamicFormValuesItem>, index: number) => {\n props.onChange?.(\n values.map((item, i) => {\n if (i === index) {\n return value.detail.allValues;\n }\n return item;\n })\n );\n },\n [props, values]\n );\n\n const handleRemoveItem = useCallback(\n (index: number) => {\n const newValues = values.filter((_, i) => i !== index);\n setValues(newValues);\n props.onChange?.(newValues);\n props.onRemove?.({\n detail: values.find((_, i) => i === index) as Record<string, any>,\n index,\n });\n },\n [props, values]\n );\n const addButtonDisabled = useMemo(\n () => getRealValue(disabledAddButton, [values]),\n [disabledAddButton, values]\n );\n const addButtonHide = useMemo(\n () => getRealValue(hideAddButton, [values]),\n [hideAddButton, values]\n );\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(props as FormItemProps)}\n validator={validate}\n >\n <div className=\"dynamic-form-wrapper\" ref={formWrapperRef}>\n {values.map((value, index) => {\n const hideRemoveBtn = getRealValue(hideRemoveButton, [value, index]);\n const removeBtnDisabled = getRealValue(disabledRemoveButton, [\n value,\n index,\n ]);\n return (\n <div className=\"dynamic-form-item\" key={index}>\n {!isEmpty(bricks) && (\n <WrappedForm\n layout=\"vertical\"\n formStyle={{\n flexDirection: \"row\",\n alignItems: \"flex-start\",\n }}\n className=\"dynamic-form\"\n values={value}\n defaultEmitValuesChange={false}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n onValuesChange={(value) => handleValuesChange(value, index)}\n >\n <ReactUseMultipleBricks\n useBrick={\n (index === 0\n ? bricks\n : bricksOfNoLabel) as UseSingleBrickConf[]\n }\n // NOTE: Passing changed `data={value}` will cause useBrick to re-render and lose state\n data={value}\n />\n {!hideRemoveBtn && (\n <div\n className={classNames(\"remove-btn-wrapper\", {\n \"remove-btn-disabled-wrapper\": removeBtnDisabled,\n })}\n >\n <WrappedIcon\n lib=\"easyops\"\n category=\"assets-inventory\"\n icon=\"out\"\n className={classNames(\"remove-btn\", {\n \"remove-btn-disabled\": removeBtnDisabled,\n })}\n onClick={() => handleRemoveItem(index)}\n />\n </div>\n )}\n </WrappedForm>\n )}\n </div>\n );\n })}\n <div\n className={classNames({\n \"add-btn-wrapper-disabled\": addButtonDisabled,\n })}\n >\n <WrappedButton\n className={classNames(\"add-btn\", {\n \"add-btn-hide\": addButtonHide,\n \"add-btn-disabled\": addButtonDisabled,\n })}\n icon={{\n category: \"assets-inventory\",\n icon: \"xin\",\n lib: \"easyops\",\n }}\n type=\"dashed\"\n buttonStyle={{\n width: \"100%\",\n color: addButtonDisabled ? \"var(--text-color-disabled)\" : \"\",\n }}\n onClick={handleAddItem}\n >\n 添加\n </WrappedButton>\n </div>\n </div>\n <slot name=\"helpSlot\"></slot>\n </WrappedFormItem>\n );\n}\n\nexport { DynamicFormItem };\n","import React, { useEffect, useState, useMemo } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { debounce } from \"lodash\";\nimport {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"../input/index.jsx\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\n\nexport interface SearchProps {\n value?: string;\n placeholder?: string;\n autoFocus?: boolean;\n clearable?: boolean;\n trim?: boolean;\n debounceTime?: number;\n}\n\nexport interface SearchEvents {\n change: CustomEvent<string>;\n search: CustomEvent<string>;\n}\n\nexport interface SearchEventsMap {\n onChange: \"change\";\n onSearch: \"search\";\n}\n\n/**\n * 搜索框\n * @author nlicro\n * @category interact-basic\n */\nexport\n@defineElement(\"eo-search\", {\n styleTexts: [styleText],\n alias: [\"form.general-search\"],\n})\nclass GeneralSearch extends ReactNextElement implements SearchProps {\n /**\n * 搜索框的值\n */\n @property()\n accessor value: string = \"\";\n\n /**\n * 提示语\n */\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 是否自动聚焦\n */\n @property({\n type: Boolean,\n })\n accessor autoFocus: boolean | undefined;\n\n /**\n * 可以点击清除图标删除内容\n */\n @property({\n type: Boolean,\n })\n accessor clearable: boolean | undefined;\n\n /**\n * 是否剔除前后空格\n */\n @property({\n type: Boolean,\n })\n accessor trim: boolean | undefined;\n\n /**\n * 默认延迟时间\n */\n @property({\n type: Number,\n })\n accessor debounceTime: number = 0;\n\n /**\n * 输入的搜索字符,输入变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<string>;\n #handleChange = (value: string) => {\n this.value = value;\n };\n #handleDebouncedChange = (value: string) => {\n this.#change.emit(this.trim ? value?.trim() : value);\n };\n\n /**\n * 搜索时触发\n */\n @event({ type: \"search\" })\n accessor #search!: EventEmitter<string>;\n #handleSearch = (value: string) => {\n this.#search.emit(this.trim ? value?.trim() : value);\n };\n\n render() {\n return (\n <GeneralSearchComponent\n value={this.value}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n clearable={this.clearable}\n debounceTime={this.debounceTime}\n onChange={this.#handleChange}\n onSearch={this.#handleSearch}\n onDebouncedChange={this.#handleDebouncedChange}\n />\n );\n }\n}\n\ninterface SearchComponentProps extends SearchProps {\n onSearch?: (value: string) => void;\n onChange?: (value: string) => void;\n onDebouncedChange?: (value: string) => void;\n}\n\nexport function GeneralSearchComponent(props: SearchComponentProps) {\n const {\n placeholder,\n autoFocus,\n clearable,\n debounceTime,\n onDebouncedChange,\n onChange,\n onSearch,\n } = props;\n\n const [value, setValue] = useState<string>();\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const _onDebouncedChange = useMemo(() => {\n return debounceTime\n ? debounce(onDebouncedChange!, debounceTime)\n : onDebouncedChange;\n }, [debounceTime]);\n\n const handleSearch = () => {\n onSearch?.(value!);\n };\n\n const handleChange = (e: CustomEvent<string>) => {\n setValue(e.detail);\n onChange?.(e.detail);\n _onDebouncedChange?.(e.detail);\n };\n\n return (\n <WrappedInput\n type=\"text\"\n // React has special treatment for autoFocus. So we set the autofocus attribute to eo-input.\n auto-focus={autoFocus}\n clearable={clearable}\n placeholder={placeholder}\n value={value}\n onChange={handleChange as any}\n onKeyDown={(e) => e.key === \"Enter\" && handleSearch()}\n >\n <WrappedIcon\n slot=\"suffix\"\n className=\"search-button\"\n lib=\"antd\"\n icon=\"search\"\n theme=\"outlined\"\n onClick={() => handleSearch()}\n onMouseDown={(e) => e.preventDefault()}\n />\n </WrappedInput>\n );\n}\n","export enum K {\n ICON = \"ICON\",\n COLOR = \"COLOR\",\n SELECT_ICON = \"SELECT_ICON\",\n SEARCH_PLACEHOLDER = \"SEARCH_PLACEHOLDER\",\n}\n\nconst en: Locale = {\n ICON: \"Icon\",\n COLOR: \"Color\",\n SELECT_ICON: \"Select Icon\",\n SEARCH_PLACEHOLDER: \"input keyword to search\",\n};\n\nconst zh: Locale = {\n ICON: \"图标\",\n COLOR: \"颜色\",\n SELECT_ICON: \"选择图标\",\n SEARCH_PLACEHOLDER: \"输入关键字搜索\",\n};\n\nexport const NS = \"bricks/form/icon-select\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","export enum Colors {\n green = \"green\",\n red = \"red\",\n blue = \"blue\",\n orange = \"orange\",\n cyan = \"cyan\",\n purple = \"purple\",\n geekblue = \"geekblue\",\n gray = \"gray\",\n}\n\nexport const COLORS_MAP: Record<\n Colors,\n { color: string; background: string; borderColor: string }\n> = {\n [Colors.green]: {\n color: \"var(--theme-green-color)\",\n background: \"var(--theme-green-background)\",\n borderColor: \"var(--theme-green-border-color)\",\n },\n [Colors.red]: {\n color: \"var(--theme-red-color)\",\n background: \"var(--theme-red-background)\",\n borderColor: \"var(--theme-red-border-color)\",\n },\n [Colors.blue]: {\n color: \"var(--theme-blue-color)\",\n background: \"var(--theme-blue-background)\",\n borderColor: \"var(--theme-blue-border-color)\",\n },\n [Colors.orange]: {\n color: \"var(--theme-orange-color)\",\n background: \"var(--theme-orange-background)\",\n borderColor: \"var(--theme-orange-border-color)\",\n },\n [Colors.cyan]: {\n color: \"var(--theme-cyan-color)\",\n background: \"var(--theme-cyan-background)\",\n borderColor: \"var(--theme-cyan-border-color)\",\n },\n [Colors.purple]: {\n color: \"var(--theme-purple-color)\",\n background: \"var(--theme-purple-background)\",\n borderColor: \"var(--theme-purple-border-color)\",\n },\n [Colors.geekblue]: {\n color: \"var(--theme-geekblue-color)\",\n background: \"var(--theme-geekblue-background)\",\n borderColor: \"var(--theme-geekblue-border-color)\",\n },\n [Colors.gray]: {\n color: \"var(--theme-gray-color)\",\n background: \"var(--theme-gray-background)\",\n borderColor: \"var(--theme-gray-border-color)\",\n },\n};\n\n/**\n * 如果提供的颜色值是平台提供的规范颜色,则转换为使用平台规范的颜色定义,包括color、background、borderColor,不是的话则原样输出。\n * @param color {string} 颜色值\n * @return {color:string;background:string;borderColor:string;} 返回处理后的对应颜色值\n */\nexport function getColor(color?: string): {\n color: string;\n background: string;\n borderColor: string;\n} {\n if (!color) {\n return {\n color: \"var(--antd-avatar-color)\",\n background: \"var(--antd-avatar-bg)\",\n borderColor: \"var(--antd-avatar-color)\",\n };\n }\n return (\n COLORS_MAP[color as Colors] ?? {\n color,\n background: color,\n borderColor: color,\n }\n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport classNames from \"classnames\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n LibIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n Modal,\n ModalProps,\n ModalEvents,\n ModalMapEvents,\n} from \"@next-bricks/containers/modal\";\nimport type {\n Radio,\n RadioProps,\n RadioEvents,\n RadioEventsMapping,\n} from \"../radio/index.js\";\nimport type {\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap,\n} from \"../search/index.js\";\nimport type {\n getLibs as _getLibs,\n LibInfo,\n IconInfo,\n} from \"@next-bricks/icons/data-providers/get-libs\";\nimport type { searchIcons as _searchIcons } from \"@next-bricks/icons/data-providers/search-icons\";\nimport { COLORS_MAP, getColor } from \"./utils.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst getLibs = unwrapProvider<typeof _getLibs>(\"icons.get-libs\");\nconst searchIcons = unwrapProvider<typeof _searchIcons>(\"icons.search-icons\");\nconst WrappedGeneralRadio = wrapBrick<\n Radio,\n RadioProps,\n RadioEvents,\n RadioEventsMapping\n>(\"eo-radio\", {\n onValueChange: \"change\",\n onOptionsChange: \"optionsChange\",\n});\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedModal = wrapBrick<Modal, ModalProps, ModalEvents, ModalMapEvents>(\n \"eo-modal\",\n {\n onClose: \"close\",\n onConfirm: \"confirm\",\n onCancel: \"cancel\",\n onOpen: \"open\",\n }\n);\nconst WrappedSearch = wrapBrick<\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap\n>(\"eo-search\", {\n onChange: \"change\",\n onSearch: \"search\",\n});\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ntype Icon = LibIconProps & { color?: string };\n\nexport interface IconSelectProps {\n name?: string;\n label?: string;\n value?: Icon;\n disabled?: boolean;\n required?: boolean;\n message?: Record<string, string>;\n}\n\n/**\n * 图标选择构件\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-icon-select\", {\n styleTexts: [styleText],\n alias: [\"form.icon-select\"],\n})\nclass IconSelect extends FormItemElementBase implements IconSelectProps {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: Icon | undefined;\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 值变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<Icon | undefined>;\n handleChange = (value?: Icon) => {\n this.value = value;\n this.#change.emit(value);\n };\n\n render() {\n return (\n <IconSelectComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n value={this.value}\n required={this.required}\n disabled={this.disabled}\n message={this.message}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n onChange={this.handleChange}\n trigger=\"handleChange\"\n />\n );\n }\n}\n\nconst emptyIcon = {\n lib: \"easyops\",\n icon: \"empty-icon\",\n category: \"common\",\n} as Icon;\n\ninterface IconSelectComponentProps extends FormItemProps, IconSelectProps {\n onChange?: (value?: Icon) => void;\n}\n\nexport function IconSelectComponent(props: IconSelectComponentProps) {\n const { t } = useTranslation(NS);\n const { disabled, onChange } = props;\n\n const modalRef = useRef<Modal>(null);\n\n const [iconLibs, setIconLibs] = useState<LibInfo[]>([]);\n const [searchParams, setSearchParams] = useState<{\n q?: string;\n lib?: string;\n }>({});\n const [iconList, setIconList] = useState<IconInfo[]>([]);\n\n useEffect(() => {\n getLibs().then((libs) => {\n setIconLibs(libs);\n setSearchParams({ ...searchParams, lib: libs[0].lib });\n });\n }, []);\n\n const handleSearchIcons = (params: { q?: string; lib?: string }) => {\n searchIcons({ lib: params.lib, q: params.q, page: 1, pageSize: 100 }).then(\n (result) => setIconList(result.list)\n );\n };\n\n const [previewIcon, setPreviewIcon] = useState<LibIconProps>();\n const [previewColor, setPreviewColor] = useState<string>();\n\n useEffect(() => {\n setPreviewIcon(props.value?.lib ? props.value : undefined);\n setPreviewColor(props.value?.color);\n }, [props.value]);\n\n const [selectedIcon, setSelectedIcon] = useState<LibIconProps>();\n const [selectedColor, setSelectedColor] = useState<string>();\n\n const clearSelect = () => {\n setSelectedIcon(undefined);\n setSelectedColor(undefined);\n };\n\n const handleModalOpen = () => {\n setSelectedIcon(previewIcon);\n setSelectedColor(previewColor);\n handleSearchIcons(searchParams);\n };\n\n const handleModalClose = () => {\n clearSelect();\n };\n\n const handleModalConfirm = () => {\n setPreviewIcon(selectedIcon);\n setPreviewColor(selectedColor);\n const newValue = selectedIcon?.lib\n ? { ...selectedIcon, color: selectedColor }\n : undefined;\n onChange?.(newValue);\n modalRef.current?.close();\n };\n\n const handleIconSelect = (icon: LibIconProps) => {\n setSelectedIcon(icon);\n };\n\n const handleColorSelect = (color?: string) => {\n setSelectedColor(color);\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...(props as FormItemProps)}>\n <span\n onClick={() => !disabled && modalRef.current?.open()}\n className={classNames(\"show-icon\", {\n disabled: disabled,\n })}\n style={{ backgroundColor: getColor(previewColor).background }}\n >\n <WrappedGeneralIcon\n {...(previewIcon || emptyIcon)}\n style={{ color: getColor(previewColor).color }}\n />\n </span>\n <WrappedModal\n ref={modalRef}\n modalTitle={t(K.SELECT_ICON)!}\n width=\"778px\"\n maskClosable={false}\n closeWhenConfirm={false}\n onConfirm={handleModalConfirm}\n onClose={handleModalClose}\n onOpen={handleModalOpen}\n >\n <div className=\"preview-container\">\n <div\n className=\"show-area\"\n style={{ backgroundColor: getColor(selectedColor).background }}\n >\n <WrappedGeneralIcon\n {...(selectedIcon || emptyIcon)}\n style={{ color: getColor(selectedColor).color }}\n />\n {selectedIcon && (\n <div className=\"delete-wrapper\" onClick={() => clearSelect()}>\n <div className=\"delete-icon\">\n <WrappedGeneralIcon\n lib=\"easyops\"\n category=\"default\"\n icon=\"delete\"\n style={{ color: \"var(--theme-red-color)\" }}\n />\n </div>\n </div>\n )}\n </div>\n <span className=\"preview-icon-name\">{selectedIcon?.icon}</span>\n </div>\n <div className=\"select-icon-container\">\n {\n <>\n <span className=\"label\">{t(K.COLOR)}:</span>\n <div className=\"select-color-area\">\n {Object.keys(COLORS_MAP).map((item) => {\n return (\n <div\n className=\"color-box\"\n style={{ backgroundColor: getColor(item).color }}\n key={item}\n onClick={() => handleColorSelect(item)}\n />\n );\n })}\n <div\n className=\"color-box empty-color\"\n onClick={() => handleColorSelect(undefined)}\n >\n <div className=\"empty-line\" />\n </div>\n </div>\n </>\n }\n <span className=\"label\">{t(K.ICON)}:</span>\n <div className=\"select-icon-area\">\n <div className=\"select-icon-search-bar\">\n <WrappedSearch\n value={searchParams.q}\n placeholder={t(K.SEARCH_PLACEHOLDER)!}\n onSearch={(e) => {\n const newSearchParams = { ...searchParams, q: e.detail };\n setSearchParams(newSearchParams);\n handleSearchIcons(newSearchParams);\n }}\n />\n <WrappedGeneralRadio\n options={iconLibs?.map((lib) => {\n return {\n label: lib.title,\n value: lib.lib,\n };\n })}\n value={searchParams.lib}\n onValueChange={(e) => {\n const newSearchParams = {\n ...searchParams,\n lib: e.detail.value as string,\n };\n setSearchParams(newSearchParams);\n handleSearchIcons(newSearchParams);\n }}\n />\n </div>\n <div className=\"icon-area\">\n {iconList.map((iconInfo) => {\n return (\n <div\n key={JSON.stringify(iconInfo.icon)}\n title={iconInfo.title}\n className=\"icon-container\"\n onClick={() => {\n handleIconSelect(iconInfo.icon);\n }}\n >\n <WrappedGeneralIcon {...iconInfo.icon} />\n <div className=\"icon-name\">{iconInfo.title}</div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </WrappedModal>\n </WrappedFormItem>\n );\n}\n","export enum K {\n UPLOAD = \"UPLOAD\",\n FILE_UPLOADING = \"FILE_UPLOADING\",\n DRAG_UPLOAD_TEXT = \"DRAG_UPLOAD_TEXT\",\n EXCEEDED_FILE_SIZE_LIMIT = \"EXCEEDED_FILE_SIZE_LIMIT\",\n}\n\nconst en: Locale = {\n UPLOAD: \"Upload\",\n FILE_UPLOADING: \"File is still uploading\",\n DRAG_UPLOAD_TEXT: \"Drag files here or <strong>click to upload</strong>\",\n EXCEEDED_FILE_SIZE_LIMIT:\n \"The uploaded file exceeded size limit: {{limitSize}} {{unit}}\",\n};\n\nconst zh: Locale = {\n UPLOAD: \"上传\",\n FILE_UPLOADING: \"文件上传中\",\n DRAG_UPLOAD_TEXT: \"将文件拖动到此处或<strong>点击上传</strong>\",\n EXCEEDED_FILE_SIZE_LIMIT: \"上传的文件超出大小限制: {{limitSize}} {{unit}}\",\n};\n\nexport const NS = \"bricks/form/eo-upload-file-and-image\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import { i18n } from \"@next-core/i18n\";\nimport { NS, K } from \"./i18n.js\";\n\nlet uid = 0;\n\nexport const symbolForAbortController = Symbol.for(\"AbortController\");\n\nexport const LIST_IGNORE = Symbol.for(\"list-ignore\");\n\nexport const getUid = () => {\n return `upload-image-${+new Date()}-${++uid}`;\n};\n\nexport enum FileSizeUnit {\n KB = \"KB\",\n MB = \"MB\",\n GB = \"GB\",\n}\n\nexport const acceptValidator = (file: File, accepts?: string | string[]) => {\n const validAccepts = ([] as string[]).concat(accepts || []).reduce(\n (pre, cur) =>\n pre.concat(\n cur\n .split(\",\")\n .map((v) => v.trim())\n .filter(Boolean)\n ),\n [] as string[]\n );\n\n if (file && validAccepts.length) {\n const lowerFileName = (file.name || \"\").toLowerCase();\n const mimeType = file.type || \"\";\n const baseMimeType = mimeType.split(\"/\")[0];\n\n return validAccepts.some((accept) => {\n // like *, */*\n if ([\"*\", \"*/*\"].includes(accept)) {\n return true;\n }\n\n // like .jpg, .png\n if (accept.startsWith(\".\")) {\n const lowerType = accept.toLowerCase();\n let affixList = [lowerType];\n if ([\".jpg\", \".jpeg\"].includes(lowerType)) {\n affixList = [\".jpg\", \".jpeg\"];\n }\n\n return affixList.some((affix) => lowerFileName.endsWith(affix));\n }\n\n // like image/*\n if (accept.endsWith(\"/*\")) {\n return baseMimeType === accept.split(\"/*\")[0];\n }\n\n // Full match\n if (mimeType === accept) {\n return true;\n }\n\n return false;\n });\n }\n return true;\n};\n\nexport const sizeValidator = (\n file: File,\n limitSize?: number,\n unit: FileSizeUnit = FileSizeUnit.MB\n) => {\n return new Promise((resolve, reject) => {\n if (file && limitSize) {\n const sizeConst = {\n [FileSizeUnit.KB]: 1024,\n [FileSizeUnit.MB]: 1024 * 1024,\n [FileSizeUnit.GB]: 1024 * 1024 * 1024,\n };\n\n file.size < limitSize * sizeConst[unit]\n ? resolve(file)\n : reject(\n new Error(\n i18n.t(`${NS}:${K.EXCEEDED_FILE_SIZE_LIMIT}`, { limitSize, unit })\n )\n );\n } else {\n resolve(file);\n }\n });\n};\n\nexport type UploadStatus = \"uploading\" | \"done\" | \"error\";\n\nexport interface FileData {\n uid: string;\n name: string;\n file?: File & { uid?: string };\n response?: any;\n userData?: any;\n status?: UploadStatus;\n errors?: Error[];\n [symbolForAbortController]?: AbortController;\n}\n","import React, { ChangeEvent, useEffect, useRef, useState } from \"react\";\nimport \"@next-core/theme\";\nimport { http } from \"@next-core/http\";\nimport {\n getUid,\n type FileData,\n symbolForAbortController,\n acceptValidator,\n sizeValidator,\n UploadStatus,\n} from \"./utils.js\";\n\nexport interface UploadActions {\n upload: () => void;\n uploadFiles: (files: FileList | File[]) => void;\n}\n\nexport interface ItemActions {\n remove: () => void;\n}\n\nexport interface UploadProps {\n children: (\n fileDataList: FileData[],\n uploadActions: UploadActions\n ) => React.ReactElement;\n itemRender: (\n fileData: FileData,\n fileDataList: FileData[],\n actions: ItemActions,\n index: number\n ) => React.ReactElement;\n fileList?: FileData[];\n autoUpload?: boolean;\n uploadName?: string;\n action?: string;\n method?: string;\n accept?: string;\n multiple?: boolean;\n maxCount?: number;\n limitSize?: number;\n overMaxCountMode?: \"ignore\" | \"replace\";\n beforeUploadValidators?: ((file: File, files: File[]) => Promise<unknown>)[];\n beforeUploadUserDataProcessor?: (\n file: File,\n fileDataList: { file: File; errors: Error[] }[]\n ) => Promise<any>;\n onChange?: (fileDataList: FileData[]) => void;\n}\n\nexport function Upload(props: UploadProps) {\n const {\n children,\n itemRender,\n autoUpload,\n onChange,\n uploadName = \"file\",\n action,\n method,\n accept,\n maxCount,\n limitSize,\n overMaxCountMode = \"replace\",\n beforeUploadValidators = [],\n beforeUploadUserDataProcessor,\n multiple,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [internalFileDataList, setInternalFileDataList] = useState<FileData[]>(\n []\n );\n\n useEffect(() => {\n setInternalFileDataList(props.fileList || []);\n }, [props.fileList]);\n\n const beforeLoadFilter = (files: File[]) => {\n return files.filter((file) => acceptValidator(file, accept));\n };\n\n const beforeLoadValidator = async (files: File[]) => {\n const results = await Promise.all(\n files.map((file) =>\n Promise.allSettled([\n file,\n sizeValidator(file, limitSize),\n ...beforeUploadValidators.map((validator) => validator(file, files)),\n ])\n )\n );\n return results.map(([_file, ...validatorResult]) => {\n const file = (_file as PromiseFulfilledResult<File>).value;\n const errors: Error[] = [];\n\n validatorResult.forEach((result) => {\n result.status === \"rejected\" && errors.push(result.reason);\n });\n\n return { file, errors };\n });\n };\n\n const beforeLoadProcessor = async (\n fileDataList: { file: File; errors: Error[] }[]\n ) => {\n return Promise.all(\n fileDataList.map(\n async ({\n file,\n errors,\n }: {\n file: File & { uid?: string };\n errors: Error[];\n }) => {\n const uid = getUid();\n file.uid = uid;\n const name = file.name;\n\n const status: UploadStatus = errors.length\n ? \"error\"\n : autoUpload\n ? \"uploading\"\n : \"done\";\n\n const userData = await beforeUploadUserDataProcessor?.(\n file,\n fileDataList\n );\n return { uid, file, name, status, userData, errors };\n }\n )\n );\n };\n\n const handleUploadSuccess = (fileData: FileData, response: unknown) => {\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = fileDataList.map((_fileData) => {\n return _fileData.uid === fileData.uid\n ? {\n ..._fileData,\n response,\n status: \"done\" as UploadStatus,\n }\n : _fileData;\n });\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n };\n\n const handleUploadError = (fileData: FileData, error: Error) => {\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = fileDataList.map((_fileData) => {\n return _fileData.uid === fileData.uid\n ? {\n ..._fileData,\n errors: _fileData.errors?.concat(error),\n status: \"error\" as UploadStatus,\n }\n : _fileData;\n });\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n };\n\n const handleFileRemove = (removedFileData: FileData) => {\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = fileDataList.filter(\n (fileData) => fileData.uid !== removedFileData.uid\n );\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n };\n\n const handleRemove = (fileData: FileData) => {\n if (fileData.status === \"uploading\") {\n fileData[symbolForAbortController]?.abort();\n }\n handleFileRemove(fileData);\n };\n\n const uploadFile = (fileData: FileData) => {\n const formData = new FormData();\n const abortController = new AbortController();\n fileData[symbolForAbortController] = abortController;\n formData.append(uploadName, fileData.file!, fileData.file!.name);\n\n const req = http.request(action!, {\n method,\n body: formData,\n signal: abortController.signal,\n });\n\n req\n .then((response) => handleUploadSuccess(fileData, response))\n .catch((error) => handleUploadError(fileData, error));\n\n return req;\n };\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const originFiles = [...files];\n let filteredFiles: File[] = [];\n let existsFilesSlice: [number, number] | undefined;\n\n if (maxCount && Number(maxCount) > 0) {\n const existsLength = internalFileDataList.length;\n if (existsLength + originFiles.length <= maxCount) {\n filteredFiles = beforeLoadFilter(originFiles);\n } else {\n const overCount = existsLength + originFiles.length - maxCount;\n const allowCount = originFiles.length - overCount;\n\n if (overMaxCountMode === \"ignore\") {\n filteredFiles = beforeLoadFilter(originFiles).slice(0, allowCount);\n } else {\n filteredFiles = beforeLoadFilter(originFiles).slice(\n -maxCount,\n Infinity\n );\n\n if (filteredFiles.length < maxCount) {\n existsFilesSlice = [filteredFiles.length - maxCount, Infinity];\n } else {\n existsFilesSlice = [0, 0];\n }\n }\n }\n } else {\n filteredFiles = beforeLoadFilter(originFiles);\n }\n\n const validatedFiles = await beforeLoadValidator(filteredFiles);\n const processedFileDataList = await beforeLoadProcessor(validatedFiles);\n (processedFileDataList.length || existsFilesSlice) &&\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = (\n existsFilesSlice\n ? fileDataList.slice(...existsFilesSlice)\n : fileDataList\n ).concat(processedFileDataList);\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n\n processedFileDataList.forEach(\n (fileData) => fileData.status === \"uploading\" && uploadFile(fileData)\n );\n };\n\n const handleInputChange = async (event: ChangeEvent<HTMLInputElement>) => {\n event.stopPropagation();\n handleFileUpload([...event.target.files!]);\n event.target.value = \"\";\n };\n\n return (\n <>\n <input\n ref={inputRef}\n type=\"file\"\n multiple={multiple}\n accept={accept}\n hidden\n onChange={handleInputChange}\n />\n <div className=\"upload-wrapper\">\n {children(internalFileDataList, {\n upload: () => inputRef.current?.click(),\n uploadFiles: (files) => handleFileUpload(files),\n })}\n <div className=\"file-list\">\n {internalFileDataList.map((fileData, index) => {\n const actions = {\n remove: () => handleRemove(fileData),\n };\n return (\n <React.Fragment key={fileData.uid}>\n {itemRender(fileData, internalFileDataList, actions, index)}\n </React.Fragment>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n","import { pipes } from \"@next-core/pipes\";\nimport { FileData } from \"../utils.js\";\n\nexport interface ImageData extends FileData {\n url?: string;\n}\n\nexport const getImage = (\n file: string | File,\n revokeUrl?: boolean\n): Promise<HTMLImageElement> => {\n return new Promise((resolve, reject) => {\n let url = \"\";\n if (typeof file === \"string\") {\n url = file;\n } else if (file instanceof Blob && file.type.startsWith(\"image/\")) {\n url = URL.createObjectURL(file);\n } else {\n reject(new Error(\"not Image\"));\n }\n const image = new Image();\n image.src = url;\n image.onload = () => {\n revokeUrl && URL.revokeObjectURL(url);\n resolve(image);\n };\n image.onerror = (error) => reject(error);\n });\n};\n\nexport const imageValidator = async (\n file: File,\n limit?: { width?: number; height?: number }\n) => {\n return new Promise((resolve, reject) => {\n if (file && limit) {\n getImage(file, true).then((image) => {\n (limit.width ? image.naturalWidth < limit.width : true) &&\n (limit.height ? image.naturalHeight < limit.height : true)\n ? resolve(file)\n : reject(new Error(\"Wrong image size!\"));\n });\n } else {\n resolve(file);\n }\n });\n};\n\nexport const userDataProcessor = async (file: File) => {\n const image = await getImage(file);\n return {\n url: image.src,\n name: file.name,\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight,\n size: pipes.unitFormat(file.size, \"bytes\").join(\"\"),\n };\n};\n","import React, { useRef } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type { Image, ImageProps } from \"@next-bricks/basic/image\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../../form-item/index.js\";\nimport classNames from \"classnames\";\nimport { UploadActions, ItemActions, Upload } from \"../Upload.js\";\nimport { userDataProcessor, imageValidator, type ImageData } from \"./utils.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedImage = wrapBrick<Image, ImageProps>(\"eo-image\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface UploadImageProps {\n label?: string;\n name?: string;\n required?: boolean;\n message?: Record<string, string>;\n value?: ImageData[];\n bucketName: string;\n maxCount?: number;\n multiple?: boolean;\n limitSize?: number;\n}\n\n/**\n * 上传图片构件\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-upload-image\", {\n styleTexts: [styleText],\n alias: [\"form.upload-image\"],\n})\nclass UploadImage extends FormItemElementBase implements UploadImageProps {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: ImageData[] | undefined;\n\n /**\n * 对象存储桶名字\n */\n @property()\n accessor bucketName!: string;\n\n /**\n * 最大上传数量\n */\n @property({\n type: Number,\n })\n accessor maxCount: number | undefined;\n\n /**\n * 是否支持选定的多张图片\n */\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n /**\n * 上传大小限制(单位为 MB)\n */\n @property({\n type: Number,\n })\n accessor limitSize: number | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 值变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<ImageData[]>;\n handleChange = (imageList: ImageData[]) => {\n this.value = imageList;\n this.#change.emit(imageList);\n };\n\n render() {\n return (\n <UploadImageComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n value={this.value}\n required={this.required}\n message={this.message}\n maxCount={this.maxCount}\n bucketName={this.bucketName}\n multiple={this.multiple}\n limitSize={this.limitSize}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n onChange={this.handleChange}\n trigger=\"handleChange\"\n />\n );\n }\n}\n\nconst defaultUploadIcon = {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n} as GeneralIconProps;\n\nconst deleteIcon = {\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n} as GeneralIconProps;\n\nconst closeIcon = {\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n} as GeneralIconProps;\n\ninterface UploadImageComponentProps extends UploadImageProps, FormItemProps {\n onChange?: (imageList: ImageData[]) => void;\n}\n\nexport function UploadImageComponent(props: UploadImageComponentProps) {\n const { value, bucketName, multiple, maxCount, onChange, limitSize } = props;\n const { t } = useTranslation(NS);\n const wrapBrickImageRef = useRef<Image>(null);\n\n const handleChange = (images: ImageData[]) => {\n const processedImages = images?.map((image) => {\n const url =\n image.url ??\n (image.response\n ? `${getBasePath()}api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${bucketName}/object/${\n image.response.data.objectName\n }`\n : undefined);\n return {\n ...image,\n url,\n };\n });\n onChange?.(processedImages);\n };\n\n const itemRender = (\n fileData: ImageData,\n _fileDataList: ImageData[],\n actions: ItemActions,\n index: number\n ) => {\n const { uid, url, name, userData, status = \"done\", errors } = fileData;\n\n return (\n <div\n key={uid}\n className={classNames(\"image-item\", {\n \"image-item-done\": status === \"done\",\n \"image-item-uploading\": status === \"uploading\",\n \"image-item-error\": status === \"error\",\n })}\n >\n <div className=\"image-item-inner\">\n <img\n className=\"image\"\n src={url || userData?.url}\n onClick={() => wrapBrickImageRef.current!.open(index)}\n />\n <div className=\"infos\">\n <div className=\"file-name\">{name}</div>\n {status === \"uploading\" && <div className=\"progress\"></div>}\n <div className=\"more-info\">\n {status === \"done\" && userData && (\n <div className=\"image-size\">\n {`LeaderBoard ${userData?.naturalWidth}*${userData?.naturalHeight}`}\n </div>\n )}\n {status === \"error\" && (\n <div className=\"error-info\">\n {errors\n ?.map((v) => {\n return v instanceof Error ? v.message : v;\n })\n .join(\" \")}\n </div>\n )}\n {(status === \"done\" || status === \"error\") && userData?.size && (\n <div className=\"file-size\">{userData.size}</div>\n )}\n </div>\n </div>\n <div className=\"operators\">\n <WrappedIcon\n className=\"delete-icon\"\n {...(status === \"done\" ? deleteIcon : closeIcon)}\n onClick={actions.remove}\n />\n </div>\n </div>\n </div>\n );\n };\n\n const validator = (curValue: ImageData[]) => {\n if (curValue?.some((file) => file.status === \"uploading\")) {\n return t(K.FILE_UPLOADING);\n }\n return \"\";\n };\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(props as FormItemProps)}\n validator={validator}\n >\n <Upload\n itemRender={itemRender}\n fileList={value}\n autoUpload={true}\n uploadName=\"file\"\n action={`${getBasePath()}api/gateway/object_store.object_store.PutObject/api/v1/objectStore/bucket/${bucketName}/object`}\n method=\"PUT\"\n accept=\"image/*\"\n maxCount={maxCount}\n multiple={multiple}\n limitSize={limitSize}\n beforeUploadValidators={[(file) => imageValidator(file)]}\n beforeUploadUserDataProcessor={userDataProcessor}\n onChange={handleChange}\n >\n {(fileDataList: ImageData[], uploadActions: UploadActions) => {\n return (\n <>\n <WrappedButton\n icon={defaultUploadIcon}\n onClick={uploadActions.upload}\n >\n {t(K.UPLOAD)}\n </WrappedButton>\n <WrappedImage\n ref={wrapBrickImageRef}\n onlyPreview={true}\n imgList={fileDataList.map((item) => ({\n src: item.url || item.userData?.url,\n }))}\n />\n </>\n );\n }}\n </Upload>\n </WrappedFormItem>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { ComponentSize } from \"../interface.js\";\nimport classNames from \"classnames\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\ninterface SwitchProps extends FormItemProps {\n curElement: HTMLElement;\n onSwitch: (value: boolean) => void;\n disabled?: boolean;\n size?: ComponentSize;\n value?: boolean;\n checkedText?: string;\n unCheckedText?: string;\n checkedIcon?: GeneralIconProps;\n unCheckedIcon?: GeneralIconProps;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 开关\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-switch\", {\n styleTexts: [styleText],\n alias: [\"form.general-switch\"],\n})\nclass GeneralSwitch extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 字段文本\n */\n @property() accessor label: string | undefined;\n\n /**\n * 初始值\n */\n @property({ type: Boolean })\n accessor value: boolean | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 按钮大小,目前只支持small和非small两种大小。\n */\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 选中时的文本\n */\n @property() accessor checkedText: string | undefined;\n\n /**\n * 非选中时的文本\n */\n @property() accessor unCheckedText: string | undefined;\n\n /**\n * 选中时的图标\n */\n @property({\n attribute: false,\n })\n accessor checkedIcon: GeneralIconProps | undefined;\n\n /**\n * 非选中时的文本\n */\n @property({\n attribute: false,\n })\n accessor unCheckedIcon: GeneralIconProps | undefined;\n\n /**\n * 开关改变时触发\n */\n @event({ type: \"switch\" }) accessor #switchEvent!: EventEmitter<boolean>;\n\n handleSwitch = (value: boolean) => {\n Promise.resolve().then(() => {\n this.#switchEvent.emit(value);\n });\n };\n render() {\n return (\n <GeneralSwitchComponent\n formElement={this.getFormElement()}\n curElement={this}\n disabled={this.disabled}\n size={this.size}\n value={this.value}\n onSwitch={this.handleSwitch}\n checkedText={this.checkedText}\n unCheckedText={this.unCheckedText}\n checkedIcon={this.checkedIcon}\n unCheckedIcon={this.unCheckedIcon}\n name={this.name}\n label={this.label}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleSwitch\"\n />\n );\n }\n}\n\nexport function GeneralSwitchComponent(props: SwitchProps) {\n const {\n unCheckedIcon,\n checkedIcon,\n checkedText,\n unCheckedText,\n value,\n disabled,\n size,\n } = props;\n const [checked, setChecked] = useState<boolean>();\n useEffect(() => {\n setChecked(value);\n }, [value]);\n const handleSwitchChange = () => {\n props.onSwitch(!checked);\n setChecked(!checked);\n };\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <button\n disabled={disabled}\n className={classNames(size, {\n \"switch-checked\": checked,\n \"switch-disabled\": disabled,\n })}\n onClick={handleSwitchChange}\n >\n <div className=\"switch-handle\"></div>\n <span className=\"switch-inner\">\n {checkedIcon && checked && (\n <WrappedGeneralIcon {...checkedIcon}></WrappedGeneralIcon>\n )}\n {unCheckedIcon && !checked && (\n <WrappedGeneralIcon {...unCheckedIcon}></WrappedGeneralIcon>\n )}\n\n {checked ? checkedText : unCheckedText}\n </span>\n </button>\n </WrappedFormItem>\n );\n}\n","import React, { useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EasyOpsIcon,\n EasyOpsIconProps,\n} from \"@next-bricks/icons/easyops-icon\";\nimport { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../../form-item/index.js\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { Trans } from \"react-i18next\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport { ItemActions, UploadActions, Upload } from \"../Upload.js\";\nimport { FileData } from \"../utils.js\";\nimport classNames from \"classnames\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedEasyopsIcon = wrapBrick<EasyOpsIcon, EasyOpsIconProps>(\n \"eo-easyops-icon\"\n);\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface UploadFileProps {\n label?: string;\n name?: string;\n required?: boolean;\n message?: Record<string, string>;\n value?: FileData[];\n multiple?: boolean;\n accept?: string;\n maxCount?: number;\n limitSize?: number;\n overMaxCountMode?: \"ignore\" | \"replace\";\n uploadDraggable?: boolean;\n draggableUploadTip?: string;\n autoUpload?: boolean;\n url?: string;\n method?: string;\n uploadName?: string;\n buttonText?: string;\n buttonType?: ButtonProps[\"type\"];\n buttonIcon?: GeneralIconProps;\n}\n\n/**\n * 上传文件\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-upload-file\", {\n styleTexts: [styleText],\n})\nclass EoUploadFile extends FormItemElementBase implements UploadFileProps {\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: FileData[] | undefined;\n\n /**\n * 是否支持多选\n */\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n /**\n * 接受上传的文件类型,多个之间用 `,` 连接\n */\n @property()\n accessor accept: string | undefined;\n\n /**\n * 最大上传数量\n */\n @property({\n type: Number,\n })\n accessor maxCount: number | undefined;\n\n /**\n * 上传大小限制(单位为 MB)\n */\n @property({\n type: Number,\n })\n accessor limitSize: number | undefined;\n\n /**\n * 上传按钮文本\n * @default 上传\n */\n @property()\n accessor buttonText: string | undefined;\n\n /**\n * 上传按钮类型\n */\n @property()\n accessor buttonType: ButtonProps[\"type\"] | undefined;\n\n /**\n * 上传按钮类型\n */\n @property({\n attribute: false,\n })\n accessor buttonIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n };\n\n /**\n * 超出最大上传数量时文件的保留方式\n */\n @property()\n accessor overMaxCountMode: \"ignore\" | \"replace\" = \"replace\";\n\n /**\n * 是否可以拖拽上传\n */\n @property({\n type: Boolean,\n })\n accessor uploadDraggable: boolean | undefined;\n\n /**\n * 拖拽上传的提示信息\n */\n @property()\n accessor draggableUploadTip: string | undefined;\n\n /**\n * 是否自动上传\n */\n @property({\n type: Boolean,\n })\n accessor autoUpload: boolean = false;\n\n /**\n * 自动上传的地址\n */\n @property()\n accessor url: string | undefined;\n\n /**\n * 自动上传的方法\n */\n @property()\n accessor method: string = \"POST\";\n\n /**\n * 自动上传的文件参数名\n */\n @property()\n accessor uploadName: string = \"file\";\n\n /**\n * 值变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<FileData[]>;\n handleChange = (fileDataList: FileData[]) => {\n this.value = fileDataList;\n this.#change.emit(fileDataList);\n };\n\n render() {\n return (\n <EoUploadFileComponent\n formElement={this.getFormElement()}\n curElement={this}\n label={this.label}\n name={this.name}\n required={this.required}\n message={this.message}\n value={this.value}\n multiple={this.multiple}\n accept={this.accept}\n maxCount={this.maxCount}\n limitSize={this.limitSize}\n buttonText={this.buttonText}\n buttonIcon={this.buttonIcon}\n buttonType={this.buttonType}\n overMaxCountMode={this.overMaxCountMode}\n uploadDraggable={this.uploadDraggable}\n draggableUploadTip={this.draggableUploadTip}\n autoUpload={this.autoUpload}\n url={this.url}\n method={this.method}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n uploadName={this.uploadName}\n trigger=\"handleChange\"\n onChange={this.handleChange}\n />\n );\n }\n}\n\nconst deleteIcon = {\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n} as GeneralIconProps;\n\nconst closeIcon = {\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n} as GeneralIconProps;\n\nconst fileTextIcon = {\n lib: \"antd\",\n icon: \"file-text\",\n theme: \"outlined\",\n} as GeneralIconProps;\n\nconst loadingIcon = {\n lib: \"antd\",\n icon: \"loading\",\n theme: \"outlined\",\n} as GeneralIconProps;\n\ninterface UploadFileComponentProps extends UploadFileProps, FormItemProps {\n onChange?: (fileDataList: FileData[]) => void;\n}\n\nexport function EoUploadFileComponent(props: UploadFileComponentProps) {\n const {\n value,\n multiple,\n accept,\n maxCount,\n limitSize,\n buttonIcon,\n buttonText,\n buttonType,\n overMaxCountMode,\n uploadDraggable,\n draggableUploadTip,\n autoUpload,\n url,\n method,\n uploadName,\n onChange,\n } = props;\n const { t } = useTranslation(NS);\n const theme = useCurrentTheme();\n\n const [isDragOver, setIsDragOver] = useState(false);\n\n const handleChange = (fileDataList: FileData[]) => {\n onChange?.(fileDataList);\n };\n\n const itemRender = (\n fileData: FileData,\n _fileDataList: FileData[],\n actions: ItemActions\n ) => {\n const { uid, name, status = \"done\", errors } = fileData;\n\n return (\n <WrappedTooltip content={errors?.map((item) => item.message).join(\", \")}>\n <div\n key={uid}\n className={classNames(\n \"upload-item-container\",\n status && `upload-item-container-${status}`\n )}\n >\n <div className=\"upload-item-inner\">\n <WrappedIcon\n className={classNames(\n \"upload-item-icon\",\n status === \"uploading\" && \"upload-icon\"\n )}\n {...(status === \"uploading\" ? loadingIcon : fileTextIcon)}\n />\n <div className=\"upload-item-infos\">\n <div className=\"upload-item-file-name\">{name}</div>\n </div>\n <div className=\"upload-item-operators\">\n <WrappedIcon\n className=\"delete-icon\"\n {...(status === \"done\" ? deleteIcon : closeIcon)}\n onClick={actions.remove}\n />\n </div>\n </div>\n </div>\n </WrappedTooltip>\n );\n };\n\n const validator = (curValue: FileData[]) => {\n if (curValue?.some((file) => file.status === \"uploading\")) {\n return t(K.FILE_UPLOADING);\n }\n return \"\";\n };\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(props as FormItemProps)}\n validator={validator}\n >\n <Upload\n itemRender={itemRender}\n fileList={value}\n multiple={multiple}\n accept={accept}\n maxCount={maxCount}\n limitSize={limitSize}\n overMaxCountMode={overMaxCountMode}\n autoUpload={autoUpload}\n action={url}\n method={method}\n uploadName={uploadName}\n onChange={handleChange}\n >\n {(fileDataList: FileData[], uploadActions: UploadActions) => {\n const isMaxQuantity =\n maxCount !== undefined && fileDataList.length >= maxCount;\n\n return uploadDraggable ? (\n <div\n className={classNames(\n \"upload-drag-button\",\n isDragOver && \"upload-drag-button-drag-over\"\n )}\n onClick={uploadActions.upload}\n onDragEnter={(e) => {\n e.preventDefault();\n setIsDragOver(true);\n }}\n onDragOver={(e) => {\n e.preventDefault();\n }}\n onDragLeave={() => {\n setIsDragOver(false);\n }}\n onDrop={(e) => {\n e.preventDefault();\n setIsDragOver(false);\n e.dataTransfer.files?.length &&\n uploadActions.uploadFiles(e.dataTransfer.files);\n }}\n >\n <div className=\"upload-drag-button-inner\">\n <WrappedEasyopsIcon\n className=\"upload-drag-button-icon\"\n category=\"colored-common\"\n icon={theme == \"dark-v2\" ? \"upload-dark\" : \"upload-light\"}\n />\n <div className=\"upload-drag-text\">\n <Trans\n i18nKey={t(K.DRAG_UPLOAD_TEXT)}\n components={{\n total: <strong />,\n }}\n />\n </div>\n {draggableUploadTip && (\n <div className=\"upload-drag-tip\">{draggableUploadTip}</div>\n )}\n </div>\n </div>\n ) : (\n <WrappedButton\n disabled={isMaxQuantity}\n type={buttonType}\n icon={buttonIcon}\n onClick={uploadActions.upload}\n >\n {buttonText || t(K.UPLOAD)}\n </WrappedButton>\n );\n }}\n </Upload>\n </WrappedFormItem>\n );\n}\n","import React, { useEffect, useRef, useMemo, useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport { cloneDeep, isEqual, toLower } from \"lodash\";\nimport {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"../input/index.jsx\";\nimport classNames from \"classnames\";\nimport { FormItemElementBase, MessageBody } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\n\nexport interface AutoCompleteProps extends FormItemProps {\n curElement?: HTMLElement;\n value?: string;\n options?: string[] | OptionType[];\n placeholder?: string;\n inputStyle?: React.CSSProperties;\n disabled?: boolean;\n filterByCaption?: boolean;\n validateState?: string;\n onChange?: (v: any) => void;\n}\n\nexport interface AutoCompleteEvents {\n change: CustomEvent<string>;\n}\n\nexport interface AutoCompleteEventsMap {\n onChange: \"change\";\n}\nexport interface Option {\n label: string;\n caption?: string;\n value: any;\n}\n\nexport interface OptionGroup {\n label: string;\n options: Option[];\n}\n\nexport type OptionType = Option | OptionGroup;\n\n/**\n * 带候选项的输入框\n * @author zhendonghuang\n *\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-auto-complete\", {\n styleTexts: [styleText],\n})\nclass AutoComplete extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 字段文本\n */\n @property() accessor label: string | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputStyle: React.CSSProperties | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * 选项列表\n * @required\n */\n @property({ attribute: false })\n accessor options: string[] | OptionType[] | undefined;\n\n /**\n * 搜索时是否根据caption过滤options\n */\n @property({ type: Boolean }) accessor filterByCaption: boolean | undefined;\n\n /**\n * 表单项校验方法\n */\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody) | undefined;\n\n /**\n * 正则校验规则\n */\n @property() accessor pattern: string | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false }) accessor message:\n | Record<string, string>\n | undefined;\n\n /**\n * 值改变事件\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n handleInputChange = (value: string) => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n\n render() {\n return (\n <EoAutoCompleteComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n placeholder={this.placeholder}\n disabled={this.disabled}\n inputStyle={this.inputStyle}\n required={this.required}\n message={this.message}\n value={this.value}\n options={this.options}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n notRender={this.notRender}\n validator={this.validator}\n pattern={this.pattern}\n filterByCaption={this.filterByCaption}\n validateState={this.validateState}\n trigger=\"handleInputChange\"\n onChange={this.handleInputChange}\n />\n );\n }\n}\n\nexport function EoAutoCompleteComponent(props: AutoCompleteProps) {\n const {\n onChange,\n inputStyle,\n disabled,\n placeholder,\n filterByCaption,\n validateState,\n } = props;\n const [options, setOptions] = useState(props.options || []);\n const [filteredOptions, setFilteredOptions] = useState<any[]>([]);\n const [active, setActive] = useState(false);\n const [value, setValue] = useState<string>(\"\");\n const inputRef = useRef<any>();\n const containerRef = useRef<HTMLDivElement>(null);\n\n const originalOptions: OptionType[] = useMemo(() => {\n const walkOptions = (options: (OptionType | string)[]): OptionType[] => {\n return formatOptions(options)?.map((op) => {\n if (\"options\" in op && Array.isArray(op.options)) {\n return { ...op, options: walkOptions(op.options) } as OptionGroup;\n } else {\n return op;\n }\n });\n };\n\n return walkOptions(options);\n }, [options]);\n\n const handleChange = (e: CustomEvent<string>) => {\n setValue(e.detail);\n const search = (options: OptionType[]) => {\n for (let i = options.length - 1; i >= 0; i--) {\n const option = options[i] as OptionGroup;\n if (option.options?.length) {\n search(option.options);\n }\n if (\n !option.options?.length &&\n !toLower(option.label).includes(toLower(e.detail)) &&\n (!filterByCaption ||\n !toLower((option as any).caption).includes(toLower(e.detail)))\n ) {\n options.splice(i, 1);\n }\n }\n return options;\n };\n const result = search(cloneDeep(originalOptions));\n setFilteredOptions(result);\n onChange?.(e.detail);\n };\n useEffect(() => {\n if (!isEqual(props.options, options)) {\n setOptions(props.options || []);\n }\n }, [props.options]);\n\n useEffect(() => {\n setValue(props.value || \"\");\n }, [props.value]);\n\n useEffect(() => {\n setFilteredOptions(originalOptions);\n }, [originalOptions]);\n\n useEffect(() => {\n const handleDocumentClick = (e: MouseEvent) => {\n e.stopPropagation();\n const path = e.composedPath();\n const containerElement = containerRef.current;\n if (containerElement && path.includes(containerElement)) return;\n setActive(false);\n inputRef.current?.blur();\n };\n document.addEventListener(\"click\", handleDocumentClick);\n return () => {\n document.removeEventListener(\"click\", handleDocumentClick);\n };\n }, []);\n\n const renderLabel = (option: Option, index: number) => {\n return (\n <div\n key={`${option.label}_${index}`}\n className={classNames(\"option-container\", {\n \"selected-option\": value === option.value,\n })}\n onClick={() => {\n setValue(option.value);\n setActive(false);\n onChange?.(option.value);\n }}\n >\n <div className=\"label\">{option.label}</div>\n {option.caption && <div className=\"caption\">{option.caption}</div>}\n </div>\n );\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div className=\"complete-container\" ref={containerRef}>\n <WrappedInput\n ref={inputRef}\n value={value}\n placeholder={placeholder}\n disabled={disabled}\n inputStyle={inputStyle}\n validateState={validateState}\n onFocus={() => {\n setActive(true);\n }}\n onChange={handleChange as any}\n />\n {active && filteredOptions.length ? (\n <div className=\"dropdown-wrapper\">\n <div className=\"dropdown-list\">\n {filteredOptions.map((f: any, index) =>\n f.options?.length ? (\n <div key={`${f.label}_${index}`} className=\"group-wrapper\">\n <div className=\"group-item\">{f.label}</div>\n {f.options.map((option: any, i: number) =>\n renderLabel(option, i)\n )}\n </div>\n ) : (\n renderLabel(f, index)\n )\n )}\n </div>\n <slot name=\"options-toolbar\"></slot>\n </div>\n ) : null}\n </div>\n </WrappedFormItem>\n );\n}\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport { devUseWarning } from '../_util/warning';\nimport DatePicker from '../date-picker';\nconst {\n TimePicker: InternalTimePicker,\n RangePicker: InternalRangePicker\n} = DatePicker;\nconst RangePicker = /*#__PURE__*/React.forwardRef((props, ref) => ( /*#__PURE__*/React.createElement(InternalRangePicker, Object.assign({}, props, {\n picker: \"time\",\n mode: undefined,\n ref: ref\n}))));\nconst TimePicker = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n addon,\n renderExtraFooter\n } = _a,\n restProps = __rest(_a, [\"addon\", \"renderExtraFooter\"]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('TimePicker');\n warning.deprecated(!addon, 'addon', 'renderExtraFooter');\n }\n const internalRenderExtraFooter = React.useMemo(() => {\n if (renderExtraFooter) {\n return renderExtraFooter;\n }\n if (addon) {\n return addon;\n }\n return undefined;\n }, [addon, renderExtraFooter]);\n return /*#__PURE__*/React.createElement(InternalTimePicker, Object.assign({}, restProps, {\n mode: undefined,\n ref: ref,\n renderExtraFooter: internalRenderExtraFooter\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n TimePicker.displayName = 'TimePicker';\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(TimePicker, 'picker');\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nTimePicker.RangePicker = RangePicker;\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default TimePicker;","import React, { useEffect, useMemo, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport fixStyleText from \"./fix-style.shadow.css\";\nimport { TimePicker, ConfigProvider, theme } from \"antd\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { TimePickerProps } from \"antd/lib/time-picker\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { i18n } from \"@next-core/i18n\";\nimport { isNil, omit } from \"lodash\";\nimport dayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\n\ndayjs.extend(customParseFormat);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ninterface EoTimePickerProps extends FormItemProps {\n shadowRoot: ShadowRoot | null;\n configProps?: Partial<TimePickerProps>;\n placeholder?: string;\n value?: string;\n disabled?: boolean;\n onChange?: (value: string) => void;\n onOpenChange?: (flag: boolean, value: string) => void;\n}\n\n/**\n * 时间选择器\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-time-picker\", {\n styleTexts: [styleText, fixStyleText],\n})\nclass EoTimePicker extends FormItemElementBase {\n /**\n * 时间选择器字段名\n */\n @property() accessor name: string | undefined;\n\n /**\n * 时间选择器说明\n */\n @property() accessor label: string | undefined;\n\n /**\n *时间选择器的初始值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 时间选择器占位说明\n */\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean }) accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 透传 antd timePicker 属性 [timePickerProps](https://ant.design/components/time-picker-cn)\n */\n @property({ attribute: false })\n accessor configProps: Partial<TimePickerProps> | undefined;\n\n /**\n *时间变化时触发\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n\n /**\n *面板打开时触发, 传出当前时间值\n */\n @event({ type: \"open\" })\n accessor #openEvent!: EventEmitter<string>;\n\n /**\n *面板关闭时触发,传出当前时间值\n */\n @event({ type: \"close\" })\n accessor #closeEvent!: EventEmitter<string>;\n\n handleChange = (value: string): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n #handleOpenChange = (flag: boolean, value: string): void => {\n if (flag) {\n this.#openEvent.emit(value);\n } else {\n this.#closeEvent.emit(value);\n }\n };\n\n render() {\n return (\n <EoTimePickerComponent\n curElement={this}\n formElement={this.getFormElement()}\n configProps={this.configProps}\n name={this.name}\n label={this.label}\n onChange={this.handleChange}\n trigger=\"handleChange\"\n onOpenChange={this.#handleOpenChange}\n placeholder={this.placeholder}\n value={this.value}\n required={this.required}\n message={this.message}\n notRender={this.notRender}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n shadowRoot={this.shadowRoot}\n disabled={this.disabled}\n />\n );\n }\n}\n\nexport function EoTimePickerComponent(props: EoTimePickerProps) {\n const {\n configProps = {},\n onChange,\n onOpenChange,\n disabled,\n placeholder,\n } = props;\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n const [value, setValue] = useState<Dayjs | null>(null);\n const format: string = (configProps.format as string) ?? \"HH:mm:ss\";\n useEffect(() => {\n if (!isNil(props.value)) {\n setValue(dayjs(props.value, format) as Dayjs);\n } else {\n setValue(null);\n }\n }, [props.value, format]);\n\n const handleChange = (_time: Dayjs | null, timeString: string): void => {\n onChange?.(timeString);\n };\n\n const handleOpenChange = (flag: boolean): void => {\n onOpenChange?.(\n flag,\n !isNil(value) ? (dayjs(value as Dayjs).format(format) as string) : \"\"\n );\n };\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(omit(props, [\"shadowRoot\"]) as any)}\n >\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n <div\n onChange={(e) => {\n e.stopPropagation();\n }}\n >\n <TimePicker\n {...configProps}\n getPopupContainer={(trigger) => trigger}\n value={value}\n // Currently we don't support multiple pick mode\n onChange={handleChange as any}\n onOpenChange={handleOpenChange}\n disabled={disabled}\n placeholder={placeholder}\n allowClear={configProps.allowClear}\n />\n </div>\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n","export enum K {\n NEXT_DAY = \"NEXT_DAY\",\n TODAY = \"TODAY\",\n LAST_DAY = \"LAST_DAY\",\n NEXT_WEEK = \"NEXT_WEEK\",\n THIS_WEEK = \"THIS_WEEK\",\n LAST_WEEK = \"LAST_WEEK\",\n NEXT_MONTH = \"NEXT_MONTH\",\n THIS_MONTH = \"THIS_MONTH\",\n LAST_MONTH = \"LAST_MONTH\",\n NEXT_QUARTER = \"NEXT_QUARTER\",\n THIS_QUARTER = \"THIS_QUARTER\",\n LAST_QUARTER = \"LAST_QUARTER\",\n NEXT_YEAR = \"NEXT_YEAR\",\n THIS_YEAR = \"THIS_YEAR\",\n LAST_YEAR = \"LAST_YEAR\",\n FISRT_QUARTER = \"FISRT_QUARTER\",\n SECOND_QUARTER = \"SECOND_QUARTER\",\n THIRD_QUARTER = \"THIRD_QUARTER\",\n FOURTH_QUARTER = \"FOURTH_QUARTER\",\n}\n\nconst en: Locale = {\n NEXT_DAY: \"Next day\",\n TODAY: \"Today\",\n LAST_DAY: \"Previous day\",\n NEXT_WEEK: \"Next week\",\n THIS_WEEK: \"This week\",\n LAST_WEEK: \"Previous week\",\n NEXT_MONTH: \"Next month\",\n THIS_MONTH: \"This month\",\n LAST_MONTH: \"Previous month\",\n NEXT_QUARTER: \"Next quarter\",\n THIS_QUARTER: \"This quarter\",\n LAST_QUARTER: \"Previous quarter\",\n NEXT_YEAR: \"Next year\",\n THIS_YEAR: \"This year\",\n LAST_YEAR: \"Previous year\",\n FISRT_QUARTER: \"First quarter\",\n SECOND_QUARTER: \"Second quarter\",\n THIRD_QUARTER: \"Third quarter\",\n FOURTH_QUARTER: \"Fourth quarter\",\n};\n\nconst zh: Locale = {\n NEXT_DAY: \"下日\",\n TODAY: \"今日\",\n LAST_DAY: \"上日\",\n NEXT_WEEK: \"下周\",\n THIS_WEEK: \"本周\",\n LAST_WEEK: \"上周\",\n NEXT_MONTH: \"下月\",\n THIS_MONTH: \"本月\",\n LAST_MONTH: \"上月\",\n NEXT_QUARTER: \"下季度\",\n THIS_QUARTER: \"本季度\",\n LAST_QUARTER: \"上季度\",\n NEXT_YEAR: \"下年\",\n THIS_YEAR: \"今年\",\n LAST_YEAR: \"上年\",\n FISRT_QUARTER: \"第一季度\",\n SECOND_QUARTER: \"第二季度\",\n THIRD_QUARTER: \"第三季度\",\n FOURTH_QUARTER: \"第四季度\",\n};\n\nexport const NS = \"bricks/form/eo-date-picker\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'LeftOutlined';\n}\nexport default RefIcon;","import React, {\n useEffect,\n useState,\n useCallback,\n useMemo,\n CSSProperties,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { DatePicker, ConfigProvider, theme } from \"antd\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { omit } from \"lodash\";\nimport dayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\nimport isoWeek from \"dayjs/plugin/isoWeek.js\";\nimport advancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport quarterOfYear from \"dayjs/plugin/quarterOfYear.js\";\nimport \"dayjs/locale/zh-cn.js\";\nimport classNames from \"classnames\";\nimport { DisabledDateType, PickerMode, DisabledDate } from \"../interface.js\";\nimport { LeftOutlined, RightOutlined } from \"@ant-design/icons\";\nimport moment from \"moment\";\n\ninitializeI18n(NS, locales);\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(quarterOfYear);\n\ninterface InternalStateDatePickerProps {\n placeholder?: string;\n value?: Dayjs;\n showTime?: boolean;\n inputStyle?: React.CSSProperties;\n format?: string;\n picker?: PickerMode;\n disabledDate?: DisabledDateType;\n useFastSelectBtn?: boolean;\n futureDateDisabled?: boolean;\n disabled?: boolean;\n onChange?: (value: Dayjs | null, dateString: string) => void;\n onOk?: (date: Dayjs) => void;\n}\n\ninterface EoDatePickerProps\n extends Omit<InternalStateDatePickerProps, \"value\" | \"onChange\" | \"onOk\">,\n FormItemProps {\n shadowRoot: ShadowRoot | null;\n value?: string;\n onChange?: (value: string) => void;\n onOk?: (value: string) => void;\n}\n\ninterface FieldSetAndRanges {\n fieldSet: Set<number>;\n ranges: [number, number][];\n}\ntype PickerModeMap = {\n [K in PickerMode]: string[];\n};\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\n/**\n * 日期选择器\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-date-picker\", {\n styleTexts: [styleText],\n})\nclass EoDatePicker extends FormItemElementBase {\n /**\n * 日期选择器字段名\n */\n @property() accessor name: string | undefined;\n /**\n * 日期选择器说明\n */\n @property() accessor label: string | undefined;\n\n /**\n *日期选择器的初始值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 日期选择器占位说明\n */\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean }) accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 是否显示时间, 当设为 `true` 时, 请同时设置 `format` 为 `YYYY-MM-DD HH:mm:ss` 使其也显示具体时,分,秒 的时间\n */\n @property({\n type: Boolean,\n })\n accessor showTime: boolean | undefined;\n\n /**\n * 显示预览的格式,具体配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format#%E6%94%AF%E6%8C%81%E7%9A%84%E6%A0%BC%E5%BC%8F%E5%8C%96%E5%8D%A0%E4%BD%8D%E7%AC%A6%E5%88%97%E8%A1%A8),注意,这里并非是定义给后台的数据格式,给后台的数据格式定义请参考 `general-form` 构件的 [valueTypes](developers/brick-book/brick/forms.general-form) 属性\n */\n @property()\n accessor format: string | undefined;\n\n /**\n * 设置选择器类型\n */\n @property({ attribute: false })\n accessor picker: PickerMode | undefined;\n\n /**\n * 不可选择未来日期,优先级高于disabledDate\n */\n @property({ type: Boolean })\n accessor futureDateDisabled: boolean | undefined;\n\n /**\n * 不可选择的日期\n */\n @property({ attribute: false })\n accessor disabledDate: DisabledDateType | undefined;\n\n /**\n *快速选项\n */\n @property({ type: Boolean })\n accessor useFastSelectBtn: boolean | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputStyle: CSSProperties | undefined;\n\n /**\n *日期变化时触发\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n\n /**\n *点击确定按钮触发(showTime 为 true 使用)\n */\n @event({ type: \"ok\" })\n accessor #okEvent!: EventEmitter<string>;\n\n handleChange = (value: string): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n #handleOk = (value: string): void => {\n this.#okEvent.emit(value);\n };\n render() {\n return (\n <EoDatePickerComponent\n curElement={this}\n formElement={this.getFormElement()}\n shadowRoot={this.shadowRoot}\n label={this.label}\n name={this.name}\n value={this.value}\n message={this.message}\n required={this.required}\n placeholder={this.placeholder}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n inputStyle={this.inputStyle}\n disabled={this.disabled}\n disabledDate={this.disabledDate}\n notRender={this.notRender}\n futureDateDisabled={this.futureDateDisabled}\n picker={this.picker}\n format={this.format}\n showTime={this.showTime}\n onChange={this.handleChange}\n trigger={\"handleChange\"}\n onOk={this.#handleOk}\n useFastSelectBtn={this.useFastSelectBtn}\n />\n );\n }\n}\n\nconst getFieldSetAndRanges = (\n expression?: string | number\n): FieldSetAndRanges => {\n const fieldSet = new Set<number>();\n const ranges: [number, number][] = [];\n `${expression}`.split(\",\").forEach((part) => {\n if (part.includes(\"-\")) {\n const range = part.split(\"-\").map((v) => Number(v)) as [number, number];\n ranges.push(range);\n } else if (part.trim() !== \"\" && !Number.isNaN(Number(part))) {\n fieldSet.add(Number(part));\n }\n });\n return { fieldSet, ranges };\n};\n\nconst isInFieldSetOrRanges = (\n cur: number,\n fieldSetAndRanges: FieldSetAndRanges\n): boolean => {\n const { fieldSet, ranges } = fieldSetAndRanges;\n return fieldSet.size === 0 && ranges.length === 0\n ? true\n : fieldSet.has(cur) ||\n ranges.some(([min, max]) => cur >= min && cur <= max);\n};\n\nconst isEmptyFieldSetOrRanges = (\n fieldSetAndRanges: FieldSetAndRanges\n): boolean => {\n const { fieldSet, ranges } = fieldSetAndRanges;\n return fieldSet.size === 0 && ranges.length === 0;\n};\n\nconst getFieldsFromFieldSetAndRanges = (\n fieldSetAndRanges: FieldSetAndRanges\n): number[] => {\n const { fieldSet, ranges } = fieldSetAndRanges;\n let fields = [...fieldSet];\n ranges.forEach(([min, max]) => {\n fields = fields.concat([...Array(max + 1).keys()].slice(min));\n });\n return [...new Set(fields)];\n};\n\nexport function InternalStateDatePicker(\n props: InternalStateDatePickerProps\n): React.ReactElement {\n const {\n picker,\n format,\n showTime,\n inputStyle,\n disabledDate,\n futureDateDisabled,\n useFastSelectBtn,\n placeholder,\n disabled,\n onChange,\n onOk,\n } = props;\n\n const [value, setValue] = useState(props.value);\n const [confirmDisabled, setConfirmDisabled] = useState(false);\n const crontab = useMemo(() => {\n if (!disabledDate) {\n return [];\n }\n return ([] as DisabledDate[]).concat(disabledDate).map((item) => {\n const { second, minute, hour, date, month, weekday, year } = item;\n const hourFieldSetAndRanges = getFieldSetAndRanges(hour);\n const minuteFieldSetAndRanges = getFieldSetAndRanges(minute);\n const secondFieldSetAndRanges = getFieldSetAndRanges(second);\n const yearFieldSetAndRanges = getFieldSetAndRanges(year);\n const monthFieldSetAndRanges = getFieldSetAndRanges(month);\n const dateFieldSetAndRanges = getFieldSetAndRanges(date);\n const weekFieldSetAndRanges = getFieldSetAndRanges(weekday);\n return {\n fields: {\n hour: hourFieldSetAndRanges,\n minute: minuteFieldSetAndRanges,\n second: secondFieldSetAndRanges,\n year: yearFieldSetAndRanges,\n month: monthFieldSetAndRanges,\n date: dateFieldSetAndRanges,\n weekday: weekFieldSetAndRanges,\n },\n isAllDate:\n isEmptyFieldSetOrRanges(yearFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(monthFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(dateFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(weekFieldSetAndRanges),\n isAllTime:\n isEmptyFieldSetOrRanges(hourFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(minuteFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(secondFieldSetAndRanges),\n };\n });\n }, [disabledDate]);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const handleDisabledDate = (date: Dayjs): boolean => {\n const curYear = date.year();\n const curMonth = date.month() + 1;\n const curDate = date.date();\n const curWeekday = date.isoWeekday();\n return crontab.some((cron) => {\n const { isAllDate, isAllTime, fields } = cron;\n //没有限制日期或限制了时分秒,则该日可选\n if (isAllDate || !isAllTime) {\n return false;\n }\n const { year, month, weekday, date } = fields;\n return (\n isInFieldSetOrRanges(curYear, year) &&\n isInFieldSetOrRanges(curMonth, month) &&\n isInFieldSetOrRanges(curWeekday, weekday) &&\n isInFieldSetOrRanges(curDate, date)\n );\n });\n };\n\n const handleDisabledFutureDate = (date: Dayjs): boolean => {\n return date && date > dayjs();\n };\n\n const handleDisabledTime = (date: Dayjs | null) => {\n if (!date) return;\n const curYear = date.year();\n const curMonth = date.month() + 1;\n const curDate = date.date();\n const curWeekday = date.isoWeekday();\n const curHour = date.hour();\n const curMinute = date.minute();\n const currentSecond = date.second();\n let disabledHours: number[] = [];\n let disabledMinutes: number[] = [];\n let disabledSeconds: number[] = [];\n let matchCurDate = false;\n crontab.forEach((cron) => {\n const { isAllTime, fields } = cron;\n //时分秒都没输入,则所有时间都可选\n if (isAllTime) return;\n const { hour, minute, second, year, month, weekday, date } = fields;\n const isMatchDate =\n isInFieldSetOrRanges(curYear, year) &&\n isInFieldSetOrRanges(curMonth, month) &&\n isInFieldSetOrRanges(curWeekday, weekday) &&\n isInFieldSetOrRanges(curDate, date);\n matchCurDate =\n matchCurDate ||\n (isMatchDate &&\n isInFieldSetOrRanges(curHour, hour) &&\n isInFieldSetOrRanges(curMinute, minute) &&\n isInFieldSetOrRanges(currentSecond, second));\n if (isMatchDate) {\n const hourFields = isEmptyFieldSetOrRanges(hour)\n ? [...Array(24).keys()]\n : getFieldsFromFieldSetAndRanges(hour);\n const minuteFields = isEmptyFieldSetOrRanges(minute)\n ? [...Array(60).keys()]\n : getFieldsFromFieldSetAndRanges(minute);\n const secondFields = isEmptyFieldSetOrRanges(second)\n ? [...Array(60).keys()]\n : getFieldsFromFieldSetAndRanges(second);\n // 当前在禁止小时里\n if (isInFieldSetOrRanges(curHour, hour)) {\n // 当前在禁止分钟里\n if (isInFieldSetOrRanges(curMinute, minute)) {\n disabledSeconds = disabledSeconds.concat([...secondFields]);\n }\n // 秒全禁用则对应分钟也禁用\n if (secondFields.length === 60) {\n disabledMinutes = disabledMinutes.concat([...minuteFields]);\n }\n }\n // 分全禁用则对应小时也禁用\n if (minuteFields.length === 60 && secondFields.length === 60) {\n disabledHours = disabledHours.concat([...hourFields]);\n }\n }\n });\n setConfirmDisabled(matchCurDate);\n return {\n disabledHours: () => disabledHours,\n disabledMinutes: () => disabledMinutes,\n disabledSeconds: () => disabledSeconds,\n };\n };\n\n const isDatePicker = picker === \"date\";\n const isQuarterPicker = picker === \"quarter\";\n\n const PickerBtn = useCallback(() => {\n const strMap: PickerModeMap = {\n date: [\n i18n.t(`${NS}:${K.LAST_DAY}`),\n i18n.t(`${NS}:${K.TODAY}`),\n i18n.t(`${NS}:${K.NEXT_DAY}`),\n ],\n week: [\n i18n.t(`${NS}:${K.LAST_WEEK}`),\n i18n.t(`${NS}:${K.THIS_WEEK}`),\n i18n.t(`${NS}:${K.NEXT_WEEK}`),\n ],\n month: [\n i18n.t(`${NS}:${K.LAST_MONTH}`),\n i18n.t(`${NS}:${K.THIS_MONTH}`),\n i18n.t(`${NS}:${K.NEXT_MONTH}`),\n ],\n quarter: [\n i18n.t(`${NS}:${K.LAST_QUARTER}`),\n i18n.t(`${NS}:${K.THIS_QUARTER}`),\n i18n.t(`${NS}:${K.NEXT_QUARTER}`),\n ],\n year: [\n i18n.t(`${NS}:${K.LAST_YEAR}`),\n i18n.t(`${NS}:${K.THIS_YEAR}`),\n i18n.t(`${NS}:${K.NEXT_YEAR}`),\n ],\n };\n const strs = strMap[picker as PickerMode];\n const currentDate = value || dayjs();\n const handlePreTime = () => {\n let preDate: Dayjs;\n switch (picker) {\n case \"date\":\n preDate = currentDate.clone().subtract(1, \"days\");\n break;\n case \"week\":\n preDate = currentDate.clone().subtract(1, \"weeks\");\n break;\n case \"month\":\n preDate = currentDate.clone().subtract(1, \"months\");\n break;\n case \"quarter\":\n preDate = currentDate.clone().subtract(1, \"quarters\");\n break;\n case \"year\":\n preDate = currentDate.clone().subtract(1, \"years\");\n break;\n default:\n preDate = currentDate;\n break;\n }\n onChange?.(preDate, dayjs(preDate).format(format));\n setValue(preDate);\n };\n const handleCurTime = () => {\n let curDate: Dayjs;\n switch (picker) {\n case \"date\":\n curDate = dayjs();\n break;\n case \"week\":\n curDate = dayjs().startOf(\"week\");\n break;\n case \"month\":\n curDate = dayjs();\n break;\n case \"quarter\":\n curDate = dayjs().startOf(\"quarter\");\n break;\n case \"year\":\n curDate = dayjs();\n break;\n default:\n curDate = currentDate;\n break;\n }\n onChange?.(curDate, dayjs(curDate).format(format));\n setValue(curDate);\n };\n const handleNextTime = () => {\n let nextDate: Dayjs;\n switch (picker) {\n case \"date\":\n nextDate = currentDate.clone().add(1, \"days\");\n break;\n case \"week\":\n nextDate = currentDate.clone().add(1, \"weeks\");\n break;\n case \"month\":\n nextDate = currentDate.clone().add(1, \"months\");\n break;\n case \"quarter\":\n nextDate = currentDate.clone().add(1, \"quarters\");\n break;\n case \"year\":\n nextDate = currentDate.clone().add(1, \"years\");\n break;\n default:\n nextDate = currentDate;\n break;\n }\n onChange?.(nextDate, dayjs(nextDate).format(format));\n setValue(nextDate);\n };\n\n return (\n <div\n className={classNames(\"pickerBtnWrap\", {\n disabledFastSelect: disabled,\n })}\n >\n <div className={classNames(\"pre\")} onClick={() => handlePreTime()}>\n <LeftOutlined rev=\"\" />\n <span>{strs[0]}</span>\n </div>\n <div className=\"current\" onClick={() => handleCurTime()}>\n {strs[1]}\n </div>\n <div\n className={classNames({\n next: true,\n nextDisabled:\n futureDateDisabled &&\n handleDisabledFutureDate(\n currentDate\n .clone()\n .add(1, picker === \"date\" ? \"days\" : (picker as any))\n ),\n })}\n onClick={() => handleNextTime()}\n >\n <span>{strs[2]}</span>\n <RightOutlined rev=\"\" />\n </div>\n </div>\n );\n }, [value, picker, futureDateDisabled]);\n\n const cellRender = useCallback(\n (\n current: string | number | Dayjs,\n info: { originNode: React.ReactElement }\n ) => {\n const quarterMap = {\n 1: i18n.t(`${NS}:${K.FISRT_QUARTER}`),\n 2: i18n.t(`${NS}:${K.SECOND_QUARTER}`),\n 3: i18n.t(`${NS}:${K.THIRD_QUARTER}`),\n 4: i18n.t(`${NS}:${K.FOURTH_QUARTER}`),\n };\n const selectedQuarter: number = dayjs(value).quarter();\n const currentQuarter: number = dayjs(current).quarter();\n return picker === \"quarter\" ? (\n <div\n className={classNames(\"quarterContent\", {\n selectedQuarter: selectedQuarter === currentQuarter,\n })}\n >\n {quarterMap[currentQuarter as keyof typeof quarterMap]}\n </div>\n ) : (\n info.originNode\n );\n },\n [value, picker]\n );\n\n return (\n <div\n className=\"pickerWrap\"\n onChange={(e) => {\n e.stopPropagation();\n }}\n >\n <DatePicker\n cellRender={(current, info: { originNode: React.ReactElement }) => {\n return cellRender(current, info);\n }}\n value={value}\n getPopupContainer={(trigger) => trigger}\n popupClassName={classNames({\n quarterPicker: isQuarterPicker,\n confirmDisabled: confirmDisabled,\n })}\n format={format}\n showTime={isDatePicker ? showTime : undefined}\n // Currently we don't support multiple pick mode\n onChange={onChange as any}\n style={inputStyle}\n placeholder={placeholder}\n onOk={onOk}\n suffixIcon={<WrappedIcon icon=\"calendar\" lib=\"easyops\" />}\n picker={picker}\n disabledDate={\n (futureDateDisabled && handleDisabledFutureDate) ||\n (disabledDate && handleDisabledDate)\n }\n disabledTime={disabledDate && (handleDisabledTime as any)}\n disabled={disabled}\n />\n {useFastSelectBtn && <PickerBtn />}\n </div>\n );\n}\n\nexport function EoDatePickerComponent(\n props: EoDatePickerProps\n): React.ReactElement {\n const { picker = \"date\", ...restProps } = props;\n\n const PickerFormatMap = {\n date: \"YYYY-MM-DD\",\n week: \"gggg-ww周\",\n month: \"YYYY-MM月\",\n quarter: \"YYYY-第Q季度\",\n year: \"YYYY\",\n };\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n const isDatePicker = picker === \"date\";\n const format = props.format || PickerFormatMap[picker];\n\n const handleChange = (_date: Dayjs | null, dateString: string): void => {\n props.onChange?.(dateString);\n };\n\n const handleOk = (date: Dayjs): void => {\n props.onOk?.(date?.format(props.format));\n };\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n const value: Dayjs | undefined = useMemo(() => {\n const parseValue = props.value;\n if (parseValue) {\n if (!props.format && (picker === \"week\" || picker === \"quarter\")) {\n //dayjs目前不支持解析gggg-ww周、YYYY-第Q季度格式的输入\n return dayjs(moment(parseValue, format).format());\n } else {\n return dayjs(parseValue, format);\n }\n }\n }, [props.value, format]);\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(omit(props, [\"shadowRoot\"]) as any)}\n >\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n <InternalStateDatePicker\n {...restProps}\n value={value}\n format={format}\n onChange={handleChange}\n onOk={isDatePicker ? handleOk : undefined}\n picker={picker}\n />\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n","export enum K {\n TODAY = \"TODAY\",\n THIS_WEEK = \"THIS_WEEK\",\n THIS_MONTH = \"THIS_MONTH\",\n THIS_QUARTER = \"THIS_QUARTER\",\n THIS_YEAR = \"THIS_YEAR\",\n START_TIME_END_TIME_CANNOT_EQUAL = \"START_TIME_END_TIME_CANNOT_EQUAL\",\n START_TIME_REQUIRED = \"START_TIME_REQUIRED\",\n END_TIME_REQUIRED = \"END_TIME_REQUIRED\",\n}\n// HELLO = \"HELLO\",\n\nconst en: Locale = {\n TODAY: \"Today\",\n THIS_WEEK: \"This Week\",\n THIS_MONTH: \"This Month\",\n THIS_QUARTER: \"This Quarter\",\n THIS_YEAR: \"This Year\",\n START_TIME_END_TIME_CANNOT_EQUAL: \"Start Time and End Time can NOT be equal\",\n START_TIME_REQUIRED: \"Start Time is required\",\n END_TIME_REQUIRED: \"End Time is required\",\n};\n\nconst zh: Locale = {\n TODAY: \"今天\",\n THIS_WEEK: \"本周\",\n THIS_MONTH: \"本月\",\n THIS_QUARTER: \"本季度\",\n THIS_YEAR: \"今年\",\n START_TIME_END_TIME_CANNOT_EQUAL: \"开始时间和结束时间不能相等\",\n START_TIME_REQUIRED: \"开始时间必填\",\n END_TIME_REQUIRED: \"结束时间必填\",\n};\n\nexport const NS = \"bricks/form/eo-time-range-picker\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useEffect, useMemo, useState, useRef } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase, MessageBody } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { TimePicker, DatePicker, ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport styleText from \"./styles.shadow.css\";\nimport fixStyleText from \"../time-picker/fix-style.shadow.css\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { omit, isEmpty, uniqueId, difference } from \"lodash\";\nimport dayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport isoWeek from \"dayjs/plugin/isoWeek.js\";\nimport advancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport quarterOfYear from \"dayjs/plugin/quarterOfYear.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\nimport \"dayjs/locale/zh-cn.js\";\n\ninitializeI18n(NS, locales);\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(quarterOfYear);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst INIT_TIME_RANGE: TimeRange = {\n startTime: \"00:00:00\",\n endTime: \"23:59:59\",\n};\n\nexport enum presetRangeType {\n Today = \"今天\",\n ThisWeek = \"本周\",\n ThisMonth = \"本月\",\n ThisQuarter = \"本季度\",\n ThisYear = \"今年\",\n}\nexport interface TimeRange {\n startTime: string;\n endTime: string;\n}\n\ntype PickerType = \"date\" | \"week\" | \"month\" | \"quarter\" | \"year\";\ntype OtherPickerType = \"dateTime\" | \"hmTime\" | \"time\";\nexport type RangeType = PickerType & OtherPickerType;\n\nexport interface EoTimeRangePickerProps extends FormItemProps {\n shadowRoot?: ShadowRoot | null;\n value?: TimeRange;\n format: string;\n rangeType?: RangeType;\n onChange?: (range: TimeRange) => void;\n emitChangeOnInit?: boolean;\n selectNearDays?: number;\n presetRanges?: presetRangeType[];\n}\ntype RealTimeRangePickerProps = Omit<\n EoTimeRangePickerProps,\n keyof Omit<FormItemProps, \"formElement\">\n>;\n/**\n * 时间区间选择器\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-time-range-picker\", {\n styleTexts: [styleText, fixStyleText],\n})\nclass EoTimeRangePicker extends FormItemElementBase {\n /**\n * 时间段选择器字段名\n */\n @property() accessor name: string | undefined;\n\n /**\n * 时间段选择器说明\n */\n @property() accessor label: string | undefined;\n\n /**\n *时间段选择器的初始值\n * @default { \"startTime\": \"00:00:00\", \"endTime\": \"23:59:59\" }\n */\n @property({ attribute: false }) accessor value: TimeRange | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 时间段类型\n */\n @property({ attribute: false })\n accessor rangeType: RangeType | undefined;\n\n /**\n * 只有rangeType在`date` 和 `dateTime`下, 才支持只选择最近n天(当前时间向前n天)\n */\n @property({ type: Number })\n accessor selectNearDays: number | undefined;\n\n /**\n * @default true\n * 是否在初始化完成后额外触发一次`time.range.change`, 这里因为历史原因之前默认行为就是在初始化后会触发该事件,这里为了兼容之前的行为,默认值只能设置为 true。\n */\n @property({ type: Boolean })\n accessor emitChangeOnInit: boolean | undefined = true;\n\n /**\n * @default []\n * 预设时间范围快捷选择;设置了属性selectNearDays时,属性presetRanges不生效;属性rangeType为week时,presetRanges的值只能为本周、本月、本季度、今年,属性rangeType为month、quarter、year时,以此类推\n */\n @property({ attribute: false })\n accessor presetRanges: presetRangeType[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody | string) | undefined;\n\n /**\n *时间段变化时触发\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<TimeRange>;\n\n handleChange = (value: TimeRange): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n // istanbul ignore next;\n unequal = (value: TimeRange): string => {\n if (value.startTime && value.endTime && value.startTime === value.endTime) {\n return i18n.t(`${NS}:${K.START_TIME_END_TIME_CANNOT_EQUAL}`);\n }\n return \"\";\n };\n // istanbul ignore next;\n startTimeRequired = (value: TimeRange): string => {\n if (!value.startTime && this.required) {\n return i18n.t(`${NS}:${K.START_TIME_REQUIRED}`);\n }\n return \"\";\n };\n // istanbul ignore next;\n endTimeRequired = (value: TimeRange): string => {\n if (!value.endTime && this.required) {\n return i18n.t(`${NS}:${K.END_TIME_REQUIRED}`);\n }\n return \"\";\n };\n\n #builtInvalidator: ((value: any) => MessageBody | string)[] = [\n this.unequal,\n this.startTimeRequired,\n this.endTimeRequired,\n ];\n\n #defaultFormat = \"HH:mm:ss\";\n render() {\n let format = this.#defaultFormat;\n switch (this.rangeType as RangeType) {\n case \"date\":\n format = \"YYYY-MM-DD\";\n break;\n case \"dateTime\":\n format = `YYYY-MM-DD ${this.#defaultFormat}`;\n break;\n case \"hmTime\":\n format = `HH:mm`;\n break;\n case \"week\": //week,month,quarter,year 不设置format,使用ant.design RangePicker的默认format\n format = \"\";\n break;\n case \"month\":\n format = \"\";\n break;\n case \"quarter\":\n format = \"\";\n break;\n case \"year\":\n format = \"\";\n break;\n }\n\n return (\n <EoTimeRangePickerComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n value={this.value}\n notRender={this.notRender}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n selectNearDays={this.selectNearDays}\n emitChangeOnInit={this.emitChangeOnInit}\n rangeType={this.rangeType}\n required={this.required}\n format={format}\n validator={\n (this.validator\n ? this.#builtInvalidator.concat(this.validator)\n : this.#builtInvalidator) as any\n }\n presetRanges={this.presetRanges}\n onChange={this.handleChange}\n shadowRoot={this.shadowRoot}\n needValidate={true}\n trigger=\"handleChange\"\n />\n );\n }\n}\n\nconst rangeRules = {\n date: [] as presetRangeType[],\n dateTime: [] as presetRangeType[],\n week: [presetRangeType.Today],\n month: [presetRangeType.Today, presetRangeType.ThisWeek],\n quarter: [\n presetRangeType.Today,\n presetRangeType.ThisWeek,\n presetRangeType.ThisMonth,\n ],\n year: [\n presetRangeType.Today,\n presetRangeType.ThisWeek,\n presetRangeType.ThisMonth,\n presetRangeType.ThisQuarter,\n ],\n};\n\nexport function RealTimeRangePicker(\n props: RealTimeRangePickerProps\n): React.ReactElement {\n const {\n value,\n selectNearDays,\n format,\n emitChangeOnInit,\n presetRanges,\n onChange,\n formElement,\n } = props;\n const times = [\"time\", \"hmTime\"];\n const rangeType = props.rangeType ?? \"time\";\n const today = times.includes(rangeType) ? \"\" : dayjs().format(\"YYYY-MM-DD\");\n const initRange = {\n startTime: today + (today ? \" \" : \"\") + INIT_TIME_RANGE.startTime,\n endTime: today + (today ? \" \" : \"\") + INIT_TIME_RANGE.endTime,\n };\n\n const initValue: TimeRange =\n !isEmpty(value?.startTime) || !isEmpty(value?.endTime)\n ? (value as TimeRange)\n : initRange;\n\n const [startTime, setStartTime] = useState(\n dayjs(initValue.startTime, format)\n );\n const [prevStartTime, setPrevStartTime] = useState(startTime?.clone());\n const [endTime, setEndTime] = useState(dayjs(initValue.endTime, format));\n const [prevEndTime, setPrevEndTime] = useState(endTime?.clone());\n\n const onStartTimeChange = (time: Dayjs | null, timeString: string) => {\n time && setStartTime(time);\n onChange?.({\n startTime: timeString,\n endTime: endTime?.format(format),\n });\n };\n\n const onEndTimeChange = (time: Dayjs | null, timeString: string) => {\n time && setEndTime(time);\n onChange?.({\n endTime: timeString,\n startTime: startTime?.format(format),\n });\n };\n\n useEffect(() => {\n if (emitChangeOnInit && !props.value && !formElement && onChange) {\n onChange(times.includes(rangeType) ? INIT_TIME_RANGE : initRange);\n }\n }, []);\n\n useEffect(() => {\n if (value?.startTime) {\n const start = dayjs(value.startTime, format || \"YYYY-MM-DD\");\n setStartTime(start);\n setPrevStartTime(start);\n }\n if (value?.endTime) {\n const end = dayjs(value.endTime, format || \"YYYY-MM-DD\");\n setEndTime(end);\n setPrevEndTime(end);\n }\n }, [value]);\n\n const timeRange = (\n <div className=\"timeRange\">\n <TimePicker\n {...{ id: uniqueId(\"start-time-\") }}\n // Currently we don't support multiple pick mode\n onChange={onStartTimeChange as any}\n getPopupContainer={(trigger) => trigger}\n value={!isEmpty(value?.startTime) ? startTime : undefined}\n format={format}\n />\n <span className=\"timeRangeSplit\">~</span>\n <TimePicker\n {...{ id: uniqueId(\"end-time-\") }}\n // Currently we don't support multiple pick mode\n onChange={onEndTimeChange as any}\n getPopupContainer={(trigger) => trigger}\n value={!isEmpty(value?.endTime) ? endTime : undefined}\n format={format}\n />\n </div>\n );\n const presetRangeMap = {\n [presetRangeType.Today]: {\n [i18n.t(`${NS}:${K.TODAY}`)]: [dayjs().startOf(\"day\"), dayjs()],\n },\n [presetRangeType.ThisWeek]: {\n [i18n.t(`${NS}:${K.THIS_WEEK}`)]: [\n dayjs().startOf(\"week\"),\n dayjs().endOf(\"week\"),\n ],\n },\n [presetRangeType.ThisMonth]: {\n [i18n.t(`${NS}:${K.THIS_MONTH}`)]: [\n dayjs().startOf(\"month\"),\n dayjs().endOf(\"month\"),\n ],\n },\n [presetRangeType.ThisQuarter]: {\n [i18n.t(`${NS}:${K.THIS_QUARTER}`)]: [\n dayjs().startOf(\"quarter\"),\n dayjs().endOf(\"quarter\"),\n ],\n },\n [presetRangeType.ThisYear]: {\n [i18n.t(`${NS}:${K.THIS_YEAR}`)]: [\n dayjs().startOf(\"year\"),\n dayjs().endOf(\"year\"),\n ],\n },\n };\n\n const presetRange = useMemo(() => {\n const rangeResult = [];\n if (!selectNearDays && !times.includes(rangeType)) {\n const compliantRanges = difference(\n presetRanges,\n (rangeRules as any)[rangeType]\n );\n for (const i of compliantRanges) {\n const list = Object.entries(presetRangeMap[i])[0];\n rangeResult.push({ label: list[0], value: list[1] });\n }\n }\n return rangeResult;\n }, [rangeType, selectNearDays, presetRanges]);\n const rangeChange = (dates: any) => {\n setStartTime(dates?.[0]);\n setEndTime(dates?.[1]);\n onChange?.({\n startTime: dates?.[0].format(format || \"YYYY-MM-DD\"), //week,month,quarter,year 的format为\"\",比如rangeType为quarter,直接返回2022-Q3的这种格式的数据,目前看起来还不是平台通用的,还是先默认转换成\"YYYY-MM-DD\"\n endTime: dates?.[1].format(format || \"YYYY-MM-DD\"),\n });\n };\n\n const needConfirm = useRef(false);\n const onOpenChange = (open: boolean) => {\n if (!open && needConfirm.current) {\n setStartTime(prevStartTime);\n setEndTime(prevEndTime);\n } else {\n needConfirm.current = true;\n }\n };\n\n const rangeOk = (selectedTime: any) => {\n needConfirm.current = false;\n const dates = selectedTime as [Dayjs, Dayjs];\n setPrevStartTime(dates?.[0]?.clone());\n setPrevEndTime(dates?.[1]?.clone());\n };\n\n const disabledDate = (current: Dayjs) => {\n if (!selectNearDays) {\n return false;\n }\n const tooSelectNearDays =\n current <= dayjs().subtract(selectNearDays, \"days\") ||\n current > dayjs().endOf(\"day\");\n return !!tooSelectNearDays;\n };\n\n // Memoize the picker value\n const pickerValue = useMemo(() => {\n return (\n !isEmpty(value?.startTime) || !isEmpty(value?.endTime)\n ? [startTime, endTime]\n : []\n ) as any;\n }, [endTime, startTime, value?.endTime, value?.startTime]);\n\n const dateRange = (\n <DatePicker.RangePicker\n style={{ width: 400 }}\n showTime={(rangeType as RangeType) === \"dateTime\"}\n picker={(rangeType as RangeType) === \"dateTime\" ? \"date\" : rangeType}\n value={pickerValue}\n presets={presetRange as any}\n format={format}\n onChange={rangeChange}\n onOpenChange={onOpenChange}\n onOk={rangeOk}\n disabledDate={disabledDate}\n separator={\"~\"}\n getPopupContainer={(trigger) => trigger}\n suffixIcon={<WrappedIcon icon=\"calendar\" lib=\"easyops\" />}\n />\n );\n const range = times.includes(rangeType) ? timeRange : dateRange;\n\n return <div>{range}</div>;\n}\n\nexport function EoTimeRangePickerComponent(props: EoTimeRangePickerProps) {\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(omit(props, [\"shadowRoot\"]) as any)}\n >\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n <div\n onChange={(e) => {\n e.stopPropagation();\n }}\n >\n <RealTimeRangePicker\n format={props.format}\n value={props.value}\n rangeType={props.rangeType}\n onChange={props.onChange}\n emitChangeOnInit={props.emitChangeOnInit}\n selectNearDays={props.selectNearDays}\n presetRanges={props.presetRanges}\n formElement={props.formElement}\n />\n </div>\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { ColorPicker, theme, ConfigProvider } from \"antd\";\nimport { ColorPickerProps, Color } from \"antd/lib/color-picker\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport styleText from \"./styles.shadow.css\";\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface EoColorPickerProps\n extends Pick<\n ColorPickerProps,\n \"allowClear\" | \"disabled\" | \"showText\" | \"format\" | \"size\" | \"defaultValue\"\n > {\n shadowRoot: ShadowRoot | null;\n configProps?: Partial<ColorPickerProps>;\n onChange?: (value?: string) => void;\n value?: string;\n}\n\n/**\n * 构件 `eo-color-picker`\n * @author astrid\n */\nexport\n@defineElement(\"eo-color-picker\", {\n styleTexts: [styleText],\n})\nclass EoColorPicker extends FormItemElementBase implements EoColorPickerProps {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n /**\n * 值\n */\n @property()\n accessor value: string | undefined;\n\n /**\n * 颜色默认的值\n */\n @property()\n accessor defaultValue: string | Color | undefined;\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n /**\n * 允许清除选择的颜色\n */\n @property({ type: Boolean })\n accessor allowClear: boolean | undefined;\n /**\n * 设置触发器大小\n * @default middle\n */\n @property({ attribute: false })\n accessor size: \"small\" | \"middle\" | \"large\" | undefined;\n\n /**\n * 显示颜色文本\n */\n @property({ type: Boolean })\n accessor showText: boolean | undefined;\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 颜色格式\n * @default hex\n */\n @property({ attribute: false })\n accessor format: \"rgb\" | \"hex\" | \"hsb\" | undefined;\n /**\n * 透传 antd ColorPicker 属性 [ColorPickerProps](https://ant.design/components/color-picker-cn#api)\n */\n @property({ attribute: false })\n accessor configProps: Partial<ColorPickerProps> | undefined;\n\n /**\n * 颜色变化事件, 返回值格式和`format`格式一致\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string | undefined>;\n handleChange = (value?: string) => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this as HTMLElement}\n formElement={this.getFormElement()}\n label={this.label}\n name={this.name}\n required={this.required}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleChange\"\n >\n <EoColorPickerComponent\n format={this.format}\n value={this.value}\n size={this.size}\n disabled={this.disabled}\n onChange={this.handleChange}\n shadowRoot={this.shadowRoot}\n configProps={this.configProps}\n showText={this.showText}\n allowClear={this.allowClear}\n defaultValue={this.defaultValue}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport function EoColorPickerComponent(\n props: EoColorPickerProps\n): React.ReactElement {\n const currentTheme = useCurrentTheme();\n const [format, setFormat] = useState<ColorPickerProps[\"format\"]>(\n props.format\n );\n const cache = useMemo(() => {\n return createCache();\n }, []);\n return (\n <ConfigProvider\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cache}>\n <ColorPicker\n {...props.configProps}\n getPopupContainer={(trigger) => trigger.parentElement as HTMLElement}\n value={props.value}\n disabled={props.disabled}\n allowClear={props.allowClear}\n defaultValue={props.defaultValue}\n size={props.size}\n showText={props.showText}\n format={format}\n onFormatChange={setFormat}\n onChange={(value) => {\n let outputValue = value.toHexString();\n switch (props.format) {\n case \"rgb\":\n outputValue = value.toRgbString();\n break;\n case \"hsb\":\n outputValue = value.toHsbString();\n break;\n default:\n outputValue = value.toHexString();\n break;\n }\n props.onChange?.(outputValue);\n }}\n onClear={() => {\n props.onChange?.();\n }}\n />\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--radio-dashboard-selected-bg:#ffffff;--radio-dashboard-disabled-bg:#e8e8e8}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--radio-dashboard-selected-bg:#414145;--radio-dashboard-disabled-bg:#3d3d43}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.complete-container{position:relative}.option-container{display:flex;flex-direction:column;margin:2px 4px;padding:5px 12px;cursor:pointer;border-radius:var(--medius-border-radius)}.option-container .label{line-height:22px}.option-container .caption{font-size:var(--auxiliary-font-size-small);color:var(--color-secondary-text);line-height:20px}.option-container:hover{background-color:var(--antd-select-item-active-bg)}.group-wrapper .option-container{padding-left:24px}.group-item{color:var(--antd-text-color-secondary);font-size:12px;margin:2px 4px;padding:5px 12px}.selected-option{background-color:var(--color-info-icon-bg)}.dropdown-wrapper{position:absolute;box-sizing:border-box;width:100%;background-color:var(--antd-select-dropdown-bg);box-shadow:var(--antd-box-shadow-base);z-index:1050;margin-top:5px;padding:4px 2px;border-radius:var(--small-border-radius)}.dropdown-list{max-height:256px;overflow:scroll}eo-input{width:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.checkboxWrapper{display:flex;flex-wrap:wrap;gap:12px 16px}.checkboxLabel{font-size:14px;line-height:1.57;display:inline-flex;align-items:baseline;cursor:pointer;line-height:22px;text-align:center;box-sizing:22px;padding:1px 4px;border-radius:var(--medius-border-radius)}.checkboxLabelDisabled{cursor:not-allowed;color:var(--text-color-disabled)}.checkboxInputWrapper{position:relative;top:0.2em}.checkboxInputWrapperDisabled{cursor:not-allowed}.checkboxLabel .checkboxInput{height:16px;width:16px;z-index:1;cursor:pointer;margin:0px;position:absolute;opacity:0}.checkboxLabel .checkboxInput[type=\"checkbox\"]:checked{color:black;background-color:var(--color-info-icon-bg)}.checkboxLabel .checkboxInner{border-radius:3px;position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:var(--color-fill-bg-container-1);border:1px solid var(--color-border-divider-line);box-sizing:border-box;border-collapse:separate;transition:all 0.3s}.checkboxLabel:hover .checkboxInner{background-color:var(--color-fill-bg-base-1)}.checkboxLabel:active .checkboxInner{background-color:var(--color-info-icon-bg)}.checkboxLabel .checkboxInputCheck .checkboxInner,\n.checkboxLabel .checkboxInputPartCheck .checkboxInner{background-color:var(--antd-checkbox-color);border-color:var(--antd-checkbox-color)}.checkboxLabelDisabled .checkboxInputCheck .checkboxInner{background-color:inherit;border-color:var(--color-disabled-text)}.checkboxLabelDisabled .checkboxInputCheck .checkboxInner::after{background-color:inherit;border-color:var(--color-disabled-text)}.checkboxLabel .checkboxInner::after{position:absolute;top:45%;left:3px;display:table;width:0.2em;height:0.5em;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all 0.1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity 0.1s;content:\" \"}.checkboxLabel .checkboxInputCheck .checkboxInner::after{transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all 0.2s cubic-bezier(0.12,0.4,0.29,1.46) 0.1s}.checkboxLabelCheck{background:var(--checkbox-bg-active)}.checkboxLabel .checkboxInputPartCheck .checkboxInner::after{height:2px;background-color:#fff;width:8px;border:0;left:50%;opacity:1;transform:translate(-50%,-50%) scale(1)}.checkboxLabel .checkboxInputDisabled{cursor:not-allowed}.checkboxLabel:hover{background:var(--checkbox-bg-hover)}.checkboxLabel .checkboxText{padding:0 8px}.iconCheckbox,\n.disabledIconCheckbox{position:relative;display:inline-block;width:104px;height:104px;margin-right:12px;text-align:center;cursor:pointer}.iconCustomCheckbox,\n.disabledIconCustomCheckbox{width:186px;height:114px;margin:0 15px 20px 0}.disabledIconCheckbox,\n.disabledIconCustomCheckbox{background-color:var(--input-outline-disabled)}.disabledIconCheckbox input[type=\"checkbox\"]::before, .disabledIconCustomCheckbox input[type=\"checkbox\"]::before{cursor:not-allowed}.disabledIconCheckbox .content .text, .disabledIconCustomCheckbox .content .text{color:var(--antd-checkbox-custom-type-disabled-color)}.iconCheckbox:hover input[type=\"checkbox\"]::before{border:1px solid var(--color-brand-hover)}.iconCheckbox input[type=\"checkbox\"]:checked::before{border:1px solid var(--color-brand-hover)}.iconCustomCheckbox:hover input[type=\"checkbox\"]::before{border:1px solid var(--color-brand-hover)}.iconCustomCheckbox input[type=\"checkbox\"]:checked::before{border:1px solid var(--color-brand-hover)}.iconCheckbox.content{position:absolute;width:100%;height:100%;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.inputBox{padding:5px;text-align:right;line-height:15px}.inputBox input[type=\"checkbox\"]::before{content:\"\";position:absolute;width:100%;height:100%;border-radius:6px;border:1px solid var(--color-border-divider-line);cursor:pointer;top:0;left:0}.collapse-wrapper{margin-top:4px}.collapse-header{padding:0px 16px 12px 40px;position:relative;margin-left:0px;margin-top:-4px}.collapse-content{padding:0px 16px 12px 40px;margin-top:-4px;display:none}.collapse-content-visible{display:block}.collapse-header .collapse-icon{position:absolute;left:16px}.collapse-header .checkboxLabel{margin-left:0px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.confirmDisabled .ant-picker-ok .ant-btn{color:var(--text-color-disabled);background:\"red\";border-color:var(--antd-border-color-base);text-shadow:none;box-shadow:none;pointer-events:none}.quarterPicker .quarterContent{left:auto;display:flex;align-items:center;justify-content:center;width:60%;padding:4px}.quarterPicker .quarterContent:hover{background:var(--antd-picker-basic-cell-hover-bg)}.quarterPicker .selectedQuarter{color:var(--antd-picker-panel-cell-selected-color);background:var(--antd-picker-panel-cell-selected-bg)}.quarterPicker .ant-picker-quarter-panel .ant-picker-content tr{display:flex;flex-wrap:wrap}.quarterPicker .ant-picker-quarter-panel .ant-picker-content td{display:flex;align-items:center;justify-content:center;width:50%;height:50%;padding:20px}.quarterPicker .ant-picker-cell-selected::before{color:var(--antd-picker-panel-cell-selected-color);background:var(--antd-picker-panel-cell-selected-bg)}.quarterPicker .ant-picker-cell::before{right:auto;left:auto;display:flex;align-items:center;justify-content:center;width:60%;display:none}.quarterPicker .ant-picker-cell:hover::before{background:var(--antd-picker-basic-cell-hover-bg);cursor:not-allowed}.pickerBtnWrap{box-sizing:border-box;margin:0;padding:0;color:var(--antd-text-color);font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:\"tnum\";padding:0 8px;position:relative;display:inline-flex;align-items:center;background:var(--antd-component-background);border:1px solid var(--antd-border-color-base);border-radius:4px;-webkit-user-select:none;user-select:none}.pre,\n.current,\n.next{position:relative;display:flex;align-items:center;line-height:1;padding:4px;cursor:pointer}.pre:hover,\n.current:hover,\n.next:hover{color:var(--antd-link-color)}.pre:hover .anticon-left,\n.pre:hover .anticon-right,\n.current:hover .anticon-left,\n.current:hover .anticon-right,\n.next:hover .anticon-left,\n.next:hover .anticon-right{color:var(--antd-link-color)}.nextDisabled{color:var(--text-color-disabled);background:var(--antd-background-color-base);pointer-events:none}.pickerWrap{display:flex;gap:10px}.pickerWrap .current{padding:4px 20px}.pickerWrap .current::after,\n.pickerWrap .current::before{content:\"\";position:absolute;top:50%;width:1px;height:70%;transform:translateY(-50%);background:var(--antd-border-color-base)}.pickerWrap .current::after{right:10px}.pickerWrap .current::before{left:10px}.pickerWrap .anticon-left,\n.pickerWrap .anticon-right{color:var(--antd-border-color-base);font-size:\" 11px\"}.pickerWrap .disabledFastSelect{pointer-events:none;color:var(--text-color-disabled);background:var(--antd-background-color-base)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dynamic-form-wrapper{border-radius:6px;padding:16px;background:var(--color-fill-bg-base-1)}.remove-btn{cursor:pointer;justify-content:center;display:flex;align-items:center;width:16px;height:16px;border:1px solid;border-radius:50%;line-height:12px;padding:2px;margin-left:8px;color:var(--color-secondary-text)}.remove-btn:hover{color:var(--color-auxiliary-text)}.remove-btn:active{color:var(--color-strong-text)}.remove-btn-wrapper{padding-top:4px}.dynamic-form > *:not(.remove-btn-wrapper){flex:1;margin-right:8px}.add-btn{width:calc(100% - 38px)}.add-btn-wrapper-disabled{cursor:not-allowed}.add-btn-disabled{pointer-events:none}.dynamic-form-item:first-child .dynamic-form:has(*[label]) .remove-btn-wrapper{margin-top:22px}.remove-btn-disabled-wrapper{cursor:not-allowed}.remove-btn-disabled{pointer-events:none;cursor:not-allowed;color:var(--text-color-disabled)}.add-btn-hide{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host([hidden]){display:none}button{line-height:22px;margin:0;padding:0;color:var(--antd-text-color);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:\"tnum\";position:relative;display:inline-block;box-sizing:border-box;min-width:44px;height:22px;line-height:22px;vertical-align:middle;background-color:var(--text-color-disabled);border:0;border-radius:100px;cursor:pointer;transition:all 0.2s;-webkit-user-select:none;user-select:none}.switch-checked{background-color:var(--antd-switch-color)}.switch-handle{position:absolute;top:2px;left:2px;width:18px;height:18px;transition:all 0.2s ease-in-out}.switch-checked .switch-handle{left:calc(100% - 18px - 2px)}.switch-checked .switch-inner{margin:0 25px 0 7px}.switch-handle::before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--antd-switch-bg);border-radius:9px;box-shadow:0 2px 4px 0 rgba(0,35,11,0.2);transition:all 0.2s ease-in-out;content:\"\"}.switch-inner{display:flex;align-items:center;margin:0 7px 0 25px;transition:margin 0.2s;color:#fff}.switch-disabled{cursor:not-allowed;opacity:0.4}.small{min-width:28px;height:16px;line-height:16px}.small .switch-handle{width:12px;height:12px}.small.switch-checked .switch-handle{left:calc(100% - 12px - 2px)}.small .switch-inner{margin:0 7px 0 18px}.small.switch-checked .switch-inner{margin:0 18px 0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.show-icon{display:grid;justify-items:center;align-items:center;width:54px;height:54px;font-size:27px;line-height:54px;border-radius:50%;cursor:pointer}.show-icon.disabled{cursor:not-allowed}.preview-container{display:grid;justify-items:center;margin-bottom:20px}.show-area{display:grid;justify-items:center;align-items:center;position:relative;font-size:35px;height:70px;width:70px;border-radius:50%}.delete-wrapper{display:grid;justify-items:center;align-items:center;position:absolute;top:0;cursor:pointer;width:100%;height:100%;border-radius:50%;background-color:rgba(0,0,0,0.15);opacity:0;transition:opacity 0.3s}.show-area:hover .delete-wrapper{opacity:1}.delete-icon{display:grid;justify-items:center;align-items:center;font-size:14px;background:#ffffff;width:36px;height:36px;border-radius:50%;border:1px solid rgba(238,239,243,1)}.delete-icon:focus{background-color:#f2f2f2}.preview-icon-name{text-align:center}.select-icon-container{display:grid;grid-template-columns:80px auto;row-gap:20px}.label{text-align:right;line-height:32px;font-size:14px;font-weight:400;color:rgba(102,102,102,1)}.select-color-area{display:flex}.color-box{width:38px;height:38px;border-radius:var(--larger-border-radius);cursor:pointer}.empty-color{border:var(--border-width-double-base) solid var(--color-border-divider-line);background-color:var(--color-info-white);position:relative;overflow:hidden}.empty-line{background:var(--palette-red-6);position:absolute;transform:translateX(-10px) rotate(-45deg);width:50px;margin:19px 0;height:var(--border-width-double-base)}.color-box:not(:last-child){margin-right:30px}.color-box:first-child{margin-left:22px}.select-icon-area{margin-left:22px}.select-icon-search-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.icon-area{padding-top:20px;display:grid;grid-template-columns:repeat(8,12.5%);overflow:auto;width:616px;height:218px;font-size:20px;background:var(--color-fill-bg-base-4);border-radius:var(--larger-border-radius)}.icon-container{display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;color:var(--color-normal-text);height:50px}.icon-container:hover{cursor:pointer;color:var(--color-brand)}.icon-container .icon-name{width:100%;text-align:center;font-size:10px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;visibility:hidden}.icon-container:hover .icon-name{visibility:visible}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.input-addon-wrapper{display:table;width:100%;line-height:22px;--input-affix-wrapper-padding:4px 10px}.input-addon-wrapper-size-large{--input-affix-wrapper-padding:8px 10px}.input-addon-wrapper-size-small{--input-affix-wrapper-padding:0 10px}.input-before-addon,\n.input-after-addon{display:table-cell;position:relative;padding:0 11px;font-size:14px;line-height:1;text-align:center;width:0;color:var(--text-color-default);background-color:var(--theme-gray-background);border:1px solid var(--color-border-divider-line);border-radius:var(--small-border-radius);transition:all 0.3s}.input-before-addon{right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.input-after-addon{left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host(:not([has-addon-before])) .input-before-addon{display:none}:host(:not([has-addon-after])) .input-after-addon{display:none}.input-affix-wrapper{display:inline-flex;position:relative;padding:var(--input-affix-wrapper-padding);border-radius:var(--small-border-radius);width:100%;color:var(--text-color-default);background-color:var(--antd-input-bg);border:1px solid var(--color-border-divider-line);transition:border-color 0.3s,box-shadow 0.3s;overflow:visible}:host([has-addon-before]) .input-affix-wrapper{border-top-left-radius:0;border-bottom-left-radius:0}:host([has-addon-after]) .input-affix-wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.input-affix-wrapper:not(.input-affix-wrapper-disabled):hover{border-color:var(--antd-input-hover-border-color);z-index:1}.input-affix-wrapper:focus,\n.input-affix-wrapper-focused{border-color:var(--antd-input-focus-border-color);box-shadow:0 0 0 2px rgba(0,113,235,0.2);z-index:1}.input-affix-wrapper-disabled{cursor:not-allowed;color:var(--text-color-disabled);background-color:var(--theme-gray-background)}.input{flex:1;padding:0;margin:0;border:none;outline:none;font-size:14px;line-height:20px;color:inherit;background-color:transparent;cursor:inherit;width:100%}.input::placeholder{color:var(--text-color-disabled);-webkit-user-select:none;user-select:none}.input:placeholder-shown{text-overflow:ellipsis}.input-prefix,\n.input-suffix{display:flex;flex:none;align-items:center}.input-prefix{margin-right:4px}.input-suffix{margin-left:4px}:host(:not([has-prefix])) .input-prefix{display:none}:host(:not([has-suffix])) .input-suffix:not(:has(:not(slot))){display:none}.input-clear-icon{margin-left:4px;font-size:12px;color:var(--text-color-disabled);cursor:pointer}:host([has-suffix]) .input-clear-icon{margin-right:4px}.input-clear-icon:hover{color:var(--antd-text-color-secondary)}.input-clear-icon-hidden{visibility:hidden}.input-addon-wrapper-status-error .input-affix-wrapper{border-color:var(--antd-error-color)}.input-addon-wrapper-status-error\n .input-affix-wrapper:not(.input-affix-wrapper-disabled):hover{border-color:var(--antd-error-color)}.input-addon-wrapper-status-error .input-affix-wrapper:focus,\n.input-addon-wrapper-status-error .input-affix-wrapper-focused{border-color:var(--antd-error-color);box-shadow:0 0 0 2px var(--antd-error-color-fade-20)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.radio-group{display:flex;flex-wrap:wrap;gap:12px 16px}:host([type=\"default\"]) .radio-item{position:relative;display:inline-flex;align-items:center;text-align:center;cursor:pointer;gap:8px}:host([type=\"default\"]) .radio-item .raido{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;position:relative;display:inline-block;outline:none;cursor:pointer;align-self:center;border-radius:50%}:host([type=\"default\"]) .radio-item .raido input[type=\"radio\"]{position:absolute;inset:0;z-index:1;cursor:pointer;opacity:0}:host([type=\"default\"]) .radio-item .raido::after{position:absolute;inset-block-start:0;inset-inline-start:0;width:100%;height:100%;border:1px solid var(--color-brand);border-radius:50%;visibility:hidden;content:\"\"}:host([type=\"default\"]) .radio-item .raido .radio-inner{box-sizing:border-box;position:relative;inset-block-start:0;inset-inline-start:0;display:block;width:16px;height:16px;background-color:var(--color-fill-bg-container-1);border:1px solid var(--color-border-divider-line);border-radius:50%;transition:all 0.3s}:host([type=\"default\"]) .radio-item .raido .radio-inner.checked{border-color:var(--color-brand);background-color:var(--color-brand)}:host([type=\"default\"]) .radio-item .raido .radio-inner.checked::after{transform:scale(0.375);opacity:1}:host([type=\"default\"]) .radio-item .raido .radio-inner::after{box-sizing:border-box;position:absolute;inset-block-start:50%;inset-inline-start:50%;display:block;width:16px;height:16px;margin-block-start:-8px;margin-inline-start:-8px;background-color:var(--color-fill-bg-container-1);border-block-start:0;border-inline-start:0;border-radius:16px;transform:scale(0);opacity:0;transition:all 0.3s cubic-bezier(0.78,0.14,0.15,0.86);content:\"\"}:host([type=\"default\"]) .radio-item input[type=\"radio\"]{width:16px;height:16px;vertical-align:middle;margin-top:0px}:host([type=\"default\"]) .radio-item .content{display:flex;align-items:center}:host([type=\"default\"]) .radio-item.disabled .radio-inner{background-color:var(--input-outline-disabled)}:host([type=\"default\"]) .radio-item.disabled .radio-inner.checked{background-color:var(--color-disabled-text);border-color:var(--color-disabled-text)}:host([type=\"default\"]) .radio-item:not(.disabled):hover .radio-inner{border:1px solid var(--color-brand)}:host([type=\"icon\"]) .radio-item{position:relative;display:inline-block;width:104px;height:104px;text-align:center;cursor:pointer}:host([type=\"icon\"]) .radio-item input[type=\"radio\"]{width:0px;height:0px}:host([type=\"icon\"]) .radio-item.checked .content{border-color:var(--color-brand);color:var(--color-brand)}:host([type=\"icon\"]) .radio-item .content{position:absolute;width:100%;height:100%;top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--color-fill-bg-container-1);color:var(--color-normal-text);border-radius:var(--medius-border-radius);border:var(--border-width-base) solid var(--color-border-divider-line)}:host([type=\"icon\"]) .radio-item:not(.disabled):hover .content{border-color:var(--color-brand-hover)}:host([type=\"icon\"]) .radio-item.disabled .content{background-color:var(--input-outline-disabled)}:host([type=\"button\"]){width:max-content}:host([type=\"button\"]) .radio-group{gap:0}:host([type=\"button\"]) .radio-item{position:relative;display:inline-block;margin:0;margin-left:-1px;padding:0;color:var(--antd-btn-default-color);font-size:14px;background:var(--antd-btn-default-bg);border:1px solid var(--antd-border-color-base);cursor:pointer;transition:color 0.3s,box-shadow 0.3s}:host([type=\"button\"]) .radio-item:first-child{border-radius:var(--small-border-radius) 0 0 var(--small-border-radius);margin-left:0px}:host([type=\"button\"]) .radio-item:last-child{border-radius:0 var(--small-border-radius) var(--small-border-radius) 0}:host([type=\"button\"]) .radio-item.checked.disabled{background-color:var(--color-border-divider-line)}:host([type=\"button\"]) .radio-item.disabled{color:var(--color-disabled-text)}:host([type=\"button\"]) .radio-item.checked:not(.disabled){border-color:var(--antd-radio-dot-color);background-color:var(--antd-radio-dot-color);color:#fff;margin-right:-1px;z-index:1}:host([type=\"button\"]) .radio-item.checked:not(.disabled) .button-content:not(.disabled):hover{color:inherit}:host([type=\"button\"]) .radio-item input[type=\"radio\"]{width:0;height:0;position:absolute}:host([type=\"button\"]) .radio-item .button-content{padding:0 15px}:host([type=\"button\"]) .radio-item .button-content:not(.disabled):hover{color:var(--antd-radio-dot-color)}:host([type=\"button\"]) .dashboard{border-radius:var(--small-border-radius);border:none;background-color:var(--antd-dashboard-radio-bg)}:host([type=\"button\"]) .dashboard .radio-item{background:var(--antd-dashboard-radio-item-bg);font-size:14px;color:var(--antd-dashboard-radio-item-color);border:none;margin:3px 0;border-radius:var(--medius-border-radius)}:host([type=\"button\"]) .dashboard .radio-item:first-child{margin-left:3px}:host([type=\"button\"]) .dashboard .radio-item:last-child{margin-right:3px}:host([type=\"button\"]) .dashboard .radio-item .button-content:not(.disabled):hover{color:var(--antd-dashboard-radio-item-checked-color)}:host([type=\"button\"]) .dashboard .radio-item.disabled{color:var(--color-disabled-text)}:host([type=\"button\"]) .dashboard .radio-item.checked.disabled{background-color:var(--radio-dashboard-disabled-bg)}:host([type=\"button\"]) .dashboard .radio-item.checked:not(.disabled){color:var(--antd-dashboard-radio-item-checked-color);background-color:var(--radio-dashboard-selected-bg);border-radius:var(--small-border-radius);font-weight:var(--font-weight-500)}:host([type=\"button\"]) .dashboard .radio-item.checked:not(:first-child){margin-left:-1px}:host([type=\"button\"]) .dashboard .radio-item:not(:last-child)::after{position:absolute;top:50%;right:0px;display:block;box-sizing:content-box;width:1px;height:calc(100% - 14px);background-color:var(--antd-border-color-base);transition:background-color 0.3s;content:\"\";transform:translateY(-50%)}:host([type=\"button\"]) .dashboard .radio-item.checked::after{width:0}:host([type=\"icon-circle\"]) .radio-item, :host([type=\"icon-square\"]) .radio-item{position:relative;display:inline-block;width:auto;text-align:center;cursor:pointer;line-height:1}:host([type=\"icon-circle\"]) .radio-item input[type=\"radio\"], :host([type=\"icon-square\"]) .radio-item input[type=\"radio\"]{width:0;height:0}:host([type=\"icon-circle\"]) .radio-item:not(.disabled):hover .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item:not(.disabled):hover .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item:not(.disabled):hover .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item:not(.disabled):hover .icon-content .square-icon{border-color:var(--color-brand-hover)}:host([type=\"icon-circle\"]) .radio-item .icon-content, :host([type=\"icon-square\"]) .radio-item .icon-content{color:var(--color-normal-text)}:host([type=\"icon-circle\"]) .radio-item .icon-content > span, :host([type=\"icon-square\"]) .radio-item .icon-content > span{width:93px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host([type=\"icon-circle\"]) .radio-item .icon-content .circle-icon, :host([type=\"icon-square\"]) .radio-item .icon-content .circle-icon{border-radius:50%}:host([type=\"icon-circle\"]) .radio-item .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item .icon-content .square-icon{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:auto auto 6px;background:var(--color-fill-bg-container-1);border:1px solid var(--color-border-divider-line);width:94px;height:94px;font-size:46px;box-sizing:border-box}:host([type=\"icon-circle\"]) .radio-item.disabled .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item.disabled .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item.disabled .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item.disabled .icon-content .square-icon{background-color:var(--input-outline-disabled)}:host([type=\"icon-circle\"]) .radio-item.checked .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item.checked .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item.checked .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item.checked .icon-content .square-icon{border-color:1px solid var(--color-brand);color:var(--color-brand);border-width:var(--border-width-double-base)}:host([type=\"custom\"]) .radio-item{position:relative;display:inline-block;width:212px;height:271px;text-align:center;cursor:pointer}:host([type=\"custom\"]) .radio-item input[type=\"radio\"]{width:0;height:0}:host([type=\"custom\"]) .radio-item input[type=\"radio\"]:checked ~ .custom-content{box-shadow:var(--hover-shadow)}:host([type=\"custom\"]) .radio-item .custom-content{position:absolute;width:100%;height:100%;top:0;color:var(--color-normal-text);border-radius:var(--small-border-radius)}:host([type=\"custom\"]) .radio-item:not(.disabled):hover .custom-content{box-shadow:var(--hover-shadow)}.radio-item.small{height:24px;font-size:13px;line-height:24px}.radio-item.medium{height:32px;font-size:14px}.radio-item.large{height:40px;font-size:18px;line-height:40px}.disabled,\n.disabled .content,\n.disabled .icon-content{cursor:not-allowed}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}eo-input{display:block}.search-button{width:16px;font-size:16px;color:var(--color-secondary-text);cursor:pointer}.search-button:hover{color:var(--color-normal-text)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.select{width:100%;margin:0;padding:0;color:var(--antd-text-color);font-size:14px;position:relative;cursor:text;min-width:100px}.select-selector{position:relative;border:1px solid var(--antd-border-color-base);border-radius:var(--small-border-radius);box-sizing:border-box;background-color:var(--antd-component-background);transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1);padding-right:24px}.select:not(.select-disabled):hover .select-selector{border-color:var(--antd-input-hover-border-color);z-index:1}.select:not(.select-disabled):hover .close-btn{display:block}.select-multiple .select-selector{min-height:30px;height:auto}.select-selection-overflow{position:relative;display:flex;flex:auto;flex-wrap:wrap;max-width:100%;padding-left:10px}.select-multiple .select-selection-overflow{padding-left:4px}.selected-item{flex:none;align-self:center;max-width:100%;line-height:1;margin-top:2px}.selected-item .label{display:inline-block;margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.selector-focused{border-color:var(--antd-input-focus-border-color);border-width:1px;outline:0;box-shadow:0 0 0 2px rgb(0 113 235/20%)}.select-single-item{line-height:1}.selector-focused .selected-single-item{color:var(--antd-input-placeholder-color)}.select-single .select-selection-search{position:absolute;top:-2px;right:25px;bottom:0;left:10px}.select-multiple .select-selection-search{left:4px}.select-single-item{flex:1;min-width:0}.select-single-item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-single-item .label .text{margin-right:4px}.select-multiple .select-selection-search{padding-right:22px}.select-selection-search-input{margin:0;padding:0;background:transparent;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:30px;cursor:pointer;color:var(--antd-text-color)}.select-disabled .select-selector{color:var(--text-color-disabled);background:var(--antd-input-disabled-bg);cursor:not-allowed}.select-disabled .select-selection-search-input{cursor:not-allowed}.select-selector.is-error{border-color:var(--antd-error-color)}.close-btn{display:none}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.select-arrow{display:inline-block;color:inherit;cursor:pointer;font-style:normal;line-height:0;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:53%;right:11px;width:12px;height:12px;margin-top:-6px;color:var(--text-color-disabled);font-size:12px;line-height:1;text-align:center}.anticon{vertical-align:top;transition:0.4s rotate ease}.anticon.focus{rotate:-180deg}.select-dropdown{margin:0;padding:0;margin-top:5px;color:var(--antd-text-color);font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:\"tnum\",;position:absolute;top:100%;left:0px;width:100%;z-index:1050;box-sizing:border-box;padding:2px;overflow:hidden;font-size:14px;font-variant:initial;background-color:var(--color-fill-bg-container-4);border-radius:var(--medius-border-radius);outline:none;box-shadow:var(--feedback-container-shadow)}.dropdown-list{max-height:256px;overflow-y:scroll;overflow-anchor:none}.dropdown-inner{display:flex;flex-direction:column}.select-item{position:relative;display:block;padding:5px 12px;color:var(--antd-text-color);font-weight:normal;font-size:14px;line-height:22px;cursor:pointer;transition:background 0.3s ease;margin:2px}.select-item-option{display:flex;border-radius:var(--medius-border-radius);margin:2px}.select-item-option.disabled{cursor:not-allowed;color:var(--color-disabled-text);background:var(--antd-input-disabled-bg)}.select-option-hover{background-color:var(--antd-select-item-active-bg)}.select-item-option-content{position:relative;flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.select-item-option-content .option{display:flex;align-items:center;justify-content:space-between;margin-right:22px}.dropdown-list .option .label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:8px}.select-option-selected{background-color:var(--color-info-icon-bg)}.select-option-hover{background-color:var(--antd-select-item-active-bg)}.is-checked{display:none;position:absolute;right:0px;top:0;color:var(--color-brand)}.select-option-selected .is-checked{display:block}.input-item{min-height:28px;display:flex;align-items:center;min-width:0}.empty-tips{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;color:var(--palette-gray-8);padding:20px}.empty-tips > span{margin-left:-4px;margin-top:8px;color:var(--color-secondary-text)}.select-group-wrapper .select-group-label{padding-left:12px;color:var(--antd-text-color-secondary);font-size:12px;cursor:default}.select-group-wrapper .select-item-option{padding-left:24px}.dropdown-list-loading-container{height:40px;display:flex;align-items:center;justify-content:center;background:rgba(var(--antd-component-background),0.7);font-size:24px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.submitBtn{margin-right:8px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `textarea{width:100%;padding:4px 11px;color:var(--antd-input-color);background:var(--antd-input-bg);box-sizing:border-box;border-radius:var(--antd-button-border-radius);border:1px solid var(--antd-input-border-color);line-height:1.5715}textarea:not(:disabled):hover{border:1px solid var(--antd-input-hover-border-color)}textarea:not(:disabled):focus{border:1px solid var(--antd-input-focus-border-color);outline:0;box-shadow:0 0 0 2px rgb(0 113 235/20%)}textarea:disabled{cursor:not-allowed;color:var(--text-color-disabled);background:var(--antd-input-disabled-bg);resize:none}textarea::placeholder{color:var(--antd-input-placeholder-color)}textarea.error{border-color:var(--antd-error-color)}textarea.error:hover{border-color:var(--antd-error-color)}textarea.error:focus{border-color:var(--antd-error-color)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ant-picker{border-radius:var(--small-border-radius);height:30px}.ant-picker-dropdown .ant-picker-panel-container{border:var(--medius-border-radius)}.ant-picker-dropdown .ant-picker-panel > .ant-picker-time-panel{padding-top:0}.ant-picker-dropdown\n .ant-picker-time-panel-column\n > li.ant-picker-time-panel-cell{margin-inline:0}.ant-picker-dropdown\n .ant-picker-time-panel-column\n > li.ant-picker-time-panel-cell\n .ant-picker-time-panel-cell-inner{width:auto;border-radius:0}.ant-picker-dropdown .ant-picker-time-panel-column{margin:0}.ant-picker-dropdown .ant-picker-ranges{margin-top:0px;padding:3px 10px;background-color:var(--color-fill-bg-base-3)}.ant-btn{box-shadow:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.timeRange{display:flex;align-items:center}.timeRange .timeRangeSplit{width:32px!important;height:30px;background:var(--input-fill-bg);pointer-events:none;border-left:0;border-right:0;display:inline-flex;justify-content:center;pointer-events:none;border-color:var(--antd-border-color-base);border-style:solid;border-top-width:1px;border-bottom-width:1px;align-items:center;color:var(--text-color-disabled);box-sizing:border-box}.timeRange .ant-picker:first-child{margin-right:0;border-top-right-radius:0px;border-bottom-right-radius:0px}.timeRange .ant-picker:last-child{margin-right:0;border-top-left-radius:0px;border-bottom-left-radius:0px}.timeRange\n .ant-picker-dropdown\n .ant-picker-panel-container\n .ant-picker-footer\n .ant-picker-ranges{margin-top:0px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}@keyframes loadingCircle{100%{transform:rotate(360deg)}}eo-icon{line-height:0.25em}.upload-wrapper{line-height:initial}.upload-drag-button{padding:36px 0 24px 0;border-radius:var(--larger-border-radius);background:var(--antd-upload-drag-bg);border:1px dashed var(--antd-upload-drag-border-color);cursor:pointer}.upload-drag-button:hover,\n.upload-drag-button-drag-over{background:var(--antd-upload-drag-hover-bg);border-color:var(--antd-upload-drag-hover-border-color)}.upload-drag-button-inner{display:flex;flex-direction:column;align-items:center;pointer-events:none}.upload-drag-button-icon{height:42px;font-size:153.6px}.upload-drag-text{margin-top:15px;font-size:14px;color:var(--text-color-title);line-height:20px}.upload-drag-text strong{color:var(--color-brand)}.upload-drag-tip{margin-top:8px;font-size:12px;color:var(--text-color-secondary);line-height:17px}.file-list{margin-top:12px;display:flex;flex-direction:column;gap:7px}.upload-item-container{padding:2px 8px;border-radius:var(--larger-border-radius);overflow:hidden;cursor:pointer}.upload-item-inner{position:relative;display:flex;align-items:center;gap:5px}.upload-item-icon{font-size:14px}.upload-icon{animation:loadingCircle 1s infinite linear}.upload-item-infos{flex:1;display:flex;flex-direction:column;padding-right:16px;gap:5px}.upload-item-file-name{font-size:12px;line-height:17px}.upload-item-operators{position:absolute;top:1px;right:0}.delete-icon{opacity:0;font-size:14px}.upload-item-container-uploading .upload-item-icon{color:var(--text-color-secondary)}.upload-item-container-uploading .upload-item-file-name{color:var(--text-color-default)}.upload-item-container-uploading .delete-icon{color:var(--text-color-disabled)}.upload-item-container-uploading:hover{background:var(--antd-upload-list-type-picture-bg)}.upload-item-container-uploading:hover .delete-icon{opacity:1}.upload-item-container-uploading .delete-icon:hover{color:var(--text-color-default)}.upload-item-container-done .upload-item-icon,\n.upload-item-container-done .upload-item-file-name{color:var(--text-color-default)}.upload-item-container-done .delete-icon{color:var(--text-color-disabled)}.upload-item-container-done:hover{background:var(--antd-upload-list-type-picture-hover-bg)}.upload-item-container-done:hover .upload-item-icon,\n.upload-item-container-done:hover .upload-item-file-name{color:var(--color-brand)}.upload-item-container-done:hover .delete-icon{opacity:1}.upload-item-container-done .delete-icon:hover{color:var(--color-error)}.upload-item-container-error .upload-item-icon,\n.upload-item-container-error .upload-item-file-name{color:var(--color-error)}.upload-item-container-error .delete-icon{opacity:1;color:var(--color-error)}.upload-item-container-error:hover{background:var(--palette-red-1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}eo-icon{line-height:0.25em}.upload-wrapper{line-height:initial}.file-list{margin-top:12px;display:flex;flex-direction:column;gap:7px}.image-item{padding:12px 20px;border-radius:var(--larger-border-radius);cursor:pointer}.image-item-inner{position:relative;display:flex;gap:12px}.image{width:38px;height:38px}.infos{flex:1;display:flex;flex-direction:column}.file-name{font-size:14px;font-weight:var(--font-weight-500);color:var(--text-color-default);line-height:20px;margin-bottom:4px}.progress{width:100%;height:4px;background:#ffffff;border-radius:var(--small-border-radius);margin:8px 0}.more-info{display:flex;align-items:center;gap:10px}.image-size{font-size:12px;color:var(--text-color-default);line-height:18px}.file-size{font-size:12px;font-weight:var(--font-weight-500);color:var(--text-color-disabled);line-height:18px}.progress-info{font-size:12px;font-weight:var(--font-weight-500);color:var(--text-color-disabled);line-height:18px}.error-info{font-size:12px;color:var(--color-error);line-height:18px}.operators{position:absolute;top:0;right:0}.delete-icon{opacity:0;font-size:16px}.image-item-done{background:var(--antd-upload-list-type-picture-bg);border:1px solid var(--antd-upload-list-type-picture-border-color)}.image-item-done:hover{background:var(--palette-blue-1);border-color:var(--palette-blue-1)}.image-item-done:hover .delete-icon{opacity:1}.image-item-done .delete-icon{color:var(--text-color-disabled)}.image-item-done .delete-icon:hover{color:var(--color-error)}.image-item-uploading{background:var(--antd-upload-list-type-picture-bg);border:1px dashed var(--antd-upload-list-type-picture-border-color)}.image-item-uploading:hover{background:var(--antd-upload-list-type-picture-hover-bg);border-color:var(--antd-upload-list-type-picture-hover-bg)}.image-item-uploading:hover .delete-icon{opacity:1}.image-item-uploading .delete-icon{color:var(--text-color-disabled)}.image-item-uploading .delete-icon:hover{color:var(--text-color-default)}.image-item-error{background:var(--palette-red-1);border:1px solid var(--theme-orangered-border-color)}.image-item-error .delete-icon{opacity:1;color:var(--color-error)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e,_){return\"W\"===_?e+\"周\":e+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(e,_){var t=100*e+_;return t<600?\"凌晨\":t<900?\"早上\":t<1100?\"上午\":t<1300?\"中午\":t<1800?\"下午\":\"晚上\"}};return t.default.locale(d,null,!0),d}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;"],"names":["defineElement","property","event","method","createDecorators","WrappedIcon","wrapBrick","WrappedFormItem","_Input","_RCInputRef","WeakMap","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_Input_brand","WeakSet","_T","_U","_V","_W","_X","Input","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","createRef","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_pattern","_init_extra_pattern","_init_max","_init_extra_max","_init_min","_init_extra_min","_init_message","_init_extra_message","_init_value","_init_extra_value","_init_placeholder","_init_extra_placeholder","_init_disabled","_init_extra_disabled","_init_readonly","_init_extra_readonly","_init_clearable","_init_extra_clearable","_init_autoFocus","_init_extra_autoFocus","_init_type","_init_extra_type","_init_size","_init_extra_size","_init_minLength","_init_extra_minLength","_init_maxLength","_init_extra_maxLength","_init_inputStyle","_init_extra_inputStyle","_init_changeEvent","_defineProperty","_init_extra_changeEvent","value","this","_classPrivateGetter","_get_changeEvent","emit","_init_hasAddonBefore","_init_extra_hasAddonBefore","_init_hasAddonAfter","_init_extra_hasAddonAfter","_init_hasPrefix","_init_extra_hasPrefix","_init_hasSuffix","_init_extra_hasSuffix","_init_validator","_init_extra_validator","ref","_classPrivateFieldGet","current","addonBefore","_assertClassBrand","_getSlotByName","call","addonAfter","prefix","suffix","addEventListener","hasAddonBefore","assignedElements","length","hasAddonAfter","hasSuffix","hasPrefix","name","v","_classPrivateFieldSet","label","required","pattern","max","min","message","placeholder","disabled","readonly","clearable","autoFocus","type","size","minLength","maxLength","inputStyle","focusInput","_classPrivateFieldGet2","focus","blurInput","_classPrivateFieldGet3","blur","validator","render","React","RCInput","formElement","getFormElement","curElement","renderCallback","notRender","helpBrick","labelBrick","validateState","readOnly","trigger","onInputChange","handleInputChange","_this$shadowRoot","shadowRoot","querySelector","_Input2","e","_set_changeEvent","c","_initClass","_applyDecs","styleTexts","styleText","alias","Boolean","Number","attribute","o","_","has","_checkInRHS","forwardRef","props","inputRef","useRef","inputAffixWrapperRef","setValue","useState","focused","setFocused","searchInputRef","element","Promise","resolve","then","mergeInputRef","refs","useMemo","forEach","useEffect","useImperativeHandle","options","_inputRef$current","_inputRef$current2","handleClear","_extends","exportparts","part","className","classNames","style","onClick","_inputAffixWrapperRef","_inputRef$current3","contains","target","fixValue","onChange","onFocus","handleFocus","onBlur","handleBlur","getClearIcon","hidden","lib","icon","theme","onMouseDown","preventDefault","isNil","String","SIZING_STYLE","hiddenTextarea","_Textarea","_Textarea_brand","Textarea","_init_autoSize","_init_extra_autoSize","_init_textareaStyle","_init_extra_textareaStyle","_init_InputChangeEvent","_init_extra_InputChangeEvent","_get_InputChangeEvent","autoSize","textareaStyle","TextareaComponent","autoSizeStyle","setAutoSizeStyle","textareaRef","minRows","maxRows","setAutoSize","useCallback","textareaElement","textareaStyles","uiTextNode","undefined","document","createElement","setAttribute","body","appendChild","uiTextNodeStyle","window","getComputedStyle","sizingStyle","map","getPropertyValue","join","minHeight","maxHeight","overflowY","height","scrollHeight","singleRowHeight","Math","resize","calculateAutoSizeStyle","error","display","_Textarea2","_set_InputChangeEvent","_topics","_subUid","PubSub","publish","topic","subscribers","len","func","subscribe","fn","_this$subUid","token","toString","push","unsubscribe","m","remove","item","uid","Field","detail","field","_fields","_options","_formData","_initData","_FormStore_brand","FormStore","getInstance","instance","get","set","super","Map","setField","getAllValues","allFields","_getAllFields","Object","fromEntries","entries","_ref","k","includes","filter","setInitValue","values","isEmitValuseChange","setFieldsValue","setFieldsValueByInitData","newFormData","_classPrivateFieldGet4","_ref2","onValuesChanged","changedValues","allValues","resetFields","resetValidateState","getFieldsValue","removeField","delete","validateFields","callback","results","validateField","some","result","formData","_classPrivateFieldGet5","fieldDetail","validate","validateValue","messageBody","getName","valid","isEmpty","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","checked","onWatch","realValue","needValidate","apply","keys","key","_detail","_Form","_values","_Form_brand","Form","ReactNextElement","_init_layout","_init_extra_layout","_init_labelCol","sm","span","md","lg","xl","xxl","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","_init_valuesChangeEvent","_init_extra_valuesChangeEvent","_get_valuesChangeEvent","_init_successEvent","_init_extra_successEvent","_init_errorEvent","_init_extra_errorEvent","_init_formStyle","_init_extra_formStyle","formStore","handleValuesChange","isFormElement","_setInitValue","layout","labelCol","wrapperCol","err","_get_errorEvent","_get_successEvent","runInMicrotask","queueMicrotask","runInMacrotask","setTimeout","formStyle","FormComponent","defaultEmitValuesChange","computedStyle","flexDirection","gap","_Form2","_set_valuesChangeEvent","_set_successEvent","_set_errorEvent","_FormItem","FormItem","_init_formElement","_init_extra_formElement","_init_curElement","_init_extra_curElement","_init_valuePropsName","_init_extra_valuePropsName","_init_trim","_init_extra_trim","_init_trigger","_init_extra_trigger","_init_needValidate","_init_extra_needValidate","valuePropsName","trim","disconnectedCallback","_this$formElement","formInstance","_this$formElement2","_this$formElement3","FormItemComponent","finalWrapperCol","calcWrapperColOffsetWithoutLabel","defaultValidateState","setValidateState","$bindFormItem","originTrigger","_len","args","_key","convertToItemColName","useBrick","ReactUseMultipleBricks","placement","_FormItem2","formatOptions","fields","uniqBy","op","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","WrappedGeneralIcon","_Radio","_formatOptions","_Radio_brand","_handleOptionsChange","Radio","_init_options","_init_extra_options","_init_ui","_init_extra_ui","_init_customStyle","_init_extra_customStyle","_init_useBrick","_init_extra_useBrick","_init_optionsChange","_init_extra_optionsChange","find","_get_optionsChange","ui","customStyle","RadioComponent","handleChange","optionsChange","setOptions","isEqual","option","_props$onChange","stopPropagation","dashboard","iconStyle","isBoolean","isDisabled","htmlFor","fontSize","ReactUseBrick","data","title","marginRight","verticalAlign","_Radio2","_set_optionsChange","xmlns","xmlnsXlink","width","id","x1","x2","y1","y2","offset","stopColor","x","y","filterUnits","dx","dy","in","stdDeviation","in2","operator","d","fill","fillRule","xlinkHref","stroke","strokeLinejoin","transform","opacity","WrappedTag","onCheck","onClose","applyArgs","query","arg","_Select","_Select_brand","Select","_init_mode","_init_extra_mode","_init_tokenSeparators","_init_extra_tokenSeparators","_init_maxTagCount","_init_extra_maxTagCount","_init_groupBy","_init_extra_groupBy","_init_suffix","_init_extra_suffix","_init_fields","_init_extra_fields","_init_useBackend","_init_extra_useBackend","_init_debounceSearchDelay","_init_extra_debounceSearchDelay","_init_searchEvent","_init_extra_searchEvent","_init_focusEvent","_init_extra_focusEvent","_get_searchEvent","_get_focusEvent","mode","tokenSeparators","maxTagCount","groupBy","useBackend","debounceSearchDelay","SelectComponent","onSearch","handleSearch","_props$useBackend2","onValueChange","multiple","selectRef","inputSpanRef","shouldTriggerOnValueChangeArgs","inputValue","setInputValue","inputWidth","setInputWidth","requestStatus","setRequestStatus","isDropHidden","setIsDropHidden","isFocused","setIsFocused","selectedOptions","setSelectedOptions","renderOptions","setRenderOptions","focusOptionItem","setFocusOptionItem","concat","handleSelectorClick","newValue","newOptions","handleMultipleItemClose","closeValue","handleSearchQuery","async","provider","isSearchable","onValueChangeArgs","actualArgs","fetchByProvider","actualData","handleHttpError","handleDebounceBackendSearch","debounce","computedOptions","selected","computedValue","_props$useBackend","matchToken","customValue","substring","handleKeydown","code","pop","index","findIndex","isEmptyValue","useLayoutEffect","toLocaleUpperCase","_inputSpanRef$current","_inputSpanRef$current2","offsetWidth","handleDocumentClick","path","composedPath","removeEventListener","renderSelector","tagList","ellipsisInfo","closable","slice","allOptions","reduce","pre","cur","renderLabel","color","checkable","closeable","Options","getSelectOption","_item$value","onMouseOver","onMouseLeave","group","Empty","position","spinning","_Select2","_set_searchEvent","_set_focusEvent","WrappedButton","_SubmitButtons","_SubmitButtons_brand","SubmitButtons","_init_submitText","_init_extra_submitText","_init_cancelText","_init_extra_cancelText","_init_disableAfterClick","_init_extra_disableAfterClick","_init_submitDisabled","_init_extra_submitDisabled","_init_submitType","_init_extra_submitType","_init_cancelType","_init_extra_cancelType","_init_submitEvent","_init_extra_submitEvent","_init_cancelEvent","_init_extra_cancelEvent","_get_submitEvent","disableAfterClick","submitDisabled","_get_cancelEvent","submitText","cancelText","submitType","cancelType","ButtonsComponent","onCancelClick","_handleCancelClick","onSubmitClick","_handleSubmitClick","_SubmitButtons2","_set_submitEvent","_set_cancelEvent","AntdIcon","A","_Checkbox","_Checkbox_brand","Checkbox","_init_isCustom","_init_extra_isCustom","_init_isGroup","_init_extra_isGroup","_init_optionGroups","_init_extra_optionGroups","_init_checkboxChangeEvent","_init_extra_checkboxChangeEvent","currentSelectOption","optionGroups","before","after","_get_checkboxChangeEvent","_init_optionsChangeEvent","_init_extra_optionsChangeEvent","_get_optionsChangeEvent","isCustom","isGroup","CheckboxComponent","handleCheckboxChange","setValues","collapseKeys","setCollapseKeys","setOptionGroups","_props$optionsChange","handleInputClick","i","splice","IconCheckbox","disabledIconCheckbox","disabledIconCustomCheckbox","iconCheckbox","iconCustomCheckbox","inputBox","defaultChecked","content","text","CheckboxItem","_props$options","alignItems","checkboxLabel","checkboxLabelDisabled","checkboxLabelCheck","checkboxColor","checkboxInputWrapper","checkboxInputWrapperDisabled","checkboxInputCheck","checkboxInput","checkboxInputDisabled","checkboxInner","background","borderColor","checkboxText","iconNode","mergedIcon","imgSrc","imgStyle","getIcon","CheckGroupItem","_optionGroups","newOptionsKeys","n","checkOptions","intersection","checkType","newKeys","CaretRightOutlined","rotate","rev","checkboxInputPartCheck","_props$onChange2","_props$onChange3","uniq","_Checkbox2","_set_checkboxChangeEvent","_set_optionsChangeEvent","K","NS","initializeReactI18n","en","UNIQUE","zh","WrappedForm","onValuesChange","onValidateSuccess","onValidateError","uniqueValidatorFN","properties","t","_props$curElement","fieldValue","_properties$message","Set","unique","getRealValue","_DynamicFormItem","_DynamicFormItem_brand","_handleAdd","_handleRemove","DynamicFormItem","_init_hideRemoveButton","_init_extra_hideRemoveButton","_init_disabledRemoveButton","_init_extra_disabledRemoveButton","_init_hideAddButton","_init_extra_hideAddButton","_init_disabledAddButton","_init_extra_disabledAddButton","_init_addEvent","_init_extra_addEvent","_init_removeEvent","_init_extra_removeEvent","_get_addEvent","_get_removeEvent","_this$getFormElement","hideRemoveButton","disabledRemoveButton","hideAddButton","disabledAddButton","DynamicFormItemComponent","handleDynamicFormChange","onAdd","onRemove","useTranslation","formWrapperRef","bricks","setBricks","bricksOfNoLabel","brick","omit","parsedUseBrick","flatten","handleRemoveItem","_props$onRemove","newValues","addButtonDisabled","addButtonHide","formWrapper","forms","querySelectorAll","every","hideRemoveBtn","removeBtnDisabled","category","buttonStyle","handleAddItem","_props$onAdd","_DynamicFormItem2","_set_addEvent","_set_removeEvent","WrappedInput","_GeneralSearch","_GeneralSearch_brand","_handleChange","_handleDebouncedChange","_handleSearch","GeneralSearch","_init_debounceTime","_init_extra_debounceTime","_init_change","_init_extra_change","_get_change","_init_search","_init_extra_search","_get_search","debounceTime","GeneralSearchComponent","onDebouncedChange","_onDebouncedChange","onKeyDown","slot","_GeneralSearch2","_set_change","_set_search","Colors","COLORS_MAP","green","red","blue","orange","cyan","purple","geekblue","gray","getColor","ICON","COLOR","SELECT_ICON","SEARCH_PLACEHOLDER","getLibs","unwrapProvider","searchIcons","WrappedGeneralRadio","onOptionsChange","WrappedModal","onConfirm","onCancel","onOpen","WrappedSearch","_IconSelect","_IconSelect_brand","IconSelect","IconSelectComponent","_IconSelect2","emptyIcon","modalRef","iconLibs","setIconLibs","searchParams","setSearchParams","iconList","setIconList","libs","handleSearchIcons","params","q","page","pageSize","list","previewIcon","setPreviewIcon","previewColor","setPreviewColor","_props$value","_props$value2","selectedIcon","setSelectedIcon","selectedColor","setSelectedColor","clearSelect","handleColorSelect","_modalRef$current2","open","backgroundColor","modalTitle","maskClosable","closeWhenConfirm","handleModalConfirm","_modalRef$current","close","handleModalClose","handleModalOpen","newSearchParams","iconInfo","JSON","stringify","locales","UPLOAD","FILE_UPLOADING","DRAG_UPLOAD_TEXT","EXCEEDED_FILE_SIZE_LIMIT","symbolForAbortController","Symbol","for","getUid","Date","FileSizeUnit","acceptValidator","file","accepts","validAccepts","split","lowerFileName","toLowerCase","mimeType","baseMimeType","accept","startsWith","lowerType","affixList","affix","endsWith","sizeValidator","limitSize","unit","MB","reject","sizeConst","KB","GB","Error","i18n","Upload","children","itemRender","autoUpload","uploadName","action","maxCount","overMaxCountMode","beforeUploadValidators","beforeUploadUserDataProcessor","internalFileDataList","setInternalFileDataList","fileList","beforeLoadFilter","files","handleFileUpload","originFiles","existsFilesSlice","filteredFiles","existsLength","allowCount","Infinity","validatedFiles","all","allSettled","_file","validatorResult","errors","status","reason","beforeLoadValidator","processedFileDataList","fileDataList","userData","beforeLoadProcessor","newFileDataList","fileData","FormData","abortController","AbortController","append","req","http","request","signal","response","handleUploadSuccess","_fileData","catch","handleUploadError","_fileData$errors","uploadFile","upload","click","uploadFiles","actions","_fileData$symbolForAb","removedFileData","abort","handleRemove","getImage","revokeUrl","url","Blob","URL","createObjectURL","image","Image","src","onload","revokeObjectURL","onerror","userDataProcessor","naturalWidth","naturalHeight","pipes","unitFormat","WrappedImage","_UploadImage","_UploadImage_brand","UploadImage","_init_bucketName","_init_extra_bucketName","_init_maxCount","_init_extra_maxCount","_init_multiple","_init_extra_multiple","_init_limitSize","_init_extra_limitSize","imageList","bucketName","UploadImageComponent","_UploadImage2","defaultUploadIcon","deleteIcon","closeIcon","wrapBrickImageRef","curValue","_fileDataList","getBasePath","limit","imageValidator","images","processedImages","objectName","uploadActions","onlyPreview","imgList","_item$userData","_GeneralSwitch","_GeneralSwitch_brand","GeneralSwitch","_init_checkedText","_init_extra_checkedText","_init_unCheckedText","_init_extra_unCheckedText","_init_checkedIcon","_init_extra_checkedIcon","_init_unCheckedIcon","_init_extra_unCheckedIcon","_init_switchEvent","_init_extra_switchEvent","_get_switchEvent","checkedText","unCheckedText","checkedIcon","unCheckedIcon","GeneralSwitchComponent","onSwitch","handleSwitch","setChecked","handleSwitchChange","_GeneralSwitch2","_set_switchEvent","WrappedEasyopsIcon","WrappedTooltip","_EoUploadFile","_EoUploadFile_brand","EoUploadFile","_init_accept","_init_extra_accept","_init_buttonText","_init_extra_buttonText","_init_buttonType","_init_extra_buttonType","_init_buttonIcon","_init_extra_buttonIcon","_init_overMaxCountMode","_init_extra_overMaxCountMode","_init_uploadDraggable","_init_extra_uploadDraggable","_init_draggableUploadTip","_init_extra_draggableUploadTip","_init_autoUpload","_init_extra_autoUpload","_init_url","_init_extra_url","_init_method","_init_extra_method","_init_uploadName","_init_extra_uploadName","buttonText","buttonType","buttonIcon","uploadDraggable","draggableUploadTip","EoUploadFileComponent","_EoUploadFile2","fileTextIcon","loadingIcon","useCurrentTheme","isDragOver","setIsDragOver","isMaxQuantity","onDragEnter","onDragOver","onDragLeave","onDrop","_e$dataTransfer$files","dataTransfer","Trans","i18nKey","components","total","_AutoComplete","_AutoComplete_brand","AutoComplete","_init_filterByCaption","_init_extra_filterByCaption","filterByCaption","EoAutoCompleteComponent","filteredOptions","setFilteredOptions","active","setActive","containerRef","originalOptions","walkOptions","containerElement","caption","search","_option$options","_option$options2","toLower","cloneDeep","f","_f$options","_AutoComplete2","TimePicker","InternalTimePicker","RangePicker","InternalRangePicker","assign","picker","_a","addon","renderExtraFooter","restProps","s","p","prototype","hasOwnProperty","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","internalRenderExtraFooter","_InternalPanelDoNotUseOrYouWillBeFired","dayjs","customParseFormat","_EoTimePicker","_EoTimePicker_brand","_handleOpenChange","EoTimePicker","_init_configProps","_init_extra_configProps","_init_openEvent","_init_extra_openEvent","_init_closeEvent","_init_extra_closeEvent","flag","_get_openEvent","_get_closeEvent","configProps","EoTimePickerComponent","onOpenChange","currentTheme","locale","language","enUS","zhCN","format","cahce","createCache","ConfigProvider","algorithm","darkAlgorithm","defaultAlgorithm","StyleProvider","container","cache","getPopupContainer","_time","timeString","allowClear","_EoTimePicker2","_set_openEvent","_set_closeEvent","fixStyleText","initializeI18n","NEXT_DAY","TODAY","LAST_DAY","NEXT_WEEK","THIS_WEEK","LAST_WEEK","NEXT_MONTH","THIS_MONTH","LAST_MONTH","NEXT_QUARTER","THIS_QUARTER","LAST_QUARTER","NEXT_YEAR","THIS_YEAR","LAST_YEAR","FISRT_QUARTER","SECOND_QUARTER","THIRD_QUARTER","FOURTH_QUARTER","advancedFormat","isoWeek","quarterOfYear","_EoDatePicker","_EoDatePicker_brand","_handleOk","EoDatePicker","_init_showTime","_init_extra_showTime","_init_format","_init_extra_format","_init_picker","_init_extra_picker","_init_futureDateDisabled","_init_extra_futureDateDisabled","_init_disabledDate","_init_extra_disabledDate","_init_useFastSelectBtn","_init_extra_useFastSelectBtn","_init_okEvent","_init_extra_okEvent","_get_okEvent","showTime","futureDateDisabled","disabledDate","useFastSelectBtn","EoDatePickerComponent","onOk","_EoDatePicker2","_set_okEvent","getFieldSetAndRanges","expression","fieldSet","ranges","range","isNaN","add","isInFieldSetOrRanges","fieldSetAndRanges","isEmptyFieldSetOrRanges","getFieldsFromFieldSetAndRanges","InternalStateDatePicker","confirmDisabled","setConfirmDisabled","crontab","second","minute","hour","date","month","weekday","year","hourFieldSetAndRanges","minuteFieldSetAndRanges","secondFieldSetAndRanges","yearFieldSetAndRanges","monthFieldSetAndRanges","dateFieldSetAndRanges","weekFieldSetAndRanges","isAllDate","isAllTime","handleDisabledFutureDate","isDatePicker","isQuarterPicker","PickerBtn","strs","week","quarter","currentDate","disabledFastSelect","handlePreTime","preDate","clone","subtract","LeftOutlined","handleCurTime","curDate","startOf","next","nextDisabled","handleNextTime","nextDate","RightOutlined","cellRender","info","quarterMap","selectedQuarter","currentQuarter","originNode","DatePicker","popupClassName","quarterPicker","suffixIcon","curYear","curMonth","curWeekday","isoWeekday","cron","disabledTime","curHour","curMinute","currentSecond","disabledHours","disabledMinutes","disabledSeconds","matchCurDate","isMatchDate","hourFields","minuteFields","secondFields","parseValue","moment","_date","dateString","_props$onOk","START_TIME_END_TIME_CANNOT_EQUAL","START_TIME_REQUIRED","END_TIME_REQUIRED","INIT_TIME_RANGE","startTime","endTime","_EoTimeRangePicker","presetRangeType","_EoTimeRangePicker_brand","_builtInvalidator","_defaultFormat","EoTimeRangePicker","_init_rangeType","_init_extra_rangeType","_init_selectNearDays","_init_extra_selectNearDays","_init_emitChangeOnInit","_init_extra_emitChangeOnInit","_init_presetRanges","_init_extra_presetRanges","unequal","startTimeRequired","endTimeRequired","rangeType","selectNearDays","emitChangeOnInit","presetRanges","EoTimeRangePickerComponent","_EoTimeRangePicker2","rangeRules","dateTime","Today","ThisWeek","ThisMonth","ThisQuarter","RealTimeRangePicker","times","today","initRange","initValue","setStartTime","prevStartTime","setPrevStartTime","setEndTime","prevEndTime","setPrevEndTime","start","end","timeRange","uniqueId","onStartTimeChange","time","onEndTimeChange","presetRangeMap","endOf","ThisYear","presetRange","rangeResult","compliantRanges","difference","needConfirm","pickerValue","dateRange","presets","dates","selectedTime","_dates$","_dates$2","separator","_EoColorPicker","_EoColorPicker_brand","EoColorPicker","_init_defaultValue","_init_extra_defaultValue","_init_allowClear","_init_extra_allowClear","_init_showText","_init_extra_showText","defaultValue","showText","EoColorPickerComponent","setFormat","ColorPicker","parentElement","onFormatChange","outputValue","toHexString","toRgbString","toHsbString","onClear","_EoColorPicker2","___CSS_LOADER_EXPORT___","module","exports","default","weekdays","weekdaysShort","weekdaysMin","months","monthsShort","ordinal","weekStart","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","l","ll","lll","llll","relativeTime","future","past","mm","h","hh","dd","M","MM","yy","meridiem","a","isoWeekYear","$utils","u","r","$u","utc","diff","day","bind","ceil","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","api","update","newObj","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","styleTarget","HTMLIFrameElement","contentDocument","head","getTarget","attributes","styleElement","nonce","needLayer","btoa","unescape","encodeURIComponent","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/9259.43385314.js","mappings":";mdA0BA,MAAM,cAAEA,GAAa,SAAEC,GAAUC,MAAK,UAAEC,KAAWC,EAAAA,EAAAA,oBAE7CC,IAAcC,EAAAA,EAAAA,WAAyC,WACvDC,IAAkBD,EAAAA,EAAAA,WAAmC,gBAAgB,IAAAE,GAAA,IAAAC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAAgB,GAAA,IAAAhB,QAAAiB,GAAA,IAAAjB,QAAAkB,GAAA,IAAAlB,QAAAmB,GAAA,IAAAnB,QAAAoB,GAAA,IAAAC,QAAAC,GAAA,IAAAtB,QAAAuB,GAAA,IAAAvB,QAAAwB,GAAA,IAAAxB,QAAAyB,GAAA,IAAAzB,QAAA0B,GAAA,IAAA1B,QA6C3E,MAAA2B,WAIoBC,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAX,KACtCY,EAAAA,EAAAA,GAAA,KAAAjC,IAAWkC,EAAA,OAAGC,EAAAA,EAAAA,gBAEdF,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,EAAA,QAKAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,EAAA,MAAAC,EAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,EAAA,MAAAC,EAAA,SAMAP,EAAAA,EAAAA,GAAA,KAAA5B,IAAAoC,EAAA,MAAAC,EAAA,SAKAT,EAAAA,EAAAA,GAAA,KAAA3B,IAAAqC,EAAA,MAAAC,EAAA,SAQAX,EAAAA,EAAAA,GAAA,KAAA1B,IAAAsC,EAAA,MAAAC,EAAA,SAQAb,EAAAA,EAAAA,GAAA,KAAAzB,IAAAuC,EAAA,MAAAC,EAAA,SAQAf,EAAAA,EAAAA,GAAA,KAAAxB,IAAAwC,EAAA,MAAAC,EAAA,SAKAjB,EAAAA,EAAAA,GAAA,KAAAvB,IAAAyC,EAAA,MAAAC,EAAA,SAKAnB,EAAAA,EAAAA,GAAA,KAAAtB,IAAA0C,EAAA,MAAAC,EAAA,SAMArB,EAAAA,EAAAA,GAAA,KAAArB,IAAA2C,EAAA,MAAAC,EAAA,SAMAvB,EAAAA,EAAAA,GAAA,KAAApB,IAAA4C,EAAA,MAAAC,EAAA,SAMAzB,EAAAA,EAAAA,GAAA,KAAAnB,IAAA6C,EAAA,MAAAC,EAAA,SAQA3B,EAAAA,EAAAA,GAAA,KAAAlB,IAAA8C,EAAA,MAAAC,EAAA,SAMA7B,EAAAA,EAAAA,GAAA,KAAAjB,IAAA+C,EAAA,MAAAC,EAAA,SAMA/B,EAAAA,EAAAA,GAAA,KAAAhB,IAAAgD,GAAA,MAAAC,GAAA,SAMAjC,EAAAA,EAAAA,GAAA,KAAAf,IAAAiD,GAAA,MAAAC,GAAA,SAMAnC,EAAAA,EAAAA,GAAA,KAAAd,IAAAkD,GAAA,MAAAC,GAAA,SAOArC,EAAAA,EAAAA,GAAA,KAAAb,IAAAmD,GAAA,MAAAC,GAAA,SAAAC,EAAAA,EAAAA,GAAA,0BAAAC,GAAA,MAKqBC,IACnBC,KAAKD,MAAQA,GACbE,EAAAA,EAAAA,GAAAxD,GAAAuD,KAAKE,IAAaC,KAAKJ,EAAM,KAmB/B1C,EAAAA,EAAAA,GAAA,KAAAV,GAAAyD,GAAA,QAOA/C,EAAAA,EAAAA,GAAA,KAAAT,IAAAyD,GAAA,MAAAC,GAAA,SAOAjD,EAAAA,EAAAA,GAAA,KAAAR,IAAA0D,GAAA,MAAAC,GAAA,SAOAnD,EAAAA,EAAAA,GAAA,KAAAP,IAAA2D,GAAA,MAAAC,GAAA,SAOArD,EAAAA,EAAAA,GAAA,KAAAN,IAAA4D,GAAA,MAAAC,GAAA,SAAAf,EAAAA,EAAAA,GAAA,uBAAAgB,GAAA,MAQkBC,KACfC,EAAAA,EAAAA,GAAK3F,GAAL4E,MAAyBgB,QAAUF,EACpC,MAAMG,GAAcC,EAAAA,EAAAA,GAAAzE,GAAAuD,KAAKmB,IAAcC,KAAnBpB,KAAoB,eAClCqB,GAAaH,EAAAA,EAAAA,GAAAzE,GAAAuD,KAAKmB,IAAcC,KAAnBpB,KAAoB,cACjCsB,GAASJ,EAAAA,EAAAA,GAAAzE,GAAAuD,KAAKmB,IAAcC,KAAnBpB,KAAoB,UAC7BuB,GAASL,EAAAA,EAAAA,GAAAzE,GAAAuD,KAAKmB,IAAcC,KAAnBpB,KAAoB,UAEnCiB,SAAAA,EAAaO,iBAAiB,cAAc,KAC1CxB,KAAKyB,eAAiBR,EAAYS,mBAAmBC,OAAS,CAAC,IAEjEN,SAAAA,EAAYG,iBAAiB,cAAc,KACzCxB,KAAK4B,cAAgBP,EAAWK,mBAAmBC,OAAS,CAAC,IAE/DJ,SAAAA,EAAQC,iBAAiB,cAAc,KACrCxB,KAAK6B,UAAYN,EAAOG,mBAAmBC,OAAS,CAAC,IAEvDL,SAAAA,EAAQE,iBAAiB,cAAc,KACrCxB,KAAK8B,UAAYR,EAAOI,mBAAmBC,OAAS,CAAC,GACrD,GACH,SA9LoBI,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAKJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,aAMjBG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAvF,GAAA,kBAAR2G,CAAQH,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,YAKII,GAAO,OAAArB,EAAAA,EAAAA,GAAAtF,GAAA,iBAAP2G,CAAOJ,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,QAQnBK,GAAG,OAAAtB,EAAAA,EAAAA,GAAArF,GAAA,aAAH2G,CAAGL,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,QAQHM,GAAG,OAAAvB,EAAAA,EAAAA,GAAApF,GAAA,aAAH2G,CAAGN,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,YAQHO,GAAO,OAAAxB,EAAAA,EAAAA,GAAAnF,GAAA,iBAAP2G,CAAOP,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,UAKKjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAlF,GAAA,eAALkE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,gBAKLQ,GAAW,OAAAzB,EAAAA,EAAAA,GAAAjF,GAAA,qBAAX0G,CAAWR,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,aAMvBS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAAhF,GAAA,kBAAR0G,CAAQT,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,aAMRU,GAAQ,OAAA3B,EAAAA,EAAAA,GAAA/E,GAAA,kBAAR0G,CAAQV,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,cAMRW,GAAS,OAAA5B,EAAAA,EAAAA,GAAA9E,GAAA,mBAAT0G,CAASX,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,cAQTY,GAAS,OAAA7B,EAAAA,EAAAA,GAAA7E,GAAA,mBAAT0G,CAASZ,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,SAMGa,GAAI,OAAA9B,EAAAA,EAAAA,GAAA5E,GAAA,cAAJ0G,CAAIb,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,SAMJc,GAAI,OAAA/B,EAAAA,EAAAA,GAAA3E,GAAA,cAAJ0G,CAAId,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,cAMhBe,GAAS,OAAAhC,EAAAA,EAAAA,GAAA1E,GAAA,mBAAT0G,CAASf,IAAAC,EAAAA,EAAAA,GAAA5F,GAAA,KAAA2F,EAAA,cAMTgB,GAAS,OAAAjC,EAAAA,EAAAA,GAAAzE,GAAA,mBAAT0G,CAAShB,IAAAC,EAAAA,EAAAA,GAAA3F,GAAA,KAAA0F,EAAA,eAKuBiB,GAAU,OAAAlC,EAAAA,EAAAA,GAAAxE,GAAA,oBAAV0G,CAAUjB,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,CAkBnDkB,UAAAA,GAAa,IAAAC,EACX,OAA+B,QAA/BA,GAAOpC,EAAAA,EAAAA,GAAK3F,GAAL4E,MAAiBgB,eAAO,IAAAmC,OAAA,EAAxBA,EAA0BC,OACnC,CAMAC,SAAAA,GAAY,IAAAC,EACV,OAA+B,QAA/BA,GAAOvC,EAAAA,EAAAA,GAAK3F,GAAL4E,MAAiBgB,eAAO,IAAAsC,OAAA,EAAxBA,EAA0BC,MACnC,CAAC,kBAOQ9B,GAAc,OAAAV,EAAAA,EAAAA,GAAApE,GAAA,wBAAd8E,CAAcO,IAAAC,EAAAA,EAAAA,GAAAtF,GAAA,KAAAqF,EAAA,kBAOdJ,GAAa,OAAAb,EAAAA,EAAAA,GAAAnE,GAAA,uBAAbgF,CAAaI,IAAAC,EAAAA,EAAAA,GAAArF,GAAA,KAAAoF,EAAA,cAObF,GAAS,OAAAf,EAAAA,EAAAA,GAAAlE,GAAA,mBAATiF,CAASE,IAAAC,EAAAA,EAAAA,GAAApF,GAAA,KAAAmF,EAAA,cAOTH,GAAS,OAAAd,EAAAA,EAAAA,GAAAjE,GAAA,mBAAT+E,CAASG,IAAAC,EAAAA,EAAAA,GAAAnF,GAAA,KAAAkF,EAAA,cAQTwB,GAAS,OAAAzC,EAAAA,EAAAA,GAAAhE,GAAA,mBAATyG,CAASxB,IAAAC,EAAAA,EAAAA,GAAAlF,GAAA,KAAAiF,EAAA,CA6BlByB,MAAAA,GACE,OAEEC,IAAAA,cAACC,GAAO,CACNC,YAAa5D,KAAK6D,iBAClBC,WAAY9D,KACZc,IAAKd,KAAK+D,eACVhC,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZC,SAAUnC,KAAKmC,SACfC,QAASpC,KAAKoC,QACdE,IAAKtC,KAAKsC,IACVD,IAAKrC,KAAKqC,IACVE,QAASvC,KAAKuC,QACdyB,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChBC,WAAYlE,KAAKkE,WACjBC,cAAenE,KAAKmE,cACpBpE,MAAOC,KAAKD,MACZyC,YAAaxC,KAAKwC,YAClBC,SAAUzC,KAAKyC,SACf2B,SAAUpE,KAAK0C,SACfC,UAAW3C,KAAK2C,UAChBC,UAAW5C,KAAK4C,UAChBC,KAAM7C,KAAK6C,KACXC,KAAM9C,KAAK8C,KACXC,UAAW/C,KAAK+C,UAChBC,UAAWhD,KAAKgD,UAChBC,WAAYjD,KAAKiD,WACjBoB,QAAQ,oBACRC,cAAetE,KAAKuE,kBACpBf,UAAWxD,KAAKwD,WAGtB,EACD,SAAArC,GAzCgBY,GAA+B,IAAAyC,EAC5C,OAAsB,QAAtBA,EAAOxE,KAAKyE,kBAAU,IAAAD,OAAA,EAAfA,EAAiBE,cACtB,cAAc3C,MAElB,CAqCD4C,EAAA3H,KArCE4H,GAAApH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAM,GAAA2E,GAAA/E,GAAAM,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAvD,GAAAwH,GAAA3J,GAAA4J,KAAAC,EAAAA,EAAAA,GAAAL,EAAA,CA9MFhK,GAAc,WAAY,CACzBsK,WAAY,CAACC,EAAAA,GACbC,MAAO,CAAC,yBACR,EAOCvK,KAAU,WAKVA,KAAU,YAKVA,GAAS,CAAEiI,KAAMuC,UAAU,eAM3BxK,KAAU,cAKVA,GAAS,CACRiI,KAAMwC,SACN,UAMDzK,GAAS,CACRiI,KAAMwC,SACN,UAMDzK,GAAS,CACR0K,WAAW,IACX,cAMD1K,KAAU,YAKVA,KAAU,kBAKVA,GAAS,CAAEiI,KAAMuC,UAAU,eAM3BxK,GAAS,CAAEiI,KAAMuC,UAAU,eAM3BxK,GAAS,CAAEiI,KAAMuC,UAAU,gBAM3BxK,GAAS,CACRiI,KAAMuC,UACN,gBAODxK,KAAU,WAMVA,KAAU,WAKVA,GAAS,CAAEiI,KAAMwC,SAAS,gBAM1BzK,GAAS,CAAEiI,KAAMwC,SAAS,gBAM1BzK,GAAS,CAAE0K,WAAW,IAAQ,iBAO9BzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAAvE,GAAA+I,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAzF,GAAA+I,EAAAvD,IAAA,CAUzBlH,KAAQ,iBAQRA,KAAQ,gBASRF,GAAS,CAAEiI,KAAMuC,UAAU,qBAO3BxK,GAAS,CAAEiI,KAAMuC,UAAU,oBAO3BxK,GAAS,CAAEiI,KAAMuC,UAAU,gBAO3BxK,GAAS,CAAEiI,KAAMuC,UAAU,gBAM3BxK,GAAS,CACR0K,WAAW,IACX,mBAAAE,GAAApK,GAAAqK,KAAAC,EAAAA,EAAAA,GAAAF,KA9KgBvI,EAAAA,IAAmB8H,IA2PhC,MAAMpB,IAAUgC,EAAAA,EAAAA,aAAqC,CAACC,EAAO9E,KAClE,MAAM,YACJ0B,EAAW,UACXG,EAAS,SACTF,EAAQ,SACR2B,EAAQ,UACRxB,EAAS,KACTE,EAAO,SAAQ,KACfD,EAAO,OAAM,UACbG,EAAS,UACTD,EAAS,cACToB,EAAa,cACbG,EAAa,WACbrB,GACE2C,EAEEC,GAAWC,EAAAA,EAAAA,QAAyB,MACpCC,GAAuBD,EAAAA,EAAAA,QAAyB,OAE/C/F,EAAOiG,IAAYC,EAAAA,EAAAA,aACnBC,EAASC,IAAcF,EAAAA,EAAAA,YAExBG,EAAiB1C,IAAAA,aAAmB2C,IACpCA,GAAWzD,GACb0D,QAAQC,UAAUC,MAAK,KACrB,IACEH,EAAQjD,OACV,CAAE,MACA,IAGN,GACC,IAEGqD,GCxWNC,EDwWmC,CAACb,EAAUO,ICtW5BO,EAAAA,EAAAA,UAAQ,IAChB5G,IACN2G,EAAKE,SAAS9F,IACO,mBAARA,EACTA,EAAIf,GACY,MAAPe,IACRA,EAA0CE,QAAUjB,EACvD,GACA,GAEH2G,IAbE,IACLA,GD0WAG,EAAAA,EAAAA,YAAU,KACRb,EAASJ,EAAM7F,MAAM,GACpB,CAAC6F,EAAM7F,SAEV+G,EAAAA,EAAAA,qBAAoBhG,GAAK,KAAM,CAC7BsC,MAAQ2D,IAA2B,IAAAC,EACjB,QAAhBA,EAAAnB,EAAS7E,eAAO,IAAAgG,GAAhBA,EAAkB5D,MAAM2D,EAAQ,EAElCxD,KAAMA,KAAM,IAAA0D,EACM,QAAhBA,EAAApB,EAAS7E,eAAO,IAAAiG,GAAhBA,EAAkB1D,MAAM,MAI5B,MAmBM2D,EAAcA,KAClBlB,EAAS,IACT1B,SAAAA,EAAgB,GAAG,EAsBrB,OACEZ,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CAACC,YAAY,WAAcxB,GACzClC,IAAAA,cAAA,OACE2D,KAAK,gBACLC,UAAWC,IACT,sBACAzE,GAAQ,4BAA4BA,IACpCqB,GAAiB,8BAA8BA,KAEjDqD,MAAOvE,GAEPS,IAAAA,cAAA,QAAM2D,KAAK,eAAeC,UAAU,sBAClC5D,IAAAA,cAAA,QAAM3B,KAAK,iBAEb2B,IAAAA,cAAA,QACE5C,IAAKiF,EACLsB,KAAK,gBACLC,UAAWC,IAAW,sBAAuB,CAC3C,8BAA+BrB,EAC/B,+BAAgCzD,EAChC,+BAAgC2B,IAElCqD,QAjE8B7C,IAA+B,IAAA8C,EACFC,EAAjC,QAAhCD,EAAI3B,EAAqB/E,eAAO,IAAA0G,GAA5BA,EAA8BE,SAAShD,EAAEiD,UAC3B,QAAhBF,EAAA9B,EAAS7E,eAAO,IAAA2G,GAAhBA,EAAkBvE,QACpB,GAgEMM,IAAAA,cAAA,QAAM2D,KAAK,SAASC,UAAU,gBAC5B5D,IAAAA,cAAA,QAAM3B,KAAK,YAEb2B,IAAAA,cAAA,SACE2D,KAAK,QACL7E,YAAaA,EACbQ,UAAWA,EACXD,UAAWA,EACXjC,IAAK2F,EACLa,UAAU,QACVzE,KAAMA,EACNJ,SAAUA,EACV2B,SAAUA,EACVrE,MAAO+H,GAAS/H,GAChBgI,SA3EYnD,IACpBoB,EAASpB,EAAEiD,OAAO9H,OAClBuE,SAAAA,EAAgBM,EAAEiD,OAAO9H,MAAM,EA0EvBiI,QAvEUC,KAClB9B,GAAW,EAAK,EAuER+B,OApESC,KACjBhC,GAAW,EAAM,IAqEXzC,IAAAA,cAAA,QAAM2D,KAAK,SAASC,UAAU,gBA7DjBc,MACnB,IAAKzF,EAAW,OAAO,KAEvB,MAAM0F,EAAS5F,GAAY2B,IAAa0D,GAAS/H,GACjD,OACE2D,IAAAA,cAAC1I,GAAW,CACVsM,UAAWC,IAAW,mBAAoB,CACxC,0BAA2Bc,IAE7BhB,KAAK,aACLiB,IAAI,OACJC,KAAK,eACLC,MAAM,SACNC,YAAc7D,GAAMA,EAAE8D,iBACtBjB,QAASP,GACT,EA+CKkB,GACD1E,IAAAA,cAAA,QAAM3B,KAAK,aAGf2B,IAAAA,cAAA,QAAM2D,KAAK,cAAcC,UAAU,qBACjC5D,IAAAA,cAAA,QAAM3B,KAAK,iBAGC,IAItB,SAAS+F,GAAY/H,GACnB,OAAO4I,EAAAA,EAAAA,OAAM5I,GAAS,GAAK6I,OAAO7I,EACpC,CE9dA,MAaM8I,GAAe,CACnB,iBACA,cACA,cACA,iBACA,cACA,cACA,YACA,eACA,iBACA,iBACA,QACA,cACA,eACA,gBACA,eACA,aACA,aACA,eAEF,IAAIC,sHCvBJ,MAAM5N,IAAkBD,EAAAA,EAAAA,WAAmC,iBAsBnDN,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAE3C,IAAAgO,GAAA,IAAAzN,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAA2N,GAAA,IAAAtM,QAKA,MAAAuM,WAIuBhM,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA4L,KACzC3L,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAKAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAW,GAAA,SAKAjB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8C,GAAA,MAAAC,GAAA,SAKAnB,EAAAA,EAAAA,GAAA,KAAA3B,IAAA+C,GAAA,MAAAC,GAAA,SAQArB,EAAAA,EAAAA,GAAA,KAAA1B,IAAAgD,GAAA,MAAAW,GAAA,SAQAjC,EAAAA,EAAAA,GAAA,KAAAzB,IAAA2D,GAAA,MAAAC,GAAA,SAQAnC,EAAAA,EAAAA,GAAA,KAAAxB,IAAA4D,GAAA,MAAAyJ,GAAA,SAQA7L,EAAAA,EAAAA,GAAA,KAAAvB,IAAAqN,GAAA,MAAAvL,GAAA,SAQAP,EAAAA,EAAAA,GAAA,KAAAtB,IAAA8B,GAAA,MAAAG,GAAA,SAQAX,EAAAA,EAAAA,GAAA,KAAArB,IAAAiC,GAAA,MAAAC,GAAA,SAQAb,EAAAA,EAAAA,GAAA,KAAApB,IAAAkC,GAAA,MAAAC,GAAA,SAQAf,EAAAA,EAAAA,GAAA,KAAAnB,IAAAmC,GAAA,MAAA+K,GAAA,SAOA/L,EAAAA,EAAAA,GAAA,KAAAlB,IAAAkN,GAAA,MAAAC,GAAA,SAAAzJ,EAAAA,EAAAA,GAAA,0BAAA0J,GAAA,MAOqBxJ,IACnBC,KAAKD,MAAQA,GACbE,EAAAA,EAAAA,GAAA+I,GAAAhJ,KAAKwJ,IAAkBrJ,KAAKJ,EAAM,GACnC,SAlGoBgC,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAKJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAKLjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAvF,GAAA,eAALuE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,gBAKLQ,GAAW,OAAAzB,EAAAA,EAAAA,GAAAtF,GAAA,qBAAX+G,CAAWR,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,aAQvBS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAArF,GAAA,kBAAR+G,CAAQT,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,cAQRe,GAAS,OAAAhC,EAAAA,EAAAA,GAAApF,GAAA,mBAAToH,CAASf,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,cAQTgB,GAAS,OAAAjC,EAAAA,EAAAA,GAAAnF,GAAA,mBAAToH,CAAShB,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,aAQTyH,GAAQ,OAAA1I,EAAAA,EAAAA,GAAAlF,GAAA,kBAAR4N,CAAQzH,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,aAQRG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAjF,GAAA,kBAARqG,CAAQH,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,QAQRK,GAAG,OAAAtB,EAAAA,EAAAA,GAAAhF,GAAA,aAAHsG,CAAGL,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,QAQHM,GAAG,OAAAvB,EAAAA,EAAAA,GAAA/E,GAAA,aAAHsG,CAAGN,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,YAQHO,GAAO,OAAAxB,EAAAA,EAAAA,GAAA9E,GAAA,iBAAPsG,CAAOP,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,kBAKyB0H,GAAa,OAAA3I,EAAAA,EAAAA,GAAA7E,GAAA,uBAAbwN,CAAa1H,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,CAgBtDyB,MAAAA,GACE,OACEC,IAAAA,cAACiG,GAAiB,CAChB7F,WAAY9D,KACZ4D,YAAa5D,KAAK6D,iBAClB9B,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZnC,MAAOC,KAAKD,MACZoC,SAAUnC,KAAKmC,SACfK,YAAaxC,KAAKwC,YAClBC,SAAUzC,KAAKyC,SACfM,UAAW/C,KAAK+C,UAChBC,UAAWhD,KAAKgD,UAChByG,SAAUzJ,KAAKyJ,SACfzF,UAAWhE,KAAKgE,UAChBE,WAAYlE,KAAKkE,WACjBD,UAAWjE,KAAKiE,UAChByF,cAAe1J,KAAK0J,cACpBvF,cAAenE,KAAKmE,cACpB9B,IAAKrC,KAAKqC,IACVC,IAAKtC,KAAKsC,IACVC,QAASvC,KAAKuC,QACd8B,QAAQ,oBACRC,cAAetE,KAAKuE,mBAG1B,EAGK,SAASoF,GAAkB/D,GAChC,MAAM,KACJ7D,EAAI,YACJS,EAAW,SACXC,EAAQ,cACRiH,EAAa,UACb3G,EAAS,UACTC,EAAS,SACTyG,EAAQ,cACRtF,EAAa,cACbG,GACEsB,GACG7F,EAAOiG,IAAYC,EAAAA,EAAAA,UAASL,EAAM7F,OAAS,KAC3C6J,EAAeC,IAAoB5D,EAAAA,EAAAA,YACpC6D,GAAchE,EAAAA,EAAAA,QAA4B,OAEzCiE,EAASC,GAAWtG,IAAAA,SAAc,IACnC+F,GAAgC,iBAAbA,EACd,CAACA,EAASM,QAASN,EAASO,SAG9B,IACN,CAACP,IAEEQ,GAAcC,EAAAA,EAAAA,cAAY,KAC9B,MAAMC,EAAkBL,EAAY9I,QACpC,GAAImJ,GAAmBV,EAAU,CAC/B,MAAMW,EDxKG,SACbC,GAGqB,IAFrBN,EAAsB5M,UAAAwE,OAAA,QAAA2I,IAAAnN,UAAA,GAAAA,UAAA,GAAG,KACzB6M,EAAsB7M,UAAAwE,OAAA,QAAA2I,IAAAnN,UAAA,GAAAA,UAAA,GAAG,KAEpB2L,KACHA,GAAiByB,SAASC,cAAc,YACxC1B,GAAe2B,aAAa,YAAa,MACzC3B,GAAe2B,aAAa,cAAe,QAC3CF,SAASG,KAAKC,YAAY7B,KAG5B,MAAM8B,EAAkBC,OAAOC,iBAAiBT,GAC1CU,EAAclC,GAAamC,KAC9BjJ,GAAS,GAAGA,KAAQ6I,EAAgBK,iBAAiBlJ,OACtDmJ,KAAK,KASP,IAAIC,EACAC,EACAC,EARJvC,GAAe2B,aACb,QACA,GAAGM,ySAELjC,GAAe/I,MAAQsK,EAAWtK,OAASsK,EAAW7H,aAAe,GAQrE,IAAI8I,EAASxC,GAAeyC,aAFT,EAInB,GAAgB,OAAZxB,GAAgC,OAAZC,EAAkB,CAExClB,GAAe/I,MAAQ,IACvB,MAAMyL,EAAkB1C,GAAeyC,aANrB,EAOF,OAAZxB,IACFoB,EAAYK,EAAkBzB,EARd,EADD,EAUfuB,EAASG,KAAKpJ,IAAI8I,EAAWG,IAEf,OAAZtB,IACFoB,EAAYI,EAAkBxB,EAZd,EADD,EAcfqB,EAAYC,EAASF,EAAY,GAAK,SACtCE,EAASG,KAAKnJ,IAAI8I,EAAWE,GAEjC,CAEA,MAAM9D,EAA6B,CACjC8D,SACAD,YACAK,OAAQ,QAUV,OAPIP,IACF3D,EAAM2D,UAAYA,GAEhBC,IACF5D,EAAM4D,UAAYA,GAGb5D,CACT,CC2G6BmE,CACrBxB,EACAJ,EACAC,GAGFH,EAAiBO,EACnB,IACC,CAACX,EAAUO,EAASD,IAkBvB,OARAlD,EAAAA,EAAAA,YAAU,KACRb,EAASJ,EAAM7F,OAAS,GAAG,GAC1B,CAAC6F,EAAM7F,SAEV8G,EAAAA,EAAAA,YAAU,KACRoD,GAAa,GACZ,CAACD,EAASD,EAASE,IAGpBvG,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CAACC,YAAY,WAAcxB,GACzClC,IAAAA,cAAA,YACE5C,IAAKgJ,EACLxC,UAAWC,IAAW,CACpBqE,MAAyB,UAAlBzH,IAETpC,KAAMA,EACNhC,MAAOA,EACP0C,SAAUA,EACV+E,MAAO,CACLqE,QAAS,QACTP,OAAQ,MACL5B,KACAE,GAELpH,YAAaA,EACbO,UAAWA,EACXC,UAAWA,EACX+E,SAlCJnD,IAEAoB,EAASpB,EAAEiD,OAAO9H,OAClBuE,EAAcM,EAAEiD,OAAO9H,OACvBkK,GAAa,IAkCjB,CA9EC6B,GAAA7C,KAAArE,GAAApH,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAC,GAAAC,GAAAyJ,GAAAC,GAAAvL,GAAAC,GAAAG,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA+K,GAAAC,GAAAC,GAAAE,GAAAuC,GAAAxC,IAAAzE,GAAAiE,GAAAhE,MAAAC,EAAAA,EAAAA,GAAA8G,GAAA,CAvIAnR,GAAc,cAAe,CAC5BsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,4BACR,EAKCvK,KAAU,WAKVA,KAAU,YAKVA,KAAU,YAKVA,KAAU,kBAKVA,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,GAAS,CACRiI,KAAMwC,SACN,gBAMDzK,GAAS,CACRiI,KAAMwC,SACN,gBAMDzK,GAAS,CACR0K,WAAW,IACX,eAMD1K,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,GAAS,CACRiI,KAAMwC,SACN,UAMDzK,GAAS,CACRiI,KAAMwC,SACN,UAMDzK,GAAS,CACR0K,WAAW,IACX,cAMD1K,GAAS,CAAE0K,WAAW,IAAQ,oBAQ9BzK,GAAM,CAAEgI,KAAM,WAAW,qBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA5E,GAAAoJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAA9F,GAAAoJ,EAAAvD,KAAA,GAAAwD,GAAAwD,GAAAvD,KAAAC,EAAAA,EAAAA,GAAAF,KAhGLvI,EAAAA,IAAmB8H,KC3CV,IAAAiH,GAAA,IAAA3Q,QAAA4Q,GAAA,IAAA5Q,QAEzB,MAAM6Q,GAAOhP,WAAAA,IAClBG,EAAAA,EAAAA,GAAA,KAAA2O,GAA+D,CAAC,IAChE3O,EAAAA,EAAAA,GAAA,KAAA4O,GAAU,EAAE,CAEZE,OAAAA,CAAQC,EAAe1B,GACrB,KAAK3J,EAAAA,EAAAA,GAAKiL,GAALhM,MAAaoM,GAChB,OAEF,MAAMC,GAActL,EAAAA,EAAAA,GAAKiL,GAALhM,MAAaoM,GACjC,IAAIE,EAAMD,EAAcA,EAAY1K,OAAS,EAC7C,KAAO2K,KACLD,EAAYC,GAAKC,KAAKH,EAAO1B,EAEjC,CAEA8B,SAAAA,CAAUJ,EAAeK,GAAkD,IAAAC,GACpE3L,EAAAA,EAAAA,GAAKiL,GAALhM,MAAaoM,MAChBrL,EAAAA,EAAAA,GAAKiL,GAALhM,MAAaoM,GAAS,IAExB,MAAMO,GAAW1K,EAAAA,EAAAA,GAAKgK,GAALjM,MAAI0M,GAAJ3L,EAAAA,EAAAA,GAAKkL,GAALjM,QAAY0M,IAAEE,WAK/B,OAJA7L,EAAAA,EAAAA,GAAKiL,GAALhM,MAAaoM,GAAOS,KAAK,CACvBF,MAAOA,EACPJ,KAAME,IAEDE,CACT,CAEAG,WAAAA,CAAYH,GACV,IAAK,MAAMI,KAAKhM,EAAAA,EAAAA,GAAKiL,GAALhM,OACVe,EAAAA,EAAAA,GAAKiL,GAALhM,MAAa+M,KACfC,EAAAA,EAAAA,SAAOjM,EAAAA,EAAAA,GAAKiL,GAALhM,MAAa+M,IAAKE,GAASA,EAAKN,QAAUA,GAGvD,ECIF,IAAIO,GAAM,EAEV,MAAMC,GAGJjQ,WAAAA,CAAY6E,EAAcqL,IAAqBvN,EAAAA,EAAAA,GAAA,sBAAAA,EAAAA,EAAAA,GAAA,sBAC7CG,KAAKqN,MAAQtL,EACb/B,KAAKoN,OAASA,CAChB,EACD,OAAAE,GAAA,IAAAjS,QAAAkS,GAAA,IAAAlS,QAAAmS,GAAA,IAAAnS,QAAAoS,GAAA,IAAApS,QAAAqS,GAAA,IAAAhR,QAEM,MAAMiR,WAAkBzB,GAG7B,kBAAO0B,CAAY7G,GAMjB,OALK/G,KAAK6N,SAASC,IAAIZ,MACrBlN,KAAKkN,IAAMA,GACXlN,KAAK6N,SAASE,IAAI/N,KAAKkN,IAAK,IAAIS,GAAU5G,IAC1CmG,IAAO,GAEFlN,KAAK6N,SAASC,IAAI9N,KAAKkN,IAChC,CAOAhQ,WAAAA,CAAY6J,GACViH,SAAQ5Q,EAAAA,EAAAA,GAAA,KAAAsQ,KANVrQ,EAAAA,EAAAA,GAAA,KAAAiQ,GAA8B,IAAIW,MAClC5Q,EAAAA,EAAAA,GAAA,KAAAkQ,QAAQ,IACRlQ,EAAAA,EAAAA,GAAA,KAAAmQ,QAAS,IACTnQ,EAAAA,EAAAA,GAAA,KAAAoQ,QAAS,IAIPxL,EAAAA,EAAAA,GAAKuL,GAALxN,KAAiB,CAAC,IAClBiC,EAAAA,EAAAA,GAAKsL,GAALvN,KAAgB+G,EAClB,CAEAmH,QAAAA,CAASnM,EAAcqL,IACrBrM,EAAAA,EAAAA,GAAKuM,GAALtN,MAAa+N,IAAIhM,EAAM,IAAIoL,GAAMpL,EAAMqL,GACzC,CAOAe,YAAAA,GACE,MAAMC,GAAYlN,EAAAA,EAAAA,GAAAwM,GAAA1N,KAAKqO,IAAajN,KAAlBpB,MAWlB,OAViBsO,OAAOC,YACtBD,OAAOE,SAAQzN,EAAAA,EAAAA,GAAKyM,GAALxN,OACZgL,KAAIyD,IAAY,IAAVC,EAAG1M,GAAEyM,EACV,OAAIL,EAAUO,SAASD,GACd,CAACA,EAAG1M,GAEN,EAAE,IAEV4M,QAAQ3B,GAASA,EAAKtL,SAG7B,CAEAkN,YAAAA,CAAaC,GAA4D,IAA3BC,IAAkB5R,UAAAwE,OAAA,QAAA2I,IAAAnN,UAAA,KAAAA,UAAA,IAC9D8E,EAAAA,EAAAA,GAAKwL,GAALzN,KAAiB8O,GACjB9O,KAAKgP,eAAeF,EAAQC,EAC9B,CAEAE,wBAAAA,CAAyBlN,GAAc,IAAAoB,EACrC,MAAMpD,EAAsB,QAAjBoD,GAAGpC,EAAAA,EAAAA,GAAK0M,GAALzN,aAAc,IAAAmD,OAAA,EAAdA,EAAiBpB,IAC1B4G,EAAAA,EAAAA,OAAM5I,MACTgB,EAAAA,EAAAA,GAAKyM,GAALxN,MAAe+B,GAAQhC,EACvBC,KAAKmM,QAAQ,GAAGpK,eAAmBhC,GAEvC,CAEAiP,cAAAA,CAAeF,GAA4D,IAA3BC,IAAkB5R,UAAAwE,OAAA,QAAA2I,IAAAnN,UAAA,KAAAA,UAAA,GAChE,MAAM+R,EAAuC,KACxCnO,EAAAA,EAAAA,GAAKyM,GAALxN,OASmB,IAAAsD,EAAA6L,EAPxBb,OAAOE,QAAQM,GAAQlI,SAAQwI,IAAY,IAAVV,EAAG1M,GAAEoN,EACpCF,EAAYR,GAAK1M,GACjBjB,EAAAA,EAAAA,GAAK0M,GAALzN,SAAmBe,EAAAA,EAAAA,GAAK0M,GAALzN,MAAe0O,GAAK1M,GACvChC,KAAKmM,QAAQ,GAAGuC,eAAgB1M,EAAE,KAEpCC,EAAAA,EAAAA,GAAKuL,GAALxN,KAAiBkP,GAEbH,IACW,QAAbzL,GAAAvC,EAAAA,EAAAA,GAAKwM,GAALvN,aAAa,IAAAsD,GAAiB,QAAjB6L,EAAb7L,EAAe+L,uBAAe,IAAAF,GAA9BA,EAAA/N,KAAAkC,EAAiC,CAC/BgM,cAAeR,EACfS,UAAWvP,KAAKmO,iBAGtB,CAEAqB,WAAAA,CAAYzN,GACNA,UACKhB,EAAAA,EAAAA,GAAKyM,GAALxN,MAAe+B,GACtB/B,KAAKmM,QAAQ,GAAGpK,iBAAqB,SAErCE,EAAAA,EAAAA,GAAKuL,GAALxN,KAAiB,CAAC,GAClBA,KAAKmM,QAAQ,eAAgB,OAE/BnM,KAAKyP,oBACP,CAEAC,cAAAA,CAAe3N,GACb,OAAIA,GACKhB,EAAAA,EAAAA,GAAKyM,GAALxN,MAAe+B,GAEjB/B,KAAKmO,cACd,CAEAwB,WAAAA,CAAY5N,IACVhB,EAAAA,EAAAA,GAAKuM,GAALtN,MAAa4P,OAAO7N,EACtB,CAEA8N,cAAAA,CACEC,GAEA,MAAM1B,GAAYlN,EAAAA,EAAAA,GAAAwM,GAAA1N,KAAKqO,IAAajN,KAAlBpB,MACZ+P,EAA0C,GAQhD,GAPA3B,EAAUxH,SAAS7E,IACjB,MAAMsL,GAAQtM,EAAAA,EAAAA,GAAKuM,GAALtN,MAAa8N,IAAI/L,GAC3BsL,GACF0C,EAAQlD,KAAK7M,KAAKgQ,cAAc3C,EAAMD,QACxC,IAGE2C,EAAQE,MAAMC,GAA4B,YAAjBA,aAAM,EAANA,EAAQrN,QAKnC,OAJAiN,GACE,EACAC,EAAQnB,QAAQsB,GAA4B,YAAjBA,aAAM,EAANA,EAAQrN,UAE9B,EACF,CACL,MAAMsN,EAAWnQ,KAAKmO,eAEtB,OADA2B,GAAS,EAAOK,GACTA,CACT,CACF,CAEAH,aAAAA,CAAc3C,GAA6B,IAAA+C,EACzC,MAAMC,EACa,iBAAVhD,EAA4C,QAA1B+C,GAAGrP,EAAAA,EAAAA,GAAKuM,GAALtN,MAAa8N,IAAIT,UAAM,IAAA+C,OAAA,EAAvBA,EAAyBhD,OAASC,EAChE,IAAKgD,EAAa,OAClB,MAAM,KAAEtO,EAAI,MAAEG,EAAK,SAAEoO,GAAaD,EAC5BE,GAAgBxP,EAAAA,EAAAA,GAAKyM,GAALxN,MAAe+B,GAE/ByO,EAAc,SAACjO,GACnB,MAAO,CACLM,KAFsC1F,UAAAwE,OAAA,QAAA2I,IAAAnN,UAAA,GAAAA,UAAA,GAAG,QAGzCoF,UAEJ,EAEMkO,EAAUA,IAAMvO,GAASH,EAwDzBmO,EAtDQQ,EAACJ,EAAoBvQ,KACjC,MAAM,SAAEoC,EAAQ,QAAEC,EAAO,QAAEG,EAAO,IAAED,EAAG,IAAED,EAAG,UAAEmB,GAAc8M,EACtDpO,EAAQuO,IAEd,GACEtO,IACkB,iBAAVpC,GACJ4Q,EAAAA,EAAAA,SAAQ5Q,GACRA,SAEJ,OAAOyQ,GAAYjO,aAAO,EAAPA,EAASJ,WAAY,GAAGD,SAG7C,GAAIE,GAAWrC,IACD,IAAI6Q,OAAOxO,GACdyO,KAAK9Q,GACZ,OAAOyQ,GACLjO,aAAO,EAAPA,EAASH,UAAW,GAAGF,WAAeE,KAK5C,GAAIE,KAASvC,GAASA,EAAM4B,OAASW,GACnC,OAAOkO,GAAYjO,aAAO,EAAPA,EAASD,MAAO,GAAGJ,SAAaI,SAGrD,GAAID,GAAOtC,GAASA,EAAM4B,OAASU,EACjC,OAAOmO,GAAYjO,aAAO,EAAPA,EAASF,MAAO,GAAGH,SAAaG,SAGrD,GAAImB,EAAW,CACb,IAAI0M,EAAS,GACTY,EAAkB,GAClBC,MAAMC,QAAQxN,GAChBsN,EAAkBtN,EAElBsN,EAAgBjE,KAAKrJ,GAGvB,IAAK,MAAMxB,KAAK8O,EAGd,GAFAZ,EAASlO,EAAEjC,GAEPmQ,EACF,MAGJ,MAAyB,iBAAXA,EACVM,EAAYN,EAAQA,EAAS,QAAU,UACtCA,CACP,CAEA,OAAOM,EAAY,GAAI,SAAS,EAGnBE,CAAMJ,EAAUC,GAE/B,OADAvQ,KAAKmM,QAAQ,GAAGpK,aAAiBmO,GAC1BA,CACT,CAEAe,iBAAAA,CAAkBrM,GAChB,IAAKA,IAAMA,EAAEiD,OACX,OAAOjD,EAET,MAAMiD,EAASjD,EAAEiD,OACjB,MAAuB,aAAhBA,EAAOhF,KAAsBgF,EAAOqJ,QAAUrJ,EAAO9H,KAC9D,CAEA0P,kBAAAA,GACEzP,KAAKmM,QAAQ,iBAAkB,KACjC,CAEAgF,OAAAA,CACEpP,EACAlH,EACAiV,EACA/I,GAEA,MAAMsG,GAAQtM,EAAAA,EAAAA,GAAKuM,GAALtN,MAAa8N,IAAI/L,GAE/B,GAAIsL,EAAO,CACT,MAAMtN,EAAQC,KAAKiR,kBAAkBpW,GAE/BuW,EAAYL,MAAMC,QAAQjR,GAASA,EAAM,GAAKA,EAEpDC,KAAKgP,eAAe,CAClB,CAACjN,GAAOqP,MAGNrK,aAAO,EAAPA,EAASsK,eAAgB,IAC3BrR,KAAKgQ,cAAc3C,EAAMD,QAE3B0C,SAAAA,EAAUwB,MAAMtR,KAAMD,EACxB,CACF,CAEAgI,QAAAA,CACEhG,EACAhC,EACA+P,EACA/I,GAEA,MAAMsG,GAAQtM,EAAAA,EAAAA,GAAKuM,GAALtN,MAAa8N,IAAI/L,GAE3BsL,IACFrN,KAAKgP,eAAe,CAClB,CAACjN,GAAOhC,MAGNgH,aAAO,EAAPA,EAASsK,eAAgB,IAC3BrR,KAAKgQ,cAAc3C,EAAMD,QAE3B0C,SAAAA,EAAW/P,GAEf,EACD,SAAAsO,KArOG,MAAO,KAAItN,EAAAA,EAAAA,GAAKuM,GAALtN,MAAauR,QAAQ3C,QAAQ4C,IAAQ,IAAAC,EAC9C,QAAqC,QAA9BA,GAAC1Q,EAAAA,EAAAA,GAAKuM,GAALtN,MAAa8N,IAAI0D,GAAMpE,cAAM,IAAAqE,GAA7BA,EAA+BzN,UAAS,GAEpD,8EAACnE,EAAAA,EAAAA,GA9BU8N,GAAS,eAAA9N,EAAAA,EAAAA,GAAT8N,GAAS,WAEsB,IAAIM,KCzChD,MAAQtT,cAAa,GAAEC,SAAQ,GAAEC,MAAK,GAAEC,OAAMA,KAAKC,EAAAA,EAAAA,oBAAmB,IAAA2W,GAAA,IAAAC,GAAA,IAAAtW,QAAAuW,GAAA,IAAAlV,QAAApB,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QA0BtE,MAAAwW,WAGmBC,EAAAA,iBAKjB5U,WAAAA,GACE8Q,SAAO5Q,EAAAA,EAAAA,GAAA,KAAAwU,KAAA/R,EAAAA,EAAAA,GAAA,sBAAAvC,GAAA,QAAAD,EAAAA,EAAAA,GAAA,KAJTsU,QAAO,IAAA9R,EAAAA,EAAAA,GAAA,gCACmB,IAAIxC,EAAAA,EAAAA,GAAA,KAAA/B,GAAAyW,GAAA,KA8BQ,cAAU1U,EAAAA,EAAAA,GAAA,KAAA9B,IAAAyW,GAAA,MAAA5S,GAAA,SAAA/B,EAAAA,EAAAA,GAAA,KAAA7B,IAAA6D,GAAA,MAAA4S,GAAA,KAalB,CAC5BC,GAAI,CACFC,KAAM,IAERC,GAAI,CACFD,KAAM,IAERE,GAAI,CACFF,KAAM,GAERG,GAAI,CACFH,KAAM,GAERI,IAAK,CACHJ,KAAM,QAET9U,EAAAA,EAAAA,GAAA,KAAA5B,IAAA+W,GAAA,MAAAC,GAAA,KAQ+B,CAC9BP,GAAI,CACFC,KAAM,IAERC,GAAI,CACFD,KAAM,IAERE,GAAI,CACFF,KAAM,IAERG,GAAI,CACFH,KAAM,IAERI,IAAK,CACHJ,KAAM,SAET9U,EAAAA,EAAAA,GAAA,KAAA3B,IAAAgX,GAAA,MAAAC,GAAA,SAAA9S,EAAAA,EAAAA,GAAA,2BAAA+S,GAAA,MASqB9D,KACpB7O,EAAAA,EAAAA,GAAA2R,GAAA5R,KAAK6S,IAAmB1S,KAAK2O,EAAO,KACrCzR,EAAAA,EAAAA,GAAA,KAAA1B,GAAAmX,GAAA,QAAAzV,EAAAA,EAAAA,GAAA,KAAAzB,IAAAmX,GAAA,MAAAC,GAAA,SAAA3V,EAAAA,EAAAA,GAAA,KAAAxB,IAAAoX,GAAA,MAAAC,GAAA,QAAAC,GAAA,MA1FCnT,KAAKoT,UAAYzF,GAAUC,YAAY,CACrCyB,gBAAiBrP,KAAKqT,oBAE1B,CAEA,iBAAIC,GACF,OAAO,CACT,CAEA,UAAIxE,CAAO/O,IACTkC,EAAAA,EAAAA,GAAK0P,GAAL3R,KAAeD,IAEfmB,EAAAA,EAAAA,GAAA0Q,GAAA5R,KAAKuT,IAAanS,KAAlBpB,KAAmBD,EACrB,CACA,UAAI+O,GACF,OAAO/N,EAAAA,EAAAA,GAAK4Q,GAAL3R,KACT,CAYA,UAFqBwT,GAAM,OAAAzS,EAAAA,EAAAA,GAAAzF,GAAA,gBAANkY,CAAMxR,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,CAO3B,QAFqBc,GAAI,OAAA/B,EAAAA,EAAAA,GAAAxF,GAAA,cAAJuH,CAAId,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,CA0BzB,YAlBSyR,GAAQ,OAAA1S,EAAAA,EAAAA,GAAAvF,GAAA,kBAARiY,CAAQzR,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,CA0CjB,cAlBS0R,GAAU,OAAA3S,EAAAA,EAAAA,GAAAtF,GAAA,oBAAViY,CAAU1R,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,CA8CnBsO,QAAAA,GACE,OAAOtQ,KAAKoT,UAAUvD,gBAAe,CAAC8D,EAAK7E,KACrC6E,GACF1T,EAAAA,EAAAA,GAAA2R,GAAA5R,KAAK4T,IAAYzT,KAAK2O,IAEtB7O,EAAAA,EAAAA,GAAA2R,GAAA5R,KAAK6T,IAAc1T,KAAK2O,EAC1B,GAEJ,CAMAD,YAAAA,CACEC,EACA/H,GAEIA,GACFA,EAAQ+M,gBACNC,gBAAe,KACb/T,KAAK8O,OAASA,CAAM,IAExB/H,EAAQiN,gBACNC,YAAW,KACTjU,KAAK8O,OAASA,CAAM,KAGxB9O,KAAK8O,OAASA,CAElB,CAMAU,WAAAA,CAAYzN,GACV/B,KAAKoT,UAAU5D,YAA4B,iBAATzN,EAAoBA,OAAOuI,EAC/D,CAMAoF,cAAAA,CAAe3N,GACb,OAAO/B,KAAKoT,UAAU1D,eACJ,iBAAT3N,EAAoBA,OAAOuI,EAEtC,CAOA,aAFS4J,GAAS,OAAAnT,EAAAA,EAAAA,GAAAlF,GAAA,mBAATqY,CAASlS,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,CAMlBgO,aAAAA,CAAcjO,GACZ/B,KAAKoT,UAAUpD,cAAcjO,EAC/B,CAMA0N,kBAAAA,GACEzP,KAAKoT,UAAU3D,oBACjB,CAEAhM,MAAAA,GACE,OACEC,IAAAA,cAACyQ,GAAa,CACZX,OAAQxT,KAAKwT,OACb1Q,KAAM9C,KAAK8C,KACX2Q,SAAUzT,KAAKyT,SACfC,WAAY1T,KAAK0T,WACjBQ,UAAWlU,KAAKkU,WAGtB,EACD,SAAAX,GA7KezE,GACZ9O,KAAKoT,UAAUvE,aAAaC,EAAQ9O,KAAKoU,wBAC3C,CAsLK,SAASD,GAAa1F,GAGN,IAHO,OAC5B+E,EAAS,WAAU,UACnBU,GACmBzF,EACnB,MAAM4F,GAAgB1N,EAAAA,EAAAA,UAAQ,KAC5B,OAAQ6M,GACN,IAAK,WACL,IAAK,aACH,MAAO,CACL3H,QAAS,OACTyI,cAAe,UAGnB,IAAK,SACH,MAAO,CACLzI,QAAS,OACT0I,IAAK,IAGT,QACE,MAAO,CAAC,EACZ,GACC,CAACf,IAEJ,OACE9P,IAAAA,cAAA,YACEA,IAAAA,cAAA,QACE8D,MAAO,IACF6M,KACCH,GAAwB,CAAC,KAKvC,CA7CCM,GAAA3C,KA3KEjN,GAAAmN,GAAAC,GAAA5S,GAAAC,GAAA4S,GAAAO,GAAAC,GAAAC,GAAAC,GAAAE,GAAA4B,GAAA7B,GAAAE,GAAAe,GAAAa,GAAA3B,GAAAC,GAAAY,GAAAe,GAAA1B,GAAAC,GAAAC,GAAA7V,IAAAwH,GAAA4M,GAAA3M,MAAAC,EAAAA,EAAAA,GAAAwP,GAAA,CA9BF7Z,GAAc,UAAW,CACxBwK,MAAO,CAAC,wBACR,EAkCCvK,KAAU,aAKVA,KAAU,WAKVA,GAAS,CACR0K,WAAW,IACX,eAsBD1K,GAAS,CACR0K,WAAW,IACX,iBAuBDzK,GAAM,CAAEgI,KAAM,kBAAkB,sBAAA0C,IAAAxE,EAAAA,EAAAA,GAAArF,GAAA6J,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAvG,GAAA6J,EAAAvD,IAAA,CAUhCnH,GAAM,CAAEgI,KAAM,qBAAqB,iBAAA0C,IAAAxE,EAAAA,EAAAA,GAAApF,GAAA4J,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAtG,GAAA4J,EAAAvD,IAAA,CAMnCnH,GAAM,CAAEgI,KAAM,mBAAmB,eAAA0C,IAAAxE,EAAAA,EAAAA,GAAAnF,GAAA2J,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAArG,GAAA2J,EAAAvD,IAAA,CAOjClH,KAAQ,eAcRA,KAAQ,mBAsBRA,KAAQ,kBAQRA,KAAQ,qBAORF,GAAS,CACR0K,WAAW,IACX,gBAMDxK,KAAQ,oBAQRA,KAAQ,4BAAA0K,GAAAmM,GAAAlM,KAAAC,EAAAA,EAAAA,GAAAF,KAtLQsM,EAAAA,mBAAgB/M,0JCanC,MAAQpK,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAEpC,IAAA6Z,GAAA,IAAAtZ,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAAgB,GAAA,IAAAhB,QAAAiB,GAAA,IAAAjB,QAOA,MAAAwZ,WAIuB5X,EAAAA,EAA6CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAA/B,GAAAwZ,GAAA,QAAAzX,EAAAA,EAAAA,GAAA,KAAA9B,IAAAwZ,GAAA,MAAAC,GAAA,SAWlE3X,EAAAA,EAAAA,GAAA,KAAA7B,IAAAyZ,GAAA,MAAAzX,GAAA,SAAAH,EAAAA,EAAAA,GAAA,KAAA5B,IAAAgC,GAAA,MAAAC,GAAA,SAAAL,EAAAA,EAAAA,GAAA,KAAA3B,IAAAiC,GAAA,MAAAG,GAAA,SAAAT,EAAAA,EAAAA,GAAA,KAAA1B,IAAAoC,GAAA,MAAAK,GAAA,SAAAf,EAAAA,EAAAA,GAAA,KAAAzB,IAAAyC,GAAA,MAAAL,GAAA,SAAAX,EAAAA,EAAAA,GAAA,KAAAxB,IAAAoC,GAAA,MAAAC,GAAA,SAwBAb,EAAAA,EAAAA,GAAA,KAAAvB,IAAAqC,GAAA,MAAAP,GAAA,SASAP,EAAAA,EAAAA,GAAA,KAAAtB,IAAA8B,GAAA,MAAAS,GAAA,SAAAjB,EAAAA,EAAAA,GAAA,KAAArB,IAAAuC,GAAA,MAAA2W,GAAA,SAAA7X,EAAAA,EAAAA,GAAA,KAAApB,IAAAkZ,GAAA,MAAApD,GAAA,SAAA1U,EAAAA,EAAAA,GAAA,KAAAnB,IAAA8V,GAAA,MAAA5S,GAAA,SAWA/B,EAAAA,EAAAA,GAAA,KAAAlB,IAAAkD,GAAA,MAAA+V,GAAA,MAQgB,MAEhB/X,EAAAA,EAAAA,GAAA,KAAAjB,IAAAiZ,GAAA,MAAAC,GAAA,SAMAjY,EAAAA,EAAAA,GAAA,KAAAhB,IAAAkZ,GAAA,MAAA3U,GAAA,SAQAvD,EAAAA,EAAAA,GAAA,KAAAf,IAAAuE,GAAA,MAAA2U,GAAA,QAAAC,GAAA,qBA3ES7R,GAAW,OAAA7C,EAAAA,EAAAA,GAAAzF,GAAA,qBAAXsI,CAAW5B,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,eAKX8B,GAAU,OAAA/C,EAAAA,EAAAA,GAAAxF,GAAA,oBAAVuI,CAAU9B,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,SAKED,GAAI,OAAAhB,EAAAA,EAAAA,GAAAvF,GAAA,cAAJuG,CAAIC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,UAEJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAtF,GAAA,eAALyG,CAAKF,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,YAELI,GAAO,OAAArB,EAAAA,EAAAA,GAAArF,GAAA,iBAAP0G,CAAOJ,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,YAKnBO,GAAO,OAAAxB,EAAAA,EAAAA,GAAApF,GAAA,iBAAP4G,CAAOP,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,QAKPK,GAAG,OAAAtB,EAAAA,EAAAA,GAAAnF,GAAA,aAAHyG,CAAGL,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,QAKHM,GAAG,OAAAvB,EAAAA,EAAAA,GAAAlF,GAAA,aAAHyG,CAAGN,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,aASHG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAjF,GAAA,kBAARqG,CAAQH,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,UAKIjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAhF,GAAA,eAALgE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,mBAEL0T,GAAc,OAAA3U,EAAAA,EAAAA,GAAA/E,GAAA,wBAAd0Z,CAAc1T,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,WAEdwR,GAAM,OAAAzS,EAAAA,EAAAA,GAAA9E,GAAA,gBAANuX,CAAMxR,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,SAENc,GAAI,OAAA/B,EAAAA,EAAAA,GAAA7E,GAAA,cAAJ4G,CAAId,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,SAUhB2T,GAAI,OAAA5U,EAAAA,EAAAA,GAAA5E,GAAA,cAAJwZ,CAAI3T,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,YAMJqC,GAAO,OAAAtD,EAAAA,EAAAA,GAAA3E,GAAA,iBAAPiI,CAAOrC,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,cAQPwB,GAAS,OAAAzC,EAAAA,EAAAA,GAAA1E,GAAA,mBAATmH,CAASxB,IAAAC,EAAAA,EAAAA,GAAA5F,GAAA,KAAA2F,EAAA,iBAQTqP,GAAY,OAAAtQ,EAAAA,EAAAA,GAAAzE,GAAA,sBAAZ+U,CAAYrP,IAAAC,EAAAA,EAAAA,GAAA3F,GAAA,KAAA0F,EAAA,CAErB4T,oBAAAA,GAA6B,IAAAC,EAC3B,MAAM9T,EAAO/B,KAAK+B,KACZ+T,EAA+B,QAAnBD,EAAG7V,KAAK4D,mBAAW,IAAAiS,OAAA,EAAhBA,EAAkBzC,UACnC0C,GAAgB/T,IAClB+T,EAAanG,YAAY5N,GACzB+T,EAAahJ,YAAY,GAAG/K,cAC5B+T,EAAahJ,YAAY,GAAG/K,gBAC5B+T,EAAahJ,YAAY,GAAG/K,kBAC5B+T,EAAahJ,YAAY,gBACzBgJ,EAAahJ,YAAY,mBAG3BkB,MAAM4H,sBACR,CAEAnS,MAAAA,GAAS,IAAAsS,EAAAC,EACP,OACEtS,IAAAA,cAACuS,GAAiB,CAChBrS,YAAa5D,KAAK4D,YAClBE,WAAY9D,KAAK8D,WACjB5B,MAAOlC,KAAKkC,MACZH,KAAM/B,KAAK+B,KACXI,SAAUnC,KAAKmC,SACfC,QAASpC,KAAKoC,QACdE,IAAKtC,KAAKsC,IACVD,IAAKrC,KAAKqC,IACVE,QAASvC,KAAKuC,QACdO,KAAM9C,KAAK8C,OAAwB,QAApBiT,EAAI/V,KAAK4D,mBAAW,IAAAmS,OAAA,EAAhBA,EAAkBjT,MACrC0Q,OAAQxT,KAAKwT,SAA0B,QAApBwC,EAAIhW,KAAK4D,mBAAW,IAAAoS,OAAA,EAAhBA,EAAkBxC,QACzCnP,QAASrE,KAAKqE,QACdL,UAAWhE,KAAKgE,UAChByP,SAAUzT,KAAKyT,SACfC,WAAY1T,KAAK0T,WACjBzP,UAAWjE,KAAKiE,UAChBC,WAAYlE,KAAKkE,WACjBwR,eAAgB1V,KAAK0V,eACrBrE,aAAcrR,KAAKqR,aACnB7N,UAAWxD,KAAKwD,WAGtB,EAKK,SAASyS,GAAkBrQ,GAChC,MAAM,KACJ7D,EAAI,MACJG,EAAK,SACLC,EAAQ,QACRC,EAAO,IACPC,EAAG,IACHC,EAAG,QACHC,EAAO,YACPqB,EAAW,WACXE,EAAU,eACV4R,EAAiB,QAAO,KACxB5S,EAAI,QACJuB,EAAU,WAAU,OACpBmP,EAAS,aAAY,UACrBvP,EAAS,WACTC,EAAU,aACVmN,GAAe,EAAI,UACnBrN,EAAS,UACTR,GACEoC,EACEkQ,EAAelS,aAAW,EAAXA,EAAawP,UAE5BK,EAAW7N,EAAM6N,WAAY7P,aAAW,EAAXA,EAAa6P,UAC1CC,EAAa9N,EAAM8N,aAAc9P,aAAW,EAAXA,EAAa8P,YAE9CwC,GAAkBvP,EAAAA,EAAAA,UAAQ,IAC1B8M,GAAYC,IAAexR,GACtBiU,EAAAA,GAAAA,IAAiC1C,EAAUC,GAG7CA,GACN,CAACA,EAAYxR,EAAOuR,IAEjB2C,GAAuBtQ,EAAAA,EAAAA,QAAoB,CAC/CvD,QAAS,GACTM,KAAM,YAEDsB,EAAekS,IAAoBpQ,EAAAA,EAAAA,UACxCmQ,EAAqBpV,SA2EvB,OAxEA6F,EAAAA,EAAAA,YAAU,KACR,IAAKiP,IAAiB/T,IAAS+B,GAAcA,EAAWwS,cACtD,OACF,MAAMC,EAAgBzS,EAAWO,GACjCP,EAAWO,GAAW,mBAAAmS,EAAArZ,UAAAwE,OAAI8U,EAAI,IAAA1F,MAAAyF,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAvZ,UAAAuZ,GAAA,OAC5BZ,EAAa3E,QAAQpP,EAAM0U,EAAMF,EAAe,CAC9ClF,gBACA,EACJvN,EAAWwS,eAAgB,EAE3BR,EAAatJ,UAAU,GAAGzK,cAAiB,CAACyD,EAAG4H,KAC7CiJ,EAAiBjJ,GACjBtJ,EAAWK,cAAgBiJ,EAAOvK,IAAI,IAExCiT,EAAatJ,UAAU,GAAGzK,gBAAmB,CAACyD,EAAGxD,KAC/C8B,EAAW4R,GAAkB1T,EAC7B8B,EAAWK,cAAgB,GAC3BkS,EAAiB,CACf9T,QAAS,GACTM,KAAM,UACN,IAEJiT,EAAatJ,UAAU,GAAGzK,kBAAqB,KAC7C+B,EAAW4R,QAAkBpL,CAAS,IAExCwL,EAAatJ,UAAU,gBAAgB,KACrC1I,EAAW4R,QAAkBpL,CAAS,IAExCwL,EAAatJ,UAAU,kBAAkB,KACvC6J,EAAiBD,EAAqBpV,SACtC8C,EAAWK,cAAgBiS,EAAqBpV,QAAQ6B,IAAI,IAG9DiT,EAAa7G,yBAAyBlN,EAAK,GAC1C,CAAC+B,EAAYgS,EAAc/T,EAAMsP,EAAchN,EAASqR,KAE3D7O,EAAAA,EAAAA,YAAU,KACHiP,GAAiB/T,GAAS+B,IAC/BgS,EAAa5H,SAASnM,EAAM,CAC1BA,OACAG,QACA8B,YACAsM,SAAU,CACRnO,WACAC,UACAC,MACAC,MACAC,UACAiB,eAGW,WAAXgQ,IAAqB1P,EAAW0D,MAAMqE,QAAU,gBAChD/I,IACFgB,EAAWhB,KAAOc,EAAYd,MAAQA,GACxC,GACC,CACDgB,EACAF,aAAW,EAAXA,EAAad,KACbkB,EACA8R,EACA5T,EACAsR,EACAnR,EACAE,EACAD,EACAP,EACAK,EACAD,EACAW,EACAU,IAIAE,IAAAA,cAAA,OAAK4D,UAAWC,IAAW,YAAaiM,IACrCtR,GACCwB,IAAAA,cAAA,OACE4D,UAAWC,IACT,2BACAoP,EAAAA,GAAAA,IAAqBlD,EAAUD,KAGjC9P,IAAAA,cAAA,OAAK4D,UAAU,mBACb5D,IAAAA,cAAA,aACGvB,GAAYuB,IAAAA,cAAA,QAAM4D,UAAU,YAAW,KACvCpF,GAEFgC,SAAAA,EAAY0S,SACXlT,IAAAA,cAACmT,GAAAA,uBAA2B3S,GAC1B,OAIVR,IAAAA,cAAA,OACE4D,UAAWC,IACT,qBACAoP,EAAAA,GAAAA,IAAqBT,EAAiB1C,KAGxC9P,IAAAA,cAAA,OACE4D,UAAWC,IAAW,oBAAqB,CACzC,CAAC,UAAStD,aAAS,EAATA,EAAW6S,YAAa,YAAa7S,KAGjDP,IAAAA,cAAA,aACCO,SAAAA,EAAW2S,SACVlT,IAAAA,cAACmT,GAAAA,uBAA2B5S,GAC1B,MAELL,EACCF,IAAAA,cAAA,OACE4D,UAAWC,IAAW,UAAW,CAC/BqE,MAA8B,UAAvBzH,EAActB,OAEvBwE,KAAK,WAEoB,YAAxBlD,aAAa,EAAbA,EAAetB,OAAqBsB,EAAc5B,SAEnD,MAIZ,CAvKCwU,GAAAlC,KAAAjQ,GAAAkQ,GAAAC,GAAAC,GAAAC,GAAAzX,GAAAC,GAAAC,GAAAC,GAAAG,GAAAC,GAAAK,GAAAC,GAAAL,GAAAC,GAAAC,GAAAC,GAAAP,GAAAC,GAAAS,GAAAC,GAAA2W,GAAAC,GAAApD,GAAAC,GAAA5S,GAAAC,GAAA+V,GAAAC,GAAAC,GAAAC,GAAA3U,GAAAC,GAAA2U,GAAAC,IAAA3Q,GAAA8P,GAAA7P,MAAAC,EAAAA,EAAAA,GAAA+R,GAAA,CApIApc,GAAc,eAAgB,CAC7BsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,6BACR,EAECvK,GAAS,CACR0K,WAAW,IACX,kBAGD1K,GAAS,CACR0K,WAAW,IACX,iBAMD1K,KAAU,WAEVA,KAAU,YAEVA,KAAU,cAEVA,GAAS,CACR0K,WAAW,IACX,cAGD1K,GAAS,CACRiI,KAAMwC,SACN,UAGDzK,GAAS,CACRiI,KAAMwC,SACN,UAODzK,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,KAAU,YAEVA,KAAU,qBAEVA,KAAU,aAEVA,KAAU,WAOVA,GAAS,CACRiI,KAAMuC,UACN,WAMDxK,KAAU,cAMVA,GAAS,CACR0K,WAAW,IACX,gBAMD1K,GAAS,CACRiI,KAAMuC,UACN,4BApFmBnI,EAAAA,IAAmB8H,oBC/DnC,SAASiS,KAGd,IAFAjQ,EAAwB5J,UAAAwE,OAAA,QAAA2I,IAAAnN,UAAA,GAAAA,UAAA,GAAG,GAC3B8Z,EAA2C9Z,UAAAwE,OAAA,EAAAxE,UAAA,QAAAmN,EAE3C,OAAO4M,EAAAA,EAAAA,QACLnQ,EAAQiE,KAAKmM,GACO,iBAAPA,GAAiC,iBAAPA,EAC5B,CAAEjV,MAAOiV,EAAIpX,MAAOoX,GAEX,kBAAPA,EACF,CAAEjV,MAAO0G,OAAOuO,GAAKpX,MAAOoX,GAEjCF,EACK,IACFE,EACHjV,OAAO4L,EAAAA,EAAAA,KAAIqJ,EAAIF,EAAO/U,OAAS,SAC/BnC,OAAO+N,EAAAA,EAAAA,KAAIqJ,EAAIF,EAAOlX,OAAS,UAG5B,IAAKoX,EAAIjV,MAAOiV,EAAGjV,MAAOnC,MAAOoX,EAAGpX,SAE7C,QAEJ,sJCfIgH,GAAU,CAAC,yGAEfA,GAAQqQ,kBAAoB,KAC5BrQ,GAAQsQ,cAAgB,KACxBtQ,GAAQuQ,OAAS,UAAc,KAAM,QACrCvQ,GAAQwQ,OAAS,KACjBxQ,GAAQyQ,mBAAqB,KAEhB,KAAI,KAASzQ,IAKJ,MAAW,KAAQ0Q,QAAS,KAAQA,OCE1D,MAAMC,IAAqBzc,EAAAA,EAAAA,WAAyC,WAE9DC,IAAkBD,EAAAA,EAAAA,WAAmC,iBAkCnDN,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAE3C,IAAA4c,GAAA,IAAAC,GAAA,IAAAvc,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAwc,GAAA,IAAAnb,QAAAP,GAAA,IAAAd,QAAAyc,GAAA,IAAAzc,QAKA,MAAA0c,WAIoB9a,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAya,KACtCxa,EAAAA,EAAAA,GAAA,KAAAua,QAAc,IACdva,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAKAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAqa,GAAA,SAOA3a,EAAAA,EAAAA,GAAA,KAAA5B,IAAAwc,GAAA,MAAA3Z,GAAA,SAQAjB,EAAAA,EAAAA,GAAA,KAAA3B,IAAA6C,GAAA,MAAAX,GAAA,SAKAP,EAAAA,EAAAA,GAAA,KAAA1B,IAAAkC,GAAA,MAAAO,GAAA,SAOAf,EAAAA,EAAAA,GAAA,KAAAzB,IAAAyC,GAAA,MAAAK,GAAA,SAMArB,EAAAA,EAAAA,GAAA,KAAAxB,IAAA8C,GAAA,MAAAO,GAAA,KAK2B,cAE3B7B,EAAAA,EAAAA,GAAA,KAAAvB,IAAAqD,GAAA,MAAA+Y,GAAA,SAOA7a,EAAAA,EAAAA,GAAA,KAAAtB,IAAAoc,GAAA,MAAA/Y,GAAA,SAOA/B,EAAAA,EAAAA,GAAA,KAAArB,IAAAqD,GAAA,MAAA+Y,GAAA,SAQA/a,EAAAA,EAAAA,GAAA,KAAApB,IAAAoc,GAAA,MAAAC,GAAA,SAQAjb,EAAAA,EAAAA,GAAA,KAAAnB,IAAAqc,GAAA,MAAA3Y,GAAA,SAOAvC,EAAAA,EAAAA,GAAA,KAAAlB,IAAA2D,GAAA,MAAA0Y,GAAA,SAAA3Y,EAAAA,EAAAA,GAAA,qBAAA4Y,GAAA,MAYgB1Y,IAAqB,IAAAoD,EACnCnD,KAAKD,MAAQA,GACbE,EAAAA,EAAAA,GAAA4X,GAAA7X,KAAKE,IAAaC,KACG,QADCgD,GACpBpC,EAAAA,EAAAA,GAAK6W,GAAL5X,aAAmB,IAAAmD,OAAA,EAAnBA,EAAqBuV,MAAMzL,IAASA,aAAI,EAAJA,EAAMlN,SAAUA,IACrD,KAGH1C,EAAAA,EAAAA,GAAA,KAAAya,IAAuB,CACrB/Q,EAKAhF,MAEA9B,EAAAA,EAAAA,GAAA4X,GAAA7X,KAAK2Y,IAAexY,KAAK,CAAE4G,UAAShF,QAAO,GAC3C,SAhHmBA,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAKJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,YAOjB+E,GAAO,OAAAhG,EAAAA,EAAAA,GAAAvF,GAAA,iBAAPuL,CAAO/E,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,UAQPjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAtF,GAAA,eAALsE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,aAKwBG,GAAQ,OAAApB,EAAAA,EAAAA,GAAArF,GAAA,kBAARyG,CAAQH,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,YAKLO,GAAO,OAAAxB,EAAAA,EAAAA,GAAApF,GAAA,iBAAP4G,CAAOP,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,aAQvCS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAAnF,GAAA,kBAAR6G,CAAQT,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,SAORa,GAAI,OAAA9B,EAAAA,EAAAA,GAAAlF,GAAA,cAAJgH,CAAIb,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,OAOJ4W,GAAE,OAAA7X,EAAAA,EAAAA,GAAAjF,GAAA,YAAF8c,CAAE5W,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,SAOFc,GAAI,OAAA/B,EAAAA,EAAAA,GAAAhF,GAAA,cAAJ+G,CAAId,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,gBAQJ6W,GAAW,OAAA9X,EAAAA,EAAAA,GAAA/E,GAAA,qBAAX6c,CAAW7W,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,aAQX4U,GAAQ,OAAA7V,EAAAA,EAAAA,GAAA9E,GAAA,kBAAR2a,CAAQ5U,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,CAuCjByB,MAAAA,GAEE,OADAxB,EAAAA,EAAAA,GAAK2V,GAAL5X,KAAsBgX,GAAchX,KAAK+G,UAEvCrD,IAAAA,cAACoV,GAAc,CACbhV,WAAY9D,KACZ4D,YAAa5D,KAAK6D,iBAClB9B,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZ0U,SAAU5W,KAAK4W,SACfgC,GAAI5Y,KAAK4Y,GACTnW,SAAUzC,KAAKyC,SACfK,KAAM9C,KAAK8C,KACXiE,SAAShG,EAAAA,EAAAA,GAAK6W,GAAL5X,MACT6C,KAAM7C,KAAK6C,KACX9C,MAAOC,KAAKD,MACZoC,SAAUnC,KAAKmC,SACfI,QAASvC,KAAKuC,QACdwF,SAAU/H,KAAK+Y,aACf/U,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChBC,WAAYlE,KAAKkE,WACjBG,QAAQ,eACR2U,eAAejY,EAAAA,EAAAA,GAAK+W,GAAL9X,MACf6Y,YAAa7Y,KAAK6Y,aAGxB,EAQK,SAASC,GAAelT,GAC7B,MAAM,KAAE7D,EAAI,SAAEU,EAAQ,KAAEI,EAAI,YAAEgW,EAAW,cAAEG,EAAa,KAAElW,GAAS8C,GAC5D7F,EAAOiG,GAAYtC,IAAAA,SAAekC,EAAM7F,QACxCgH,EAASkS,GAAcvV,IAAAA,SAAekC,EAAMmB,SAEnDrD,IAAAA,WAAgB,KACdsC,EAASJ,EAAM7F,MAAM,GACpB,CAAC6F,EAAM7F,QAEV2D,IAAAA,WAAgB,MACTwV,EAAAA,EAAAA,SAAQnS,EAASnB,EAAMmB,WAC1BkS,EAAWrT,EAAMmB,SACjBiS,SAAAA,EAAgBpT,EAAMmB,QAAShF,GACjC,GACC,CAACA,EAAMgF,EAASiS,EAAepT,EAAMmB,UAExC,MAAMgS,EAAeA,CACnBnU,EACAuU,KACS,IAAAC,EACTxU,EAAEyU,kBACFrT,EAAUmT,aAAM,EAANA,EAAiCpZ,OAC7B,QAAdqZ,EAAAxT,EAAMmC,gBAAQ,IAAAqR,GAAdA,EAAAhY,KAAAwE,EAAiBuT,EAAOpZ,MAAM,EAGhC,OACE2D,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CAACC,YAAY,WAAcxB,GACzClC,IAAAA,cAAA,OACE4D,UAAWC,IAAW,cAAe,CACnC+R,UAAwB,cAAb1T,EAAMgT,MAGlB7R,aAAO,EAAPA,EAASiE,KAAKiC,IACb,MAAM1E,EAAO0E,EAAK1E,KACZgR,EAA2BhR,aAAI,EAAJA,EAAMgR,UACjC/H,GAAMgI,EAAAA,EAAAA,WAAUvM,EAAKlN,OACvBkN,EAAKlN,MAAM6M,WACXK,EAAKlN,MACH0Z,EAAaxM,EAAKxK,UAAYA,EACpC,OACEiB,IAAAA,cAAA,SACEgW,QAASlI,EACThK,MAAOqR,EACPvR,UAAWC,IAAW,aAAc,CAClC9E,SAAUgX,EACVvI,QAASnR,IAAUkN,EAAKlN,MACxB,CAAC+C,GAAQ,UAAoB,WAATD,IAEtB2O,IAAKA,EACL/J,QAAU7C,IAAO6U,GAAcV,EAAanU,EAAGqI,IAE/CvJ,IAAAA,cAAA,QAAM4D,UAAU,SACd5D,IAAAA,cAAA,SACEb,KAAK,QACLd,KAAMA,EACNU,SAAUgX,EACVvI,QAASnR,IAAUkN,EAAKlN,MACxBgI,SAAWnD,IAAO6U,GAAcV,EAAanU,EAAGqI,KAElDvJ,IAAAA,cAAA,QACE4D,UAAWC,IAAW,cAAe,CACnC2J,QAASnR,IAAUkN,EAAKlN,WAIpB,SAAT8C,EACCa,IAAAA,cAAA,OAAK4D,UAAU,WACZiB,GACC7E,IAAAA,cAACgU,IAAkBvQ,EAAAA,EAAAA,GAAA,GACboB,EAAI,CACRf,MAAO,CACLmS,SAAU,UACPJ,MAIT7V,IAAAA,cAAA,WAAMuJ,EAAK/K,QAEF,WAATW,EACFa,IAAAA,cAAA,OAAK4D,UAAU,kBACZ1B,EAAMgR,UACLlT,IAAAA,cAACkW,GAAAA,cAAa,CACZhD,SAAUhR,EAAMgR,SAChBiD,KAAM5M,KAID,gBAATpK,GAAmC,gBAATA,EAC5Ba,IAAAA,cAAA,OACE4D,UAAWC,IAAW,CACpB,eACW,gBAAT1E,GAAmC,gBAATA,KAG7BoK,EAAK1E,MACJ7E,IAAAA,cAAA,OACE4D,UAAWC,IAAW,CACpB,cAAwB,gBAAT1E,EACf,cAAwB,gBAATA,KAGjBa,IAAAA,cAACgU,IAAkBvQ,EAAAA,EAAAA,GAAA,GACboB,EAAI,CACRf,MAAO,CACLmS,SAAU,UACPJ,OAKX7V,IAAAA,cAAA,QAAMoW,MAAO7M,EAAK/K,OAAQ+K,EAAK/K,QAEtB,WAATW,EACFa,IAAAA,cAAA,OACE4D,UAAWC,IAAW,iBAAkB,CACtC9E,SAAUgX,KAGZ/V,IAAAA,cAAA,YACG6E,GACC7E,IAAAA,cAACgU,IAAkBvQ,EAAAA,EAAAA,GAAA,GACboB,EAAI,CACRf,MAAO,CACLmS,SAAU,OACVI,YAAa,MACbC,cAAe,aACZT,MAIRtM,EAAK/K,QAIVwB,IAAAA,cAAA,QAAM4D,UAAU,WACbiB,GACC7E,IAAAA,cAACgU,IAAkBvQ,EAAAA,EAAAA,GAAA,GACboB,EAAI,CACRf,MAAO,CACLmS,SAAU,OACVI,YAAa,MACbC,cAAe,aACZT,MAIRtM,EAAK/K,OAGJ,KAMpB,CAlKC+X,GAAAlC,KAAAnT,GAAApH,GAAAC,GAAAC,GAAAC,GAAAqa,GAAAC,GAAA3Z,GAAAC,GAAAX,GAAAC,GAAAO,GAAAC,GAAAK,GAAAC,GAAAO,GAAAC,GAAA+Y,GAAAC,GAAA/Y,GAAAC,GAAA+Y,GAAAC,GAAAC,GAAAC,GAAA3Y,GAAAM,GAAA2E,GAAA/E,GAAA0Y,GAAAG,GAAAuB,GAAAzB,IAAA3T,GAAA6S,GAAA5S,MAAAC,EAAAA,EAAAA,GAAAiV,GAAA,CAtJAtf,GAAc,WAAY,CACzBsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,yBACR,EAMCvK,KAAU,WAKVA,KAAU,YAMVA,GAAS,CAAE0K,WAAW,IAAQ,cAM9B1K,GAAS,CACR0K,WAAW,IACX,YAMD1K,GAAS,CAAEiI,KAAMuC,UAAU,eAK3BxK,GAAS,CAAE0K,WAAW,IAAQ,cAO9B1K,GAAS,CAAEiI,KAAMuC,UAAU,eAO3BxK,KAAU,WAOVA,KAAU,SAOVA,KAAU,WAMVA,GAAS,CACR0K,WAAW,IACX,kBAMD1K,GAAS,CACR0K,WAAW,IACX,eAMDzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA7E,GAAAqJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAA/F,GAAAqJ,EAAAvD,IAAA,CAOzBnH,GAAM,CAAEgI,KAAM,mBAAmB,kBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA5E,GAAAoJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAA9F,GAAAoJ,EAAAvD,KAAA,GAAAwD,GAAAsS,GAAArS,KAAAC,EAAAA,EAAAA,GAAAF,KA5FhBvI,EAAAA,IAAmB8H,+BCxEvC,MACA,GADiBa,GAASlC,EAAAA,cAAA,OAAAyD,EAAAA,EAAAA,GAAA,CAAKgT,MAAM,6BAA6BC,WAAW,+BAA+BC,MAAO,GAAI/O,OAAQ,IAAQ1F,GAAOlC,EAAAA,cAAA,YAAMA,EAAAA,cAAA,kBAAgB4W,GAAG,IAAIC,GAAG,SAASC,GAAG,SAASC,GAAG,SAASC,GAAG,WAAUhX,EAAAA,cAAA,QAAMiX,OAAO,KAAKC,UAAU,YAAYlX,EAAAA,cAAA,QAAMiX,OAAO,OAAOC,UAAU,aAA6BlX,EAAAA,cAAA,kBAAgB4W,GAAG,IAAIC,GAAG,UAAUC,GAAG,SAASC,GAAG,UAAUC,GAAG,WAAUhX,EAAAA,cAAA,QAAMiX,OAAO,KAAKC,UAAU,YAAYlX,EAAAA,cAAA,QAAMiX,OAAO,OAAOC,UAAU,aAA6BlX,EAAAA,cAAA,UAAQ4W,GAAG,IAAID,MAAM,SAAS/O,OAAO,SAASuP,EAAE,SAASC,EAAE,SAASC,YAAY,qBAAoBrX,EAAAA,cAAA,YAAUsX,GAAI,EAAGC,GAAI,EAAGC,GAAG,cAAchL,OAAO,uBAAuBxM,EAAAA,cAAA,kBAAgBwX,GAAG,qBAAqBhL,OAAO,mBAAmBiL,aAAc,IAAKzX,EAAAA,cAAA,eAAawX,GAAG,mBAAmBE,IAAI,cAAcC,SAAS,MAAMnL,OAAO,qBAAqBxM,EAAAA,cAAA,iBAAewX,GAAG,mBAAmBpM,OAAO,gDAAwDpL,EAAAA,cAAA,UAAQ4W,GAAG,IAAID,MAAM,SAAS/O,OAAO,SAASuP,EAAE,SAASC,EAAE,UAAUC,YAAY,qBAAoBrX,EAAAA,cAAA,YAAUuX,IAAK,EAAGC,GAAG,cAAchL,OAAO,uBAAuBxM,EAAAA,cAAA,kBAAgBwX,GAAG,qBAAqBhL,OAAO,mBAAmBiL,aAAc,IAAKzX,EAAAA,cAAA,iBAAewX,GAAG,mBAAmBpM,OAAO,gDAAwDpL,EAAAA,cAAA,QAAM4W,GAAG,IAAIgB,EAAE,qGAAqG5X,EAAAA,cAAA,QAAM4W,GAAG,IAAIgB,EAAE,sDAA4D5X,EAAAA,cAAA,KAAG6X,KAAK,OAAOC,SAAS,WAAU9X,EAAAA,cAAA,QAAM6X,KAAK,UAAUD,EAAE,gKAAgK5X,EAAAA,cAAA,QAAM6X,KAAK,UAAUD,EAAE,+GAA+G5X,EAAAA,cAAA,OAAK+X,UAAU,KAAKF,KAAK,OAAO3M,OAAO,YAAYlL,EAAAA,cAAA,QAAM6X,KAAK,UAAUG,OAAO,OAAOC,eAAe,QAAQL,EAAE,2PAA2P5X,EAAAA,cAAA,KAAGkY,UAAU,6BAA4BlY,EAAAA,cAAA,OAAK+X,UAAU,KAAKF,KAAK,OAAO3M,OAAO,YAAYlL,EAAAA,cAAA,OAAK+X,UAAU,KAAKF,KAAK,aAAgB7X,EAAAA,cAAA,QAAM6X,KAAK,UAAUD,EAAE,2VAA2VO,QAAS,KAAOnY,EAAAA,cAAA,QAAM6X,KAAK,UAAUD,EAAE,oNAAoN5X,EAAAA,cAAA,QAAM6X,KAAK,UAAUD,EAAE,sIAAsIO,QAAS,KAAOnY,EAAAA,cAAA,QAAM6X,KAAK,UAAUD,EAAE,+IAA+IO,QAAS,iLCsCruG,MAAM3gB,IAAkBD,EAAAA,EAAAA,WAAmC,gBAErD6gB,IAAa7gB,EAAAA,EAAAA,WAAkD,SAAU,CAC7E8gB,QAAS,QACTC,QAAS,UAGLhhB,IAAcC,EAAAA,EAAAA,WAAyC,WAMvDghB,GAAYA,CAChBxF,EACAyF,IAEInL,MAAMC,QAAQyF,GACTA,EAAKzL,KAAKmR,GAAQF,GAAUE,EAAKD,KAEtB,mBAATzF,EACDA,EAAkCrV,KAAK,KAAM8a,GAGhDzF,GA+BD9b,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAE3C,IAAAqhB,GAAA,IAAA9gB,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAAgB,GAAA,IAAAhB,QAAAiB,GAAA,IAAAjB,QAAAkB,GAAA,IAAAlB,QAAAmB,GAAA,IAAAnB,QAAAghB,GAAA,IAAA3f,QAAAC,GAAA,IAAAtB,QAAAuB,GAAA,IAAAvB,QAAAwB,GAAA,IAAAxB,QAKA,MAAAihB,WAIqBrf,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAif,KACvChf,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAKAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAe,GAAA,SAKAnB,EAAAA,EAAAA,GAAA,KAAA7B,IAAAiD,GAAA,MAAAf,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA5B,IAAAkC,GAAA,MAAAqa,GAAA,SAOA3a,EAAAA,EAAAA,GAAA,KAAA3B,IAAAuc,GAAA,MAAA3Z,GAAA,SAQAjB,EAAAA,EAAAA,GAAA,KAAA1B,IAAA4C,GAAA,MAAAX,GAAA,SAKAP,EAAAA,EAAAA,GAAA,KAAAzB,IAAAiC,GAAA,MAAAO,GAAA,SAOAf,EAAAA,EAAAA,GAAA,KAAAxB,IAAAwC,GAAA,MAAAK,GAAA,SAMArB,EAAAA,EAAAA,GAAA,KAAAvB,IAAA6C,GAAA,MAAA4d,GAAA,SAMAlf,EAAAA,EAAAA,GAAA,KAAAtB,IAAAygB,GAAA,MAAAC,GAAA,SAQApf,EAAAA,EAAAA,GAAA,KAAArB,IAAA0gB,GAAA,MAAAC,GAAA,SAMAtf,EAAAA,EAAAA,GAAA,KAAApB,IAAA2gB,GAAA,MAAAC,GAAA,SAMAxf,EAAAA,EAAAA,GAAA,KAAAnB,IAAA4gB,GAAA,MAAAC,GAAA,SAOA1f,EAAAA,EAAAA,GAAA,KAAAlB,IAAA6gB,GAAA,MAAAle,GAAA,SAOAzB,EAAAA,EAAAA,GAAA,KAAAjB,IAAA2C,GAAA,MAAAke,GAAA,SAQA5f,EAAAA,EAAAA,GAAA,KAAAhB,IAAA6gB,GAAA,MAAAC,GAAA,SAAA9f,EAAAA,EAAAA,GAAA,KAAAf,IAAA8gB,GAAA,MAAAC,GAAA,SAaAhgB,EAAAA,EAAAA,GAAA,KAAAd,IAAA+gB,GAAA,MAAA5d,GAAA,SAQArC,EAAAA,EAAAA,GAAA,KAAAb,IAAAmD,GAAA,MAAAC,GAAA,SAQAvC,EAAAA,EAAAA,GAAA,KAAAV,IAAAmD,GAAA,MAAAyd,GAAA,SAOAlgB,EAAAA,EAAAA,GAAA,KAAAT,IAAA4gB,GAAA,MAAAC,GAAA,SAKApgB,EAAAA,EAAAA,GAAA,KAAAR,IAAA6gB,GAAA,MAAAlF,GAAA,SAAA3Y,EAAAA,EAAAA,GAAA,qBAAA4Y,GAAA,MAYe,CACb1Y,EACAgH,KAEA/G,KAAKD,MAAQA,GAEbE,EAAAA,EAAAA,GAAAoc,GAAArc,KAAKE,IAAaC,KAAK,CACrBJ,QACAgH,WACA,KACHlH,EAAAA,EAAAA,GAAA,6BAE8B,CAC7BkH,EAKAhF,KAEAuE,QAAQC,UAAUC,MAAK,MACrBvG,EAAAA,EAAAA,GAAAoc,GAAArc,KAAK2Y,IAAexY,KAAK,CAAE4G,UAAShF,QAAO,GAC3C,KACHlC,EAAAA,EAAAA,GAAA,qBAEeE,KACdE,EAAAA,EAAAA,GAAAoc,GAAArc,KAAK2d,IAAaxd,KAAK,CACrBJ,SACA,KACHF,EAAAA,EAAAA,GAAA,oBAEa,MACZI,EAAAA,EAAAA,GAAAoc,GAAArc,KAAK4d,IAAYzd,MAAM,GACxB,SAnLoB4B,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,gBAKJQ,GAAW,OAAAzB,EAAAA,EAAAA,GAAAxF,GAAA,qBAAXiH,CAAWR,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAKXE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAvF,GAAA,eAAL0G,CAAKF,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,YAOjB+E,GAAO,OAAAhG,EAAAA,EAAAA,GAAAtF,GAAA,iBAAPsL,CAAO/E,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,UAQPjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAArF,GAAA,eAALqE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,aAKwBG,GAAQ,OAAApB,EAAAA,EAAAA,GAAApF,GAAA,kBAARwG,CAAQH,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,YAKLO,GAAO,OAAAxB,EAAAA,EAAAA,GAAAnF,GAAA,iBAAP2G,CAAOP,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,aAQvCS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAAlF,GAAA,kBAAR4G,CAAQT,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,SAMR6b,GAAI,OAAA9c,EAAAA,EAAAA,GAAAjF,GAAA,cAAJ+hB,CAAI7b,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,oBAQJ8b,GAAe,OAAA/c,EAAAA,EAAAA,GAAAhF,GAAA,yBAAf+hB,CAAe9b,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,gBAMf+b,GAAW,OAAAhd,EAAAA,EAAAA,GAAA/E,GAAA,qBAAX+hB,CAAW/b,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,YAMXgc,GAAO,OAAAjd,EAAAA,EAAAA,GAAA9E,GAAA,iBAAP+hB,CAAOhc,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,WAOPT,GAAM,OAAAR,EAAAA,EAAAA,GAAA7E,GAAA,gBAANqF,CAAMS,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,cAONW,GAAS,OAAA5B,EAAAA,EAAAA,GAAA5E,GAAA,mBAATwG,CAASX,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,WAQTiV,GAAM,OAAAlW,EAAAA,EAAAA,GAAA3E,GAAA,gBAAN6a,CAAMjV,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,eAQNic,GAAU,OAAAld,EAAAA,EAAAA,GAAA1E,GAAA,oBAAV4hB,CAAUjc,IAAAC,EAAAA,EAAAA,GAAA5F,GAAA,KAAA2F,EAAA,wBAKVkc,GAAmB,OAAAnd,EAAAA,EAAAA,GAAAzE,GAAA,6BAAnB4hB,CAAmBlc,IAAAC,EAAAA,EAAAA,GAAA3F,GAAA,KAAA0F,EAAA,eAQnBiB,GAAU,OAAAlC,EAAAA,EAAAA,GAAAxE,GAAA,oBAAV0G,CAAUjB,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,CAqEnByB,MAAAA,GACE,OACEC,IAAAA,cAACya,GAAe,CACdra,WAAY9D,KACZ4D,YAAa5D,KAAK6D,iBAClB9B,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZnC,MAAOC,KAAKD,MACZ0C,SAAUzC,KAAKyC,SACfD,YAAaxC,KAAKwC,YAClBL,SAAUnC,KAAKmC,SACf0b,KAAM7d,KAAK6d,KACXC,gBAAiB9d,KAAK8d,gBACtBC,YAAa/d,KAAK+d,YAClBC,QAAShe,KAAKge,QACdzc,OAAQvB,KAAKuB,OACb0V,OAAQjX,KAAKiX,OACbgH,WAAYje,KAAKie,WACjBC,oBAAqBle,KAAKke,oBAC1Bvb,UAAW3C,KAAK2C,UAChB0B,QAAQ,eACRpB,WAAYjD,KAAKiD,WACjBkB,cAAenE,KAAKmE,cACpBH,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChBC,WAAYlE,KAAKkE,WACjB6C,QAAS/G,KAAK+G,QACdgB,SAAU/H,KAAK+Y,aACfC,cAAehZ,KAAK8X,qBACpBsG,SAAUpe,KAAKqe,aACfrW,QAAShI,KAAKiI,aAGpB,EAGK,SAASkW,GAAgBvY,GAAoB,IAAA0Y,EAClD,MAAM,WACJxa,EAAU,KACV/B,EAAI,SACJU,EAAQ,KACRob,EAAI,gBACJC,EAAe,YACfC,EAAW,OACXxc,EAAM,OACN0V,EAAM,WACNgH,EAAU,oBACVC,EAAmB,UACnBvb,GAAY,EAAI,WAChBM,EAAU,YACVT,EAAW,cACX2B,EAAa,cACb6U,EAAa,SACbjR,EAAQ,QACRC,EAAO,cACPuW,EAAa,SACbH,GACExY,EAEE4Y,GAAW7X,EAAAA,EAAAA,UACf,IAAMkX,GAAQ,CAAC,WAAY,QAAQlP,SAASkP,IAC5C,CAACA,IAEGY,GAAY3Y,EAAAA,EAAAA,QAAuB,MACnC4Y,GAAe5Y,EAAAA,EAAAA,QAAwB,MACvC6Y,GAAiC7Y,EAAAA,EAAAA,SAAO,IACvC8Y,EAAYC,IAAiB5Y,EAAAA,EAAAA,UAAiB,KAC9C6Y,EAAYC,IAAiB9Y,EAAAA,EAAAA,aAC7BlG,EAAOiG,IAAYC,EAAAA,EAAAA,UAAc4X,EAAO,QAAKvT,IAC7C0U,EAAeC,IAAoBhZ,EAAAA,EAAAA,aACnCc,EAASkS,IAAchT,EAAAA,EAAAA,UAC5B+Q,GAAcpR,EAAMmB,QAASkQ,IAAW,KAEnCiI,EAAcC,IAAmBlZ,EAAAA,EAAAA,WAAkB,IACnDmZ,EAAWC,IAAgBpZ,EAAAA,EAAAA,WAAkB,IAC7CqZ,EAAiBC,IAAsBtZ,EAAAA,EAAAA,UAE5C,KACKuZ,EAAeC,IAAoBxZ,EAAAA,EAAAA,UAAgB,KACnDyZ,EAAiBC,IAAsB1Z,EAAAA,EAAAA,UAC5C,CAAC,GAEGJ,GAAWC,EAAAA,EAAAA,QAAyB,OAE1Ce,EAAAA,EAAAA,YAAU,KACRoS,EACEjC,IACGpR,EAAMmB,SAAW,IAAI6Y,OACX,SAAT/B,GAAmBjY,EAAM7F,MAAQ6F,EAAM7F,MAAQ,IAEjDkX,GAEH,GACA,CAACrR,EAAMmB,QAASkQ,EAAQrR,EAAM7F,MAAO8d,IAExC,MAAMgC,GAAsB3V,EAAAA,EAAAA,cAAY,KACjCnK,EAKO0C,IACV0c,GAAiBD,GACjBG,GAAa,GACbxZ,EAAS7E,SAAW6E,EAAS7E,QAAQoC,UAPrC+b,GAAgB,GAChBE,GAAa,GACbrX,SAAAA,IACAnC,EAAS7E,SAAW6E,EAAS7E,QAAQoC,QAKvC,GACC,CAACX,EAAUyc,EAAcnf,EAAOiI,IAE7B+Q,GAAe7O,EAAAA,EAAAA,cAClBiP,IAEC,IAAI2G,EADJnB,EAA+B3d,SAAU,EAGvC8e,EADEtB,GACUze,GAAS,IAAI4O,SAASwK,EAAOpZ,OACpCA,EAAmB6O,QAAQ3B,GAASA,IAASkM,EAAOpZ,SAClDA,GAAmB,IAAI6f,OAAOzG,EAAOpZ,OAEjCoZ,EAAOpZ,MAEpB,MAQMggB,EAAavB,EAPGc,EAAgB5G,MACjCzL,GAASA,EAAKlN,QAAUoZ,EAAOpZ,QAG9Buf,EAAgB1Q,QAAQ3B,GAASA,EAAKlN,QAAUoZ,EAAOpZ,QACvDuf,EAAgBM,OAAOzG,GAEsB,CAACA,GACpDoG,EAAmBQ,GACnB/Z,EAAS8Z,GACT/X,SAAAA,EAAW+X,EAAUC,GACrBxB,SAAAA,EAAgBuB,GAChBX,GAAiBX,GACjBmB,EAAmBxG,IAClBqF,GAAYa,GAAa,GAC1Bb,GAAY3Y,EAAS7E,SAAW6E,EAAS7E,QAAQoC,QACjDyb,EAAc,GAAG,GAEnB,CAACL,EAAUzW,EAAUwW,EAAee,EAAiBvf,IAGjDigB,GAA0B9V,EAAAA,EAAAA,cAC7B+V,IACC,MAAMF,EAAaT,EAAgB1Q,QAChC3B,GAASA,EAAKlN,QAAUkgB,IAE3BV,EAAmBQ,GACnBhY,SAAAA,EACEgY,EAAW/U,KAAKiC,GAASA,EAAKlN,QAC9BggB,EACD,GAEH,CAAChY,EAAUuX,IASPY,IAAoBhW,EAAAA,EAAAA,cACxBiW,iBAAsD,IAA/CpgB,EAAK5C,UAAAwE,OAAA,QAAA2I,IAAAnN,UAAA,GAAAA,UAAA,GAAG,GAAI0F,EAA8B1F,UAAAwE,OAAA,EAAAxE,UAAA,QAAAmN,EAC/C,GAAI2T,GArZYle,IACc,iBAApBA,aAAK,EAALA,EAAOqgB,UAoZCC,CAAapC,GAAa,CAC1C,MAAM,SACJmC,EAAQ,KACR3J,EAAI,kBACJ6J,EAAiB,UACjB1E,EAAa/B,IAASA,IACpBoE,EACJ,IACEgB,EAAiB,WACjB,MAAMsB,EAAatE,GACR,WAATpZ,EAAoB4T,EAAO6J,EAC3BvgB,GAEImQ,QAAesQ,EAAAA,GAAAA,iBAAgBJ,EAAUG,GAC/C,IAAI5X,EAAAA,EAAAA,OAAMuH,GAAS,OACnB,MACMuQ,EAAazJ,GADK4E,EAAU1L,GAGhC+G,GAEFgI,EAAiB,WACjBhG,EAAWwH,GAEE,gBAAT5d,GACF0c,EACEkB,EAAW7R,QAAQ3B,GACjB8D,MAAMC,QAAQpL,EAAM7F,OAChB6F,EAAM7F,MAAM4O,SAAS1B,EAAKlN,OAC1BkN,EAAKlN,QAAU6F,EAAM7F,QAIjC,CAAE,MAAO6E,GACPqa,EAAiB,UACjByB,EAAAA,GAAAA,iBAAgB9b,EAClB,CACF,CACF,GACA,CAACqZ,EAAYhH,EAAQrR,EAAM7F,QAGvB4gB,IAA8Bha,EAAAA,EAAAA,UAAQ,KACnCia,EAAAA,EAAAA,UAASV,GAAmBhC,GAAuB,MACzD,CAACA,EAAqBgC,KAEnBW,GAAkBnd,IAAAA,SAAc,KACnB,SAATma,GAAmBe,EAAa,CAACA,GAAc,IACpD5T,KAAKiC,IAAI,CACRuE,IAAKvE,EACL/K,MAAO+K,EACPlN,MAAOkN,MAER2S,OACCN,EAAgB1Q,QACbkS,IACE/Z,EAAQ2R,MAAMS,GAAWA,EAAOpZ,QAAU+gB,EAAS/gB,WAGzD6f,OAAO7Y,IACT,CAAC6X,EAAYf,EAAM9W,EAASuY,KAE/BzY,EAAAA,EAAAA,YAAU,KACR,MAAMka,EACJvC,GAAY5Y,EAAM7F,QAAUgR,MAAMC,QAAQpL,EAAM7F,OAC5C,CAAC6F,EAAM7F,OACP6F,EAAM7F,MACZiG,EAAS+a,GAELA,GACFxB,EACEsB,GAAgBjS,QAAQ3B,GACtBuR,EACIuC,EAAcpS,SAAS1B,EAAKlN,OAC5BkN,EAAKlN,QAAU6F,EAAM7F,QAG/B,GAEC,CAAC6F,EAAM7F,MAAOgH,KAEjBF,EAAAA,EAAAA,YAAU,KACRmS,SAAAA,EAAgB6H,GAAiB9e,EAAe,GAE/C,CAAC8e,MAEJha,EAAAA,EAAAA,YAAU,KAAM,IAAAma,GACdpb,SAAiB,QAAZob,EAALpb,EAAOqY,kBAAU,IAAA+C,OAAA,EAAjBA,EAAmBV,oBACjB3B,EAA+B3d,WAC7B+P,MAAMC,QAAQpL,EAAM7F,OACK,IAAvB6F,EAAM7F,MAAM4B,QACZgH,EAAAA,EAAAA,OAAM/C,EAAM7F,SAChBmgB,GAAkBta,EAAM7F,MAAO,eACjC4e,EAA+B3d,SAAU,CAAI,GAC5C,CAACkf,GAAmBta,SAAiB,QAAZ0Y,EAAL1Y,EAAOqY,kBAAU,IAAAK,OAAA,EAAjBA,EAAmBgC,kBAAmB1a,EAAM7F,QAEnE,MAAMwE,IAAoB2F,EAAAA,EAAAA,cACvBtF,IACCA,EAAEyU,kBACF,MAAMtZ,EAAQ6E,EAAEiD,OAAO9H,MACvB,GAAa,SAAT8d,GAAmB9d,EAAO,CAC5B,MAAMkhB,EAAanD,aAAe,EAAfA,EAAiBnP,SAAS5O,EAAMA,EAAM4B,OAAS,IAC5Duf,EACJnhB,GAASkhB,EAAalhB,EAAMohB,UAAU,EAAGphB,EAAM4B,OAAS,GAAK5B,EAC3DkhB,EACFlI,EAAa,CACXvH,IAAK0P,EACLhf,MAAOgf,EACPnhB,MAAOmhB,IAGTrC,EAAc9e,EAElB,MACE8e,EAAc9e,GACdof,GAAgB,GAChBf,SAAAA,EAAWre,GAEb4gB,GAA4B5gB,EAAO,SAAS,GAE9C,CAACgZ,EAAc4H,GAA6B9C,EAAMO,EAAUN,IAGxDsD,IAAgBlX,EAAAA,EAAAA,cACnBtF,IAiBC,GAhBIwa,IACa,UAAXxa,EAAEyc,MACJ3B,GAAmB3G,EAAa2G,GAGrB,cAAX9a,EAAEyc,MACF7C,GACe,KAAfI,GAFAha,MAGA0a,GAAAA,EAAiB3d,SAEjB2d,EAAgBgC,MAChB/B,EAAmB,IAAID,IACvBvf,EAAMuhB,MACNtb,EAAS,IAAIjG,OAGZmf,GAAgBQ,EAAiB,CACpC,GAAe,cAAX9a,EAAEyc,KAAsB,CAC1B,MAAME,EAAQ/B,EAAcgC,WACzBvU,GAASA,EAAKlN,QAAU2f,EAAgB3f,QAE3C4f,EACEH,EACE+B,EAAQ,EAAI/B,EAAc7d,OAAS,EAC/B6d,EAAc7d,OAAS,EACvB4f,EAAQ,GAGlB,CACA,GAAe,YAAX3c,EAAEyc,KAAoB,CACxB,MAAME,EAAQ/B,EAAcgC,WACzBvU,GAASA,EAAKlN,QAAU2f,EAAgB3f,QAE3C4f,EAAmBH,EAAc+B,EAAQ,EAAI,EAAI,EAAIA,EAAQ,GAC/D,CACF,IAEF,CACEnC,EACAZ,EACAI,EACAU,EACAJ,EACAQ,EACA3G,EACAhZ,EACAyf,IAIEiC,IAAe9a,EAAAA,EAAAA,UAAQ,IACO,iBAApB2Y,GACV3O,EAAAA,EAAAA,SAAQ2O,QACYhV,IAApBgV,GACH,CAACA,KAEJoC,EAAAA,EAAAA,kBAAgB,KACd,MAAMlC,EAAgBqB,GAAgBjS,QAAQ3B,IAC5C2R,GACK3R,EAAK/K,MACHyf,oBACAhT,SAASiQ,EAAW+C,uBAMH,IAAAC,EAAAC,EAH1BpC,EAAiBD,GACjBG,EAAmBH,aAAa,EAAbA,EAAgB,IAE/Bd,EAAa1d,SACf+d,EACwC,KAAlB,QAApB6C,EAAAlD,EAAa1d,eAAO,IAAA4gB,OAAA,EAApBA,EAAsBE,aAClB,EACoB,QADnBD,EACDnD,EAAa1d,eAAO,IAAA6gB,OAAA,EAApBA,EAAsBC,YAE9B,GACC,CAACjB,GAAiB9H,EAAc6F,EAAYf,EAAMC,KAErDjX,EAAAA,EAAAA,YAAU,KACR,MAAMkb,EAAuBnd,IAC3BA,EAAEyU,kBACF,MAAM2I,EAAOpd,EAAEqd,eACXne,GAAcke,EAAKrT,SAAS7K,KAChCub,GAAa,GACbF,GAAgB,GAChBN,EAAc,IAAG,EAKnB,OAHAtU,SAAS/I,iBAAiB,UAAW4f,IACrC7W,SAAS/I,iBAAiB,QAASugB,GAE5B,KACLxX,SAAS2X,oBAAoB,UAAWd,IACxC7W,SAAS2X,oBAAoB,QAASH,EAAoB,CAC3D,GACA,CAACje,EAAYsd,KAEhB,MAAMe,IAAiBxb,EAAAA,EAAAA,UAAQ,KAC7B,IAAIyb,EAAkC9C,EACtC,GAAIvB,EAAa,CACf,MAAMsE,EACJ/C,EAAgB3d,OAASoc,EAAc,EACnC,CACE7b,MAAO,KAAIod,EAAgB3d,OAASoc,GACpCvM,IAAK,QACLzR,MAAO,GACPuiB,UAAU,GAEZ,KACNF,EAAU9C,EAAgBiD,MAAM,EAAGxE,GACnCsE,GAAgBD,EAAQvV,KAAKwV,EAC/B,CACA,MAAMG,EAAa3B,GAAgB4B,QACjC,CAACC,EAAUC,IACTA,EAAI5b,QAAU,IAAI2b,KAAQC,EAAI5b,SAAW,IAAI2b,EAAKC,IACpD,IAGIC,EAAezJ,GAEjBzV,IAAAA,cAAA,OAAK4D,UAAU,SACb5D,IAAAA,cAAA,QAAM4D,UAAU,QACbkX,EACC9a,IAAAA,cAACoY,GAAU,CACTtK,IAAK2H,EAAOpZ,MACZ8iB,MAAOpgB,EAAW,YAAS6H,EAC3BgY,SAAUnJ,EAAOmJ,WAAY,EAC7BQ,WAAW,EACX9G,QAASA,IAAMgE,EAAwB7G,EAAOpZ,QAE7CoZ,EAAOjX,MACPsc,IAAYjd,aAAM,EAANA,EAAQqV,WACnBlT,IAAAA,cAACkW,GAAAA,cAAa,CAAChD,SAAUrV,EAAOqV,SAAUiD,KAAMV,KAIpDA,EAAOjX,QAGTsc,IAAYjd,aAAM,EAANA,EAAQqV,WACpBlT,IAAAA,cAACkW,GAAAA,cAAa,CAAChD,SAAUrV,EAAOqV,SAAUiD,KAAMV,KAuBxD,OACEzV,IAAAA,cAAA,OACE4D,UAAWC,IAAW,CACpB,gBAAiBiX,EACjB,sBAAuBA,IAEzBhX,MACEia,GAAe,CAAEoB,MAAO,uCAA0C,CAAC,GAGpEvD,SAAAA,EAAiB3d,OACd6c,EACsB4D,EA1BhBpX,KAAKiC,IACf,IAAIkM,EASJ,MARoB,iBAATlM,EACTkM,EAASlM,GAETkM,EACEqJ,EAAW9J,MAAMS,GAAgBA,EAAOpZ,QAAUkN,KACjD,CAAC,EACJkM,EAAO4J,WAAatgB,GAAY0W,EAAO4J,WAElCH,EAAYzJ,EAAO,IAiBpByJ,EAAYtD,EAAgB,IAC9BF,GAAaR,EACX,GACApc,EACF,GAEP,CACDqe,GACApe,EACAud,EACApB,EACA6C,GACArC,EACArB,EACAS,EACAhc,EACA8c,EACA/d,IAGIyhB,IAAUrc,EAAAA,EAAAA,UAAQ,KACtB,MAAMsc,EAAmBhW,IAAS,IAAAiW,EAAA,OAChCxf,IAAAA,cAAA,OACE8N,IAAe,QAAZ0R,EAAEjW,EAAKlN,aAAK,IAAAmjB,OAAA,EAAVA,EAAYtW,WACjBtF,UAAWC,IAAW,cAAe,qBAAsB,CACzD9E,SAAUwK,EAAKxK,SACf,sBAAuBwK,EAAKlN,QAAU2f,EAAgB3f,MACtD,yBACmB,iBAAVA,EACHA,KAAUkN,aAAI,EAAJA,EAAMlN,OACfA,aAAK,EAALA,EAAiB4O,SAAS1B,EAAKlN,SAExC0H,QAASA,KAAOwF,EAAKxK,UAAYsW,EAAa9L,GAC9CkW,YAAaA,IAAMxD,EAAmB1S,GACtCmW,aAAcA,IAAMzD,EAAmB,CAAC,IAExCjc,IAAAA,cAAA,OAAK4D,UAAU,8BACb5D,IAAAA,cAAA,OAAK4D,UAAU,UACb5D,IAAAA,cAAA,QAAM4D,UAAU,SAAS2F,EAAK/K,QAC7BX,aAAM,EAANA,EAAQqV,WACPlT,IAAAA,cAACkW,GAAAA,cAAa,CAAChD,SAAUrV,EAAOqV,SAAUiD,KAAM5M,KAGnDuR,GACC9a,IAAAA,cAAA,OAAK4D,UAAU,cACb5D,IAAAA,cAAC1I,GAAW,CAERsN,IAAK,OACLC,KAAM,QACNC,MAAO,eAMb,EAuBR,OAAOgX,EAAc7d,OAAS,EAC5BiE,EAAMoY,QApBY1P,OAAOE,SAAQwP,EAAAA,EAAAA,SAAQwB,EAAe5Z,EAAMoY,UAE7ChT,KAAI,CAAAyD,EAAmB8S,KAAK,IAAtB8B,EAAOtc,GAAQ0H,EAAA,MAC1B,cAAV4U,EACE3f,IAAAA,cAAA,OAAK8N,IAAK+P,EAAOja,UAAU,wBACzB5D,IAAAA,cAAA,OAAK4D,UAAU,sBAAsB+b,GACpCtc,EAAQiE,KAAKiC,GAASgW,EAAgBhW,MAGzClG,EAAQiE,KAAKiC,GAASgW,EAAgBhW,IACvC,IAKHuS,EAAcxU,KAAKiC,GACVgW,EAAgBhW,KAUzBvJ,IAAAA,cAAA,OAAK4D,UAAU,cACb5D,IAAAA,cAAC4f,GAAK,MACN5f,IAAAA,cAAA,YAAM,QAET,GACA,CACD8b,EACA5Z,EAAMoY,QACN0B,EACA3f,EACAwB,EACAid,EACAzF,IAGF,OACErV,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CAACC,YAAY,WAAexB,GAC1ClC,IAAAA,cAAA,OACE4D,UAAWC,IAAW,SAAU,CAC9B,kBAAmB9E,EACnB,qBAAsBE,EACtB,iBAAkB6b,EAClB,kBAAmBA,IAErBhX,MAAOvE,EACPnC,IAAK2d,GAEL/a,IAAAA,cAAA,OACE4D,UAAWC,IAAW,kBAAmB,CACvC,mBAAoB6X,EACpB,WAA8B,UAAlBjb,IAEdsD,QAASoY,GAETnc,IAAAA,cAAA,OAAK4D,UAAU,6BACZkX,GAAY2D,GACbze,IAAAA,cAAA,OAAK4D,UAAU,cACb5D,IAAAA,cAAA,OAAK4D,UAAU,2BACb5D,IAAAA,cAAA,QACE8D,MAAO,CAAE+b,SAAU,WAAY1H,QAAS,KACxC/a,IAAK4d,GAEJE,GAEHlb,IAAAA,cAAA,SACE8D,MAAO,CAAE6S,MAAOyE,GAChBjc,KAAK,OACL9C,MAAO6e,EACP9d,IAAK+E,EACLyB,UAAU,gCACVS,SAAUxD,MAGZia,EAA2C,MAA/BI,GAAcuD,KAGhCze,IAAAA,cAAA,QAAM4D,UAAU,iBACZma,IAAgB9e,EAChBe,IAAAA,cAAC1I,GAAW,CACVsM,UAAU,YACVgB,IAAI,OACJC,KAAK,eACLC,MAAM,SACNf,QAAU7C,GArcHA,KACnBA,EAAEyU,kBACFkG,EAAmB,IACnBxX,SAAAA,OAAWuC,EAAW,GAAG,EAkcGpD,CAAYtC,KAG9BlB,IAAAA,cAAA,QACE4D,UAAWC,IACT,UACA,gBACA,oBACA,CACEnE,MAAOgc,KAIX1b,IAAAA,cAAC1I,GAAW,CAACuN,KAAK,OAAOD,IAAI,OAAOE,MAAM,gBAKlD9E,IAAAA,cAAA,OACE8D,MAAO,IAAM0X,EAAe,CAAErT,QAAS,QAAW,CAAC,GACnDvE,UAAU,mBAEV5D,IAAAA,cAAA,OAAK4D,UAAU,iBACM,YAAlB0X,EACCtb,IAAAA,cAAA,OAAK4D,UAAU,mCACb5D,IAAAA,cAAC1I,GAAW,CAERuN,KAAM,UACND,IAAK,OACLE,MAAO,WACPgb,UAAU,KAKhB9f,IAAAA,cAAA,OAAK4D,UAAU,kBAAkB0b,OAO/C,CAxmBCS,GAAAnH,KAAA1X,GAAApH,GAAAC,GAAAe,GAAAC,GAAAf,GAAAC,GAAAqa,GAAAC,GAAA3Z,GAAAC,GAAAX,GAAAC,GAAAO,GAAAC,GAAAK,GAAAC,GAAA4d,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAle,GAAAC,GAAAke,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA5d,GAAAC,GAAAC,GAAAM,GAAA2E,GAAA/E,GAAAyd,GAAAI,GAAA+F,GAAAlG,GAAAC,GAAAG,GAAA+F,GAAAjG,GAAAlF,GAAAG,GAAAuB,GAAAzB,IAAA3T,GAAAsX,GAAArX,MAAAC,EAAAA,EAAAA,GAAAye,GAAA,CA/NA9oB,GAAc,YAAa,CAC1BsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,0BACR,EAKCvK,KAAU,WAKVA,KAAU,kBAKVA,KAAU,YAMVA,GAAS,CAAE0K,WAAW,IAAQ,cAM9B1K,GAAS,CACR0K,WAAW,IACX,YAMD1K,GAAS,CAAEiI,KAAMuC,UAAU,eAK3BxK,GAAS,CAAE0K,WAAW,IAAQ,cAO9B1K,GAAS,CAAEiI,KAAMuC,UAAU,eAM3BxK,KAAU,WAMVA,GAAS,CACR0K,WAAW,IACX,sBAMD1K,KAAU,kBAMVA,KAAU,cAKVA,GAAS,CACR0K,WAAW,IACX,aAOD1K,GAAS,CAAEiI,KAAMuC,UAAU,gBAM3BxK,GAAS,CACR0K,WAAW,IACX,aAMD1K,GAAS,CACR0K,WAAW,IACX,iBAGD1K,GAAS,CACRiI,KAAMwC,SACN,0BAMDzK,GAAS,CACR0K,WAAW,IACX,iBAMDzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAAvE,GAAA+I,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAzF,GAAA+I,EAAAvD,IAAA,CAQzBnH,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAApE,GAAA4I,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAtF,GAAA4I,EAAAvD,IAAA,CAOzBnH,GAAM,CAAEgI,KAAM,UAAU,eAAA0C,IAAAxE,EAAAA,EAAAA,GAAAnE,GAAA2I,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAArF,GAAA2I,EAAAvD,IAAA,CAKxBnH,GAAM,CAAEgI,KAAM,mBAAmB,kBAAA0C,IAAAxE,EAAAA,EAAAA,GAAAlE,GAAA0I,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAApF,GAAA0I,EAAAvD,KAAA,GAAAwD,GAAA6W,GAAA5W,KAAAC,EAAAA,EAAAA,GAAAF,KA7IfvI,EAAAA,IAAmB8H,0FChGxC,MAAM7J,IAAkBD,EAAAA,EAAAA,WAAmC,gBACrD2oB,IAAgB3oB,EAAAA,EAAAA,WAA+B,cAa7CN,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAE3C,IAAA8oB,GAAA,IAAAvoB,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAyoB,GAAA,IAAApnB,QAAAb,GAAA,IAAAR,QAKA,MAAA0oB,WAI4B9mB,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA0mB,KAC9CzmB,EAAAA,EAAAA,GAAA,KAAA/B,GAAA0oB,GAAA,KAI0C,QAE1C3mB,EAAAA,EAAAA,GAAA,KAAA9B,IAAA0oB,GAAA,MAAAC,GAAA,SAMA7mB,EAAAA,EAAAA,GAAA,KAAA7B,IAAA2oB,GAAA,MAAAC,GAAA,SAMA/mB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA4oB,GAAA,MAAAC,GAAA,SAKAjnB,EAAAA,EAAAA,GAAA,KAAA3B,IAAA6oB,GAAA,MAAAC,GAAA,SAKAnnB,EAAAA,EAAAA,GAAA,KAAA1B,IAAA8oB,GAAA,MAAAC,GAAA,SAKArnB,EAAAA,EAAAA,GAAA,KAAAzB,IAAA+oB,GAAA,MAAAC,GAAA,SAKAvnB,EAAAA,EAAAA,GAAA,KAAAxB,IAAAgpB,GAAA,MAAAC,GAAA,SAAAjlB,EAAAA,EAAAA,GAAA,2BAAAklB,GAAA,MAK6B,KAC3Bze,QAAQC,UAAUC,MAAK,MACrBvG,EAAAA,EAAAA,GAAA6jB,GAAA9jB,KAAKglB,IAAa7kB,OACdH,KAAK6D,kBACN7D,KAAK6D,iBAAyByM,WAE7BtQ,KAAKilB,oBACPjlB,KAAKklB,gBAAiB,EACxB,GACA,KACHrlB,EAAAA,EAAAA,GAAA,2BAE4B,KAC3ByG,QAAQC,UAAUC,MAAK,MACrBvG,EAAAA,EAAAA,GAAA6jB,GAAA9jB,KAAKmlB,IAAahlB,MAAM,GACxB,GACH,eAvDoBilB,GAAU,OAAArkB,EAAAA,EAAAA,GAAAzF,GAAA,oBAAV8pB,CAAUpjB,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,eAMtBqjB,GAAU,OAAAtkB,EAAAA,EAAAA,GAAAxF,GAAA,oBAAV8pB,CAAUrjB,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,sBAMVijB,GAAiB,OAAAlkB,EAAAA,EAAAA,GAAAvF,GAAA,2BAAjBypB,CAAiBjjB,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,mBAKYkjB,GAAc,OAAAnkB,EAAAA,EAAAA,GAAAtF,GAAA,wBAAdypB,CAAcljB,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,eAK/BsjB,GAAU,OAAAvkB,EAAAA,EAAAA,GAAArF,GAAA,oBAAV4pB,CAAUtjB,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,eAKVujB,GAAU,OAAAxkB,EAAAA,EAAAA,GAAApF,GAAA,oBAAV4pB,CAAUvjB,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,CA8B/ByB,MAAAA,GACE,OACEC,IAAAA,cAAC8hB,GAAgB,CACf5hB,YAAa5D,KAAK6D,iBAClBC,WAAY9D,KACZklB,eAAgBllB,KAAKklB,eACrBE,WAAYplB,KAAKolB,WACjBE,WAAYtlB,KAAKslB,WACjBD,WAAYrlB,KAAKqlB,WACjBE,WAAYvlB,KAAKulB,WACjBE,cAAezlB,KAAK0lB,mBACpBC,cAAe3lB,KAAK4lB,oBAG1B,EAGK,SAASJ,GAAiB5f,GAC/B,OACElC,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CAACC,YAAY,WAAcxB,GACxCA,EAAMwf,YACL1hB,IAAAA,cAACkgB,GAAa,CACZtc,UAAW,YACXzE,KAAM+C,EAAM0f,YAAc,UAC1B7d,QAAS7B,EAAM+f,cACfljB,SAAUmD,EAAMsf,gBAEftf,EAAMwf,YAGVxf,EAAMyf,YACL3hB,IAAAA,cAACkgB,GAAa,CACZ,eAAa,YACb/gB,KAAM+C,EAAM2f,YAAc,OAC1B9d,QAAS7B,EAAM6f,eAEd7f,EAAMyf,YAKjB,CA1BCQ,GAAA9B,KAAAnf,GAAAof,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAI,GAAAc,GAAAjB,GAAAC,GAAAK,GAAAY,GAAAhB,IAAAjgB,GAAA+e,GAAA9e,MAAAC,EAAAA,EAAAA,GAAA6gB,GAAA,CAjFAlrB,GAAc,oBAAqB,CAClCsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,0BACR,EAMCvK,KAAU,iBAKVA,KAAU,iBAMVA,GAAS,CAAEiI,KAAMuC,UAAU,wBAM3BxK,GAAS,CAAEiI,KAAMuC,UAAU,qBAK3BxK,KAAU,iBAKVA,KAAU,iBAKVC,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAAnF,GAAA2J,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAArG,GAAA2J,EAAAvD,IAAA,CAKzBnH,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAAlF,GAAA0J,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAApG,GAAA0J,EAAAvD,KAAA,GAAAwD,GAAAse,GAAAre,KAAAC,EAAAA,EAAAA,GAAAF,KA1CAvI,EAAAA,IAAmB8H,mBChC/C,SADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,2HAA+H,KAAQ,cAAe,MAAS,2BCM3T,GAAqB,SAA4Ba,EAAO9E,GAC1D,OAAoB,gBAAoBklB,GAAAC,GAAU,OAAS,CAAC,EAAGrgB,EAAO,CACpE9E,IAAKA,EACLyH,KAAM,KAEV,EAOA,SAJ2B,aAAiB,4GCC5C,MAAQ5N,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAErCG,IAAkBD,EAAAA,EAAAA,WAAmC,gBACrDD,IAAcC,EAAAA,EAAAA,WAAyC,WAAW,IAAAirB,GAAA,IAAA5qB,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAA8qB,GAAA,IAAAzpB,QAAAR,GAAA,IAAAb,QAAAyc,GAAA,IAAAzc,QA2CxE,MAAA+qB,WAIuBnpB,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA+oB,KACzC9oB,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAMAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAW,GAAA,SAMAjB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8C,GAAA,MAAAyZ,GAAA,KAKyC,OAEzC3a,EAAAA,EAAAA,GAAA,KAAA3B,IAAAuc,GAAA,MAAA/Y,GAAA,KAK8B,cAE9B7B,EAAAA,EAAAA,GAAA,KAAA1B,IAAAwD,GAAA,MAAAT,GAAA,SAMArB,EAAAA,EAAAA,GAAA,KAAAzB,IAAA+C,GAAA,MAAA0nB,GAAA,MAK6B,MAE7BhpB,EAAAA,EAAAA,GAAA,KAAAxB,IAAAyqB,GAAA,MAAA1oB,GAAA,SAMAP,EAAAA,EAAAA,GAAA,KAAAvB,IAAA+B,GAAA,MAAAO,GAAA,SAMAf,EAAAA,EAAAA,GAAA,KAAAtB,IAAAsC,GAAA,MAAAkoB,GAAA,SAQAlpB,EAAAA,EAAAA,GAAA,KAAArB,IAAAwqB,GAAA,MAAAC,GAAA,SAQAppB,EAAAA,EAAAA,GAAA,KAAApB,IAAAyqB,GAAA,MAAAC,GAAA,SAAA9mB,EAAAA,EAAAA,GAAA,6BAAA+mB,GAAA,MAMwBxZ,IACtBpN,KAAKD,MAAQqN,EACb,MASMyZ,EAAsB7P,GATLhX,KAAK8mB,aACxB9mB,KAAK8mB,aAAarE,QAChB,CAACsE,EAA8BC,IAAU,IACpCD,KACAC,EAAMjgB,UAEX,IAEF/G,KAAK+G,SACiD6H,QAAQ3B,GAC1C,iBAAfA,EAAKlN,OAA4BqN,EAAOuB,SAAS1B,EAAKlN,UAE/DE,EAAAA,EAAAA,GAAAkmB,GAAAnmB,KAAKinB,IAAqB9mB,KAAK0mB,EAAoB,KAGrDxpB,EAAAA,EAAAA,GAAA,KAAAnB,GAAAgrB,GAAA,QASA7pB,EAAAA,EAAAA,GAAA,KAAAya,IAAoBqP,GAAA,MAAG,CAACpgB,EAA+BhF,MACrD9B,EAAAA,EAAAA,GAAAkmB,GAAAnmB,KAAKonB,IAAoBjnB,KAAK,CAC5B4G,UACAhF,QACA,GACF,SAzGOA,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAMJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAKLjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAvF,GAAA,eAALuE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,YAOL+E,GAAO,OAAAhG,EAAAA,EAAAA,GAAAtF,GAAA,iBAAPsL,CAAO/E,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,SAOPa,GAAI,OAAA9B,EAAAA,EAAAA,GAAArF,GAAA,cAAJmH,CAAIb,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,aAMJS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAApF,GAAA,kBAAR8G,CAAQT,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,aAORqlB,GAAQ,OAAAtmB,EAAAA,EAAAA,GAAAnF,GAAA,kBAARyrB,CAAQrlB,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,aAMRG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAlF,GAAA,kBAARsG,CAAQH,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,YAMRO,GAAO,OAAAxB,EAAAA,EAAAA,GAAAjF,GAAA,iBAAPyG,CAAOP,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,YAQPslB,GAAO,OAAAvmB,EAAAA,EAAAA,GAAAhF,GAAA,iBAAPurB,CAAOtlB,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,iBAQP8kB,GAAY,OAAA/lB,EAAAA,EAAAA,GAAA/E,GAAA,sBAAZ8qB,CAAY9kB,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,CAyCrByB,MAAAA,GACE,OACEC,IAAAA,cAAC6jB,GAAiB,CAChBzjB,WAAY9D,KACZ4D,YAAa5D,KAAK6D,iBAClBkD,QAASiQ,GAAchX,KAAK+G,SAC5B7E,MAAOlC,KAAKkC,MACZH,KAAM/B,KAAK+B,KACXhC,MAAOC,KAAKD,MACZ8C,KAAM7C,KAAK6C,KACXJ,SAAUzC,KAAKyC,SACf4kB,SAAUrnB,KAAKqnB,SACfllB,SAAUnC,KAAKmC,SACfI,QAASvC,KAAKuC,QACdyB,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChBC,WAAYlE,KAAKkE,WACjBG,QAAQ,uBACR0D,SAAU/H,KAAKwnB,qBACfxO,eAAejY,EAAAA,EAAAA,GAAK+W,GAAL9X,MACfsnB,QAAStnB,KAAKsnB,QACdR,aAAc9mB,KAAK8mB,cAGzB,EAGF,SAASS,GAAkB3hB,GACzB,MAAM,QAAE0hB,GAAY1hB,GACbkJ,EAAQ2Y,IAAaxhB,EAAAA,EAAAA,WAA8BL,aAAK,EAALA,EAAO7F,QAAS,KACnEgH,EAASkS,IAAchT,EAAAA,EAAAA,UAC5BL,EAAMmB,SAAW,KAEZ2gB,EAAcC,IAAmB1hB,EAAAA,EAAAA,WACrCL,EAAMkhB,cAAgB,IAAI9b,KAAKzF,GAAMA,EAAEiM,QAEnCsV,EAAcc,IAAmB3hB,EAAAA,EAAAA,UAASL,EAAMkhB,eACvDjgB,EAAAA,EAAAA,YAAU,MACHqS,EAAAA,EAAAA,SAAQ4N,EAAclhB,EAAMkhB,gBAC/Ba,GAAiBb,GAAgB,IAAI9b,KAAKzF,GAAMA,EAAEiM,OAClDoW,EAAgBhiB,EAAMkhB,cACxB,GACC,CAAClhB,EAAMkhB,gBAEVjgB,EAAAA,EAAAA,YAAU,KAC8B,IAAAghB,GAAjC3O,EAAAA,EAAAA,SAAQnS,EAASnB,EAAMmB,WAC1BkS,EAAWrT,EAAMmB,SAAW,IACT,QAAnB8gB,EAAAjiB,EAAMoT,qBAAa,IAAA6O,GAAnBA,EAAAzmB,KAAAwE,EAAsBA,EAAMmB,SAAW,GAAInB,EAAM7D,MACnD,GACC,CAACgF,EAASnB,EAAOA,EAAMmB,WAE1BF,EAAAA,EAAAA,YAAU,KACR4gB,GAAU7hB,aAAK,EAALA,EAAO7F,QAAS,GAAG,GAC5B,CAAC6F,EAAM7F,QAEV,MAAM+nB,EAAmBA,CACvBljB,EACAqI,KACG,IAAAmM,EACHxU,EAAEyU,kBACF,IAAIyG,EAAgC,GAIpC,GAHIlb,EAAEiD,OAAOqJ,UACX4O,EAAW,IAAIhR,EAAQ7B,EAAKlN,SAEzB6E,EAAEiD,OAAOqJ,SAAV,MAAqBpC,GAAAA,EAAQH,SAAS1B,EAAKlN,OAAQ,CACrD+f,EAAW,IAAIhR,GACf,MAAMyS,EAAQzB,EAAS0B,WAAWuG,GAAMA,GAAK9a,EAAKlN,QAClD+f,EAASkI,OAAOzG,EAAO,EACzB,CACAkG,EAAU3H,GACI,QAAd1G,EAAAxT,EAAMmC,gBAAQ,IAAAqR,GAAdA,EAAAhY,KAAAwE,EAAiBka,EAAS,EAoCtBmI,EAAgBriB,IACpB,MAAM,KAAE7D,EAAI,SAAEU,GAAW,EAAK,SAAE4kB,GAAW,GAAUzhB,EACrD,OACElC,IAAAA,cAAAA,IAAAA,SAAA,KACGqD,EAAQiE,KAAKiC,GACZvJ,IAAAA,cAAA,SACE8N,IAAKvE,EAAKlN,MACVuH,UACE7E,GAAYwK,SAAAA,EAAMxK,SACd8E,IAAW,CACT2gB,sBAAsB,EACtBC,2BAA4Bd,IAE9B9f,IAAW,CACT6gB,cAAc,EACdC,mBAAoBhB,KAI5B3jB,IAAAA,cAAA,OAAK4D,UAAWC,IAAW,CAAE+gB,UAAU,KACrC5kB,IAAAA,cAAA,SACEb,KAAK,WACL9C,MAAOkN,EAAKlN,MACZgC,KAAMA,EACNwmB,eAAgBzZ,aAAM,EAANA,EAAQH,SAAS1B,EAAKlN,OACtC0C,SAAUA,IAAYwK,aAAI,EAAJA,EAAMxK,UAC5BsF,SAAWnD,GAAMkjB,EAAiBljB,EAAGqI,MAGzCvJ,IAAAA,cAAA,OAAK4D,UAAWC,IAAW,CAAEihB,SAAS,KACnCvb,EAAK1E,MACJ7E,IAAAA,cAAC1I,IAAWmM,EAAAA,EAAAA,GAAA,GACL8F,EAAK1E,KAAI,CACdf,MAAO,CACLmS,SAAU0N,EAAW,OAAS,WAIpC3jB,IAAAA,cAAA,OAAK4D,UAAWC,IAAW,CAAEkhB,MAAM,KAChCxb,EAAK/K,OAAS+K,EAAKlN,WAK3B,EAID2oB,EAAgB9iB,IAAyB,IAAA+iB,EAC7C,OACEjlB,IAAAA,cAAA,OACE8D,MAAO,CACL+b,SAAU,WACV1X,QAAS,OACT+c,WAAY,SACZzd,UAAW,SAGbzH,IAAAA,cAAA,OAAK4D,UAAU,kBAAkBD,KAAK,oBACtB,QADwCshB,EACrD/iB,EAAMmB,eAAO,IAAA4hB,OAAA,EAAbA,EAAe3d,KAAKiC,IACnB,MAAMxK,EAAWwK,EAAKxK,UAAYmD,EAAMnD,SACxC,OACEiB,IAAAA,cAAA,SACE8N,IAAKvE,EAAKlN,MACVuH,UAAWC,IAAW,CACpBshB,eAAe,EACfC,sBAAuBrmB,EACvBsmB,mBAAoBja,EAAOH,SAAS1B,EAAKlN,SAE3CsH,KAAK,mBAEL3D,IAAAA,cAAA,QACE8D,MAAO,CAAEqb,MAAO5V,EAAK+b,eACrB1hB,UAAWC,IAAW,CACpB0hB,sBAAsB,EACtBC,6BAA8BzmB,EAC9B0mB,mBAAoBra,EAAOH,SAAS1B,EAAKlN,UAG3C2D,IAAAA,cAAA,SACEqE,SAAWnD,IAAOnC,GAAYqlB,EAAiBljB,EAAGqI,GAClDxK,SAAUA,EACV8lB,eAAgBzZ,aAAM,EAANA,EAAQH,SAAS1B,EAAKlN,OACtCuH,UAAWC,IAAW,CACpB6hB,eAAe,EACfC,sBAAuB5mB,IAEzBI,KAAK,WACLyX,GAAIrN,EAAKlN,QAEX2D,IAAAA,cAAA,QACE4D,UAAWC,IAAW,CAAE+hB,eAAe,IACvC9hB,MACEsH,EAAOH,SAAS1B,EAAKlN,QAAUkN,EAAK+b,cAChC,CACEO,WAAYtc,EAAK+b,cACjBQ,YAAavc,EAAK+b,eAEpB,CAAC,KAKXtlB,IAAAA,cAAA,QAAM4D,UAAWC,IAAW,CAAEkiB,cAAc,KAC1C/lB,IAAAA,cAAA,YAzICuJ,KACf,IAAIyc,EAAW,KACf,MAAM,KAAEnhB,GAAS0E,EACjB,GAAI1E,EACF,GAAI,WAAYA,EAAM,CACpB,MAAMohB,EAAkB,IACnBphB,EACHqhB,OAAQrhB,EAAKqhB,OACbC,SAAU,CACR9P,YAAa,MACbC,cAAe,aACZzR,EAAKshB,WAGZH,EAAWnhB,GACT7E,IAAAA,cAAC1I,GAAiB2uB,EAEtB,MACED,EAAWnhB,GACT7E,IAAAA,cAAC1I,IAAWmM,EAAAA,EAAAA,GAAA,GACLoB,EAAI,CACTf,MAAO,CACLmS,SAAU,OACVI,YAAa,MACbC,cAAe,cAMzB,OAAO0P,CAAQ,EA4GEI,CAAQ7c,GACRA,EAAK/K,QAGJ,KAIV,EAGJ6nB,EAAkBnkB,IACtB,MAAMokB,GAAgBrjB,EAAAA,EAAAA,UAAQ,IACrBmgB,aAAY,EAAZA,EAAc9b,KAAKmO,IACxB,MAAM4G,EAAa/I,GAAcmC,EAAOpS,SAClCkjB,EAAiBlK,EAAW/U,KAAKkf,GAAMA,EAAEnqB,QACzCoqB,GAAeC,EAAAA,EAAAA,cAAatb,EAAQmb,GACpCI,EACJF,EAAaxoB,SAAWsoB,EAAetoB,OACnC,MACAwoB,EAAaxoB,OAAS,GACpBwoB,EAAaxoB,SAAWsoB,EAAetoB,OACvC,OACA,OACR,MAAO,IACFwX,EACHpS,QAASgZ,EACTsK,YACA9Y,KAAM0Y,EACP,KAEF,CAACnD,EAAclhB,EAAM7F,QACxB,OACE2D,IAAAA,cAAA,OAAK4D,UAAU,oBACZ,IACA0iB,aAAa,EAAbA,EAAehf,KAAK+c,GACnBrkB,IAAAA,cAAA,OAAK8N,IAAKuW,EAAEvW,KACV9N,IAAAA,cAAA,OACE+D,QAASA,KACP,GAAIigB,EAAa/Y,SAASoZ,EAAEvW,KAAM,CAChC,MAAM8Y,EAAU5C,EAAa9Y,QAAQ4C,GAAQA,IAAQuW,EAAEvW,MACvDmW,EAAgB2C,EAClB,MACE3C,EAAgB,IAAID,EAAcK,EAAEvW,KACtC,EAEFlK,UAAWC,IAAW,oBAEtB7D,IAAAA,cAAA,QAAM4D,UAAU,iBACd5D,IAAAA,cAAC6mB,GAAkB,CACjBC,OAAQ9C,EAAa/Y,SAASoZ,EAAEvW,KAAO,GAAK,EAC5CiZ,IAAI,MAGR/mB,IAAAA,cAAA,SACE+D,QAAU7C,IACRA,EAAEyU,iBAAiB,EAErB/R,UAAWC,IAAW,CACpBshB,eAAe,EACfE,mBAAoC,QAAhBhB,EAAEsC,aAGxB3mB,IAAAA,cAAA,QACE4D,UAAWC,IAAW,CACpB0hB,sBAAsB,EACtBE,mBAAoC,QAAhBpB,EAAEsC,UACtBK,uBAAwC,SAAhB3C,EAAEsC,aAG5B3mB,IAAAA,cAAA,SACE4D,UAAWC,IAAW,CACpB6hB,eAAe,IAEjBrhB,SAAWnD,IAET,GADAA,EAAEyU,kBACkB,QAAhB0O,EAAEsC,UAAqB,KAAAM,EACzB,MAAM7K,EAAWhR,EAAOF,QACrB5M,IAAO+lB,EAAExW,KAAK5C,SAAS3M,KAEZ,QAAd2oB,EAAA/kB,EAAMmC,gBAAQ,IAAA4iB,GAAdA,EAAAvpB,KAAAwE,EAAiBka,EACnB,KAAO,KAAA8K,EACS,QAAdA,EAAAhlB,EAAMmC,gBAAQ,IAAA6iB,GAAdA,EAAAxpB,KAAAwE,GAAiBilB,EAAAA,EAAAA,MAAK,IAAI/b,KAAWiZ,EAAExW,OACzC,GAEF1O,KAAK,aAEPa,IAAAA,cAAA,QAAM4D,UAAWC,IAAW,CAAE+hB,eAAe,OAG/C5lB,IAAAA,cAAA,QAAM4D,UAAWC,IAAW,CAAEkiB,cAAc,KACzC1B,EAAEhmB,QAIT2B,IAAAA,cAAA,OACE4D,UAAWC,IAAW,mBAAoB,CACxC,2BAA4BmgB,EAAa/Y,SAASoZ,EAAEvW,QAGtD9N,IAAAA,cAACglB,GAAYvhB,EAAAA,EAAAA,GAAA,GACFvB,EAAO,CAAAmB,QAASghB,EAAEhhB,eAK/B,EAGV,OACErD,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CAACC,YAAY,WAAexB,GAC3B,QAAdA,EAAM/C,KACLa,IAAAA,cAACukB,EAAiBriB,GAChB0hB,GAAW1hB,EAAMkhB,aACnBpjB,IAAAA,cAACqmB,EAAmBnkB,GAEpBlC,IAAAA,cAACglB,GAAYvhB,EAAAA,EAAAA,GAAA,GAAUvB,EAAO,CAAAmB,QAASA,KAI/C,CAlTC+jB,GAAA1E,KAAAxhB,GAAApH,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAyZ,GAAAC,GAAA/Y,GAAAC,GAAAT,GAAAC,GAAA0nB,GAAAC,GAAA1oB,GAAAC,GAAAO,GAAAC,GAAAkoB,GAAAC,GAAAC,GAAAC,GAAAC,GAAAM,GAAA8D,GAAAnE,GAAAM,GAAAE,GAAA4D,GAAA7D,IAAAriB,GAAAohB,GAAAnhB,MAAAC,EAAAA,EAAAA,GAAA8lB,GAAA,CA7IAnwB,GAAc,cAAe,CAC5BsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,4BACR,EAKCvK,KAAU,WAMVA,KAAU,YAKVA,GAAS,CAAE0K,WAAW,IAAQ,YAO9B1K,GAAS,CAAE0K,WAAW,IAAQ,cAO9B1K,KAAU,WAMVA,GAAS,CAAEiI,KAAMuC,UAAU,eAO3BxK,GAAS,CAAEiI,KAAMuC,UAAU,eAM3BxK,GAAS,CAAEiI,KAAMuC,UAAU,eAM3BxK,GAAS,CAAE0K,WAAW,IAAQ,cAM9B1K,GAAS,CACRiI,KAAMuC,UACN,cAMDxK,GAAS,CACR0K,WAAW,IACX,mBAMDzK,GAAM,CAAEgI,KAAM,WAAW,wBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA9E,GAAAsJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAhG,GAAAsJ,EAAAvD,IAAA,CAuBzBnH,GAAM,CAAEgI,KAAM,mBAAmB,uBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA7E,GAAAqJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAA/F,GAAAqJ,EAAAvD,KAAA,GAAAwD,GAAAsS,GAAArS,KAAAC,EAAAA,EAAAA,GAAAF,KAnGbvI,EAAAA,IAAmB8H,oBClEnC,IAAKkmB,GAAC,SAADA,GAAC,OAADA,EAAC,gBAADA,CAAC,MAIb,MAQaC,GAAK,0JCmBlBC,EAAAA,GAAAA,qBAAoBD,GDjBG,CAAEE,GAVN,CACjBC,OAAQ,8BASmBC,GANV,CACjBD,OAAQ,sBCwBV,MAAQ1wB,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAErCC,IAAcC,EAAAA,EAAAA,WAAyC,WAEvD2oB,IAAgB3oB,EAAAA,EAAAA,WAA+B,aAE/CswB,IAActwB,EAAAA,EAAAA,WAClB,UACA,CACEuwB,eAAgB,gBAChBC,kBAAmB,mBACnBC,gBAAiB,mBAIfxwB,IAAkBD,EAAAA,EAAAA,WAAmC,gBAEpD,SAAS0wB,GACd/lB,EACAgmB,EACAC,GAEA,MAAO,KAAM,IAAAC,EACX,MAAMC,EAAanmB,SAAiB,QAAZkmB,EAALlmB,EAAO9B,kBAAU,IAAAgoB,GAAO,QAAPA,EAAjBA,EAAmB/rB,aAAK,IAAA+rB,OAAA,EAAxBA,EAA0B9gB,KAC1ChJ,GAAWA,EAAE4pB,EAAW7pB,QAEyB,IAAAiqB,EAApD,OAAI,IAAIC,IAAIF,GAAYjpB,OAASipB,EAAWpqB,QAErB,QAAnBqqB,EAACJ,EAAWrpB,eAAO,IAAAypB,OAAA,EAAnBA,EAA6BE,SAC7BL,EAAEZ,GAAEI,OAAQ,CAAEtpB,KAAM6pB,EAAW1pB,OAAS0pB,EAAW7pB,OAGhD,EAAE,CAEb,CA4BO,MAAMoqB,GAAeA,CAC1BvxB,EACA6b,IAEwB,mBAAb7b,EACFA,KAAY6b,GAEd7b,EAET,IAAAwxB,GAAA,IAAA9wB,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAgxB,GAAA,IAAA3vB,QAAAT,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAixB,GAAA,IAAAjxB,QAAAkxB,GAAA,IAAAlxB,QAKA,MAAAmxB,WAI8BvvB,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAivB,KAChDhvB,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAIAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAIAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAC,GAAA,SAQAP,EAAAA,EAAAA,GAAA,KAAA5B,IAAAoC,GAAA,MAAAS,GAAA,SAQAjB,EAAAA,EAAAA,GAAA,KAAA3B,IAAA6C,GAAA,MAAAH,GAAA,SAMAf,EAAAA,EAAAA,GAAA,KAAA1B,IAAA0C,GAAA,MAAAouB,GAAA,SAWApvB,EAAAA,EAAAA,GAAA,KAAAzB,IAAA8wB,GAAA,MAAAC,GAAA,SAWAtvB,EAAAA,EAAAA,GAAA,KAAAxB,IAAA+wB,GAAA,MAAAC,GAAA,SAWAxvB,EAAAA,EAAAA,GAAA,KAAAvB,IAAAgxB,GAAA,MAAAC,GAAA,SAWA1vB,EAAAA,EAAAA,GAAA,KAAAtB,IAAAixB,GAAA,MAAA1U,GAAA,SAAAjb,EAAAA,EAAAA,GAAA,KAAArB,IAAAuc,GAAA,MAAA3Y,GAAA,SAWAvC,EAAAA,EAAAA,GAAA,KAAApB,IAAA6D,GAAA,MAAAmtB,GAAA,SAMA5vB,EAAAA,EAAAA,GAAA,KAAAnB,IAAAgxB,GAAA,MAAAC,GAAA,SAMA9vB,EAAAA,EAAAA,GAAA,KAAAivB,IAAUc,GAAA,MAAIrtB,KACZE,EAAAA,EAAAA,GAAAosB,GAAArsB,KAAKqtB,IAAUltB,KAAKJ,EAAM,KAG5B1C,EAAAA,EAAAA,GAAA,KAAAkvB,IAAiBxsB,KACfE,EAAAA,EAAAA,GAAAosB,GAAArsB,KAAKstB,IAAantB,KAAKJ,EAAM,KAC7BF,EAAAA,EAAAA,GAAA,gCAEyBiP,IAAoC,IAAAye,EAC7DvtB,KAAKD,MAAQ+O,GACb7O,EAAAA,EAAAA,GAAAosB,GAAArsB,KAAKE,IAAaC,KAAK2O,GACF,QAArBye,EAAAvtB,KAAK6D,wBAAgB,IAAA0pB,GAArBA,EAAuB9d,oBAAoB,GAC5C,SA1GoB1N,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAIJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,aAOjBG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAvF,GAAA,kBAAR2G,CAAQH,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,UAQRjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAtF,GAAA,eAALsE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,YAMLO,GAAO,OAAAxB,EAAAA,EAAAA,GAAArF,GAAA,iBAAP6G,CAAOP,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,qBAQPwrB,GAAgB,OAAAzsB,EAAAA,EAAAA,GAAApF,GAAA,0BAAhB6xB,CAAgBxrB,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,yBAWhByrB,GAAoB,OAAA1sB,EAAAA,EAAAA,GAAAnF,GAAA,8BAApB6xB,CAAoBzrB,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,kBAWpB0rB,GAAa,OAAA3sB,EAAAA,EAAAA,GAAAlF,GAAA,uBAAb6xB,CAAa1rB,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,sBAWb2rB,GAAiB,OAAA5sB,EAAAA,EAAAA,GAAAjF,GAAA,2BAAjB6xB,CAAiB3rB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,aAWjB4U,GAAQ,OAAA7V,EAAAA,EAAAA,GAAAhF,GAAA,kBAAR6a,CAAQ5U,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,CA+BjByB,MAAAA,GACE,OACEC,IAAAA,cAACkqB,GAAwB,CACvBhqB,YAAa5D,KAAK6D,iBAClBC,WAAY9D,KACZ+B,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZC,SAAUnC,KAAKmC,SACfyU,SAAU5W,KAAK4W,SACf7W,MAAOC,KAAKD,MACZoE,cAAenE,KAAKmE,cACpBkN,cAAc,EACdrN,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChBC,WAAYlE,KAAKkE,WACjBG,QAAQ,0BACR0D,SAAU/H,KAAK6tB,wBACfrC,eAAgBxrB,KAAK6tB,wBACrBtrB,QAASvC,KAAKuC,QACdurB,OAAO/sB,EAAAA,EAAAA,GAAKurB,GAALtsB,MACP+tB,UAAUhtB,EAAAA,EAAAA,GAAKwrB,GAALvsB,MACV0tB,cAAe1tB,KAAK0tB,cACpBF,iBAAkBxtB,KAAKwtB,iBACvBG,kBAAmB3tB,KAAK2tB,kBACxBF,qBAAsBztB,KAAKytB,sBAGjC,EAGK,SAASG,GAAyBhoB,GACvC,MAAM,IAAQooB,EAAAA,GAAAA,gBAAe9C,KACvB,MACJnrB,EAAK,cACL2tB,GAAgB,EAAK,iBACrBF,GAAmB,EAAK,qBACxBC,GAAuB,EAAK,kBAC5BE,GAAoB,GAClB/nB,EACEqoB,GAAiBnoB,EAAAA,EAAAA,QAAuB,OACvCgJ,EAAQ2Y,IAAaxhB,EAAAA,EAAAA,UAAkClG,GAAS,KAEhEmuB,EAAQC,IAAaloB,EAAAA,EAAAA,UAA+B,IAErDmoB,GAAkBznB,EAAAA,EAAAA,UACtB,IAAMunB,EAAOljB,KAAKqjB,IAAeC,EAAAA,EAAAA,MAAKD,EAAO,uBAC7C,CAACH,KAQHrnB,EAAAA,EAAAA,YAAU,MACHqS,EAAAA,EAAAA,SAAQnZ,EAAO+O,IAClB2Y,EAAU1nB,GAAS,GACrB,GACC,CAACA,KAEJ8G,EAAAA,EAAAA,YAAU,KACR,GAAIjB,EAAMgR,SAAU,CAClB,MAAM2X,GAAuCC,EAAAA,EAAAA,SAC3C,IAAIzd,MAAMnL,EAAMgR,WAGlBuX,EACEI,EAAevjB,KAAKqjB,IAClB,MAAM,WAAEzC,EAAa,CAAC,GAAMyC,EAC5B,GAAIzC,EAAWM,OAAQ,CACrB,IAAIpb,EAAuB,CACzB6a,GAAkB/lB,EAAOgmB,EAAYC,IAQvC,OANID,EAAWpoB,YACbsN,EAAkB,KACb0d,EAAAA,EAAAA,SAAQ,IAAIzd,MAAM6a,EAAWpoB,eAC7BsN,IAGA,IACFud,EACHzC,WAAY,IACPyC,EAAMzC,WACTpoB,UAAWsN,GAGjB,CACE,OAAOud,CACT,IAGN,IACC,CAACzoB,EAAMgR,SAAUhR,EAAM9B,aAE1B,MAeMuP,GAAqBnJ,EAAAA,EAAAA,cACzB,CAACnK,EAA2CwhB,KAAkB,IAAAnI,EAC9C,QAAdA,EAAAxT,EAAMmC,gBAAQ,IAAAqR,GAAdA,EAAAhY,KAAAwE,EACEkJ,EAAO9D,KAAI,CAACiC,EAAM8a,IACZA,IAAMxG,EACDxhB,EAAMqN,OAAOmC,UAEftC,IAEV,GAEH,CAACrH,EAAOkJ,IAGJ2f,GAAmBvkB,EAAAA,EAAAA,cACtBqX,IAAkB,IAAAoJ,EAAA+D,EACjB,MAAMC,EAAY7f,EAAOF,QAAO,CAACpJ,EAAGuiB,IAAMA,IAAMxG,IAChDkG,EAAUkH,GACI,QAAdhE,EAAA/kB,EAAMmC,gBAAQ,IAAA4iB,GAAdA,EAAAvpB,KAAAwE,EAAiB+oB,GACH,QAAdD,EAAA9oB,EAAMmoB,gBAAQ,IAAAW,GAAdA,EAAAttB,KAAAwE,EAAiB,CACfwH,OAAQ0B,EAAO4J,MAAK,CAAClT,EAAGuiB,IAAMA,IAAMxG,IACpCA,SACA,GAEJ,CAAC3b,EAAOkJ,IAEJ8f,GAAoBjoB,EAAAA,EAAAA,UACxB,IAAMwlB,GAAawB,EAAmB,CAAC7e,KACvC,CAAC6e,EAAmB7e,IAEhB+f,GAAgBloB,EAAAA,EAAAA,UACpB,IAAMwlB,GAAauB,EAAe,CAAC5e,KACnC,CAAC4e,EAAe5e,IAGlB,OACEpL,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CACdC,YAAY,WACPxB,EAAK,CACVpC,UAtDa8M,KACf,MAAMwe,EAAcb,EAAejtB,QAC7B+tB,EAAQD,aAAW,EAAXA,EAAaE,iBACzB,iBAEI9e,EAAmD,GAMzD,OALI6e,EAAMptB,QACRotB,EAAMnoB,SAASqG,IACbiD,EAAOrD,KAAKI,EAAKqD,WAAW,IAGzBJ,EAAO+e,MAAM7pB,SAAW,GAAK,UAAU,IA6C5C1B,IAAAA,cAAA,OAAK4D,UAAU,uBAAuBxG,IAAKmtB,GACxCnf,EAAO9D,KAAI,CAACjL,EAAOwhB,KAClB,MAAM2N,EAAgB/C,GAAaqB,EAAkB,CAACztB,EAAOwhB,IACvD4N,EAAoBhD,GAAasB,EAAsB,CAC3D1tB,EACAwhB,IAEF,OACE7d,IAAAA,cAAA,OAAK4D,UAAU,oBAAoBkK,IAAK+P,KACpC5Q,EAAAA,EAAAA,SAAQud,IACRxqB,IAAAA,cAAC6nB,GAAW,CACV/X,OAAO,WACPU,UAAW,CACTI,cAAe,MACfsU,WAAY,cAEdthB,UAAU,eACVwH,OAAQ/O,EACRqU,yBAAyB,EAGzBoX,eAAiBzrB,GAAUsT,EAAmBtT,EAAOwhB,IAErD7d,IAAAA,cAACmT,GAAAA,uBAAsB,CACrBD,SACa,IAAV2K,EACG2M,EACAE,EAGNvU,KAAM9Z,KAENmvB,GACAxrB,IAAAA,cAAA,OACE4D,UAAWC,IAAW,qBAAsB,CAC1C,8BAA+B4nB,KAGjCzrB,IAAAA,cAAC1I,GAAW,CACVsN,IAAI,UACJ8mB,SAAS,mBACT7mB,KAAK,MACLjB,UAAWC,IAAW,aAAc,CAClC,sBAAuB4nB,IAEzB1nB,QAASA,IAAMgnB,EAAiBlN,OAMtC,IAGV7d,IAAAA,cAAA,OACE4D,UAAWC,IAAW,CACpB,2BAA4BqnB,KAG9BlrB,IAAAA,cAACkgB,GAAa,CACZtc,UAAWC,IAAW,UAAW,CAC/B,eAAgBsnB,EAChB,mBAAoBD,IAEtBrmB,KAAM,CACJ6mB,SAAU,mBACV7mB,KAAM,MACND,IAAK,WAEPzF,KAAK,SACLwsB,YAAa,CACXhV,MAAO,OACPwI,MAAO+L,EAAoB,6BAA+B,IAE5DnnB,QA/KY6nB,KAAM,IAAAC,EACf,QAAXA,EAAA3pB,EAAMkoB,aAAK,IAAAyB,GAAXA,EAAAnuB,KAAAwE,EAAc,CAAEwH,OAAQ,CAAC,EAAGmU,MAAOzS,EAAOnN,SAC1C8lB,EAAU3Y,EAAO8Q,OAAO,CAAC,GAAG,GA8KrB,QAKLlc,IAAAA,cAAA,QAAM3B,KAAK,aAGjB,CA7MCytB,GAAAhD,KAAA5nB,GAAApH,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAS,GAAAC,GAAAH,GAAAC,GAAAouB,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA1U,GAAAC,GAAA3Y,GAAAM,GAAA2E,GAAA/E,GAAAmtB,GAAAI,GAAAoC,GAAAvC,GAAAC,GAAAG,GAAAoC,GAAAtC,IAAAtoB,GAAAsnB,GAAArnB,MAAAC,EAAAA,EAAAA,GAAAwqB,GAAA,CAhJA70B,GAAc,uBAAwB,CACrCsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,6BACR,EAKCvK,KAAU,WAIVA,KAAU,YAIVA,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,GAAS,CACR0K,WAAW,IACX,YAMD1K,GAAS,CAAE0K,WAAW,IAAQ,cAM9B1K,GAAS,CACR0K,WAAW,IACX,uBASD1K,GAAS,CACR0K,WAAW,IACX,2BASD1K,GAAS,CACR0K,WAAW,IACX,oBASD1K,GAAS,CACR0K,WAAW,IACX,wBASD1K,GAAS,CACR0K,WAAW,IACX,eAGDzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA/E,GAAAuJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAjG,GAAAuJ,EAAAvD,IAAA,CAMzBnH,GAAM,CAAEgI,KAAM,YAAY,aAAA0C,IAAAxE,EAAAA,EAAAA,GAAA9E,GAAAsJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAhG,GAAAsJ,EAAAvD,IAAA,CAM1BnH,GAAM,CAAEgI,KAAM,eAAe,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA7E,GAAAqJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAA/F,GAAAqJ,EAAAvD,KAAA,GAAAwD,GAAA+mB,GAAA9mB,KAAAC,EAAAA,EAAAA,GAAAF,KA/FFvI,EAAAA,IAAmB8H,0FChGjD,MAAQpK,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAErCC,IAAcC,EAAAA,EAAAA,WAAyC,WACvD00B,IAAe10B,EAAAA,EAAAA,WACnB,WACA,CACE8M,SAAU,WAEZ,IAAA6nB,GAAA,IAAAt0B,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAw0B,GAAA,IAAAnzB,QAAAozB,GAAA,IAAAz0B,QAAA00B,GAAA,IAAA10B,QAAAQ,GAAA,IAAAR,QAAA20B,GAAA,IAAA30B,QA2BF,MAAA40B,WAI4Bne,EAAAA,iBAAwC5U,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAyyB,KAClExyB,EAAAA,EAAAA,GAAA,KAAA/B,GAAAgD,GAAA,KAIyB,MAEzBjB,EAAAA,EAAAA,GAAA,KAAA9B,IAAAgD,GAAA,MAAAC,GAAA,SAMAnB,EAAAA,EAAAA,GAAA,KAAA7B,IAAAiD,GAAA,MAAAO,GAAA,SAQA3B,EAAAA,EAAAA,GAAA,KAAA5B,IAAAwD,GAAA,MAAAH,GAAA,SAQAzB,EAAAA,EAAAA,GAAA,KAAA3B,IAAAqD,GAAA,MAAAqW,GAAA,SAQA/X,EAAAA,EAAAA,GAAA,KAAA1B,IAAA0Z,GAAA,MAAA6a,GAAA,KAMgC,MAEhC7yB,EAAAA,EAAAA,GAAA,KAAAzB,IAAAu0B,GAAA,MAAAC,GAAA,SAKA/yB,EAAAA,EAAAA,GAAA,KAAAyyB,IAAaO,GAAA,MAAItwB,IACfC,KAAKD,MAAQA,CAAK,KAEpB1C,EAAAA,EAAAA,GAAA,KAAA0yB,IAA0BhwB,KACxBE,EAAAA,EAAAA,GAAA4vB,GAAA7vB,KAAKswB,IAAQnwB,KAAKH,KAAK2V,KAAO5V,aAAK,EAALA,EAAO4V,OAAS5V,EAAM,KAGtD1C,EAAAA,EAAAA,GAAA,KAAAxB,GAAA00B,GAAA,QAKAlzB,EAAAA,EAAAA,GAAA,KAAA2yB,IAAaQ,GAAA,MAAIzwB,KACfE,EAAAA,EAAAA,GAAA4vB,GAAA7vB,KAAKywB,IAAQtwB,KAAKH,KAAK2V,KAAO5V,aAAK,EAALA,EAAO4V,OAAS5V,EAAM,GACpD,UA3DOA,GAAK,OAAAgB,EAAAA,EAAAA,GAAAzF,GAAA,eAALyE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,gBAMLQ,GAAW,OAAAzB,EAAAA,EAAAA,GAAAxF,GAAA,qBAAXiH,CAAWR,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,cAQXY,GAAS,OAAA7B,EAAAA,EAAAA,GAAAvF,GAAA,mBAAToH,CAASZ,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,cAQTW,GAAS,OAAA5B,EAAAA,EAAAA,GAAAtF,GAAA,mBAATkH,CAASX,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,SAQT2T,GAAI,OAAA5U,EAAAA,EAAAA,GAAArF,GAAA,cAAJia,CAAI3T,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,iBAQJ0uB,GAAY,OAAA3vB,EAAAA,EAAAA,GAAApF,GAAA,sBAAZ+0B,CAAY1uB,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,CAuBrByB,MAAAA,GACE,OACEC,IAAAA,cAACitB,GAAsB,CACrB5wB,MAAOC,KAAKD,MACZyC,YAAaxC,KAAKwC,YAClBI,UAAW5C,KAAK4C,UAChBD,UAAW3C,KAAK2C,UAChB+tB,aAAc1wB,KAAK0wB,aACnB3oB,UAAUhH,EAAAA,EAAAA,GAAK+uB,GAAL9vB,MACVoe,UAAUrd,EAAAA,EAAAA,GAAKivB,GAALhwB,MACV4wB,mBAAmB7vB,EAAAA,EAAAA,GAAKgvB,GAAL/vB,OAGzB,EASK,SAAS2wB,GAAuB/qB,GACrC,MAAM,YACJpD,EAAW,UACXI,EAAS,UACTD,EAAS,aACT+tB,EAAY,kBACZE,EAAiB,SACjB7oB,EAAQ,SACRqW,GACExY,GAEG7F,EAAOiG,IAAYC,EAAAA,EAAAA,aAE1BY,EAAAA,EAAAA,YAAU,KACRb,EAASJ,EAAM7F,MAAM,GACpB,CAAC6F,EAAM7F,QAEV,MAAM8wB,GAAqBlqB,EAAAA,EAAAA,UAAQ,IAC1B+pB,GACH9P,EAAAA,EAAAA,UAASgQ,EAAoBF,GAC7BE,GACH,CAACF,IAEErS,EAAeA,KACnBD,SAAAA,EAAWre,EAAO,EASpB,OACE2D,IAAAA,cAACisB,GAAY,CACX9sB,KAAK,OAEL,aAAYD,EACZD,UAAWA,EACXH,YAAaA,EACbzC,MAAOA,EACPgI,SAdkBnD,IACpBoB,EAASpB,EAAEwI,QACXrF,SAAAA,EAAWnD,EAAEwI,QACbyjB,SAAAA,EAAqBjsB,EAAEwI,OAAO,EAY5B0jB,UAAYlsB,GAAgB,UAAVA,EAAE4M,KAAmB6M,KAEvC3a,IAAAA,cAAC1I,GAAW,CACV+1B,KAAK,SACLzpB,UAAU,gBACVgB,IAAI,OACJC,KAAK,SACLC,MAAM,WACNf,QAASA,IAAM4W,IACf5V,YAAc7D,GAAMA,EAAE8D,mBAI9B,CA/DCsoB,GAAAf,KAAArrB,GAAAtG,GAAAC,GAAAC,GAAAC,GAAAO,GAAAC,GAAAH,GAAAC,GAAAqW,GAAAC,GAAA6a,GAAAC,GAAAC,GAAAE,GAAAW,GAAAZ,GAAAE,GAAAE,GAAAS,GAAAV,IAAA1rB,GAAA8qB,GAAA7qB,MAAAC,EAAAA,EAAAA,GAAAgsB,GAAA,CApFAr2B,GAAc,YAAa,CAC1BsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,0BACR,EAKCvK,KAAU,YAMVA,KAAU,kBAMVA,GAAS,CACRiI,KAAMuC,UACN,gBAMDxK,GAAS,CACRiI,KAAMuC,UACN,gBAMDxK,GAAS,CACRiI,KAAMuC,UACN,WAMDxK,GAAS,CACRiI,KAAMwC,SACN,mBAMDxK,GAAM,CAAEgI,KAAM,WAAW,WAAA0C,IAAAxE,EAAAA,EAAAA,GAAAnF,GAAA2J,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAArG,GAAA2J,EAAAvD,IAAA,CAYzBnH,GAAM,CAAEgI,KAAM,WAAW,WAAA0C,IAAAxE,EAAAA,EAAAA,GAAAlF,GAAA0J,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAApG,GAAA0J,EAAAvD,KAAA,GAAAwD,GAAAwqB,GAAAvqB,KAAAC,EAAAA,EAAAA,GAAAF,KA5DAsM,EAAAA,mBAAgB/M,oBCxDrC,IAAKkmB,GAAC,SAADA,GAAC,OAADA,EAAC,YAADA,EAAC,cAADA,EAAC,0BAADA,EAAC,wCAADA,CAAC,MAOb,MAcaC,GAAK,yCCrBX,IAAKiG,GAAM,SAANA,GAAM,OAANA,EAAM,cAANA,EAAM,UAANA,EAAM,YAANA,EAAM,gBAANA,EAAM,YAANA,EAAM,gBAANA,EAAM,oBAANA,EAAM,YAANA,CAAM,MAWX,MAAMC,GAGT,CACF,CAACD,GAAOE,OAAQ,CACdxO,MAAO,2BACP0G,WAAY,gCACZC,YAAa,mCAEf,CAAC2H,GAAOG,KAAM,CACZzO,MAAO,yBACP0G,WAAY,8BACZC,YAAa,iCAEf,CAAC2H,GAAOI,MAAO,CACb1O,MAAO,0BACP0G,WAAY,+BACZC,YAAa,kCAEf,CAAC2H,GAAOK,QAAS,CACf3O,MAAO,4BACP0G,WAAY,iCACZC,YAAa,oCAEf,CAAC2H,GAAOM,MAAO,CACb5O,MAAO,0BACP0G,WAAY,+BACZC,YAAa,kCAEf,CAAC2H,GAAOO,QAAS,CACf7O,MAAO,4BACP0G,WAAY,iCACZC,YAAa,oCAEf,CAAC2H,GAAOQ,UAAW,CACjB9O,MAAO,8BACP0G,WAAY,mCACZC,YAAa,sCAEf,CAAC2H,GAAOS,MAAO,CACb/O,MAAO,0BACP0G,WAAY,+BACZC,YAAa,mCASV,SAASqI,GAAShP,GAKvB,OAAKA,EAQHuO,GAAWvO,IAAoB,CAC7BA,QACA0G,WAAY1G,EACZ2G,YAAa3G,GAVR,CACLA,MAAO,2BACP0G,WAAY,wBACZC,YAAa,2BAUnB,gECvCA2B,EAAAA,GAAAA,qBAAoBD,GFnBG,CAAEE,GAhBN,CACjB0G,KAAM,OACNC,MAAO,QACPC,YAAa,cACbC,mBAAoB,2BAYO3G,GATV,CACjBwG,KAAM,KACNC,MAAO,KACPC,YAAa,OACbC,mBAAoB,aE0BtB,MAAQt3B,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAErCm3B,IAAUC,EAAAA,GAAAA,gBAAgC,kBAC1CC,IAAcD,EAAAA,GAAAA,gBAAoC,sBAClDE,IAAsBp3B,EAAAA,EAAAA,WAK1B,WAAY,CACZsjB,cAAe,SACf+T,gBAAiB,kBAEb5a,IAAqBzc,EAAAA,EAAAA,WAAyC,WAC9Ds3B,IAAet3B,EAAAA,EAAAA,WACnB,WACA,CACE+gB,QAAS,QACTwW,UAAW,UACXC,SAAU,SACVC,OAAQ,SAGNC,IAAgB13B,EAAAA,EAAAA,WAKpB,YAAa,CACb8M,SAAU,SACVqW,SAAU,WAENljB,IAAkBD,EAAAA,EAAAA,WAAmC,gBAAgB,IAAA23B,GAAA,IAAAt3B,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAw3B,GAAA,IAAAn2B,QAmB3E,MAAAo2B,WAIyB71B,EAAAA,EAA+CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAy1B,KACtEx1B,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAMAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAMAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAW,GAAA,SAQAjB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8C,GAAA,MAAAG,GAAA,SAQArB,EAAAA,EAAAA,GAAA,KAAA3B,IAAAiD,GAAA,MAAAf,GAAA,SAQAP,EAAAA,EAAAA,GAAA,KAAA1B,IAAAkC,GAAA,MAAAO,GAAA,SAQAf,EAAAA,EAAAA,GAAA,KAAAzB,IAAAyC,GAAA,MAAA+xB,GAAA,SAAAvwB,EAAAA,EAAAA,GAAA,qBAAAwwB,GAAA,MAKgBtwB,IACdC,KAAKD,MAAQA,GACbE,EAAAA,EAAAA,GAAA4yB,GAAA7yB,KAAKswB,IAAQnwB,KAAKJ,EAAM,GACzB,SAhDQgC,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAMJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAQLjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAvF,GAAA,eAALuE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,aAQLS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAAtF,GAAA,kBAARgH,CAAQT,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,aAQRG,GAAQ,OAAApB,EAAAA,EAAAA,GAAArF,GAAA,kBAARyG,CAAQH,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,YAQRO,GAAO,OAAAxB,EAAAA,EAAAA,GAAApF,GAAA,iBAAP4G,CAAOP,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,CAYhByB,MAAAA,GACE,OACEC,IAAAA,cAACqvB,GAAmB,CAClBnvB,YAAa5D,KAAK6D,iBAClBC,WAAY9D,KACZ+B,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZnC,MAAOC,KAAKD,MACZoC,SAAUnC,KAAKmC,SACfM,SAAUzC,KAAKyC,SACfF,QAASvC,KAAKuC,QACdyB,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChBC,WAAYlE,KAAKkE,WACjB6D,SAAU/H,KAAK+Y,aACf1U,QAAQ,gBAGd,EACD2uB,GAAAF,KAAAluB,GAAApH,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAG,GAAAC,GAAAf,GAAAC,GAAAO,GAAAC,GAAA+xB,GAAAE,GAAAW,GAAAZ,IAAAvrB,GAAA8tB,GAAA7tB,MAAAC,EAAAA,EAAAA,GAAAguB,GAAA,CA9EAr4B,GAAc,iBAAkB,CAC/BsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,uBACR,EAKCvK,KAAU,WAMVA,KAAU,YAMVA,GAAS,CACR0K,WAAW,IACX,YAMD1K,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,GAAS,CACR0K,WAAW,IACX,cAMDzK,GAAM,CAAEgI,KAAM,WAAW,WAAA0C,IAAAxE,EAAAA,EAAAA,GAAAnF,GAAA2J,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAArG,GAAA2J,EAAAvD,KAAA,GAAAwD,GAAAqtB,GAAAptB,KAAAC,EAAAA,EAAAA,GAAAF,KAhDHvI,EAAAA,IAAmB8H,KA4E5C,MAAMkuB,GAAY,CAChB3qB,IAAK,UACLC,KAAM,aACN6mB,SAAU,UAOL,SAAS2D,GAAoBntB,GAClC,MAAM,IAAQooB,EAAAA,GAAAA,gBAAe9C,KACvB,SAAEzoB,EAAQ,SAAEsF,GAAanC,EAEzBstB,GAAWptB,EAAAA,EAAAA,QAAc,OAExBqtB,EAAUC,IAAentB,EAAAA,EAAAA,UAAoB,KAC7CotB,EAAcC,IAAmBrtB,EAAAA,EAAAA,UAGrC,CAAC,IACGstB,EAAUC,IAAevtB,EAAAA,EAAAA,UAAqB,KAErDY,EAAAA,EAAAA,YAAU,KACRqrB,KAAU1rB,MAAMitB,IACdL,EAAYK,GACZH,EAAgB,IAAKD,EAAc/qB,IAAKmrB,EAAK,GAAGnrB,KAAM,GACtD,GACD,IAEH,MAAMorB,EAAqBC,IACzBvB,GAAY,CAAE9pB,IAAKqrB,EAAOrrB,IAAKsrB,EAAGD,EAAOC,EAAGC,KAAM,EAAGC,SAAU,MAAOttB,MACnE0J,GAAWsjB,EAAYtjB,EAAO6jB,OAChC,GAGIC,EAAaC,IAAkBhuB,EAAAA,EAAAA,aAC/BiuB,EAAcC,IAAmBluB,EAAAA,EAAAA,aAExCY,EAAAA,EAAAA,YAAU,KAAM,IAAAutB,EAAAC,EACdJ,EAA0B,QAAXG,EAAAxuB,EAAM7F,aAAK,IAAAq0B,GAAXA,EAAa9rB,IAAM1C,EAAM7F,WAAQuK,GAChD6pB,EAA2B,QAAZE,EAACzuB,EAAM7F,aAAK,IAAAs0B,OAAA,EAAXA,EAAaxR,MAAM,GAClC,CAACjd,EAAM7F,QAEV,MAAOu0B,EAAcC,IAAmBtuB,EAAAA,EAAAA,aACjCuuB,EAAeC,IAAoBxuB,EAAAA,EAAAA,YAEpCyuB,EAAcA,KAClBH,OAAgBjqB,GAChBmqB,OAAiBnqB,EAAU,EA2BvBqqB,EAAqB9R,IACzB4R,EAAiB5R,EAAM,EAGzB,OACEnf,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CAACC,YAAY,WAAexB,GAC1ClC,IAAAA,cAAA,QACE+D,QAASA,KAAA,IAAAmtB,EAAA,OAAOnyB,IAA4B,QAApBmyB,EAAI1B,EAASlyB,eAAO,IAAA4zB,OAAA,EAAhBA,EAAkBC,OAAM,EACpDvtB,UAAWC,IAAW,YAAa,CACjC9E,SAAUA,IAEZ+E,MAAO,CAAEstB,gBAAiBjD,GAASqC,GAAc3K,aAEjD7lB,IAAAA,cAACgU,IAAkBvQ,EAAAA,EAAAA,GAAA,GACZ6sB,GAAef,GAAS,CAC7BzrB,MAAO,CAAEqb,MAAOgP,GAASqC,GAAcrR,WAG3Cnf,IAAAA,cAAC6uB,GAAY,CACXzxB,IAAKoyB,EACL6B,WAAYlJ,EAAEZ,GAAE+G,aAChB3X,MAAM,QACN2a,cAAc,EACdC,kBAAkB,EAClBzC,UAtCqB0C,KAAM,IAAAC,EAC/BlB,EAAeK,GACfH,EAAgBK,GAChB,MAAM1U,EAAWwU,SAAAA,EAAchsB,IAC3B,IAAKgsB,EAAczR,MAAO2R,QAC1BlqB,EACJvC,SAAAA,EAAW+X,GACK,QAAhBqV,EAAAjC,EAASlyB,eAAO,IAAAm0B,GAAhBA,EAAkBC,OAAO,EAgCrBpZ,QA3CmBqZ,KACvBX,GAAa,EA2CThC,OAlDkB4C,KACtBf,EAAgBP,GAChBS,EAAiBP,GACjBR,EAAkBL,EAAa,GAiD3B3vB,IAAAA,cAAA,OAAK4D,UAAU,qBACb5D,IAAAA,cAAA,OACE4D,UAAU,YACVE,MAAO,CAAEstB,gBAAiBjD,GAAS2C,GAAejL,aAElD7lB,IAAAA,cAACgU,IAAkBvQ,EAAAA,EAAAA,GAAA,GACZmtB,GAAgBrB,GAAS,CAC9BzrB,MAAO,CAAEqb,MAAOgP,GAAS2C,GAAe3R,UAEzCyR,GACC5wB,IAAAA,cAAA,OAAK4D,UAAU,iBAAiBG,QAASA,IAAMitB,KAC7ChxB,IAAAA,cAAA,OAAK4D,UAAU,eACb5D,IAAAA,cAACgU,GAAkB,CACjBpP,IAAI,UACJ8mB,SAAS,UACT7mB,KAAK,SACLf,MAAO,CAAEqb,MAAO,+BAM1Bnf,IAAAA,cAAA,QAAM4D,UAAU,qBAAqBgtB,aAAY,EAAZA,EAAc/rB,OAErD7E,IAAAA,cAAA,OAAK4D,UAAU,yBAEX5D,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,QAAM4D,UAAU,SAASukB,EAAEZ,GAAE8G,OAAO,KACpCruB,IAAAA,cAAA,OAAK4D,UAAU,qBACZgH,OAAOiD,KAAK6f,IAAYpmB,KAAKiC,GAE1BvJ,IAAAA,cAAA,OACE4D,UAAU,YACVE,MAAO,CAAEstB,gBAAiBjD,GAAS5kB,GAAM4V,OACzCrR,IAAKvE,EACLxF,QAASA,IAAMktB,EAAkB1nB,OAIvCvJ,IAAAA,cAAA,OACE4D,UAAU,wBACVG,QAASA,IAAMktB,OAAkBrqB,IAEjC5G,IAAAA,cAAA,OAAK4D,UAAU,kBAKvB5D,IAAAA,cAAA,QAAM4D,UAAU,SAASukB,EAAEZ,GAAE6G,MAAM,KACnCpuB,IAAAA,cAAA,OAAK4D,UAAU,oBACb5D,IAAAA,cAAA,OAAK4D,UAAU,0BACb5D,IAAAA,cAACivB,GAAa,CACZ5yB,MAAOszB,EAAaO,EACpBpxB,YAAaqpB,EAAEZ,GAAEgH,oBACjB7T,SAAWxZ,IACT,MAAM2wB,EAAkB,IAAKlC,EAAcO,EAAGhvB,EAAEwI,QAChDkmB,EAAgBiC,GAChB7B,EAAkB6B,EAAgB,IAGtC7xB,IAAAA,cAAC2uB,GAAmB,CAClBtrB,QAASosB,aAAQ,EAARA,EAAUnoB,KAAK1C,IACf,CACLpG,MAAOoG,EAAIwR,MACX/Z,MAAOuI,EAAIA,QAGfvI,MAAOszB,EAAa/qB,IACpBiW,cAAgB3Z,IACd,MAAM2wB,EAAkB,IACnBlC,EACH/qB,IAAK1D,EAAEwI,OAAOrN,OAEhBuzB,EAAgBiC,GAChB7B,EAAkB6B,EAAgB,KAIxC7xB,IAAAA,cAAA,OAAK4D,UAAU,aACZisB,EAASvoB,KAAKwqB,GAEX9xB,IAAAA,cAAA,OACE8N,IAAKikB,KAAKC,UAAUF,EAASjtB,MAC7BuR,MAAO0b,EAAS1b,MAChBxS,UAAU,iBACVG,QAASA,KArHDc,QAsHWitB,EAASjtB,KArH5CgsB,EAAgBhsB,EAqHiC,GAGjC7E,IAAAA,cAACgU,GAAuB8d,EAASjtB,MACjC7E,IAAAA,cAAA,OAAK4D,UAAU,aAAakuB,EAAS1b,cAUzD,CC3XO,IAAKmR,GAAC,SAADA,GAAC,OAADA,EAAC,gBAADA,EAAC,gCAADA,EAAC,oCAADA,EAAC,oDAADA,CAAC,MAOb,MAeaC,GAAK,uCAELyK,GAAU,CAAEvK,GAjBN,CACjBwK,OAAQ,SACRC,eAAgB,0BAChBC,iBAAkB,sDAClBC,yBACE,iEAYyBzK,GATV,CACjBsK,OAAQ,KACRC,eAAgB,QAChBC,iBAAkB,iCAClBC,yBAA0B,4EChB5B,IAAI7oB,GAAM,EAEH,MAAM8oB,GAA2BC,OAAOC,IAAI,mBAItCC,IAFcF,OAAOC,IAAI,eAEhBC,IACb,iBAAiB,IAAIC,UAAYlpB,MAGnC,IAAKmpB,GAAY,SAAZA,GAAY,OAAZA,EAAY,QAAZA,EAAY,QAAZA,EAAY,QAAZA,CAAY,MAMjB,MAAMC,GAAkBA,CAACC,EAAYC,KAC1C,MAAMC,EAAgB,GAAgB7W,OAAO4W,GAAW,IAAI/T,QAC1D,CAACC,EAAKC,IACJD,EAAI9C,OACF+C,EACG+T,MAAM,KACN1rB,KAAKhJ,GAAMA,EAAE2T,SACb/G,OAAOxJ,WAEd,IAGF,GAAImxB,GAAQE,EAAa90B,OAAQ,CAC/B,MAAMg1B,GAAiBJ,EAAKx0B,MAAQ,IAAI60B,cAClCC,EAAWN,EAAK1zB,MAAQ,GACxBi0B,EAAeD,EAASH,MAAM,KAAK,GAEzC,OAAOD,EAAaxmB,MAAM8mB,IAExB,GAAI,CAAC,IAAK,OAAOpoB,SAASooB,GACxB,OAAO,EAIT,GAAIA,EAAOC,WAAW,KAAM,CAC1B,MAAMC,EAAYF,EAAOH,cACzB,IAAIM,EAAY,CAACD,GAKjB,MAJI,CAAC,OAAQ,SAAStoB,SAASsoB,KAC7BC,EAAY,CAAC,OAAQ,UAGhBA,EAAUjnB,MAAMknB,GAAUR,EAAcS,SAASD,IAC1D,CAGA,OAAIJ,EAAOK,SAAS,MACXN,IAAiBC,EAAOL,MAAM,MAAM,GAIzCG,IAAaE,CAIL,GAEhB,CACA,OAAO,CAAI,EAGAM,GAAgB,SAC3Bd,EACAe,GAEG,IADHC,EAAkBp6B,UAAAwE,OAAA,QAAA2I,IAAAnN,UAAA,GAAAA,UAAA,GAAGk5B,GAAamB,GAElC,OAAO,IAAIlxB,SAAQ,CAACC,EAASkxB,KAC3B,GAAIlB,GAAQe,EAAW,CACrB,MAAMI,EAAY,CAChB,CAACrB,GAAasB,IAAK,KACnB,CAACtB,GAAamB,IAAK,QACnB,CAACnB,GAAauB,IAAK,YAGrBrB,EAAKzzB,KAAOw0B,EAAYI,EAAUH,GAC9BhxB,EAAQgwB,GACRkB,EACE,IAAII,MACFC,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE8K,2BAA4B,CAAEuB,YAAWC,UAGrE,MACEhxB,EAAQgwB,EACV,GAEJ,EC3CO,SAASwB,GAAOnyB,GACrB,MAAM,SACJoyB,EAAQ,WACRC,EAAU,WACVC,EAAU,SACVnwB,EAAQ,WACRowB,EAAa,OAAM,OACnBC,EAAM,OACNt9B,EAAM,OACNi8B,EAAM,SACNsB,EAAQ,UACRf,EAAS,iBACTgB,EAAmB,UAAS,uBAC5BC,EAAyB,GAAE,8BAC3BC,EAA6B,SAC7Bha,GACE5Y,EAEEC,GAAWC,EAAAA,EAAAA,QAAyB,OAEnC2yB,EAAsBC,IAA2BzyB,EAAAA,EAAAA,UACtD,KAGFY,EAAAA,EAAAA,YAAU,KACR6xB,EAAwB9yB,EAAM+yB,UAAY,GAAG,GAC5C,CAAC/yB,EAAM+yB,WAEV,MAAMC,EAAoBC,GACjBA,EAAMjqB,QAAQ2nB,GAASD,GAAgBC,EAAMQ,KA6HhD+B,EAAmB3Y,UACvB,MAAM4Y,EAAc,IAAIF,GACxB,IACIG,EADAC,EAAwB,GAG5B,GAAIZ,GAAYhzB,OAAOgzB,GAAY,EAAG,CACpC,MAAMa,EAAeT,EAAqB92B,OAC1C,GAAIu3B,EAAeH,EAAYp3B,QAAU02B,EACvCY,EAAgBL,EAAiBG,OAC5B,CACL,MACMI,EAAaJ,EAAYp3B,QADbu3B,EAAeH,EAAYp3B,OAAS02B,GAG7B,WAArBC,EACFW,EAAgBL,EAAiBG,GAAaxW,MAAM,EAAG4W,IAEvDF,EAAgBL,EAAiBG,GAAaxW,OAC3C8V,EACDe,KAIAJ,EADEC,EAAct3B,OAAS02B,EACN,CAACY,EAAct3B,OAAS02B,EAAUe,KAElC,CAAC,EAAG,GAG7B,CACF,MACEH,EAAgBL,EAAiBG,GAGnC,MAAMM,OA1JoBlZ,iBACJ7Z,QAAQgzB,IAC5BT,EAAM7tB,KAAKurB,GACTjwB,QAAQizB,WAAW,CACjBhD,EACAc,GAAcd,EAAMe,MACjBiB,EAAuBvtB,KAAKxH,GAAcA,EAAU+yB,EAAMsC,WAIpD7tB,KAAIyD,IAAiC,IAA/B+qB,KAAUC,GAAgBhrB,EAC7C,MAAM8nB,EAAQiD,EAAuCz5B,MAC/C25B,EAAkB,GAMxB,OAJAD,EAAgB7yB,SAASsJ,IACL,aAAlBA,EAAOypB,QAAyBD,EAAO7sB,KAAKqD,EAAO0pB,OAAO,IAGrD,CAAErD,OAAMmD,SAAQ,IAwIIG,CAAoBZ,GAC3Ca,OArIoB3Z,UAGnB7Z,QAAQgzB,IACbS,EAAa/uB,KACXmV,UAMM,IANC,KACLoW,EAAI,OACJmD,GAIDtqB,EACC,MAAMlC,EAAMipB,KAcZ,OAbAI,EAAKrpB,IAAMA,EAaJ,CAAEA,MAAKqpB,OAAMx0B,KAZPw0B,EAAKx0B,KAYQ43B,OAVGD,EAAO/3B,OAChC,QACAu2B,EACA,YACA,OAM8B8B,eAJXxB,aAA6B,EAA7BA,EACrBjC,EACAwD,IAE0CL,SAAQ,KA2GtBO,CAAoBZ,IACvDS,EAAsBn4B,QAAUq3B,IAC/BN,GAAyBqB,IACvB,MAAMG,GACJlB,EACIe,EAAaxX,SAASyW,GACtBe,GACJna,OAAOka,GAET,OADA/xB,SAAAA,EAAWmyB,GACJA,CAAe,IAG1BJ,EAAsBlzB,SACnBuzB,GAAiC,cAApBA,EAASR,QAjEPQ,KAClB,MAAMhqB,EAAW,IAAIiqB,SACfC,EAAkB,IAAIC,gBAC5BH,EAASnE,IAA4BqE,EACrClqB,EAASoqB,OAAOpC,EAAYgC,EAAS5D,KAAO4D,EAAS5D,KAAMx0B,MAE3D,MAAMy4B,EAAMC,GAAAA,KAAKC,QAAQtC,EAAS,CAChCt9B,SACA4P,KAAMyF,EACNwqB,OAAQN,EAAgBM,SAO1B,OAJAH,EACGh0B,MAAMo0B,GA9DiBC,EAACV,EAAoBS,KAC/ClC,GAAyBqB,IACvB,MAAMG,EAAkBH,EAAa/uB,KAAK8vB,GACjCA,EAAU5tB,MAAQitB,EAASjtB,IAC9B,IACK4tB,EACHF,WACAjB,OAAQ,QAEVmB,IAGN,OADA/yB,SAAAA,EAAWmyB,GACJA,CAAe,GACtB,EAiDoBW,CAAoBV,EAAUS,KACjDG,OAAOnvB,GA/CcovB,EAACb,EAAoBvuB,KAC7C8sB,GAAyBqB,IACvB,MAAMG,EAAkBH,EAAa/uB,KAAK8vB,IAAc,IAAAG,EACtD,OAAOH,EAAU5tB,MAAQitB,EAASjtB,IAC9B,IACK4tB,EACHpB,OAAwB,QAAlBuB,EAAEH,EAAUpB,cAAM,IAAAuB,OAAA,EAAhBA,EAAkBrb,OAAOhU,GACjC+tB,OAAQ,SAEVmB,CAAS,IAGf,OADA/yB,SAAAA,EAAWmyB,GACJA,CAAe,GACtB,EAkCkBc,CAAkBb,EAAUvuB,KAEzC4uB,CAAG,EAiDyCU,CAAWf,IAC7D,EASH,OACEz2B,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,SACE5C,IAAK+E,EACLhD,KAAK,OACL2b,SAAUA,EACVuY,OAAQA,EACR1uB,QAAM,EACNN,SAdoBoY,UACxBtlB,EAAMwe,kBACNyf,EAAiB,IAAIj+B,EAAMgN,OAAOgxB,QAClCh+B,EAAMgN,OAAO9H,MAAQ,EAAE,IAarB2D,IAAAA,cAAA,OAAK4D,UAAU,kBACZ0wB,EAASS,EAAsB,CAC9B0C,OAAQA,KAAA,IAAAn0B,EAAA,OAAsB,QAAtBA,EAAMnB,EAAS7E,eAAO,IAAAgG,OAAA,EAAhBA,EAAkBo0B,OAAO,EACvCC,YAAcxC,GAAUC,EAAiBD,KAE3Cn1B,IAAAA,cAAA,OAAK4D,UAAU,aACZmxB,EAAqBztB,KAAI,CAACmvB,EAAU5Y,KACnC,MAAM+Z,EAAU,CACdtuB,OAAQA,IApGEmtB,KACiB,IAAAoB,EAXbC,EAWA,cAApBrB,EAASR,SACuB,QAAlC4B,EAAApB,EAASnE,WAAyB,IAAAuF,GAAlCA,EAAoCE,SAZdD,EAcPrB,EAbjBzB,GAAyBqB,IACvB,MAAMG,EAAkBH,EAAanrB,QAClCurB,GAAaA,EAASjtB,MAAQsuB,EAAgBtuB,MAGjD,OADAnF,SAAAA,EAAWmyB,GACJA,CAAe,GAQE,EAgGFwB,CAAavB,IAE7B,OACEz2B,IAAAA,cAACA,IAAAA,SAAc,CAAC8N,IAAK2oB,EAASjtB,KAC3B+qB,EAAWkC,EAAU1B,EAAsB6C,EAAS/Z,GACtC,MAO/B,gBC3RO,MAAMoa,GAAWA,CACtBpF,EACAqF,IAEO,IAAIt1B,SAAQ,CAACC,EAASkxB,KAC3B,IAAIoE,EAAM,GACU,iBAATtF,EACTsF,EAAMtF,EACGA,aAAgBuF,MAAQvF,EAAK1zB,KAAKm0B,WAAW,UACtD6E,EAAME,IAAIC,gBAAgBzF,GAE1BkB,EAAO,IAAII,MAAM,cAEnB,MAAMoE,EAAQ,IAAIC,MAClBD,EAAME,IAAMN,EACZI,EAAMG,OAAS,KACbR,GAAaG,IAAIM,gBAAgBR,GACjCt1B,EAAQ01B,EAAM,EAEhBA,EAAMK,QAAW1wB,GAAU6rB,EAAO7rB,EAAM,IAsB/B2wB,GAAoBpc,UAC/B,MAAM8b,QAAcN,GAASpF,GAC7B,MAAO,CACLsF,IAAKI,EAAME,IACXp6B,KAAMw0B,EAAKx0B,KACXy6B,aAAcP,EAAMO,aACpBC,cAAeR,EAAMQ,cACrB35B,KAAM45B,GAAAA,MAAMC,WAAWpG,EAAKzzB,KAAM,SAASoI,KAAK,IACjD,mFCpCHigB,EAAAA,GAAAA,qBAAoBD,GAAIyK,IAExB,MAAQh7B,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAErC6oB,IAAgB3oB,EAAAA,EAAAA,WAA+B,aAC/C2hC,IAAe3hC,EAAAA,EAAAA,WAA6B,YAC5CD,IAAcC,EAAAA,EAAAA,WAAyC,WACvDC,IAAkBD,EAAAA,EAAAA,WAAmC,gBAAgB,IAAA4hC,GAAA,IAAAvhC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAyhC,GAAA,IAAApgC,QAoB3E,MAAAqgC,WAI0B9/B,EAAAA,EAAgDC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA0/B,KACxEz/B,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAMAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAMAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAW,GAAA,SAQAjB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8C,GAAA,MAAAy+B,GAAA,SAMA3/B,EAAAA,EAAAA,GAAA,KAAA3B,IAAAuhC,GAAA,MAAAC,GAAA,SAQA7/B,EAAAA,EAAAA,GAAA,KAAA1B,IAAAwhC,GAAA,MAAAC,GAAA,SAQA//B,EAAAA,EAAAA,GAAA,KAAAzB,IAAAyhC,GAAA,MAAAC,GAAA,SAQAjgC,EAAAA,EAAAA,GAAA,KAAAxB,IAAA0hC,GAAA,MAAA3/B,GAAA,SAQAP,EAAAA,EAAAA,GAAA,KAAAvB,IAAA+B,GAAA,MAAAO,GAAA,SAQAf,EAAAA,EAAAA,GAAA,KAAAtB,IAAAsC,GAAA,MAAA+xB,GAAA,SAAAvwB,EAAAA,EAAAA,GAAA,qBAAAwwB,GAAA,MAKgBmN,IACdx9B,KAAKD,MAAQy9B,GACbv9B,EAAAA,EAAAA,GAAA68B,GAAA98B,KAAKswB,IAAQnwB,KAAKq9B,EAAU,GAC7B,SAtEQz7B,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAMJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAQLjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAvF,GAAA,eAALuE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,eAMLy7B,GAAU,OAAA18B,EAAAA,EAAAA,GAAAtF,GAAA,oBAAVgiC,CAAUz7B,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,aAQVq2B,GAAQ,OAAAt3B,EAAAA,EAAAA,GAAArF,GAAA,kBAAR28B,CAAQr2B,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,aAQRwc,GAAQ,OAAAzd,EAAAA,EAAAA,GAAApF,GAAA,kBAAR6iB,CAAQxc,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,cAQRs1B,GAAS,OAAAv2B,EAAAA,EAAAA,GAAAnF,GAAA,mBAAT07B,CAASt1B,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,aAQTG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAlF,GAAA,kBAARsG,CAAQH,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,YAQRO,GAAO,OAAAxB,EAAAA,EAAAA,GAAAjF,GAAA,iBAAPyG,CAAOP,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,CAYhByB,MAAAA,GACE,OACEC,IAAAA,cAACg6B,GAAoB,CACnB95B,YAAa5D,KAAK6D,iBAClBC,WAAY9D,KACZ+B,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZnC,MAAOC,KAAKD,MACZoC,SAAUnC,KAAKmC,SACfI,QAASvC,KAAKuC,QACd81B,SAAUr4B,KAAKq4B,SACfoF,WAAYz9B,KAAKy9B,WACjBjf,SAAUxe,KAAKwe,SACf8Y,UAAWt3B,KAAKs3B,UAChBtzB,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChB8D,SAAU/H,KAAK+Y,aACf1U,QAAQ,gBAGd,EACDs5B,GAAAZ,KAAAn4B,GAAApH,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAy+B,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA3/B,GAAAC,GAAAO,GAAAC,GAAA+xB,GAAAE,GAAAW,GAAAZ,IAAAvrB,GAAA+3B,GAAA93B,MAAAC,EAAAA,EAAAA,GAAA24B,GAAA,CAtGAhjC,GAAc,kBAAmB,CAChCsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,wBACR,EAKCvK,KAAU,WAMVA,KAAU,YAMVA,GAAS,CACR0K,WAAW,IACX,YAMD1K,KAAU,iBAMVA,GAAS,CACRiI,KAAMwC,SACN,eAMDzK,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,GAAS,CACRiI,KAAMwC,SACN,gBAMDzK,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,GAAS,CACR0K,WAAW,IACX,cAMDzK,GAAM,CAAEgI,KAAM,WAAW,WAAA0C,IAAAxE,EAAAA,EAAAA,GAAAhF,GAAAwJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAlG,GAAAwJ,EAAAvD,KAAA,GAAAwD,GAAAs3B,GAAAr3B,KAAAC,EAAAA,EAAAA,GAAAF,KAtEFvI,EAAAA,IAAmB8H,KAoG7C,MAAM64B,GAAoB,CACxBt1B,IAAK,OACLC,KAAM,SACNC,MAAO,YAGHq1B,GAAa,CACjBv1B,IAAK,UACL8mB,SAAU,UACV7mB,KAAM,UAGFu1B,GAAY,CAChBx1B,IAAK,OACLE,MAAO,WACPD,KAAM,SAOD,SAASm1B,GAAqB93B,GACnC,MAAM,MAAE7F,EAAK,WAAE09B,EAAU,SAAEjf,EAAQ,SAAE6Z,EAAQ,SAAEtwB,EAAQ,UAAEuvB,GAAc1xB,GACjE,EAAEimB,IAAMmC,EAAAA,GAAAA,gBAAe9C,IACvB6S,GAAoBj4B,EAAAA,EAAAA,QAAc,MAoFxC,OACEpC,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CACdC,YAAY,WACPxB,EAAK,CACVpC,UAXew6B,GACbA,SAAAA,EAAU/tB,MAAMsmB,GAAyB,cAAhBA,EAAKoD,SACzB9N,EAAEZ,GAAE4K,gBAEN,KASLnyB,IAAAA,cAACq0B,GAAM,CACLE,WAxEaA,CACjBkC,EACA8D,EACA3C,EACA/Z,KAEA,MAAM,IAAErU,EAAG,IAAE2uB,EAAG,KAAE95B,EAAI,SAAEi4B,EAAQ,OAAEL,EAAS,OAAM,OAAED,GAAWS,EAE9D,OACEz2B,IAAAA,cAAA,OACE8N,IAAKtE,EACL5F,UAAWC,IAAW,aAAc,CAClC,kBAA8B,SAAXoyB,EACnB,uBAAmC,cAAXA,EACxB,mBAA+B,UAAXA,KAGtBj2B,IAAAA,cAAA,OAAK4D,UAAU,oBACb5D,IAAAA,cAAA,OACE4D,UAAU,QACV60B,IAAKN,IAAO7B,aAAQ,EAARA,EAAU6B,KACtBp0B,QAASA,IAAMs2B,EAAkB/8B,QAAS6zB,KAAKtT,KAEjD7d,IAAAA,cAAA,OAAK4D,UAAU,SACb5D,IAAAA,cAAA,OAAK4D,UAAU,aAAavF,GAChB,cAAX43B,GAA0Bj2B,IAAAA,cAAA,OAAK4D,UAAU,aAC1C5D,IAAAA,cAAA,OAAK4D,UAAU,aACD,SAAXqyB,GAAqBK,GACpBt2B,IAAAA,cAAA,OAAK4D,UAAU,cACZ,eAAe0yB,aAAQ,EAARA,EAAUwC,gBAAgBxC,aAAQ,EAARA,EAAUyC,iBAG5C,UAAX9C,GACCj2B,IAAAA,cAAA,OAAK4D,UAAU,cACZoyB,aAAM,EAANA,EACG1uB,KAAKhJ,GACEA,aAAa61B,MAAQ71B,EAAEO,QAAUP,IAEzCkJ,KAAK,OAGC,SAAXyuB,GAAgC,UAAXA,KAAuBK,aAAQ,EAARA,EAAUl3B,OACtDY,IAAAA,cAAA,OAAK4D,UAAU,aAAa0yB,EAASl3B,QAI3CY,IAAAA,cAAA,OAAK4D,UAAU,aACb5D,IAAAA,cAAC1I,IAAWmM,EAAAA,EAAAA,GAAA,CACVG,UAAU,eACM,SAAXqyB,EAAoBkE,GAAaC,GAAS,CAC/Cr2B,QAAS6zB,EAAQtuB,YAInB,EAmBJ2rB,SAAU54B,EACVm4B,YAAY,EACZC,WAAW,OACXC,OAAQ,IAAG8F,EAAAA,GAAAA,2FAA0FT,WACrG3iC,OAAO,MACPi8B,OAAO,UACPsB,SAAUA,EACV7Z,SAAUA,EACV8Y,UAAWA,EACXiB,uBAAwB,CAAEhC,GDvPJpW,OAC5BoW,EACA4H,IAEO,IAAI73B,SAAQ,CAACC,EAASkxB,KASzBlxB,EAAQgwB,EACV,ICyOuC6H,CAAe7H,IAClDiC,8BAA+B+D,GAC/Bx0B,SArGgBs2B,IACpB,MAAMC,EAAkBD,aAAM,EAANA,EAAQrzB,KAAKixB,IACnC,MAAMJ,EACJI,EAAMJ,MACLI,EAAMrB,SACH,IAAGsD,EAAAA,GAAAA,2FAA0FT,YAC3FxB,EAAMrB,SAAS/gB,KAAK0kB,kBAEtBj0B,GACN,MAAO,IACF2xB,EACHJ,MACD,IAEH9zB,SAAAA,EAAWu2B,EAAgB,IAyFtB,CAACvE,EAA2ByE,IAEzB96B,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACkgB,GAAa,CACZrb,KAAMq1B,GACNn2B,QAAS+2B,EAAcrD,QAEtBtP,EAAEZ,GAAE2K,SAEPlyB,IAAAA,cAACk5B,GAAY,CACX97B,IAAKi9B,EACLU,aAAa,EACbC,QAAS3E,EAAa/uB,KAAKiC,IAAI,IAAA0xB,EAAA,MAAM,CACnCxC,IAAKlvB,EAAK4uB,MAAoB,QAAjB8C,EAAI1xB,EAAK+sB,gBAAQ,IAAA2E,OAAA,EAAbA,EAAe9C,KACjC,SAQjB,4FCjSA,MAAM3gC,IAAkBD,EAAAA,EAAAA,WAAmC,gBACrDyc,IAAqBzc,EAAAA,EAAAA,WAAyC,YAc5DN,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAE3C,IAAA6jC,GAAA,IAAAtjC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAwjC,GAAA,IAAAniC,QAMA,MAAAoiC,WAI4B7hC,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAyhC,KAC9CxhC,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAKAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAW,GAAA,SAMAjB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8C,GAAA,MAAAG,GAAA,SAMArB,EAAAA,EAAAA,GAAA,KAAA3B,IAAAiD,GAAA,MAAAS,GAAA,SAKA/B,EAAAA,EAAAA,GAAA,KAAA1B,IAAA0D,GAAA,MAAA0/B,GAAA,SAKA1hC,EAAAA,EAAAA,GAAA,KAAAzB,IAAAojC,GAAA,MAAAC,GAAA,SAKA5hC,EAAAA,EAAAA,GAAA,KAAAxB,IAAAqjC,GAAA,MAAAC,GAAA,SAQA9hC,EAAAA,EAAAA,GAAA,KAAAvB,IAAAsjC,GAAA,MAAAC,GAAA,SAQAhiC,EAAAA,EAAAA,GAAA,KAAAtB,IAAAujC,GAAA,MAAAC,GAAA,SAAA1/B,EAAAA,EAAAA,GAAA,qBAAA2/B,GAAA,MAKgBz/B,IACduG,QAAQC,UAAUC,MAAK,MACrBvG,EAAAA,EAAAA,GAAA4+B,GAAA7+B,KAAKy/B,IAAat/B,KAAKJ,EAAM,GAC7B,GACH,SA3DoBgC,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAKJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAMjBjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAvF,GAAA,eAALuE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,aAMLS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAAtF,GAAA,kBAARgH,CAAQT,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,SAKIc,GAAI,OAAA/B,EAAAA,EAAAA,GAAArF,GAAA,cAAJoH,CAAId,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,gBAKJ09B,GAAW,OAAA3+B,EAAAA,EAAAA,GAAApF,GAAA,qBAAX+jC,CAAW19B,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,kBAKX29B,GAAa,OAAA5+B,EAAAA,EAAAA,GAAAnF,GAAA,uBAAb+jC,CAAa39B,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,gBAQzB49B,GAAW,OAAA7+B,EAAAA,EAAAA,GAAAlF,GAAA,qBAAX+jC,CAAW59B,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,kBAQX69B,GAAa,OAAA9+B,EAAAA,EAAAA,GAAAjF,GAAA,uBAAb+jC,CAAa79B,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,CAYtByB,MAAAA,GACE,OACEC,IAAAA,cAACo8B,GAAsB,CACrBl8B,YAAa5D,KAAK6D,iBAClBC,WAAY9D,KACZyC,SAAUzC,KAAKyC,SACfK,KAAM9C,KAAK8C,KACX/C,MAAOC,KAAKD,MACZggC,SAAU//B,KAAKggC,aACfN,YAAa1/B,KAAK0/B,YAClBC,cAAe3/B,KAAK2/B,cACpBC,YAAa5/B,KAAK4/B,YAClBC,cAAe7/B,KAAK6/B,cACpB99B,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZ8B,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChBC,WAAYlE,KAAKkE,WACjBG,QAAQ,gBAGd,EAGK,SAASy7B,GAAuBl6B,GACrC,MAAM,cACJi6B,EAAa,YACbD,EAAW,YACXF,EAAW,cACXC,EAAa,MACb5/B,EAAK,SACL0C,EAAQ,KACRK,GACE8C,GACGsL,EAAS+uB,IAAch6B,EAAAA,EAAAA,YAQ9B,OAPAY,EAAAA,EAAAA,YAAU,KACRo5B,EAAWlgC,EAAM,GAChB,CAACA,IAMF2D,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CAACC,YAAY,WAAcxB,GACzClC,IAAAA,cAAA,UACEjB,SAAUA,EACV6E,UAAWC,IAAWzE,EAAM,CAC1B,iBAAkBoO,EAClB,kBAAmBzO,IAErBgF,QAZqBy4B,KACzBt6B,EAAMm6B,UAAU7uB,GAChB+uB,GAAY/uB,EAAQ,GAYhBxN,IAAAA,cAAA,OAAK4D,UAAU,kBACf5D,IAAAA,cAAA,QAAM4D,UAAU,gBACbs4B,GAAe1uB,GACdxN,IAAAA,cAACgU,GAAuBkoB,GAEzBC,IAAkB3uB,GACjBxN,IAAAA,cAACgU,GAAuBmoB,GAGzB3uB,EAAUwuB,EAAcC,IAKnC,CA5CCQ,GAAArB,KAAAl6B,GAAApH,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAG,GAAAC,GAAAS,GAAAC,GAAA0/B,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAE,GAAAW,GAAAZ,IAAA16B,GAAA85B,GAAA75B,MAAAC,EAAAA,EAAAA,GAAAm7B,GAAA,CA1FAxlC,GAAc,YAAa,CAC1BsK,WAAY,CAACC,GAAAA,GACbC,MAAO,CAAC,0BACR,EAKCvK,KAAU,WAKVA,KAAU,YAKVA,GAAS,CAAEiI,KAAMuC,UAAU,YAM3BxK,GAAS,CAAEiI,KAAMuC,UAAU,eAM3BxK,KAAU,WAKVA,KAAU,kBAKVA,KAAU,oBAKVA,GAAS,CACR0K,WAAW,IACX,kBAMD1K,GAAS,CACR0K,WAAW,IACX,oBAMDzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAAhF,GAAAwJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAlG,GAAAwJ,EAAAvD,KAAA,GAAAwD,GAAAq5B,GAAAp5B,KAAAC,EAAAA,EAAAA,GAAAF,KAzDAvI,EAAAA,IAAmB8H,wKChB/ComB,EAAAA,GAAAA,qBAAoBD,GAAIyK,IAExB,MAAQh7B,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAErC6oB,IAAgB3oB,EAAAA,EAAAA,WAA+B,aAC/CD,IAAcC,EAAAA,EAAAA,WAAyC,WACvDolC,IAAqBplC,EAAAA,EAAAA,WACzB,mBAEIqlC,IAAiBrlC,EAAAA,EAAAA,WAAmC,cACpDC,IAAkBD,EAAAA,EAAAA,WAAmC,gBAAgB,IAAAslC,GAAA,IAAAjlC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAAgB,GAAA,IAAAhB,QAAAiB,GAAA,IAAAjB,QAAAkB,GAAA,IAAAlB,QAAAmB,GAAA,IAAAnB,QAAAsB,GAAA,IAAAtB,QAAAmlC,GAAA,IAAA9jC,QA8B3E,MAAA+jC,WAG2BxjC,EAAAA,EAA+CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAojC,KACxEnjC,EAAAA,EAAAA,GAAA,KAAA/B,GAAAoC,GAAA,QAMAL,EAAAA,EAAAA,GAAA,KAAA9B,IAAAoC,GAAA,MAAAH,GAAA,SAMAH,EAAAA,EAAAA,GAAA,KAAA7B,IAAAiC,GAAA,MAAAG,GAAA,SAQAP,EAAAA,EAAAA,GAAA,KAAA5B,IAAAoC,GAAA,MAAAO,GAAA,SAQAf,EAAAA,EAAAA,GAAA,KAAA3B,IAAA2C,GAAA,MAAAC,GAAA,SAQAjB,EAAAA,EAAAA,GAAA,KAAA1B,IAAA4C,GAAA,MAAA6+B,GAAA,SAQA//B,EAAAA,EAAAA,GAAA,KAAAzB,IAAAyhC,GAAA,MAAAqD,GAAA,SAMArjC,EAAAA,EAAAA,GAAA,KAAAxB,IAAA8kC,GAAA,MAAAzD,GAAA,SAQA7/B,EAAAA,EAAAA,GAAA,KAAAvB,IAAAqhC,GAAA,MAAAG,GAAA,SAQAjgC,EAAAA,EAAAA,GAAA,KAAAtB,IAAAwhC,GAAA,MAAAqD,GAAA,SAOAvjC,EAAAA,EAAAA,GAAA,KAAArB,IAAA6kC,GAAA,MAAAC,GAAA,SAMAzjC,EAAAA,EAAAA,GAAA,KAAApB,IAAA8kC,GAAA,MAAAC,GAAA,KAMwC,CACtC14B,IAAK,OACLC,KAAM,SACNC,MAAO,gBAGTnL,EAAAA,EAAAA,GAAA,KAAAnB,IAAA+kC,GAAA,MAAAC,GAAA,KAIkD,cAElD7jC,EAAAA,EAAAA,GAAA,KAAAlB,IAAAglC,GAAA,MAAAC,GAAA,SAQA/jC,EAAAA,EAAAA,GAAA,KAAAjB,IAAAilC,GAAA,MAAAC,GAAA,SAMAjkC,EAAAA,EAAAA,GAAA,KAAAhB,IAAAklC,GAAA,MAAAC,GAAA,MAM+B,MAE/BnkC,EAAAA,EAAAA,GAAA,KAAAf,IAAAmlC,GAAA,MAAAC,GAAA,SAMArkC,EAAAA,EAAAA,GAAA,KAAAd,IAAAolC,GAAA,MAAAC,GAAA,KAI0B,WAE1BvkC,EAAAA,EAAAA,GAAA,KAAAb,IAAAqlC,GAAA,MAAAC,GAAA,KAI8B,WAE9BzkC,EAAAA,EAAAA,GAAA,KAAAV,IAAAolC,GAAA,MAAA3R,GAAA,SAAAvwB,EAAAA,EAAAA,GAAA,qBAAAwwB,GAAA,MAKgB0J,IACd/5B,KAAKD,MAAQg6B,GACb95B,EAAAA,EAAAA,GAAAugC,GAAAxgC,KAAKswB,IAAQnwB,KAAK45B,EAAa,GAChC,UA7IQ73B,GAAK,OAAAnB,EAAAA,EAAAA,GAAAzF,GAAA,eAAL4G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,SAMLD,GAAI,OAAAhB,EAAAA,EAAAA,GAAAxF,GAAA,cAAJwG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,aAQJG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAvF,GAAA,kBAAR2G,CAAQH,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,YAQRO,GAAO,OAAAxB,EAAAA,EAAAA,GAAAtF,GAAA,iBAAP8G,CAAOP,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,UAQPjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAArF,GAAA,eAALqE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,aAQLwc,GAAQ,OAAAzd,EAAAA,EAAAA,GAAApF,GAAA,kBAAR6iB,CAAQxc,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,WAMR+0B,GAAM,OAAAh2B,EAAAA,EAAAA,GAAAnF,GAAA,gBAANm7B,CAAM/0B,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,aAQNq2B,GAAQ,OAAAt3B,EAAAA,EAAAA,GAAAlF,GAAA,kBAARw8B,CAAQr2B,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,cAQRs1B,GAAS,OAAAv2B,EAAAA,EAAAA,GAAAjF,GAAA,mBAATw7B,CAASt1B,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,eAOTggC,GAAU,OAAAjhC,EAAAA,EAAAA,GAAAhF,GAAA,oBAAVimC,CAAUhgC,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,eAMVigC,GAAU,OAAAlhC,EAAAA,EAAAA,GAAA/E,GAAA,oBAAVimC,CAAUjgC,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,eAQVkgC,GAAU,OAAAnhC,EAAAA,EAAAA,GAAA9E,GAAA,oBAAVimC,CAAUlgC,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,qBAUVs2B,GAAgB,OAAAv3B,EAAAA,EAAAA,GAAA7E,GAAA,0BAAhBo8B,CAAgBt2B,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,oBAQhBmgC,GAAe,OAAAphC,EAAAA,EAAAA,GAAA5E,GAAA,yBAAfgmC,CAAengC,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,uBAMfogC,GAAkB,OAAArhC,EAAAA,EAAAA,GAAA3E,GAAA,4BAAlBgmC,CAAkBpgC,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,eAQlBk2B,GAAU,OAAAn3B,EAAAA,EAAAA,GAAA1E,GAAA,oBAAV67B,CAAUl2B,IAAAC,EAAAA,EAAAA,GAAA5F,GAAA,KAAA2F,EAAA,QAMV65B,GAAG,OAAA96B,EAAAA,EAAAA,GAAAzE,GAAA,aAAHu/B,CAAG75B,IAAAC,EAAAA,EAAAA,GAAA3F,GAAA,KAAA0F,EAAA,WAMHlH,GAAM,OAAAiG,EAAAA,EAAAA,GAAAxE,GAAA,gBAANzB,CAAMkH,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,eAMNm2B,GAAU,OAAAp3B,EAAAA,EAAAA,GAAAvE,GAAA,oBAAV27B,CAAUn2B,IAAAC,EAAAA,EAAAA,GAAAzF,GAAA,KAAAwF,EAAA,CAYnByB,MAAAA,GACE,OACEC,IAAAA,cAAC2+B,GAAqB,CACpBz+B,YAAa5D,KAAK6D,iBAClBC,WAAY9D,KACZkC,MAAOlC,KAAKkC,MACZH,KAAM/B,KAAK+B,KACXI,SAAUnC,KAAKmC,SACfI,QAASvC,KAAKuC,QACdxC,MAAOC,KAAKD,MACZye,SAAUxe,KAAKwe,SACfuY,OAAQ/2B,KAAK+2B,OACbsB,SAAUr4B,KAAKq4B,SACff,UAAWt3B,KAAKs3B,UAChB0K,WAAYhiC,KAAKgiC,WACjBE,WAAYliC,KAAKkiC,WACjBD,WAAYjiC,KAAKiiC,WACjB3J,iBAAkBt4B,KAAKs4B,iBACvB6J,gBAAiBniC,KAAKmiC,gBACtBC,mBAAoBpiC,KAAKoiC,mBACzBlK,WAAYl4B,KAAKk4B,WACjB2D,IAAK77B,KAAK67B,IACV/gC,OAAQkF,KAAKlF,OACbkJ,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChBk0B,WAAYn4B,KAAKm4B,WACjB9zB,QAAQ,eACR0D,SAAU/H,KAAK+Y,cAGrB,EACDupB,GAAA7B,KAAA77B,GAAAlH,GAAAC,GAAAH,GAAAC,GAAAG,GAAAC,GAAAO,GAAAC,GAAAC,GAAAC,GAAA6+B,GAAAC,GAAAqD,GAAAC,GAAAzD,GAAAC,GAAAG,GAAAC,GAAAqD,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA3R,GAAAE,GAAAW,GAAAZ,IAAAvrB,GAAAy7B,GAAAx7B,MAAAC,EAAAA,EAAAA,GAAAs9B,GAAA,CAtLA3nC,GAAc,iBAAkB,CAC/BsK,WAAY,CAACC,GAAAA,MACb,EAKCtK,KAAU,YAMVA,KAAU,WAMVA,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,GAAS,CACR0K,WAAW,IACX,cAMD1K,GAAS,CACR0K,WAAW,IACX,YAMD1K,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,KAAU,aAMVA,GAAS,CACRiI,KAAMwC,SACN,eAMDzK,GAAS,CACRiI,KAAMwC,SACN,gBAODzK,KAAU,iBAMVA,KAAU,iBAMVA,GAAS,CACR0K,WAAW,IACX,iBAUD1K,KAAU,uBAMVA,GAAS,CACRiI,KAAMuC,UACN,sBAMDxK,KAAU,yBAMVA,GAAS,CACRiI,KAAMuC,UACN,iBAMDxK,KAAU,UAMVA,KAAU,aAMVA,KAAU,iBAMVC,GAAM,CAAEgI,KAAM,WAAW,WAAA0C,IAAAxE,EAAAA,EAAAA,GAAApE,GAAA4I,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAtF,GAAA4I,EAAAvD,KAAA,GAAAwD,GAAAg7B,GAAA/6B,KAAAC,EAAAA,EAAAA,GAAAF,KA7IDvI,EAAAA,IAAmB8H,KAqL9C,MAAM84B,GAAa,CACjBv1B,IAAK,UACL8mB,SAAU,UACV7mB,KAAM,UAGFu1B,GAAY,CAChBx1B,IAAK,OACLE,MAAO,WACPD,KAAM,SAGFg6B,GAAe,CACnBj6B,IAAK,OACLC,KAAM,YACNC,MAAO,YAGHg6B,GAAc,CAClBl6B,IAAK,OACLC,KAAM,UACNC,MAAO,YAOF,SAAS65B,GAAsBz8B,GACpC,MAAM,MACJ7F,EAAK,SACLye,EAAQ,OACRuY,EAAM,SACNsB,EAAQ,UACRf,EAAS,WACT4K,EAAU,WACVF,EAAU,WACVC,EAAU,iBACV3J,EAAgB,gBAChB6J,EAAe,mBACfC,EAAkB,WAClBlK,EAAU,IACV2D,EAAG,OACH/gC,EAAM,WACNq9B,EAAU,SACVpwB,GACEnC,GACE,EAAEimB,IAAMmC,EAAAA,GAAAA,gBAAe9C,IACvB1iB,GAAQi6B,EAAAA,GAAAA,oBAEPC,EAAYC,IAAiB18B,EAAAA,EAAAA,WAAS,GAqD7C,OACEvC,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CACdC,YAAY,WACPxB,EAAK,CACVpC,UAXew6B,GACbA,SAAAA,EAAU/tB,MAAMsmB,GAAyB,cAAhBA,EAAKoD,SACzB9N,EAAEZ,GAAE4K,gBAEN,KASLnyB,IAAAA,cAACq0B,GAAM,CACLE,WAtDaA,CACjBkC,EACA8D,EACA3C,KAEA,MAAM,IAAEpuB,EAAG,KAAEnL,EAAI,OAAE43B,EAAS,OAAM,OAAED,GAAWS,EAE/C,OACEz2B,IAAAA,cAAC48B,GAAc,CAAC9X,QAASkR,aAAM,EAANA,EAAQ1uB,KAAKiC,GAASA,EAAK1K,UAAS2I,KAAK,OAChExH,IAAAA,cAAA,OACE8N,IAAKtE,EACL5F,UAAWC,IACT,wBACAoyB,GAAU,yBAAyBA,MAGrCj2B,IAAAA,cAAA,OAAK4D,UAAU,qBACb5D,IAAAA,cAAC1I,IAAWmM,EAAAA,EAAAA,GAAA,CACVG,UAAWC,IACT,mBACW,cAAXoyB,GAA0B,gBAEZ,cAAXA,EAAyB6I,GAAcD,KAE9C7+B,IAAAA,cAAA,OAAK4D,UAAU,qBACb5D,IAAAA,cAAA,OAAK4D,UAAU,yBAAyBvF,IAE1C2B,IAAAA,cAAA,OAAK4D,UAAU,yBACb5D,IAAAA,cAAC1I,IAAWmM,EAAAA,EAAAA,GAAA,CACVG,UAAU,eACM,SAAXqyB,EAAoBkE,GAAaC,GAAS,CAC/Cr2B,QAAS6zB,EAAQtuB,aAKV,EAmBf2rB,SAAU54B,EACVye,SAAUA,EACVuY,OAAQA,EACRsB,SAAUA,EACVf,UAAWA,EACXgB,iBAAkBA,EAClBJ,WAAYA,EACZE,OAAQyD,EACR/gC,OAAQA,EACRq9B,WAAYA,EACZpwB,SArEgBgyB,IACpBhyB,SAAAA,EAAWgyB,EAAa,IAsEnB,CAACA,EAA0ByE,KAC1B,MAAMoE,OACSt4B,IAAb+tB,GAA0B0B,EAAap4B,QAAU02B,EAEnD,OAAO8J,EACLz+B,IAAAA,cAAA,OACE4D,UAAWC,IACT,qBACAm7B,GAAc,gCAEhBj7B,QAAS+2B,EAAcrD,OACvB0H,YAAcj+B,IACZA,EAAE8D,iBACFi6B,GAAc,EAAK,EAErBG,WAAal+B,IACXA,EAAE8D,gBAAgB,EAEpBq6B,YAAaA,KACXJ,GAAc,EAAM,EAEtBK,OAASp+B,IAAM,IAAAq+B,EACbr+B,EAAE8D,iBACFi6B,GAAc,IACM,QAApBM,EAAAr+B,EAAEs+B,aAAarK,aAAK,IAAAoK,OAAA,EAApBA,EAAsBthC,SACpB68B,EAAcnD,YAAYz2B,EAAEs+B,aAAarK,MAAM,GAGnDn1B,IAAAA,cAAA,OAAK4D,UAAU,4BACb5D,IAAAA,cAAC28B,GAAkB,CACjB/4B,UAAU,0BACV8nB,SAAS,iBACT7mB,KAAe,WAATC,EAAqB,cAAgB,iBAE7C9E,IAAAA,cAAA,OAAK4D,UAAU,oBACb5D,IAAAA,cAACy/B,GAAAA,MAAK,CACJC,QAASvX,EAAEZ,GAAE6K,kBACbuN,WAAY,CACVC,MAAO5/B,IAAAA,cAAA,mBAIZ0+B,GACC1+B,IAAAA,cAAA,OAAK4D,UAAU,mBAAmB86B,KAKxC1+B,IAAAA,cAACkgB,GAAa,CACZnhB,SAAUmgC,EACV//B,KAAMo/B,EACN15B,KAAM25B,EACNz6B,QAAS+2B,EAAcrD,QAEtB6G,GAAcnW,EAAEZ,GAAE2K,QAEtB,IAKX,8GChaA,MAAQj7B,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBACrCG,IAAkBD,EAAAA,EAAAA,WAAmC,gBAErD00B,IAAe10B,EAAAA,EAAAA,WACnB,WACA,CACE8M,SAAU,WAEZ,IAAAw7B,GAAA,IAAAjoC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAmoC,GAAA,IAAA9mC,QAyCF,MAAA+mC,WAG2BxmC,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAomC,KAC7CnmC,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAKAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAe,GAAA,SAKAnB,EAAAA,EAAAA,GAAA,KAAA7B,IAAAiD,GAAA,MAAAf,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA5B,IAAAkC,GAAA,MAAA+B,GAAA,SAQArC,EAAAA,EAAAA,GAAA,KAAA3B,IAAAiE,GAAA,MAAAjB,GAAA,SAMArB,EAAAA,EAAAA,GAAA,KAAA1B,IAAAgD,GAAA,MAAAf,GAAA,SAAAP,EAAAA,EAAAA,GAAA,KAAAzB,IAAAiC,GAAA,MAAAS,GAAA,SAQAjB,EAAAA,EAAAA,GAAA,KAAAxB,IAAA0C,GAAA,MAAAyZ,GAAA,SAOA3a,EAAAA,EAAAA,GAAA,KAAAvB,IAAAmc,GAAA,MAAAyrB,GAAA,SAKArmC,EAAAA,EAAAA,GAAA,KAAAtB,IAAA4nC,GAAA,MAAA/iC,GAAA,SAQAvD,EAAAA,EAAAA,GAAA,KAAArB,IAAA6E,GAAA,MAAA/C,GAAA,SAKAT,EAAAA,EAAAA,GAAA,KAAApB,IAAA8B,GAAA,MAAAK,GAAA,SAOAf,EAAAA,EAAAA,GAAA,KAAAnB,IAAAmC,GAAA,MAAAuB,GAAA,SAAAC,EAAAA,EAAAA,GAAA,0BAAAC,GAAA,MAKqBC,IACnBC,KAAKD,MAAQA,GACbE,EAAAA,EAAAA,GAAAujC,GAAAxjC,KAAKE,IAAaC,KAAKJ,EAAM,GAC9B,SA1EoBgC,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,gBAKJQ,GAAW,OAAAzB,EAAAA,EAAAA,GAAAxF,GAAA,qBAAXiH,CAAWR,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAKXE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAvF,GAAA,eAAL0G,CAAKF,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,eAQjBiB,GAAU,OAAAlC,EAAAA,EAAAA,GAAAtF,GAAA,oBAAVwH,CAAUjB,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,aAMVS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAArF,GAAA,kBAAR+G,CAAQT,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,aAKqBG,GAAQ,OAAApB,EAAAA,EAAAA,GAAApF,GAAA,kBAARwG,CAAQH,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,UAGrCjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAnF,GAAA,eAALmE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,YAOL+E,GAAO,OAAAhG,EAAAA,EAAAA,GAAAlF,GAAA,iBAAPkL,CAAO/E,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,oBAKsB4hC,GAAe,OAAA7iC,EAAAA,EAAAA,GAAAjF,GAAA,yBAAf8nC,CAAe5hC,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,cAQ5CwB,GAAS,OAAAzC,EAAAA,EAAAA,GAAAhF,GAAA,mBAATyH,CAASxB,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,YAKGI,GAAO,OAAArB,EAAAA,EAAAA,GAAA/E,GAAA,iBAAPoG,CAAOJ,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,YAKaO,GAAO,OAAAxB,EAAAA,EAAAA,GAAA9E,GAAA,iBAAPsG,CAAOP,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,CAchDyB,MAAAA,GACE,OACEC,IAAAA,cAACmgC,GAAuB,CACtB//B,WAAY9D,KACZ4D,YAAa5D,KAAK6D,iBAClB9B,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZM,YAAaxC,KAAKwC,YAClBC,SAAUzC,KAAKyC,SACfQ,WAAYjD,KAAKiD,WACjBd,SAAUnC,KAAKmC,SACfI,QAASvC,KAAKuC,QACdxC,MAAOC,KAAKD,MACZgH,QAAS/G,KAAK+G,QACd7C,WAAYlE,KAAKkE,WACjBD,UAAWjE,KAAKiE,UAChBD,UAAWhE,KAAKgE,UAChBR,UAAWxD,KAAKwD,UAChBpB,QAASpC,KAAKoC,QACdwhC,gBAAiB5jC,KAAK4jC,gBACtBz/B,cAAenE,KAAKmE,cACpBE,QAAQ,oBACR0D,SAAU/H,KAAKuE,mBAGrB,EAGK,SAASs/B,GAAwBj+B,GACtC,MAAM,SACJmC,EAAQ,WACR9E,EAAU,SACVR,EAAQ,YACRD,EAAW,gBACXohC,EAAe,cACfz/B,GACEyB,GACGmB,EAASkS,IAAchT,EAAAA,EAAAA,UAASL,EAAMmB,SAAW,KACjD+8B,EAAiBC,IAAsB99B,EAAAA,EAAAA,UAAgB,KACvD+9B,EAAQC,IAAah+B,EAAAA,EAAAA,WAAS,IAC9BlG,EAAOiG,IAAYC,EAAAA,EAAAA,UAAiB,IACrCJ,GAAWC,EAAAA,EAAAA,UACXo+B,GAAep+B,EAAAA,EAAAA,QAAuB,MAEtCq+B,GAAgCx9B,EAAAA,EAAAA,UAAQ,KAC5C,MAAMy9B,EAAer9B,IAAmD,IAAA6Q,EACtE,OAA6B,QAA7BA,EAAOZ,GAAcjQ,UAAQ,IAAA6Q,OAAA,EAAtBA,EAAwB5M,KAAKmM,GAC9B,YAAaA,GAAMpG,MAAMC,QAAQmG,EAAGpQ,SAC/B,IAAKoQ,EAAIpQ,QAASq9B,EAAYjtB,EAAGpQ,UAEjCoQ,GAET,EAGJ,OAAOitB,EAAYr9B,EAAQ,GAC1B,CAACA,KAyBJF,EAAAA,EAAAA,YAAU,MACHqS,EAAAA,EAAAA,SAAQtT,EAAMmB,QAASA,IAC1BkS,EAAWrT,EAAMmB,SAAW,GAC9B,GACC,CAACnB,EAAMmB,WAEVF,EAAAA,EAAAA,YAAU,KACRb,EAASJ,EAAM7F,OAAS,GAAG,GAC1B,CAAC6F,EAAM7F,SAEV8G,EAAAA,EAAAA,YAAU,KACRk9B,EAAmBI,EAAgB,GAClC,CAACA,KAEJt9B,EAAAA,EAAAA,YAAU,KACR,MAAMkb,EAAuBnd,IAAkB,IAAAoC,EAC7CpC,EAAEyU,kBACF,MAAM2I,EAAOpd,EAAEqd,eACToiB,EAAmBH,EAAaljC,QAClCqjC,GAAoBriB,EAAKrT,SAAS01B,KACtCJ,GAAU,GACM,QAAhBj9B,EAAAnB,EAAS7E,eAAO,IAAAgG,GAAhBA,EAAkBzD,OAAM,EAG1B,OADAgH,SAAS/I,iBAAiB,QAASugB,GAC5B,KACLxX,SAAS2X,oBAAoB,QAASH,EAAoB,CAC3D,GACA,IAEH,MAAMa,EAAcA,CAACzJ,EAAgBoI,IAEjC7d,IAAAA,cAAA,OACE8N,IAAK,GAAG2H,EAAOjX,SAASqf,IACxBja,UAAWC,IAAW,mBAAoB,CACxC,kBAAmBxH,IAAUoZ,EAAOpZ,QAEtC0H,QAASA,KACPzB,EAASmT,EAAOpZ,OAChBkkC,GAAU,GACVl8B,SAAAA,EAAWoR,EAAOpZ,MAAM,GAG1B2D,IAAAA,cAAA,OAAK4D,UAAU,SAAS6R,EAAOjX,OAC9BiX,EAAOmrB,SAAW5gC,IAAAA,cAAA,OAAK4D,UAAU,WAAW6R,EAAOmrB,UAK1D,OACE5gC,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CAACC,YAAY,WAAcxB,GACzClC,IAAAA,cAAA,OAAK4D,UAAU,qBAAqBxG,IAAKojC,GACvCxgC,IAAAA,cAACisB,GAAY,CACX7uB,IAAK+E,EACL9F,MAAOA,EACPyC,YAAaA,EACbC,SAAUA,EACVQ,WAAYA,EACZkB,cAAeA,EACf6D,QAASA,KACPi8B,GAAU,EAAK,EAEjBl8B,SApFcnD,IACpBoB,EAASpB,EAAEwI,QACX,MAAMm3B,EAAUx9B,IACd,IAAK,IAAIghB,EAAIhhB,EAAQpF,OAAS,EAAGomB,GAAK,EAAGA,IAAK,KAAAyc,EAAAC,EAC5C,MAAMtrB,EAASpS,EAAQghB,GACL,QAAlByc,EAAIrrB,EAAOpS,eAAO,IAAAy9B,GAAdA,EAAgB7iC,QAClB4iC,EAAOprB,EAAOpS,SAGC,QAAf09B,EAACtrB,EAAOpS,eAAO,IAAA09B,GAAdA,EAAgB9iC,SAChB+iC,EAAAA,EAAAA,SAAQvrB,EAAOjX,OAAOyM,UAAS+1B,EAAAA,EAAAA,SAAQ9/B,EAAEwI,UACxCw2B,IACCc,EAAAA,EAAAA,SAASvrB,EAAemrB,SAAS31B,UAAS+1B,EAAAA,EAAAA,SAAQ9/B,EAAEwI,UAEvDrG,EAAQihB,OAAOD,EAAG,EAEtB,CACA,OAAOhhB,CAAO,EAEVmJ,EAASq0B,GAAOI,EAAAA,EAAAA,WAAUR,IAChCJ,EAAmB7zB,GACnBnI,SAAAA,EAAWnD,EAAEwI,OAAO,IAiEf42B,GAAUF,EAAgBniC,OACzB+B,IAAAA,cAAA,OAAK4D,UAAU,oBACb5D,IAAAA,cAAA,OAAK4D,UAAU,iBACZw8B,EAAgB94B,KAAI,CAAC45B,EAAQrjB,KAAK,IAAAsjB,EAAA,OACxB,QAATA,EAAAD,EAAE79B,eAAO,IAAA89B,GAATA,EAAWljC,OACT+B,IAAAA,cAAA,OAAK8N,IAAK,GAAGozB,EAAE1iC,SAASqf,IAASja,UAAU,iBACzC5D,IAAAA,cAAA,OAAK4D,UAAU,cAAcs9B,EAAE1iC,OAC9B0iC,EAAE79B,QAAQiE,KAAI,CAACmO,EAAa4O,IAC3BnF,EAAYzJ,EAAQ4O,MAIxBnF,EAAYgiB,EAAGrjB,EAChB,KAGL7d,IAAAA,cAAA,QAAM3B,KAAK,qBAEX,MAIZ,CA5IC+iC,GAAArB,KAAA7+B,GAAApH,GAAAC,GAAAe,GAAAC,GAAAf,GAAAC,GAAA+B,GAAAC,GAAAjB,GAAAC,GAAAf,GAAAC,GAAAS,GAAAC,GAAAyZ,GAAAC,GAAAyrB,GAAAC,GAAA/iC,GAAAC,GAAA/C,GAAAC,GAAAK,GAAAC,GAAAuB,GAAAM,GAAA2E,GAAA/E,IAAAgF,GAAAy+B,GAAAx+B,MAAAC,EAAAA,EAAAA,GAAA8/B,GAAA,CA7GAnqC,GAAc,mBAAoB,CACjCsK,WAAY,CAACC,GAAAA,MACb,EAKCtK,KAAU,WAKVA,KAAU,kBAKVA,KAAU,YAKVA,GAAS,CACR0K,WAAW,IACX,iBAMD1K,GAAS,CAAEiI,KAAMuC,UAAU,eAM3BxK,GAAS,CAAEiI,KAAMuC,UAAU,eAE3BxK,KAAU,YAOVA,GAAS,CAAE0K,WAAW,IAAQ,cAM9B1K,GAAS,CAAEiI,KAAMuC,UAAU,sBAK3BxK,GAAS,CACR0K,WAAW,IACX,gBAMD1K,KAAU,cAKVA,GAAS,CAAE0K,WAAW,IAAQ,cAO9BzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA7E,GAAAqJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAA/F,GAAAqJ,EAAAvD,KAAA,GAAAwD,GAAAg+B,GAAA/9B,KAAAC,EAAAA,EAAAA,GAAAF,KAzEDvI,EAAAA,IAAmB8H,yECvD9C,MACEggC,WAAYC,GACZC,YAAaC,IACX,KACED,GAA2B,cAAiB,CAACr/B,EAAO9E,IAAuB,gBAAoBokC,GAAqB52B,OAAO62B,OAAO,CAAC,EAAGv/B,EAAO,CACjJw/B,OAAQ,OACRvnB,UAAMvT,EACNxJ,IAAKA,OAEDikC,GAA0B,cAAiB,CAACM,EAAIvkC,KACpD,IAAI,MACAwkC,EAAK,kBACLC,GACEF,EACJG,EA1BgC,SAAUC,EAAG7gC,GAC/C,IAAIinB,EAAI,CAAC,EACT,IAAK,IAAI6Z,KAAKD,EAAOn3B,OAAOq3B,UAAUC,eAAexkC,KAAKqkC,EAAGC,IAAM9gC,EAAEihC,QAAQH,GAAK,IAAG7Z,EAAE6Z,GAAKD,EAAEC,IAC9F,GAAS,MAALD,GAAqD,mBAAjCn3B,OAAOw3B,sBAA2C,KAAI/d,EAAI,EAAb,IAAgB2d,EAAIp3B,OAAOw3B,sBAAsBL,GAAI1d,EAAI2d,EAAE/jC,OAAQomB,IAClInjB,EAAEihC,QAAQH,EAAE3d,IAAM,GAAKzZ,OAAOq3B,UAAUI,qBAAqB3kC,KAAKqkC,EAAGC,EAAE3d,MAAK8D,EAAE6Z,EAAE3d,IAAM0d,EAAEC,EAAE3d,IADuB,CAGvH,OAAO8D,CACT,CAmBgBma,CAAOX,EAAI,CAAC,QAAS,sBAKnC,MAAMY,EAA4B,WAAc,IAC1CV,GAGAD,QAAJ,GAIC,CAACA,EAAOC,IACX,OAAoB,gBAAoBP,GAAoB12B,OAAO62B,OAAO,CAAC,EAAGK,EAAW,CACvF3nB,UAAMvT,EACNxJ,IAAKA,EACLykC,kBAAmBU,IAClB,IAOC,IAAY,QAAalB,GAAY,UAC3CA,GAAWmB,uCAAyC,GACpDnB,GAAWE,YAAcA,GACzBF,GAAWmB,uCAAyC,GACpD,2LCrCAC,KAAAA,OAAaC,MAEb,MAAQzrC,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBACrCG,IAAkBD,EAAAA,EAAAA,WAAmC,gBAAgB,IAAAorC,GAAA,IAAA/qC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAirC,GAAA,IAAA5pC,QAAAX,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAkrC,GAAA,IAAAlrC,QAkB3E,MAAAmrC,WAG2BvpC,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAkpC,KAC7CjpC,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAKAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAW,GAAA,SAKAjB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8C,GAAA,MAAAC,GAAA,SAMAnB,EAAAA,EAAAA,GAAA,KAAA3B,IAAA+C,GAAA,MAAAL,GAAA,SAMAf,EAAAA,EAAAA,GAAA,KAAA1B,IAAA0C,GAAA,MAAAK,GAAA,SAKArB,EAAAA,EAAAA,GAAA,KAAAzB,IAAA+C,GAAA,MAAAf,GAAA,SAKAP,EAAAA,EAAAA,GAAA,KAAAxB,IAAAgC,GAAA,MAAA4oC,GAAA,SAMAppC,EAAAA,EAAAA,GAAA,KAAAvB,IAAA4qC,GAAA,MAAA9mC,GAAA,SAMAvC,EAAAA,EAAAA,GAAA,KAAAtB,IAAA+D,GAAA,MAAA6mC,GAAA,SAMAtpC,EAAAA,EAAAA,GAAA,KAAArB,IAAA4qC,GAAA,MAAAC,GAAA,SAAAhnC,EAAAA,EAAAA,GAAA,qBAAAinC,GAAA,MAMgB/mC,IACdC,KAAKD,MAAQA,GACbE,EAAAA,EAAAA,GAAAqmC,GAAAtmC,KAAKE,IAAaC,KAAKJ,EAAM,KAE/B1C,EAAAA,EAAAA,GAAA,KAAAkpC,IAAoB,CAACQ,EAAehnC,KAC9BgnC,GACF9mC,EAAAA,EAAAA,GAAAqmC,GAAAtmC,KAAKgnC,IAAW7mC,KAAKJ,IAErBE,EAAAA,EAAAA,GAAAqmC,GAAAtmC,KAAKinC,IAAY9mC,KAAKJ,EACxB,GACA,SApEmBgC,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAKJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAKLjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAvF,GAAA,eAALuE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,gBAMjBQ,GAAW,OAAAzB,EAAAA,EAAAA,GAAAtF,GAAA,qBAAX+G,CAAWR,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,YAMXO,GAAO,OAAAxB,EAAAA,EAAAA,GAAArF,GAAA,iBAAP6G,CAAOP,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,aAKsBS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAApF,GAAA,kBAAR8G,CAAQT,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,aAKRG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAnF,GAAA,kBAARuG,CAAQH,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,gBAMrCklC,GAAW,OAAAnmC,EAAAA,EAAAA,GAAAlF,GAAA,qBAAXqrC,CAAWllC,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,CAgCpByB,MAAAA,GACE,OACEC,IAAAA,cAACyjC,GAAqB,CACpBrjC,WAAY9D,KACZ4D,YAAa5D,KAAK6D,iBAClBqjC,YAAalnC,KAAKknC,YAClBnlC,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZ6F,SAAU/H,KAAK+Y,aACf1U,QAAQ,eACR+iC,cAAcrmC,EAAAA,EAAAA,GAAKwlC,GAALvmC,MACdwC,YAAaxC,KAAKwC,YAClBzC,MAAOC,KAAKD,MACZoC,SAAUnC,KAAKmC,SACfI,QAASvC,KAAKuC,QACdyB,UAAWhE,KAAKgE,UAChBE,WAAYlE,KAAKkE,WACjBD,UAAWjE,KAAKiE,UAChBQ,WAAYzE,KAAKyE,WACjBhC,SAAUzC,KAAKyC,UAGrB,EAGK,SAAS0kC,GAAsBvhC,GACpC,MAAM,YACJshC,EAAc,CAAC,EAAC,SAChBn/B,EAAQ,aACRq/B,EAAY,SACZ3kC,EAAQ,YACRD,GACEoD,EACEyhC,GAAe5E,EAAAA,GAAAA,mBACf6E,EACJxP,GAAAA,KAAKyP,UAA4C,OAAhCzP,GAAAA,KAAKyP,SAAS7Q,MAAM,KAAK,GAAc8Q,GAAAA,EAAOC,GAAAA,GAC1D1nC,EAAOiG,IAAYC,EAAAA,EAAAA,UAAuB,MAC3CyhC,EAAkBR,EAAYQ,QAAqB,YACzD7gC,EAAAA,EAAAA,YAAU,MACH8B,EAAAA,EAAAA,OAAM/C,EAAM7F,OAGfiG,EAAS,MAFTA,EAASmgC,KAAMvgC,EAAM7F,MAAO2nC,GAG9B,GACC,CAAC9hC,EAAM7F,MAAO2nC,IAEjB,MAUMC,GAAQhhC,EAAAA,EAAAA,UAAQ,KACbihC,EAAAA,GAAAA,OACN,IAEH,OACElkC,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CACdC,YAAY,YACPknB,EAAAA,EAAAA,MAAK1oB,EAAO,CAAC,gBAElBlC,IAAAA,cAACmkC,GAAAA,GAAc,CACbP,OAAQA,EACR9+B,MAAO,CACLs/B,UACmB,YAAjBT,EACI7+B,GAAAA,EAAMu/B,cACNv/B,GAAAA,EAAMw/B,mBAGdtkC,IAAAA,cAACukC,GAAAA,GAAa,CAACC,UAAWtiC,EAAMnB,WAA0B0jC,MAAOR,GAC/DjkC,IAAAA,cAAA,OACEqE,SAAWnD,IACTA,EAAEyU,iBAAiB,GAGrB3V,IAAAA,cAACqhC,IAAU59B,EAAAA,EAAAA,GAAA,GACL+/B,EAAW,CACfkB,kBAAoB/jC,GAAYA,EAChCtE,MAAOA,EAEPgI,SAvCSgR,CAACsvB,EAAqBC,KACzCvgC,SAAAA,EAAWugC,EAAW,EAuCZlB,aApCcL,IACxBK,SAAAA,EACEL,GACCp+B,EAAAA,EAAAA,OAAM5I,GAA4D,GAAlDomC,KAAMpmC,GAAgB2nC,OAAOA,GAC/C,EAiCSjlC,SAAUA,EACVD,YAAaA,EACb+lC,WAAYrB,EAAYqB,iBAOtC,CAzECC,GAAAhC,KAAA5hC,GAAApH,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAC,GAAAC,GAAAL,GAAAC,GAAAK,GAAAC,GAAAf,GAAAC,GAAA4oC,GAAAC,GAAA9mC,GAAAM,GAAA2E,GAAA/E,GAAA6mC,GAAAK,GAAAyB,GAAA7B,GAAAC,GAAAI,GAAAyB,GAAA5B,IAAAhiC,GAAAuhC,GAAAthC,MAAAC,EAAAA,EAAAA,GAAAwjC,GAAA,CApGA7tC,GAAc,iBAAkB,CAC/BsK,WAAY,CAACC,GAAAA,EAAWyjC,GAAAA,MACxB,EAKC/tC,KAAU,WAKVA,KAAU,YAKVA,KAAU,YAKVA,KAAU,kBAMVA,GAAS,CAAE0K,WAAW,IAAQ,cAM9B1K,GAAS,CAAEiI,KAAMuC,UAAU,eAK3BxK,GAAS,CAAEiI,KAAMuC,UAAU,eAK3BxK,GAAS,CAAE0K,WAAW,IAAQ,kBAM9BzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAAjF,GAAAyJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAnG,GAAAyJ,EAAAvD,IAAA,CAMzBnH,GAAM,CAAEgI,KAAM,SAAS,cAAA0C,IAAAxE,EAAAA,EAAAA,GAAAhF,GAAAwJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAlG,GAAAwJ,EAAAvD,IAAA,CAMvBnH,GAAM,CAAEgI,KAAM,UAAU,eAAA0C,IAAAxE,EAAAA,EAAAA,GAAA/E,GAAAuJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAjG,GAAAuJ,EAAAvD,KAAA,GAAAwD,GAAA+gC,GAAA9gC,KAAAC,EAAAA,EAAAA,GAAAF,KA3DAvI,EAAAA,IAAmB8H,oBC5CvC,IAAKkmB,GAAC,SAADA,GAAC,OAADA,EAAC,oBAADA,EAAC,cAADA,EAAC,oBAADA,EAAC,sBAADA,EAAC,sBAADA,EAAC,sBAADA,EAAC,wBAADA,EAAC,wBAADA,EAAC,wBAADA,EAAC,4BAADA,EAAC,4BAADA,EAAC,4BAADA,EAAC,sBAADA,EAAC,sBAADA,EAAC,sBAADA,EAAC,8BAADA,EAAC,gCAADA,EAAC,8BAADA,EAAC,gCAADA,CAAC,MAsBb,MA4CaC,GAAK,2GChElB,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4LAAgM,KAAQ,OAAQ,MAAS,YCMnX,IAAI,GAAe,SAAsBtlB,EAAO9E,GAC9C,OAAoB,gBAAoBklB,GAAAC,GAAU,OAAS,CAAC,EAAGrgB,EAAO,CACpE9E,IAAKA,EACLyH,KAAM,KAEV,EAOA,SAJ2B,aAAiB,gKCsB5CqgC,EAAAA,GAAAA,gBAAe1d,GH+BQ,CAAEE,GA9CN,CACjByd,SAAU,WACVC,MAAO,QACPC,SAAU,eACVC,UAAW,YACXC,UAAW,YACXC,UAAW,gBACXC,WAAY,aACZC,WAAY,aACZC,WAAY,iBACZC,aAAc,eACdC,aAAc,eACdC,aAAc,mBACdC,UAAW,YACXC,UAAW,YACXC,UAAW,gBACXC,cAAe,gBACfC,eAAgB,iBAChBC,cAAe,gBACfC,eAAgB,kBA2BWze,GAxBV,CACjBud,SAAU,KACVC,MAAO,KACPC,SAAU,KACVC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,WAAY,KACZC,aAAc,MACdC,aAAc,MACdC,aAAc,MACdC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,cAAe,OACfC,eAAgB,OAChBC,cAAe,OACfC,eAAgB,UGzBlB5D,KAAAA,OAAaC,MACbD,KAAAA,OAAa6D,MACb7D,KAAAA,OAAa8D,MACb9D,KAAAA,OAAa+D,MAkCb,MAAQvvC,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBACrCG,IAAkBD,EAAAA,EAAAA,WAAmC,gBACrDD,IAAcC,EAAAA,EAAAA,WAAyC,WAE7D,IAAAkvC,GAAA,IAAA7uC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAA+uC,GAAA,IAAA1tC,QAAAL,GAAA,IAAAhB,QAAAgvC,GAAA,IAAAhvC,QAMA,MAAAivC,WAG2BrtC,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAgtC,KAC7C/sC,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAIAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAW,GAAA,SAKAjB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8C,GAAA,MAAAC,GAAA,SAMAnB,EAAAA,EAAAA,GAAA,KAAA3B,IAAA+C,GAAA,MAAAL,GAAA,SAMAf,EAAAA,EAAAA,GAAA,KAAA1B,IAAA0C,GAAA,MAAAK,GAAA,SAKArB,EAAAA,EAAAA,GAAA,KAAAzB,IAAA+C,GAAA,MAAAf,GAAA,SAKAP,EAAAA,EAAAA,GAAA,KAAAxB,IAAAgC,GAAA,MAAA0sC,GAAA,SAQAltC,EAAAA,EAAAA,GAAA,KAAAvB,IAAA0uC,GAAA,MAAAC,GAAA,SAMAptC,EAAAA,EAAAA,GAAA,KAAAtB,IAAA2uC,GAAA,MAAAC,GAAA,SAMAttC,EAAAA,EAAAA,GAAA,KAAArB,IAAA4uC,GAAA,MAAAC,GAAA,SAMAxtC,EAAAA,EAAAA,GAAA,KAAApB,IAAA6uC,GAAA,MAAAC,GAAA,SAMA1tC,EAAAA,EAAAA,GAAA,KAAAnB,IAAA8uC,GAAA,MAAAC,GAAA,SAMA5tC,EAAAA,EAAAA,GAAA,KAAAlB,IAAA+uC,GAAA,MAAAxrC,GAAA,SAQArC,EAAAA,EAAAA,GAAA,KAAAjB,IAAAuD,GAAA,MAAAC,GAAA,SAMAvC,EAAAA,EAAAA,GAAA,KAAAhB,IAAAyD,GAAA,MAAAqrC,GAAA,SAAAtrC,EAAAA,EAAAA,GAAA,qBAAAurC,GAAA,MAMgBrrC,IACdC,KAAKD,MAAQA,GACbE,EAAAA,EAAAA,GAAAmqC,GAAApqC,KAAKE,IAAaC,KAAKJ,EAAM,KAE/B1C,EAAAA,EAAAA,GAAA,KAAAgtC,IAAatqC,KACXE,EAAAA,EAAAA,GAAAmqC,GAAApqC,KAAKqrC,IAASlrC,KAAKJ,EAAM,GACzB,SAjGmBgC,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAIJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAKLjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAvF,GAAA,eAALuE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,gBAMjBQ,GAAW,OAAAzB,EAAAA,EAAAA,GAAAtF,GAAA,qBAAX+G,CAAWR,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,YAMXO,GAAO,OAAAxB,EAAAA,EAAAA,GAAArF,GAAA,iBAAP6G,CAAOP,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,aAKsBS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAApF,GAAA,kBAAR8G,CAAQT,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,aAKRG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAnF,GAAA,kBAARuG,CAAQH,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,aAQrCspC,GAAQ,OAAAvqC,EAAAA,EAAAA,GAAAlF,GAAA,kBAARyvC,CAAQtpC,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,WAMR0lC,GAAM,OAAA3mC,EAAAA,EAAAA,GAAAjF,GAAA,gBAAN4rC,CAAM1lC,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,WAMNojC,GAAM,OAAArkC,EAAAA,EAAAA,GAAAhF,GAAA,gBAANqpC,CAAMpjC,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,uBAMNupC,GAAkB,OAAAxqC,EAAAA,EAAAA,GAAA/E,GAAA,4BAAlBuvC,CAAkBvpC,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,iBAMlBwpC,GAAY,OAAAzqC,EAAAA,EAAAA,GAAA9E,GAAA,sBAAZuvC,CAAYxpC,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,qBAMZypC,GAAgB,OAAA1qC,EAAAA,EAAAA,GAAA7E,GAAA,0BAAhBuvC,CAAgBzpC,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,eAQhBiB,GAAU,OAAAlC,EAAAA,EAAAA,GAAA5E,GAAA,oBAAV8G,CAAUjB,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,CAqBnByB,MAAAA,GACE,OACEC,IAAAA,cAACgoC,GAAqB,CACpB5nC,WAAY9D,KACZ4D,YAAa5D,KAAK6D,iBAClBY,WAAYzE,KAAKyE,WACjBvC,MAAOlC,KAAKkC,MACZH,KAAM/B,KAAK+B,KACXhC,MAAOC,KAAKD,MACZwC,QAASvC,KAAKuC,QACdJ,SAAUnC,KAAKmC,SACfK,YAAaxC,KAAKwC,YAClB0B,WAAYlE,KAAKkE,WACjBD,UAAWjE,KAAKiE,UAChBhB,WAAYjD,KAAKiD,WACjBR,SAAUzC,KAAKyC,SACf+oC,aAAcxrC,KAAKwrC,aACnBxnC,UAAWhE,KAAKgE,UAChBunC,mBAAoBvrC,KAAKurC,mBACzBnG,OAAQplC,KAAKolC,OACbsC,OAAQ1nC,KAAK0nC,OACb4D,SAAUtrC,KAAKsrC,SACfvjC,SAAU/H,KAAK+Y,aACf1U,QAAS,eACTsnC,MAAM5qC,EAAAA,EAAAA,GAAKspC,GAALrqC,MACNyrC,iBAAkBzrC,KAAKyrC,kBAG7B,EACDG,GAAAtB,KAAA1lC,GAAApH,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAC,GAAAC,GAAAL,GAAAC,GAAAK,GAAAC,GAAAf,GAAAC,GAAA0sC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAxrC,GAAAC,GAAAC,GAAAM,GAAA2E,GAAA/E,GAAAqrC,GAAAE,GAAAQ,GAAAT,IAAAtmC,GAAAqlC,GAAAplC,MAAAC,EAAAA,EAAAA,GAAA4mC,GAAA,CAtIAjxC,GAAc,iBAAkB,CAC/BsK,WAAY,CAACC,GAAAA,MACb,EAKCtK,KAAU,WAIVA,KAAU,YAKVA,KAAU,YAKVA,KAAU,kBAMVA,GAAS,CAAE0K,WAAW,IAAQ,cAM9B1K,GAAS,CAAEiI,KAAMuC,UAAU,eAK3BxK,GAAS,CAAEiI,KAAMuC,UAAU,eAK3BxK,GAAS,CACRiI,KAAMuC,UACN,eAMDxK,KAAU,aAMVA,GAAS,CAAE0K,WAAW,IAAQ,aAM9B1K,GAAS,CAAEiI,KAAMuC,UAAU,yBAM3BxK,GAAS,CAAE0K,WAAW,IAAQ,mBAM9B1K,GAAS,CAAEiI,KAAMuC,UAAU,uBAM3BxK,GAAS,CACR0K,WAAW,IACX,iBAMDzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA3E,GAAAmJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAA7F,GAAAmJ,EAAAvD,IAAA,CAMzBnH,GAAM,CAAEgI,KAAM,OAAO,YAAA0C,IAAAxE,EAAAA,EAAAA,GAAA1E,GAAAkJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAA5F,GAAAkJ,EAAAvD,KAAA,GAAAwD,GAAA6kC,GAAA5kC,KAAAC,EAAAA,EAAAA,GAAAF,KA5FGvI,EAAAA,IAAmB8H,KAqI9C,MAAM+mC,GACJC,IAEA,MAAMC,EAAW,IAAI/f,IACfggB,EAA6B,GASnC,MARA,GAAGF,IAAarV,MAAM,KAAK9vB,SAASS,IAClC,GAAIA,EAAKsH,SAAS,KAAM,CACtB,MAAMu9B,EAAQ7kC,EAAKqvB,MAAM,KAAK1rB,KAAKhJ,GAAMqD,OAAOrD,KAChDiqC,EAAOp/B,KAAKq/B,EACd,KAA2B,KAAhB7kC,EAAKsO,QAAkBtQ,OAAO8mC,MAAM9mC,OAAOgC,KACpD2kC,EAASI,IAAI/mC,OAAOgC,GACtB,IAEK,CAAE2kC,WAAUC,SAAQ,EAGvBI,GAAuBA,CAC3B1pB,EACA2pB,KAEA,MAAM,SAAEN,EAAQ,OAAEC,GAAWK,EAC7B,OAAyB,IAAlBN,EAASlpC,MAAgC,IAAlBmpC,EAAOtqC,QAEjCqqC,EAASvmC,IAAIkd,IACXspB,EAAOh8B,MAAKxB,IAAA,IAAEnM,EAAKD,GAAIoM,EAAA,OAAKkU,GAAOrgB,GAAOqgB,GAAOtgB,CAAG,GAAC,EAGvDkqC,GACJD,IAEA,MAAM,SAAEN,EAAQ,OAAEC,GAAWK,EAC7B,OAAyB,IAAlBN,EAASlpC,MAAgC,IAAlBmpC,EAAOtqC,MAAY,EAG7C6qC,GACJF,IAEA,MAAM,SAAEN,EAAQ,OAAEC,GAAWK,EAC7B,IAAIr1B,EAAS,IAAI+0B,GAIjB,OAHAC,EAAOrlC,SAAQwI,IAAgB,IAAd9M,EAAKD,GAAI+M,EACxB6H,EAASA,EAAO2I,OAAO,IAAI7O,MAAM1O,EAAM,GAAGkP,QAAQgR,MAAMjgB,GAAK,IAExD,IAAI,IAAI2pB,IAAIhV,GAAQ,EAGtB,SAASw1B,GACd7mC,GAEA,MAAM,OACJw/B,EAAM,OACNsC,EAAM,SACN4D,EAAQ,WACRroC,EAAU,aACVuoC,EAAY,mBACZD,EAAkB,iBAClBE,EAAgB,YAChBjpC,EAAW,SACXC,EAAQ,SACRsF,EAAQ,KACR4jC,GACE/lC,GAEG7F,EAAOiG,IAAYC,EAAAA,EAAAA,UAASL,EAAM7F,QAClC2sC,EAAiBC,IAAsB1mC,EAAAA,EAAAA,WAAS,GACjD2mC,GAAUjmC,EAAAA,EAAAA,UAAQ,IACjB6kC,EAGG,GAAsB5rB,OAAO4rB,GAAcxgC,KAAKiC,IACtD,MAAM,OAAE4/B,EAAM,OAAEC,EAAM,KAAEC,EAAI,KAAEC,EAAI,MAAEC,EAAK,QAAEC,EAAO,KAAEC,GAASlgC,EACvDmgC,EAAwBtB,GAAqBiB,GAC7CM,EAA0BvB,GAAqBgB,GAC/CQ,EAA0BxB,GAAqBe,GAC/CU,EAAwBzB,GAAqBqB,GAC7CK,EAAyB1B,GAAqBmB,GAC9CQ,EAAwB3B,GAAqBkB,GAC7CU,EAAwB5B,GAAqBoB,GACnD,MAAO,CACLj2B,OAAQ,CACN81B,KAAMK,EACNN,OAAQO,EACRR,OAAQS,EACRH,KAAMI,EACNN,MAAOO,EACPR,KAAMS,EACNP,QAASQ,GAEXC,UACEpB,GAAwBgB,IACxBhB,GAAwBiB,IACxBjB,GAAwBkB,IACxBlB,GAAwBmB,GAC1BE,UACErB,GAAwBa,IACxBb,GAAwBc,IACxBd,GAAwBe,GAC3B,IA9BM,IAgCR,CAAC9B,KAEJ3kC,EAAAA,EAAAA,YAAU,KACRb,EAASJ,EAAM7F,MAAM,GACpB,CAAC6F,EAAM7F,QAEV,MAqBM8tC,EAA4Bb,GACzBA,GAAQA,EAAO7G,OAmElB2H,EAA0B,SAAX1I,EACf2I,EAA6B,YAAX3I,EAElB4I,GAAY9jC,EAAAA,EAAAA,cAAY,KAC5B,MA2BM+jC,EA3BwB,CAC5BjB,KAAM,CACJlV,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE8d,YAClBjR,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE6d,SAClBhR,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE4d,aAEpBqF,KAAM,CACJpW,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEie,aAClBpR,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEge,aAClBnR,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE+d,cAEpBiE,MAAO,CACLnV,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEoe,cAClBvR,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEme,cAClBtR,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEke,eAEpBgF,QAAS,CACPrW,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEue,gBAClB1R,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEse,gBAClBzR,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEqe,iBAEpB6D,KAAM,CACJrV,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE0e,aAClB7R,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEye,aAClB5R,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEwe,eAGFrE,GACdgJ,EAAcruC,GAASomC,OA6E7B,OACEziC,IAAAA,cAAA,OACE4D,UAAWC,IAAW,gBAAiB,CACrC8mC,mBAAoB5rC,KAGtBiB,IAAAA,cAAA,OAAK4D,UAAWC,IAAW,OAAQE,QAASA,IAlF1B6mC,MACpB,IAAIC,EACJ,OAAQnJ,GACN,IAAK,OACHmJ,EAAUH,EAAYI,QAAQC,SAAS,EAAG,QAC1C,MACF,IAAK,OACHF,EAAUH,EAAYI,QAAQC,SAAS,EAAG,SAC1C,MACF,IAAK,QACHF,EAAUH,EAAYI,QAAQC,SAAS,EAAG,UAC1C,MACF,IAAK,UACHF,EAAUH,EAAYI,QAAQC,SAAS,EAAG,YAC1C,MACF,IAAK,OACHF,EAAUH,EAAYI,QAAQC,SAAS,EAAG,SAC1C,MACF,QACEF,EAAUH,EAGdrmC,SAAAA,EAAWwmC,EAASpI,KAAMoI,GAAS7G,OAAOA,IAC1C1hC,EAASuoC,EAAQ,EA2DmCD,IAChD5qC,IAAAA,cAACgrC,GAAY,CAACjkB,IAAI,KAClB/mB,IAAAA,cAAA,YAAOuqC,EAAK,KAEdvqC,IAAAA,cAAA,OAAK4D,UAAU,UAAUG,QAASA,IA7DhBknC,MACpB,IAAIC,EACJ,OAAQxJ,GACN,IAAK,OAML,IAAK,QAML,IAAK,OACHwJ,EAAUzI,OACV,MAXF,IAAK,OACHyI,EAAUzI,OAAQ0I,QAAQ,QAC1B,MAIF,IAAK,UACHD,EAAUzI,OAAQ0I,QAAQ,WAC1B,MAIF,QACED,EAAUR,EAGdrmC,SAAAA,EAAW6mC,EAASzI,KAAMyI,GAASlH,OAAOA,IAC1C1hC,EAAS4oC,EAAQ,EAsCyBD,IACrCV,EAAK,IAERvqC,IAAAA,cAAA,OACE4D,UAAWC,IAAW,CACpBunC,MAAM,EACNC,aACExD,GACAsC,EACEO,EACGI,QACApC,IAAI,EAAc,SAAXhH,EAAoB,OAAUA,MAG9C39B,QAASA,IAlDQunC,MACrB,IAAIC,EACJ,OAAQ7J,GACN,IAAK,OACH6J,EAAWb,EAAYI,QAAQpC,IAAI,EAAG,QACtC,MACF,IAAK,OACH6C,EAAWb,EAAYI,QAAQpC,IAAI,EAAG,SACtC,MACF,IAAK,QACH6C,EAAWb,EAAYI,QAAQpC,IAAI,EAAG,UACtC,MACF,IAAK,UACH6C,EAAWb,EAAYI,QAAQpC,IAAI,EAAG,YACtC,MACF,IAAK,OACH6C,EAAWb,EAAYI,QAAQpC,IAAI,EAAG,SACtC,MACF,QACE6C,EAAWb,EAGfrmC,SAAAA,EAAWknC,EAAU9I,KAAM8I,GAAUvH,OAAOA,IAC5C1hC,EAASipC,EAAS,EA2BCD,IAEftrC,IAAAA,cAAA,YAAOuqC,EAAK,IACZvqC,IAAAA,cAACwrC,GAAAA,EAAa,CAACzkB,IAAI,MAEjB,GAEP,CAAC1qB,EAAOqlC,EAAQmG,IAEb4D,GAAajlC,EAAAA,EAAAA,cACjB,CACElJ,EACAouC,KAEA,MAAMC,EAAa,CACjB,EAAGvX,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE2e,iBACrB,EAAG9R,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE4e,kBACrB,EAAG/R,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE6e,iBACrB,EAAGhS,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE8e,mBAEjBuF,EAA0BnJ,KAAMpmC,GAAOouC,UACvCoB,EAAyBpJ,KAAMnlC,GAASmtC,UAC9C,MAAkB,YAAX/I,EACL1hC,IAAAA,cAAA,OACE4D,UAAWC,IAAW,iBAAkB,CACtC+nC,gBAAiBA,IAAoBC,KAGtCF,EAAWE,IAGdH,EAAKI,UACN,GAEH,CAACzvC,EAAOqlC,IAGV,OACE1hC,IAAAA,cAAA,OACE4D,UAAU,aACVS,SAAWnD,IACTA,EAAEyU,iBAAiB,GAGrB3V,IAAAA,cAAC+rC,GAAAA,EAAU,CACTN,WAAYA,CAACnuC,EAASouC,IACbD,EAAWnuC,EAASouC,GAE7BrvC,MAAOA,EACPqoC,kBAAoB/jC,GAAYA,EAChCqrC,eAAgBnoC,IAAW,CACzBooC,cAAe5B,EACfrB,gBAAiBA,IAEnBhF,OAAQA,EACR4D,SAAUwC,EAAexC,OAAWhhC,EAEpCvC,SAAUA,EACVP,MAAOvE,EACPT,YAAaA,EACbmpC,KAAMA,EACNiE,WAAYlsC,IAAAA,cAAC1I,GAAW,CAACuN,KAAK,WAAWD,IAAI,YAC7C88B,OAAQA,EACRoG,aACGD,GAAsBsC,GACtBrC,GA/RmBwB,KAC1B,MAAM6C,EAAU7C,EAAKG,OACf2C,EAAW9C,EAAKC,QAAU,EAC1B2B,EAAU5B,EAAKA,OACf+C,EAAa/C,EAAKgD,aACxB,OAAOpD,EAAQ38B,MAAMggC,IACnB,MAAM,UAAEtC,EAAS,UAAEC,EAAS,OAAE32B,GAAWg5B,EAEzC,GAAItC,IAAcC,EAChB,OAAO,EAET,MAAM,KAAET,EAAI,MAAEF,EAAK,QAAEC,EAAO,KAAEF,GAAS/1B,EACvC,OACEo1B,GAAqBwD,EAAS1C,IAC9Bd,GAAqByD,EAAU7C,IAC/BZ,GAAqB0D,EAAY7C,IACjCb,GAAqBuC,EAAS5B,EAAK,GAErC,GA+QEkD,aAAc1E,GAxQQwB,KAC1B,IAAKA,EAAM,OACX,MAAM6C,EAAU7C,EAAKG,OACf2C,EAAW9C,EAAKC,QAAU,EAC1B2B,EAAU5B,EAAKA,OACf+C,EAAa/C,EAAKgD,aAClBG,EAAUnD,EAAKD,OACfqD,EAAYpD,EAAKF,SACjBuD,EAAgBrD,EAAKH,SAC3B,IAAIyD,EAA0B,GAC1BC,EAA4B,GAC5BC,EAA4B,GAC5BC,GAAe,EA6CnB,OA5CA7D,EAAQhmC,SAASqpC,IACf,MAAM,UAAErC,EAAS,OAAE32B,GAAWg5B,EAE9B,GAAIrC,EAAW,OACf,MAAM,KAAEb,EAAI,OAAED,EAAM,OAAED,EAAM,KAAEM,EAAI,MAAEF,EAAK,QAAEC,EAAO,KAAEF,GAAS/1B,EACvDy5B,EACJrE,GAAqBwD,EAAS1C,IAC9Bd,GAAqByD,EAAU7C,IAC/BZ,GAAqB0D,EAAY7C,IACjCb,GAAqBuC,EAAS5B,GAOhC,GANAyD,EACEA,GACCC,GACCrE,GAAqB8D,EAASpD,IAC9BV,GAAqB+D,EAAWtD,IAChCT,GAAqBgE,EAAexD,GACpC6D,EAAa,CACf,MAAMC,EAAapE,GAAwBQ,GACvC,IAAIh8B,MAAM,IAAIQ,QACdi7B,GAA+BO,GAC7B6D,EAAerE,GAAwBO,GACzC,IAAI/7B,MAAM,IAAIQ,QACdi7B,GAA+BM,GAC7B+D,EAAetE,GAAwBM,GACzC,IAAI97B,MAAM,IAAIQ,QACdi7B,GAA+BK,GAE/BR,GAAqB8D,EAASpD,KAE5BV,GAAqB+D,EAAWtD,KAClC0D,EAAkBA,EAAgB5wB,OAAO,IAAIixB,KAGnB,KAAxBA,EAAalvC,SACf4uC,EAAkBA,EAAgB3wB,OAAO,IAAIgxB,MAIrB,KAAxBA,EAAajvC,QAAyC,KAAxBkvC,EAAalvC,SAC7C2uC,EAAgBA,EAAc1wB,OAAO,IAAI+wB,IAE7C,KAEFhE,EAAmB8D,GACZ,CACLH,cAAeA,IAAMA,EACrBC,gBAAiBA,IAAMA,EACvBC,gBAAiBA,IAAMA,EACxB,GA4MG/tC,SAAUA,IAEXgpC,GAAoB/nC,IAAAA,cAACsqC,EAAS,MAGrC,CAEO,SAAStC,GACd9lC,GAEA,MAAM,OAAEw/B,EAAS,UAAWI,GAAc5/B,EASpCyhC,GAAe5E,EAAAA,GAAAA,mBACf6E,EACJxP,GAAAA,KAAKyP,UAA4C,OAAhCzP,GAAAA,KAAKyP,SAAS7Q,MAAM,KAAK,GAAc8Q,GAAAA,EAAOC,GAAAA,EAC3DqG,EAA0B,SAAX1I,EACfsC,EAAS9hC,EAAM8hC,QAXG,CACtBsF,KAAM,aACNkB,KAAM,WACNjB,MAAO,WACPkB,QAAS,YACThB,KAAM,QAMuC/H,GASzCuC,GAAQhhC,EAAAA,EAAAA,UAAQ,KACbihC,EAAAA,GAAAA,OACN,IAEG7nC,GAA2B4G,EAAAA,EAAAA,UAAQ,KACvC,MAAMmqC,EAAalrC,EAAM7F,MACzB,GAAI+wC,EACF,OAAKlrC,EAAM8hC,QAAsB,SAAXtC,GAAgC,YAAXA,EAIlCe,KAAM2K,EAAYpJ,GAFlBvB,KAAM4K,KAAOD,EAAYpJ,GAAQA,SAI5C,GACC,CAAC9hC,EAAM7F,MAAO2nC,IAEjB,OACEhkC,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CACdC,YAAY,YACPknB,EAAAA,EAAAA,MAAK1oB,EAAO,CAAC,gBAElBlC,IAAAA,cAACmkC,GAAAA,GAAc,CACbP,OAAQA,EACR9+B,MAAO,CACLs/B,UACmB,YAAjBT,EACI7+B,GAAAA,EAAMu/B,cACNv/B,GAAAA,EAAMw/B,mBAGdtkC,IAAAA,cAACukC,GAAAA,GAAa,CAACC,UAAWtiC,EAAMnB,WAA0B0jC,MAAOR,GAC/DjkC,IAAAA,cAAC+oC,IAAuBtlC,EAAAA,EAAAA,GAAA,GAClBq+B,EAAS,CACbzlC,MAAOA,EACP2nC,OAAQA,EACR3/B,SA1CWgR,CAACi4B,EAAqBC,KAA6B,IAAA73B,EACxD,QAAdA,EAAAxT,EAAMmC,gBAAQ,IAAAqR,GAAdA,EAAAhY,KAAAwE,EAAiBqrC,EAAW,EA0CpBtF,KAAMmC,EAvCEd,IAAsB,IAAAkE,EAC5B,QAAVA,EAAAtrC,EAAM+lC,YAAI,IAAAuF,GAAVA,EAAA9vC,KAAAwE,EAAaonC,aAAI,EAAJA,EAAMtF,OAAO9hC,EAAM8hC,QAAQ,OAsCAp9B,EAChC86B,OAAQA,OAMpB,gBClrBO,IAAKna,GAAC,SAADA,GAAC,OAADA,EAAC,cAADA,EAAC,sBAADA,EAAC,wBAADA,EAAC,4BAADA,EAAC,sBAADA,EAAC,oEAADA,EAAC,0CAADA,EAAC,sCAADA,CAAC,MAYb,MAsBaC,GAAK,oHCNlB0d,EAAAA,GAAAA,gBAAe1d,GDQQ,CAAEE,GAxBN,CACjB0d,MAAO,QACPG,UAAW,YACXG,WAAY,aACZG,aAAc,eACdG,UAAW,YACXyH,iCAAkC,2CAClCC,oBAAqB,yBACrBC,kBAAmB,wBAgBQ/lB,GAbV,CACjBwd,MAAO,KACPG,UAAW,KACXG,WAAY,KACZG,aAAc,MACdG,UAAW,KACXyH,iCAAkC,gBAClCC,oBAAqB,SACrBC,kBAAmB,YCFrBlL,KAAAA,OAAaC,MACbD,KAAAA,OAAa6D,MACb7D,KAAAA,OAAa8D,MACb9D,KAAAA,OAAa+D,MAEb,MAAQvvC,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBACrCG,IAAkBD,EAAAA,EAAAA,WAAmC,gBACrDD,IAAcC,EAAAA,EAAAA,WAAyC,WAEvDq2C,GAA6B,CACjCC,UAAW,WACXC,QAAS,YAGJ,IAMNC,GANWC,GAAe,SAAfA,GAAe,OAAfA,EAAe,WAAfA,EAAe,cAAfA,EAAe,eAAfA,EAAe,kBAAfA,EAAe,cAAfA,CAAe,MAM1B,IAAAp2C,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAs2C,GAAA,IAAAj1C,QAAAk1C,GAAA,IAAAv2C,QAAAw2C,GAAA,IAAAx2C,QA8BD,MAAAy2C,WAGgC70C,EAAAA,EAAoBC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAu0C,KAClDt0C,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAKAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAW,GAAA,SAMAjB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8C,GAAA,MAAAX,GAAA,SAKAP,EAAAA,EAAAA,GAAA,KAAA3B,IAAAmC,GAAA,MAAAk0C,GAAA,SAMA10C,EAAAA,EAAAA,GAAA,KAAA1B,IAAAq2C,GAAA,MAAAC,GAAA,SAMA50C,EAAAA,EAAAA,GAAA,KAAAzB,IAAAs2C,GAAA,MAAAC,GAAA,MAKiD,MAEjD90C,EAAAA,EAAAA,GAAA,KAAAxB,IAAAu2C,GAAA,MAAAC,GAAA,SAAAh1C,EAAAA,EAAAA,GAAA,KAAAvB,IAAAw2C,GAAA,MAAA1xC,GAAA,SAYAvD,EAAAA,EAAAA,GAAA,KAAAtB,IAAA8E,GAAA,MAAAjB,GAAA,SAAAC,EAAAA,EAAAA,GAAA,qBAAAC,GAAA,MAMgBC,IACdC,KAAKD,MAAQA,GACbE,EAAAA,EAAAA,GAAA0xC,GAAA3xC,KAAKE,IAAaC,KAAKJ,EAAM,KAE/BF,EAAAA,EAAAA,GAAA,gBACWE,GACLA,EAAMwxC,WAAaxxC,EAAMyxC,SAAWzxC,EAAMwxC,YAAcxxC,EAAMyxC,QACzD1Z,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEkmB,oCAEpB,MAETtxC,EAAAA,EAAAA,GAAA,0BACqBE,IACdA,EAAMwxC,WAAavxC,KAAKmC,SACpB21B,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEmmB,uBAEpB,MAETvxC,EAAAA,EAAAA,GAAA,wBACmBE,IACZA,EAAMyxC,SAAWxxC,KAAKmC,SAClB21B,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEomB,qBAEpB,MAGTh0C,EAAAA,EAAAA,GAAA,KAAAu0C,GAA8D,CAC5D5xC,KAAKuyC,QACLvyC,KAAKwyC,kBACLxyC,KAAKyyC,mBAGPp1C,EAAAA,EAAAA,GAAA,KAAAw0C,GAAiB,WAAW,SAvFP9vC,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAKJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAMejC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAvF,GAAA,eAALuE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,aAKRG,GAAQ,OAAApB,EAAAA,EAAAA,GAAAtF,GAAA,kBAAR0G,CAAQH,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,cAMrC0wC,GAAS,OAAA3xC,EAAAA,EAAAA,GAAArF,GAAA,mBAATg3C,CAAS1wC,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,mBAMT2wC,GAAc,OAAA5xC,EAAAA,EAAAA,GAAApF,GAAA,wBAAdg3C,CAAc3wC,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,qBAOd4wC,GAAgB,OAAA7xC,EAAAA,EAAAA,GAAAnF,GAAA,0BAAhBg3C,CAAgB5wC,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,iBAOhB6wC,GAAY,OAAA9xC,EAAAA,EAAAA,GAAAlF,GAAA,sBAAZg3C,CAAY7wC,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,cAKZwB,GAAS,OAAAzC,EAAAA,EAAAA,GAAAjF,GAAA,mBAAT0H,CAASxB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,CAyClByB,MAAAA,GACE,IAAIikC,GAAS3mC,EAAAA,EAAAA,GAAK8wC,GAAL7xC,MACb,OAAQA,KAAK0yC,WACX,IAAK,OACHhL,EAAS,aACT,MACF,IAAK,WACHA,EAAS,eAAc3mC,EAAAA,EAAAA,GAAK8wC,GAAL7xC,QACvB,MACF,IAAK,SACH0nC,EAAS,QACT,MACF,IAAK,OAGL,IAAK,QAGL,IAAK,UAGL,IAAK,OACHA,EAAS,GAIb,OACEhkC,IAAAA,cAACovC,GAA0B,CACzBhvC,WAAY9D,KACZ4D,YAAa5D,KAAK6D,iBAClB9B,KAAM/B,KAAK+B,KACXG,MAAOlC,KAAKkC,MACZnC,MAAOC,KAAKD,MACZiE,UAAWhE,KAAKgE,UAChBE,WAAYlE,KAAKkE,WACjBD,UAAWjE,KAAKiE,UAChB0uC,eAAgB3yC,KAAK2yC,eACrBC,iBAAkB5yC,KAAK4yC,iBACvBF,UAAW1yC,KAAK0yC,UAChBvwC,SAAUnC,KAAKmC,SACfulC,OAAQA,EACRlkC,UACGxD,KAAKwD,WACFzC,EAAAA,EAAAA,GAAK6wC,GAAL5xC,MAAuB4f,OAAO5f,KAAKwD,YACnCzC,EAAAA,EAAAA,GAAK6wC,GAAL5xC,MAEN6yC,aAAc7yC,KAAK6yC,aACnB9qC,SAAU/H,KAAK+Y,aACftU,WAAYzE,KAAKyE,WACjB4M,cAAc,EACdhN,QAAQ,gBAGd,EACD0uC,GAAAjB,KAAAltC,GAAApH,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAX,GAAAC,GAAAk0C,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA1xC,GAAAC,GAAAjB,GAAAM,GAAA2E,GAAA/E,IAAAgF,GAAA2sC,GAAA1sC,MAAAC,EAAAA,EAAAA,GAAA+tC,GAAA,CArJAp4C,GAAc,uBAAwB,CACrCsK,WAAY,CAACC,GAAAA,EAAWyjC,GAAAA,MACxB,EAKC/tC,KAAU,WAKVA,KAAU,YAMVA,GAAS,CAAE0K,WAAW,IAAQ,YAK9B1K,GAAS,CAAEiI,KAAMuC,UAAU,eAK3BxK,GAAS,CAAE0K,WAAW,IAAQ,gBAM9B1K,GAAS,CAAEiI,KAAMwC,SAAS,qBAO1BzK,GAAS,CAAEiI,KAAMuC,UAAU,uBAO3BxK,GAAS,CAAE0K,WAAW,IAAQ,mBAG9B1K,GAAS,CACR0K,WAAW,IACX,gBAMDzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAAhF,GAAAwJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAlG,GAAAwJ,EAAAvD,KAAA,GAAAwD,GAAAqsC,GAAApsC,KAAAC,EAAAA,EAAAA,GAAAF,KAxDIvI,EAAAA,IAAmB8H,KAoJnD,MAAMiuC,GAAa,CACjBhG,KAAM,GACNiG,SAAU,GACV/E,KAAM,CAACwD,GAAgBwB,OACvBjG,MAAO,CAACyE,GAAgBwB,MAAOxB,GAAgByB,UAC/ChF,QAAS,CACPuD,GAAgBwB,MAChBxB,GAAgByB,SAChBzB,GAAgB0B,WAElBjG,KAAM,CACJuE,GAAgBwB,MAChBxB,GAAgByB,SAChBzB,GAAgB0B,UAChB1B,GAAgB2B,cAIb,SAASC,GACd1tC,GAEA,MAAM,MACJ7F,EAAK,eACL4yC,EAAc,OACdjL,EAAM,iBACNkL,EAAgB,aAChBC,EAAY,SACZ9qC,EAAQ,YACRnE,GACEgC,EACE2tC,EAAQ,CAAC,OAAQ,UACjBb,EAAY9sC,EAAM8sC,WAAa,OAC/Bc,EAAQD,EAAM5kC,SAAS+jC,GAAa,GAAKvM,OAAQuB,OAAO,cACxD+L,EAAY,CAChBlC,UAAWiC,GAASA,EAAQ,IAAM,IAAMlC,GAAgBC,UACxDC,QAASgC,GAASA,EAAQ,IAAM,IAAMlC,GAAgBE,SAGlDkC,GACH/iC,EAAAA,EAAAA,SAAQ5Q,aAAK,EAALA,EAAOwxC,aAAe5gC,EAAAA,EAAAA,SAAQ5Q,aAAK,EAALA,EAAOyxC,SAE1CiC,EADC1zC,GAGAwxC,EAAWoC,IAAgB1tC,EAAAA,EAAAA,UAChCkgC,KAAMuN,EAAUnC,UAAW7J,KAEtBkM,EAAeC,IAAoB5tC,EAAAA,EAAAA,UAASsrC,aAAS,EAATA,EAAW/C,UACvDgD,EAASsC,IAAc7tC,EAAAA,EAAAA,UAASkgC,KAAMuN,EAAUlC,QAAS9J,KACzDqM,EAAaC,IAAkB/tC,EAAAA,EAAAA,UAASurC,aAAO,EAAPA,EAAShD,UAkBxD3nC,EAAAA,EAAAA,YAAU,KACJ+rC,IAAqBhtC,EAAM7F,QAAU6D,GAAemE,GACtDA,EAASwrC,EAAM5kC,SAAS+jC,GAAapB,GAAkBmC,EACzD,GACC,KAEH5sC,EAAAA,EAAAA,YAAU,KACR,GAAI9G,SAAAA,EAAOwxC,UAAW,CACpB,MAAM0C,EAAQ9N,KAAMpmC,EAAMwxC,UAAW7J,GAAU,cAC/CiM,EAAaM,GACbJ,EAAiBI,EACnB,CACA,GAAIl0C,SAAAA,EAAOyxC,QAAS,CAClB,MAAM0C,EAAM/N,KAAMpmC,EAAMyxC,QAAS9J,GAAU,cAC3CoM,EAAWI,GACXF,EAAeE,EACjB,IACC,CAACn0C,IAEJ,MAAMo0C,EACJzwC,IAAAA,cAAA,OAAK4D,UAAU,aACb5D,IAAAA,cAACqhC,GAAU,CACHzqB,IAAI85B,EAAAA,EAAAA,UAAS,eAEnBrsC,SAxCoBssC,CAACC,EAAoBhM,KAC7CgM,GAAQX,EAAaW,GACrBvsC,SAAAA,EAAW,CACTwpC,UAAWjJ,EACXkJ,QAASA,aAAO,EAAPA,EAAS9J,OAAOA,IACzB,EAoCEU,kBAAoB/jC,GAAYA,EAChCtE,OAAQ4Q,EAAAA,EAAAA,SAAQ5Q,aAAK,EAALA,EAAOwxC,gBAAyBjnC,EAAZinC,EACpC7J,OAAQA,IAEVhkC,IAAAA,cAAA,QAAM4D,UAAU,kBAAiB,KACjC5D,IAAAA,cAACqhC,GAAU,CACHzqB,IAAI85B,EAAAA,EAAAA,UAAS,aAEnBrsC,SAzCkBwsC,CAACD,EAAoBhM,KAC3CgM,GAAQR,EAAWQ,GACnBvsC,SAAAA,EAAW,CACTypC,QAASlJ,EACTiJ,UAAWA,aAAS,EAATA,EAAW7J,OAAOA,IAC7B,EAqCEU,kBAAoB/jC,GAAYA,EAChCtE,OAAQ4Q,EAAAA,EAAAA,SAAQ5Q,aAAK,EAALA,EAAOyxC,cAAqBlnC,EAAVknC,EAClC9J,OAAQA,KAIR8M,EAAiB,CACrB,CAAC9C,GAAgBwB,OAAQ,CACvB,CAACpb,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAE6d,UAAW,CAAC3C,OAAQ0I,QAAQ,OAAQ1I,SAEzD,CAACuL,GAAgByB,UAAW,CAC1B,CAACrb,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEge,cAAe,CAChC9C,OAAQ0I,QAAQ,QAChB1I,OAAQsO,MAAM,UAGlB,CAAC/C,GAAgB0B,WAAY,CAC3B,CAACtb,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEme,eAAgB,CACjCjD,OAAQ0I,QAAQ,SAChB1I,OAAQsO,MAAM,WAGlB,CAAC/C,GAAgB2B,aAAc,CAC7B,CAACvb,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEse,iBAAkB,CACnCpD,OAAQ0I,QAAQ,WAChB1I,OAAQsO,MAAM,aAGlB,CAAC/C,GAAgBgD,UAAW,CAC1B,CAAC5c,GAAAA,KAAKjM,EAAE,GAAGX,MAAMD,GAAEye,cAAe,CAChCvD,OAAQ0I,QAAQ,QAChB1I,OAAQsO,MAAM,WAKdE,GAAchuC,EAAAA,EAAAA,UAAQ,KAC1B,MAAMiuC,EAAc,GACpB,IAAKjC,IAAmBY,EAAM5kC,SAAS+jC,GAAY,CACjD,MAAMmC,GAAkBC,EAAAA,EAAAA,YACtBjC,EACCG,GAAmBN,IAEtB,IAAK,MAAM3qB,KAAK8sB,EAAiB,CAC/B,MAAM9gB,EAAOzlB,OAAOE,QAAQgmC,EAAezsB,IAAI,GAC/C6sB,EAAY/nC,KAAK,CAAE3K,MAAO6xB,EAAK,GAAIh0B,MAAOg0B,EAAK,IACjD,CACF,CACA,OAAO6gB,CAAW,GACjB,CAAClC,EAAWC,EAAgBE,IAUzBkC,GAAcjvC,EAAAA,EAAAA,SAAO,GA4BrBkvC,GAAcruC,EAAAA,EAAAA,UAAQ,KAEvBgK,EAAAA,EAAAA,SAAQ5Q,aAAK,EAALA,EAAOwxC,aAAe5gC,EAAAA,EAAAA,SAAQ5Q,aAAK,EAALA,EAAOyxC,SAE1C,GADA,CAACD,EAAWC,IAGjB,CAACA,EAASD,EAAWxxC,aAAK,EAALA,EAAOyxC,QAASzxC,aAAK,EAALA,EAAOwxC,YAEzC0D,EACJvxC,IAAAA,cAAC+rC,GAAAA,EAAWxK,YAAW,CACrBz9B,MAAO,CAAE6S,MAAO,KAChBixB,SAAuC,aAA5BoH,EACXtN,OAAqC,aAA5BsN,EAAyC,OAASA,EAC3D3yC,MAAOi1C,EACPE,QAASP,EACTjN,OAAQA,EACR3/B,SArDiBotC,IACnBxB,EAAawB,aAAK,EAALA,EAAQ,IACrBrB,EAAWqB,aAAK,EAALA,EAAQ,IACnBptC,SAAAA,EAAW,CACTwpC,UAAW4D,aAAK,EAALA,EAAQ,GAAGzN,OAAOA,GAAU,cACvC8J,QAAS2D,aAAK,EAALA,EAAQ,GAAGzN,OAAOA,GAAU,eACrC,EAgDAN,aA5CkBvS,KACfA,GAAQkgB,EAAY/zC,SACvB2yC,EAAaC,GACbE,EAAWC,IAEXgB,EAAY/zC,SAAU,CACxB,EAuCE2qC,KApCayJ,IAAsB,IAAAC,EAAAC,EACrCP,EAAY/zC,SAAU,EACtB,MAAMm0C,EAAQC,EACdvB,EAAiBsB,SAAU,QAALE,EAALF,EAAQ,UAAE,IAAAE,OAAA,EAAVA,EAAY7G,SAC7BwF,EAAemB,SAAU,QAALG,EAALH,EAAQ,UAAE,IAAAG,OAAA,EAAVA,EAAY9G,QAAQ,EAiCjChD,aA9BkBxqC,KACf2xC,MAIH3xC,GAAWmlC,OAAQsI,SAASkE,EAAgB,SAC5C3xC,EAAUmlC,OAAQsO,MAAM,QAyBxBc,UAAW,IACXnN,kBAAoB/jC,GAAYA,EAChCurC,WAAYlsC,IAAAA,cAAC1I,GAAW,CAACuN,KAAK,WAAWD,IAAI,cAG3C4jC,EAAQqH,EAAM5kC,SAAS+jC,GAAayB,EAAYc,EAEtD,OAAOvxC,IAAAA,cAAA,WAAMwoC,EACf,CAEO,SAAS4G,GAA2BltC,GACzC,MAAMyhC,GAAe5E,EAAAA,GAAAA,mBACf6E,EACJxP,GAAAA,KAAKyP,UAA4C,OAAhCzP,GAAAA,KAAKyP,SAAS7Q,MAAM,KAAK,GAAc8Q,GAAAA,EAAOC,GAAAA,EAE3DE,GAAQhhC,EAAAA,EAAAA,UAAQ,KACbihC,EAAAA,GAAAA,OACN,IAEH,OACElkC,IAAAA,cAACxI,IAAeiM,EAAAA,EAAAA,GAAA,CACdC,YAAY,YACPknB,EAAAA,EAAAA,MAAK1oB,EAAO,CAAC,gBAElBlC,IAAAA,cAACmkC,GAAAA,GAAc,CACbP,OAAQA,EACR9+B,MAAO,CACLs/B,UACmB,YAAjBT,EACI7+B,GAAAA,EAAMu/B,cACNv/B,GAAAA,EAAMw/B,mBAGdtkC,IAAAA,cAACukC,GAAAA,GAAa,CAACC,UAAWtiC,EAAMnB,WAA0B0jC,MAAOR,GAC/DjkC,IAAAA,cAAA,OACEqE,SAAWnD,IACTA,EAAEyU,iBAAiB,GAGrB3V,IAAAA,cAAC4vC,GAAmB,CAClB5L,OAAQ9hC,EAAM8hC,OACd3nC,MAAO6F,EAAM7F,MACb2yC,UAAW9sC,EAAM8sC,UACjB3qC,SAAUnC,EAAMmC,SAChB6qC,iBAAkBhtC,EAAMgtC,iBACxBD,eAAgB/sC,EAAM+sC,eACtBE,aAAcjtC,EAAMitC,aACpBjvC,YAAagC,EAAMhC,iBAOjC,kHCheA,MAAQjJ,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBACrCG,IAAkBD,EAAAA,EAAAA,WAAmC,gBAAgB,IAAAu6C,GAAA,IAAAl6C,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAo6C,GAAA,IAAA/4C,QAkB3E,MAAAg5C,WAG4Bz4C,EAAAA,EAAkDC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAq4C,KAC5Ep4C,EAAAA,EAAAA,GAAA,KAAA/B,GAAAkC,GAAA,QAMAH,EAAAA,EAAAA,GAAA,KAAA9B,IAAAkC,GAAA,MAAAC,GAAA,SAKAL,EAAAA,EAAAA,GAAA,KAAA7B,IAAAmC,GAAA,MAAAW,GAAA,SAMAjB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8C,GAAA,MAAAo3C,GAAA,SAKAt4C,EAAAA,EAAAA,GAAA,KAAA3B,IAAAk6C,GAAA,MAAAh4C,GAAA,SAKAP,EAAAA,EAAAA,GAAA,KAAA1B,IAAAkC,GAAA,MAAAg4C,GAAA,SAKAx4C,EAAAA,EAAAA,GAAA,KAAAzB,IAAAk6C,GAAA,MAAA12C,GAAA,SAOA/B,EAAAA,EAAAA,GAAA,KAAAxB,IAAAwD,GAAA,MAAA02C,GAAA,SAKA14C,EAAAA,EAAAA,GAAA,KAAAvB,IAAAk6C,GAAA,MAAAt3C,GAAA,SAMArB,EAAAA,EAAAA,GAAA,KAAAtB,IAAA4C,GAAA,MAAA8rC,GAAA,SAMAptC,EAAAA,EAAAA,GAAA,KAAArB,IAAA0uC,GAAA,MAAAjE,GAAA,SAMAppC,EAAAA,EAAAA,GAAA,KAAApB,IAAAyqC,GAAA,MAAA9mC,GAAA,SAAAC,EAAAA,EAAAA,GAAA,qBAAAC,GAAA,MAKgBC,IACdC,KAAKD,MAAQA,GACbE,EAAAA,EAAAA,GAAAw1C,GAAAz1C,KAAKE,IAAaC,KAAKJ,EAAM,GAC9B,SAlEQgC,GAAI,OAAAhB,EAAAA,EAAAA,GAAAzF,GAAA,cAAJyG,CAAIC,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAMJE,GAAK,OAAAnB,EAAAA,EAAAA,GAAAxF,GAAA,eAAL2G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,UAKLjC,GAAK,OAAAgB,EAAAA,EAAAA,GAAAvF,GAAA,eAALuE,CAAKiC,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,iBAMLi0C,GAAY,OAAAl1C,EAAAA,EAAAA,GAAAtF,GAAA,sBAAZw6C,CAAYj0C,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,aAKZG,GAAQ,OAAApB,EAAAA,EAAAA,GAAArF,GAAA,kBAARyG,CAAQH,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,eAKRumC,GAAU,OAAAxnC,EAAAA,EAAAA,GAAApF,GAAA,oBAAV4sC,CAAUvmC,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,SAMVc,GAAI,OAAA/B,EAAAA,EAAAA,GAAAnF,GAAA,cAAJkH,CAAId,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,aAMJk0C,GAAQ,OAAAn1C,EAAAA,EAAAA,GAAAlF,GAAA,kBAARq6C,CAAQl0C,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,aAKRS,GAAQ,OAAA1B,EAAAA,EAAAA,GAAAjF,GAAA,kBAAR2G,CAAQT,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,WAOR0lC,GAAM,OAAA3mC,EAAAA,EAAAA,GAAAhF,GAAA,gBAAN2rC,CAAM1lC,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,gBAKNklC,GAAW,OAAAnmC,EAAAA,EAAAA,GAAA/E,GAAA,qBAAXkrC,CAAWllC,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,CAYpByB,MAAAA,GACE,OACEC,IAAAA,cAACxI,GAAe,CACdkM,YAAY,UACZtD,WAAY9D,KACZ4D,YAAa5D,KAAK6D,iBAClB3B,MAAOlC,KAAKkC,MACZH,KAAM/B,KAAK+B,KACXI,SAAUnC,KAAKmC,SACf6B,UAAWhE,KAAKgE,UAChBC,UAAWjE,KAAKiE,UAChBC,WAAYlE,KAAKkE,WACjBG,QAAQ,gBAERX,IAAAA,cAACyyC,GAAsB,CACrBzO,OAAQ1nC,KAAK0nC,OACb3nC,MAAOC,KAAKD,MACZ+C,KAAM9C,KAAK8C,KACXL,SAAUzC,KAAKyC,SACfsF,SAAU/H,KAAK+Y,aACftU,WAAYzE,KAAKyE,WACjByiC,YAAalnC,KAAKknC,YAClBgP,SAAUl2C,KAAKk2C,SACf3N,WAAYvoC,KAAKuoC,WACjB0N,aAAcj2C,KAAKi2C,eAI3B,EAGK,SAASE,GACdvwC,GAEA,MAAMyhC,GAAe5E,EAAAA,GAAAA,oBACdiF,EAAQ0O,IAAanwC,EAAAA,EAAAA,UAC1BL,EAAM8hC,QAEFS,GAAQxhC,EAAAA,EAAAA,UAAQ,KACbihC,EAAAA,GAAAA,OACN,IACH,OACElkC,IAAAA,cAACmkC,GAAAA,GAAc,CACbr/B,MAAO,CACLs/B,UACmB,YAAjBT,EACI7+B,GAAAA,EAAMu/B,cACNv/B,GAAAA,EAAMw/B,mBAGdtkC,IAAAA,cAACukC,GAAAA,GAAa,CAACC,UAAWtiC,EAAMnB,WAA0B0jC,MAAOA,GAC/DzkC,IAAAA,cAAC2yC,GAAAA,GAAWlvC,EAAAA,EAAAA,GAAA,GACNvB,EAAMshC,YAAW,CACrBkB,kBAAoB/jC,GAAYA,EAAQiyC,cACxCv2C,MAAO6F,EAAM7F,MACb0C,SAAUmD,EAAMnD,SAChB8lC,WAAY3iC,EAAM2iC,WAClB0N,aAAcrwC,EAAMqwC,aACpBnzC,KAAM8C,EAAM9C,KACZozC,SAAUtwC,EAAMswC,SAChBxO,OAAQA,EACR6O,eAAgBH,EAChBruC,SAAWhI,IAAU,IAAAqZ,EACnB,IAAIo9B,EAAcz2C,EAAM02C,cACxB,OAAQ7wC,EAAM8hC,QACZ,IAAK,MACH8O,EAAcz2C,EAAM22C,cACpB,MACF,IAAK,MACHF,EAAcz2C,EAAM42C,cACpB,MACF,QACEH,EAAcz2C,EAAM02C,cAGV,QAAdr9B,EAAAxT,EAAMmC,gBAAQ,IAAAqR,GAAdA,EAAAhY,KAAAwE,EAAiB4wC,EAAY,EAE/BI,QAASA,KAAM,IAAAjsB,EACC,QAAdA,EAAA/kB,EAAMmC,gBAAQ,IAAA4iB,GAAdA,EAAAvpB,KAAAwE,EAAkB,MAM9B,CAvDCixC,GAAAnB,KAAA9wC,GAAApH,GAAAC,GAAAC,GAAAC,GAAAW,GAAAC,GAAAo3C,GAAAC,GAAAh4C,GAAAC,GAAAg4C,GAAAC,GAAA12C,GAAAC,GAAA02C,GAAAC,GAAAt3C,GAAAC,GAAA8rC,GAAAC,GAAAjE,GAAAC,GAAA9mC,GAAAM,GAAA2E,GAAA/E,IAAAgF,GAAA0wC,GAAAzwC,MAAAC,EAAAA,EAAAA,GAAA6xC,GAAA,CAzGAl8C,GAAc,kBAAmB,CAChCsK,WAAY,CAACC,GAAAA,MACb,EAKCtK,KAAU,WAMVA,KAAU,YAKVA,KAAU,YAMVA,KAAU,mBAKVA,GAAS,CAAEiI,KAAMuC,UAAU,eAK3BxK,GAAS,CAAEiI,KAAMuC,UAAU,iBAM3BxK,GAAS,CAAE0K,WAAW,IAAQ,WAM9B1K,GAAS,CAAEiI,KAAMuC,UAAU,eAK3BxK,GAAS,CAAEiI,KAAMuC,UAAU,eAO3BxK,GAAS,CAAE0K,WAAW,IAAQ,aAK9B1K,GAAS,CAAE0K,WAAW,IAAQ,kBAM9BzK,GAAM,CAAEgI,KAAM,WAAW,gBAAA0C,IAAAxE,EAAAA,EAAAA,GAAA9E,GAAAsJ,GAAA,CAAAA,EAAAvD,KAAAC,EAAAA,EAAAA,GAAAhG,GAAAsJ,EAAAvD,KAAA,GAAAwD,GAAAiwC,GAAAhwC,KAAAC,EAAAA,EAAAA,GAAAF,KAlEAvI,EAAAA,IAAmB8H,mFC9B3C+xC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,sNACiE,KAE1G,wFCLIw8B,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,m+BAAo+B,KAE7gC,QAAew8B,EAAwBlqC,wFCJnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,2lIAIw5C,KAEj8C,QAAew8B,EAAwBlqC,yFCRnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,2DAA4D,KAErG,QAAew8B,EAAwBlqC,yFCJnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,kpFAW6K,KAEtN,QAAew8B,EAAwBlqC,yFCfnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,k4BAAm4B,KAE56B,QAAew8B,EAAwBlqC,yFCJnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,k2CAAm2C,KAE54C,QAAew8B,EAAwBlqC,yFCJnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,+7EAE80E,KAEv3E,QAAew8B,EAAwBlqC,yFCNnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,wnGAOmH,KAE5J,QAAew8B,EAAwBlqC,yFCXnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,w3SAcK,KAE9C,QAAew8B,EAAwBlqC,yFClBnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,+QAE8J,KAEvM,QAAew8B,EAAwBlqC,yFCNnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,omKAAqmK,KAE9oK,QAAew8B,EAAwBlqC,yFCJnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,+BAAgC,KAEzE,QAAew8B,EAAwBlqC,yFCJnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,2yBAA4yB,KAEr1B,QAAew8B,EAAwBlqC,yFCJnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,krBAKmO,KAE5Q,QAAew8B,EAAwBlqC,yFCTnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,2DAA4D,KAErG,QAAew8B,EAAwBlqC,yFCJnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,2zBAIF,KAEvC,QAAew8B,EAAwBlqC,yFCRnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,wzFAMuL,KAEhO,QAAew8B,EAAwBlqC,wFCVnCkqC,QAA0B,GAA4B,KAE1DA,EAAwBjqC,KAAK,CAACkqC,EAAOz8B,GAAI,2rEAEilE,KAE1nE,QAAew8B,EAAwBlqC,iCCT6BmqC,EAAOC,QAAgL,SAAUpyC,GAAG,aAAqF,IAAIinB,EAA5E,SAAWjnB,GAAG,OAAOA,GAAG,iBAAiBA,GAAG,YAAYA,EAAEA,EAAE,CAACqyC,QAAQryC,EAAE,CAAOY,CAAEZ,GAAG0W,EAAE,CAACvZ,KAAK,QAAQm1C,SAAS,8BAA8BxgB,MAAM,KAAKygB,cAAc,uBAAuBzgB,MAAM,KAAK0gB,YAAY,gBAAgB1gB,MAAM,KAAK2gB,OAAO,wCAAwC3gB,MAAM,KAAK4gB,YAAY,yCAAyC5gB,MAAM,KAAK6gB,QAAQ,SAAS3yC,EAAEY,GAAG,MAAM,MAAMA,EAAEZ,EAAE,IAAIA,EAAE,GAAG,EAAE4yC,UAAU,EAAEC,UAAU,EAAEC,QAAQ,CAACC,GAAG,QAAQC,IAAI,WAAWC,EAAE,aAAaC,GAAG,YAAYC,IAAI,kBAAkBC,KAAK,sBAAsBC,EAAE,WAAWC,GAAG,YAAYC,IAAI,kBAAkBC,KAAK,uBAAuBC,aAAa,CAACC,OAAO,MAAMC,KAAK,MAAM9S,EAAE,KAAK14B,EAAE,OAAOyrC,GAAG,QAAQC,EAAE,OAAOC,GAAG,QAAQp9B,EAAE,MAAMq9B,GAAG,OAAOC,EAAE,OAAOC,GAAG,QAAQ/9B,EAAE,MAAMg+B,GAAG,QAAQC,SAAS,SAASn0C,EAAEY,GAAG,IAAIqmB,EAAE,IAAIjnB,EAAEY,EAAE,OAAOqmB,EAAE,IAAI,KAAKA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,KAAK,IAAI,GAAG,OAAOA,EAAEorB,QAAQ3P,OAAOhsB,EAAE,MAAK,GAAIA,CAAE,CAAjlC9V,CAAE,EAAQ,yBCAzBuxC,EAAOC,QAAiJ,WAAY,aAAa,IAAIpyC,EAAE,MAAM,OAAO,SAASinB,EAAE9D,EAAE0d,GAAG,IAAIuT,EAAE,SAASntB,GAAG,OAAOA,EAAEugB,IAAI,EAAEvgB,EAAEmkB,aAAaprC,EAAE,EAAE0W,EAAEyM,EAAE4d,UAAUrqB,EAAE29B,YAAY,WAAW,OAAOD,EAAEh5C,MAAMmtC,MAAM,EAAE7xB,EAAE2uB,QAAQ,SAASpe,GAAG,IAAI7rB,KAAKk5C,SAASC,EAAEttB,GAAG,OAAO7rB,KAAKosC,IAAI,GAAGvgB,EAAE7rB,KAAKiqC,WAAWrlC,GAAG,IAAImjB,EAAImC,EAAE3kB,EAAE6zC,EAAEJ,EAAEh5C,MAAMm5C,GAAGpxB,EAAE/nB,KAAKi5C,cAAgE1zC,EAAE,GAA1C2kB,GAARlqB,KAAKq5C,GAAQ5T,EAAE6T,IAAI7T,KAAK0H,KAAKplB,GAAG8mB,QAAQ,SAAcmB,aAAa9lB,EAAE8lB,aAAa,IAAIzqC,GAAG,GAAG2kB,EAAEkiB,IAAI7mC,EAAEX,IAAI,OAAOw0C,EAAEG,KAAKJ,EAAE,QAAQ,CAAC,EAAE79B,EAAE00B,WAAW,SAASprC,GAAG,OAAO5E,KAAKk5C,SAASC,EAAEv0C,GAAG5E,KAAKw5C,OAAO,EAAEx5C,KAAKw5C,IAAIx5C,KAAKw5C,MAAM,EAAE50C,EAAEA,EAAE,EAAE,EAAE,IAAIslB,EAAE5O,EAAEuzB,QAAQvzB,EAAEuzB,QAAQ,SAASjqC,EAAEinB,GAAG,IAAI9D,EAAE/nB,KAAKk5C,SAASzT,IAAI1d,EAAEoxB,EAAEttB,IAAIA,EAAE,MAAM,YAAY9D,EAAE2d,EAAE9gC,GAAG6gC,EAAEzlC,KAAKgtC,KAAKhtC,KAAKgtC,QAAQhtC,KAAKgwC,aAAa,IAAInB,QAAQ,OAAO7uC,KAAKgtC,KAAKhtC,KAAKgtC,OAAO,GAAGhtC,KAAKgwC,aAAa,GAAG,GAAGyE,MAAM,OAAOvqB,EAAEuvB,KAAKz5C,KAAPkqB,CAAatlB,EAAEinB,EAAE,CAAC,CAAE,CAAj5BA,qBCAfkrB,EAAOC,QAAuJ,WAAY,aAAa,IAAInrB,EAAE,QAAQ3B,EAAE,UAAU,OAAO,SAAStlB,EAAEmjB,GAAG,IAAIqxB,EAAErxB,EAAE4d,UAAUyT,EAAEjL,QAAQ,SAAStiB,GAAG,OAAO7rB,KAAKk5C,SAASC,EAAEttB,GAAGpgB,KAAKiuC,MAAM15C,KAAKitC,QAAQ,GAAG,GAAGjtC,KAAKitC,MAAMjtC,KAAKitC,QAAQ,EAAE,GAAGphB,EAAE,GAAG,EAAE,IAAI4Z,EAAE2T,EAAEhN,IAAIgN,EAAEhN,IAAI,SAASxnC,EAAEmjB,GAAG,OAAOnjB,EAAES,OAAOT,GAAG5E,KAAKk5C,SAASxT,EAAE3d,KAAKmC,EAAElqB,KAAKosC,IAAI,EAAExnC,EAAEinB,GAAG4Z,EAAEgU,KAAKz5C,KAAPylC,CAAa7gC,EAAEmjB,EAAE,EAAE,IAAIoxB,EAAEC,EAAEvK,QAAQuK,EAAEvK,QAAQ,SAASjqC,EAAEmjB,GAAG,IAAIqxB,EAAEp5C,KAAKk5C,SAASzT,IAAI2T,EAAED,EAAEpxB,IAAIA,EAAE,GAAGqxB,EAAE1T,EAAE9gC,KAAKslB,EAAE,CAAC,IAAI3kB,EAAEvF,KAAKmuC,UAAU,EAAE,OAAO1I,EAAEzlC,KAAKitC,MAAM,EAAE1nC,GAAGspC,QAAQhjB,GAAGgjB,QAAQ,OAAO7uC,KAAKitC,MAAM,EAAE1nC,EAAE,GAAGkvC,MAAM5oB,GAAG4oB,MAAM,MAAM,CAAC,OAAO0E,EAAEM,KAAKz5C,KAAPm5C,CAAav0C,EAAEmjB,EAAE,CAAC,CAAE,CAA9qBmC,0BCEnF,IAAIyvB,EAAc,GAClB,SAASC,EAAqBC,GAE5B,IADA,IAAI3pC,GAAU,EACL6X,EAAI,EAAGA,EAAI4xB,EAAYh4C,OAAQomB,IACtC,GAAI4xB,EAAY5xB,GAAG8xB,aAAeA,EAAY,CAC5C3pC,EAAS6X,EACT,KACF,CAEF,OAAO7X,CACT,CACA,SAAS4pC,EAAa/lB,EAAMhtB,GAG1B,IAFA,IAAIgzC,EAAa,CAAC,EACdC,EAAc,GACTjyB,EAAI,EAAGA,EAAIgM,EAAKpyB,OAAQomB,IAAK,CACpC,IAAI9a,EAAO8mB,EAAKhM,GACZzN,EAAKvT,EAAQkzC,KAAOhtC,EAAK,GAAKlG,EAAQkzC,KAAOhtC,EAAK,GAClDitC,EAAQH,EAAWz/B,IAAO,EAC1Bu/B,EAAa,GAAGj6B,OAAOtF,EAAI,KAAKsF,OAAOs6B,GAC3CH,EAAWz/B,GAAM4/B,EAAQ,EACzB,IAAIC,EAAoBP,EAAqBC,GACzCO,EAAM,CACRC,IAAKptC,EAAK,GACVqtC,MAAOrtC,EAAK,GACZstC,UAAWttC,EAAK,GAChButC,SAAUvtC,EAAK,GACfwtC,MAAOxtC,EAAK,IAEd,IAA2B,IAAvBktC,EACFR,EAAYQ,GAAmBO,aAC/Bf,EAAYQ,GAAmBQ,QAAQP,OAClC,CACL,IAAIO,EAAUC,EAAgBR,EAAKrzC,GACnCA,EAAQ8zC,QAAU9yB,EAClB4xB,EAAY3xB,OAAOD,EAAG,EAAG,CACvB8xB,WAAYA,EACZc,QAASA,EACTD,WAAY,GAEhB,CACAV,EAAYntC,KAAKgtC,EACnB,CACA,OAAOG,CACT,CACA,SAASY,EAAgBR,EAAKrzC,GAC5B,IAAI+zC,EAAM/zC,EAAQwQ,OAAOxQ,GAYzB,OAXA+zC,EAAIC,OAAOX,GACG,SAAiBY,GAC7B,GAAIA,EAAQ,CACV,GAAIA,EAAOX,MAAQD,EAAIC,KAAOW,EAAOV,QAAUF,EAAIE,OAASU,EAAOT,YAAcH,EAAIG,WAAaS,EAAOR,WAAaJ,EAAII,UAAYQ,EAAOP,QAAUL,EAAIK,MACzJ,OAEFK,EAAIC,OAAOX,EAAMY,EACnB,MACEF,EAAI9tC,QAER,CAEF,CACA+pC,EAAOC,QAAU,SAAUjjB,EAAMhtB,GAG/B,IAAIk0C,EAAkBnB,EADtB/lB,EAAOA,GAAQ,GADfhtB,EAAUA,GAAW,CAAC,GAGtB,OAAO,SAAgBm0C,GACrBA,EAAUA,GAAW,GACrB,IAAK,IAAInzB,EAAI,EAAGA,EAAIkzB,EAAgBt5C,OAAQomB,IAAK,CAC/C,IACIxG,EAAQq4B,EADKqB,EAAgBlzB,IAEjC4xB,EAAYp4B,GAAOm5B,YACrB,CAEA,IADA,IAAIS,EAAqBrB,EAAaoB,EAASn0C,GACtCq0C,EAAK,EAAGA,EAAKH,EAAgBt5C,OAAQy5C,IAAM,CAClD,IACIC,EAASzB,EADKqB,EAAgBG,IAEK,IAAnCzB,EAAY0B,GAAQX,aACtBf,EAAY0B,GAAQV,UACpBhB,EAAY3xB,OAAOqzB,EAAQ,GAE/B,CACAJ,EAAkBE,CACpB,CACF,yBCjFA,IAAIG,EAAO,CAAC,EA+BZvE,EAAOC,QAPP,SAA0B1/B,EAAQ9P,GAChC,IAAIK,EAtBN,SAAmBA,GACjB,QAA4B,IAAjByzC,EAAKzzC,GAAyB,CACvC,IAAI0zC,EAAchxC,SAAS7F,cAAcmD,GAGzC,GAAIgD,OAAO2wC,mBAAqBD,aAAuB1wC,OAAO2wC,kBAC5D,IAGED,EAAcA,EAAYE,gBAAgBC,IAC5C,CAAE,MAAO92C,GAEP22C,EAAc,IAChB,CAEFD,EAAKzzC,GAAU0zC,CACjB,CACA,OAAOD,EAAKzzC,EACd,CAIe8zC,CAAUrkC,GACvB,IAAKzP,EACH,MAAM,IAAIgwB,MAAM,2GAElBhwB,EAAO8C,YAAYnD,EACrB,yBCvBAuvC,EAAOC,QANP,SAA4BjwC,GAC1B,IAAIV,EAAUkE,SAASC,cAAc,SAGrC,OAFAzD,EAAQsQ,cAAchR,EAASU,EAAQ60C,YACvC70C,EAAQuQ,OAAOjR,EAASU,EAAQA,SACzBV,CACT,8BCCA0wC,EAAOC,QANP,SAAwC6E,GACtC,IAAIC,EAAmD,KACnDA,GACFD,EAAapxC,aAAa,QAASqxC,EAEvC,yBCoDA/E,EAAOC,QAjBP,SAAgBjwC,GACd,GAAwB,oBAAbwD,SACT,MAAO,CACLwwC,OAAQ,WAAmB,EAC3B/tC,OAAQ,WAAmB,GAG/B,IAAI6uC,EAAe90C,EAAQyQ,mBAAmBzQ,GAC9C,MAAO,CACLg0C,OAAQ,SAAgBX,IAjD5B,SAAeyB,EAAc90C,EAASqzC,GACpC,IAAIC,EAAM,GACND,EAAII,WACNH,GAAO,cAAcz6B,OAAOw6B,EAAII,SAAU,QAExCJ,EAAIE,QACND,GAAO,UAAUz6B,OAAOw6B,EAAIE,MAAO,OAErC,IAAIyB,OAAiC,IAAd3B,EAAIK,MACvBsB,IACF1B,GAAO,SAASz6B,OAAOw6B,EAAIK,MAAM94C,OAAS,EAAI,IAAIie,OAAOw6B,EAAIK,OAAS,GAAI,OAE5EJ,GAAOD,EAAIC,IACP0B,IACF1B,GAAO,KAELD,EAAIE,QACND,GAAO,KAELD,EAAII,WACNH,GAAO,KAET,IAAIE,EAAYH,EAAIG,UAChBA,GAA6B,oBAATyB,OACtB3B,GAAO,uDAAuDz6B,OAAOo8B,KAAKC,SAASC,mBAAmBzmB,KAAKC,UAAU6kB,MAAe,QAKtIxzC,EAAQqQ,kBAAkBijC,EAAKwB,EAAc90C,EAAQA,QACvD,CAoBMuK,CAAMuqC,EAAc90C,EAASqzC,EAC/B,EACAptC,OAAQ,YArBZ,SAA4B6uC,GAE1B,GAAgC,OAA5BA,EAAaM,WACf,OAAO,EAETN,EAAaM,WAAWC,YAAYP,EACtC,CAgBMQ,CAAmBR,EACrB,EAEJ,yBC9CA9E,EAAOC,QAVP,SAA2BqD,EAAKwB,GAC9B,GAAIA,EAAaS,WACfT,EAAaS,WAAWC,QAAUlC,MAC7B,CACL,KAAOwB,EAAaW,YAClBX,EAAaO,YAAYP,EAAaW,YAExCX,EAAalxC,YAAYJ,SAASkyC,eAAepC,GACnD,CACF","sources":["webpack:///./src/input/index.tsx","webpack:///../../src/useMergeRefs.ts","webpack:///./src/textarea/calculateAutoSizeStyle.ts","webpack:///./src/textarea/index.tsx","webpack:///../../src/PubSub.ts","webpack:///../../src/FormStore.ts","webpack:///./src/form/index.tsx","webpack:///./src/form-item/index.tsx","webpack:///./src/utils/formatOptions.ts","webpack:///./src/radio/host-context.css?b01e","webpack:///./src/radio/index.tsx","webpack:///./src/select/empty.svg","webpack:///./src/select/index.tsx","webpack:///./src/submit-buttons/index.tsx","webpack:///../../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","webpack:///../../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","webpack:///./src/checkbox/index.tsx","webpack:///./src/dynamic-form-item/i18n.ts","webpack:///./src/dynamic-form-item/index.tsx","webpack:///./src/search/index.tsx","webpack:///./src/icon-select/i18n.ts","webpack:///./src/icon-select/utils.ts","webpack:///./src/icon-select/index.tsx","webpack:///./src/upload/i18n.ts","webpack:///./src/upload/utils.ts","webpack:///./src/upload/Upload.tsx","webpack:///./src/upload/upload-image/utils.ts","webpack:///./src/upload/upload-image/index.tsx","webpack:///./src/general-switch/index.tsx","webpack:///./src/upload/upload-file/index.tsx","webpack:///./src/auto-complete/index.tsx","webpack:///../../node_modules/antd/es/time-picker/index.js","webpack:///./src/time-picker/index.tsx","webpack:///./src/date-picker/i18n.ts","webpack:///../../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack:///../../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack:///./src/date-picker/index.tsx","webpack:///./src/time-range-picker/i18n.ts","webpack:///./src/time-range-picker/index.tsx","webpack:///./src/color-picker/index.tsx","webpack:///./src/radio/host-context.css","webpack:///./src/auto-complete/styles.shadow.css","webpack:///./src/checkbox/checkbox.shadow.css","webpack:///./src/color-picker/styles.shadow.css","webpack:///./src/date-picker/styles.shadow.css","webpack:///./src/dynamic-form-item/dynamic-form-item.shadow.css","webpack:///./src/general-switch/styles.shadow.css","webpack:///./src/icon-select/styles.shadow.css","webpack:///./src/input/input.shadow.css","webpack:///./src/radio/index.shadow.css","webpack:///./src/search/styles.shadow.css","webpack:///./src/select/index.shadow.css","webpack:///./src/submit-buttons/index.shadow.css","webpack:///./src/textarea/textarea.shadow.css","webpack:///./src/time-picker/fix-style.shadow.css","webpack:///./src/time-picker/styles.shadow.css","webpack:///./src/time-range-picker/styles.shadow.css","webpack:///./src/upload/upload-file/styles.shadow.css","webpack:///./src/upload/upload-image/styles.shadow.css","webpack:///../../node_modules/dayjs/locale/zh-cn.js","webpack:///../../node_modules/dayjs/plugin/isoWeek.js","webpack:///../../node_modules/dayjs/plugin/quarterOfYear.js","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["import React, {\n useEffect,\n useState,\n useRef,\n forwardRef,\n createRef,\n useImperativeHandle,\n type ChangeEvent,\n type MouseEvent,\n type CSSProperties,\n} from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport { isNil } from \"lodash\";\nimport styleText from \"./input.shadow.css\";\nimport { FormItemElementBase, MessageBody } from \"@next-shared/form\";\nimport { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { ComponentSize, InputType } from \"../interface.js\";\nimport { useMergeRefs } from \"@next-shared/hooks\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface InputProps extends FormItemProps {\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n clearable?: boolean;\n autoFocus?: boolean;\n type?: InputType;\n size?: ComponentSize;\n maxLength?: number;\n minLength?: number;\n validateState?: string;\n inputStyle?: CSSProperties;\n}\n\nexport interface InputEvents {\n change: CustomEvent<string>;\n}\n\nexport interface InputEventsMap {\n onChange: \"change\";\n}\n\n/**\n * 通用输入框构件\n * @author sailor\n *\n * @part addon-wrapper - 包裹输入组件、前缀、后缀、前置和后置的容器\n * @part affix-wrapper - 包裹输入组件、前缀和后缀的容器\n * @part input - 输入组件\n * @part clear-icon - 清除按钮\n * @part prefix - 输入框前缀容器\n * @part suffix - 输入框后缀容器\n * @part before-addon - 输入框前置容器\n * @part after-addon - 输入框后置容器\n *\n * @slot addonBefore - 输入框前置标签\n * @slot addonAfter - 输入框后置标签\n * @slot prefix - 输入框前缀图标\n * @slot suffix - 输入框后缀图标\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-input\", {\n styleTexts: [styleText],\n alias: [\"form.general-input\"],\n})\nclass Input extends FormItemElementBase {\n #RCInputRef = createRef<RCInputRef>();\n\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 正则校验规则\n */\n @property() accessor pattern: string | undefined;\n\n /**\n * 表单校验最大长度\n */\n @property({\n type: Number,\n })\n accessor max: number | undefined;\n\n /**\n * 表单校验最小长度\n */\n @property({\n type: Number,\n })\n accessor min: number | undefined;\n\n /**\n * 错误时显示消息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 输入框值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否只读\n */\n @property({ type: Boolean })\n accessor readonly: boolean | undefined;\n\n /**\n * 是否显示清除按钮\n */\n @property({ type: Boolean })\n accessor clearable: boolean | undefined;\n\n /**\n * 是否自动聚焦\n */\n @property({\n type: Boolean,\n })\n accessor autoFocus: boolean | undefined;\n\n /**\n * 类型\n * @default \"text\"\n */\n @property() accessor type: InputType | undefined;\n\n /**\n * 大小\n * @default \"medium\"\n */\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 最小长度\n */\n @property({ type: Number })\n accessor minLength: number | undefined;\n\n /**\n * 最大长度\n */\n @property({ type: Number })\n accessor maxLength: number | undefined;\n\n /**\n * 输入框样式\n */\n @property({ attribute: false }) accessor inputStyle:\n | React.CSSProperties\n | undefined;\n\n /**\n * 值改变事件\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n handleInputChange = (value: string) => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n\n /**\n * focus\n */\n @method()\n focusInput() {\n return this.#RCInputRef.current?.focus();\n }\n\n /**\n * blur\n */\n @method()\n blurInput() {\n return this.#RCInputRef.current?.blur();\n }\n\n /**\n * 是否有 addonBefore 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasAddonBefore: boolean | undefined;\n\n /**\n * 是否有 addonAfter 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasAddonAfter: boolean | undefined;\n\n /**\n * 是否有 prefix 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasPrefix: boolean | undefined;\n\n /**\n * 是否有 suffix 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasSuffix: boolean | undefined;\n\n /**\n * 表单项校验方法\n */\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody) | undefined;\n\n renderCallback = (ref: RCInputRef) => {\n (this.#RCInputRef as any).current = ref;\n const addonBefore = this.#getSlotByName(\"addonBefore\");\n const addonAfter = this.#getSlotByName(\"addonAfter\");\n const prefix = this.#getSlotByName(\"prefix\");\n const suffix = this.#getSlotByName(\"suffix\");\n\n addonBefore?.addEventListener(\"slotchange\", () => {\n this.hasAddonBefore = addonBefore.assignedElements().length > 0;\n });\n addonAfter?.addEventListener(\"slotchange\", () => {\n this.hasAddonAfter = addonAfter.assignedElements().length > 0;\n });\n suffix?.addEventListener(\"slotchange\", () => {\n this.hasSuffix = suffix.assignedElements().length > 0;\n });\n prefix?.addEventListener(\"slotchange\", () => {\n this.hasPrefix = prefix.assignedElements().length > 0;\n });\n };\n\n #getSlotByName(name: string): HTMLSlotElement {\n return this.shadowRoot?.querySelector(\n `slot[name='${name}']`\n ) as HTMLSlotElement;\n }\n\n render() {\n return (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <RCInput\n formElement={this.getFormElement()}\n curElement={this}\n ref={this.renderCallback}\n name={this.name}\n label={this.label}\n required={this.required}\n pattern={this.pattern}\n min={this.min}\n max={this.max}\n message={this.message}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n validateState={this.validateState}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n readOnly={this.readonly}\n clearable={this.clearable}\n autoFocus={this.autoFocus}\n type={this.type}\n size={this.size}\n minLength={this.minLength}\n maxLength={this.maxLength}\n inputStyle={this.inputStyle}\n trigger=\"handleInputChange\"\n onInputChange={this.handleInputChange}\n validator={this.validator}\n />\n );\n }\n}\n\nexport interface RCInputProps extends InputProps {\n onInputChange?: (value: string) => void;\n}\n\nexport interface RCInputRef {\n focus: (options?: FocusOptions) => void;\n blur: () => void;\n}\n\n// eslint-disable-next-line react/display-name\nexport const RCInput = forwardRef<RCInputRef, RCInputProps>((props, ref) => {\n const {\n placeholder,\n clearable,\n disabled,\n readOnly,\n autoFocus,\n size = \"medium\",\n type = \"text\",\n maxLength,\n minLength,\n validateState,\n onInputChange,\n inputStyle,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputAffixWrapperRef = useRef<HTMLInputElement>(null);\n\n const [value, setValue] = useState<string>();\n const [focused, setFocused] = useState<boolean>();\n\n const searchInputRef = React.useCallback((element: HTMLInputElement) => {\n if (element && autoFocus) {\n Promise.resolve().then(() => {\n try {\n element.focus();\n } catch {\n // Do nothing.\n }\n });\n }\n }, []);\n\n const mergeInputRef = useMergeRefs([inputRef, searchInputRef]);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n useImperativeHandle(ref, () => ({\n focus: (options?: FocusOptions) => {\n inputRef.current?.focus(options);\n },\n blur: () => {\n inputRef.current?.blur();\n },\n }));\n\n const handleInputAffixWrapperClick = (e: MouseEvent<HTMLElement>) => {\n if (inputAffixWrapperRef.current?.contains(e.target as Element)) {\n inputRef.current?.focus();\n }\n };\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n onInputChange?.(e.target.value);\n };\n\n const handleFocus = () => {\n setFocused(true);\n };\n\n const handleBlur = () => {\n setFocused(false);\n };\n\n const handleClear = () => {\n setValue(\"\");\n onInputChange?.(\"\");\n };\n\n const getClearIcon = () => {\n if (!clearable) return null;\n\n const hidden = disabled || readOnly || !fixValue(value);\n return (\n <WrappedIcon\n className={classNames(\"input-clear-icon\", {\n \"input-clear-icon-hidden\": hidden,\n })}\n part=\"clear-icon\"\n lib=\"antd\"\n icon=\"close-circle\"\n theme=\"filled\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={handleClear}\n />\n );\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div\n part=\"addon-wrapper\"\n className={classNames(\n \"input-addon-wrapper\",\n size && `input-addon-wrapper-size-${size}`,\n validateState && `input-addon-wrapper-status-${validateState}`\n )}\n style={inputStyle}\n >\n <span part=\"before-addon\" className=\"input-before-addon\">\n <slot name=\"addonBefore\" />\n </span>\n <span\n ref={inputAffixWrapperRef}\n part=\"affix-wrapper\"\n className={classNames(\"input-affix-wrapper\", {\n \"input-affix-wrapper-focused\": focused,\n \"input-affix-wrapper-disabled\": disabled,\n \"input-affix-wrapper-readOnly\": readOnly,\n })}\n onClick={handleInputAffixWrapperClick}\n >\n <span part=\"prefix\" className=\"input-prefix\">\n <slot name=\"prefix\" />\n </span>\n <input\n part=\"input\"\n placeholder={placeholder}\n maxLength={maxLength}\n minLength={minLength}\n ref={mergeInputRef}\n className=\"input\"\n type={type}\n disabled={disabled}\n readOnly={readOnly}\n value={fixValue(value)}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n <span part=\"suffix\" className=\"input-suffix\">\n {getClearIcon()}\n <slot name=\"suffix\" />\n </span>\n </span>\n <span part=\"after-addon\" className=\"input-after-addon\">\n <slot name=\"addonAfter\" />\n </span>\n </div>\n </WrappedFormItem>\n );\n});\n\nfunction fixValue<T>(value: T) {\n return isNil(value) ? \"\" : String(value);\n}\n","import { Ref, RefCallback, MutableRefObject, useMemo } from \"react\";\n\nexport function useMergeRefs<Instance>(\n refs: (Ref<Instance> | undefined)[]\n): RefCallback<Instance> {\n const mergeRefs = useMemo(() => {\n return (value: Instance) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n (ref as MutableRefObject<Instance | null>).current = value;\n }\n });\n };\n }, refs);\n\n return mergeRefs;\n}\n","const HIDDEN_TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important;\n pointer-events: none !important;\n`;\n\nconst SIZING_STYLE = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"font-variant\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\",\n \"word-break\",\n \"white-space\",\n];\nlet hiddenTextarea: HTMLTextAreaElement;\n\nexport default function calculateAutoSizeStyle(\n uiTextNode: HTMLTextAreaElement,\n minRows: number | null = null,\n maxRows: number | null = null\n): React.CSSProperties {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement(\"textarea\");\n hiddenTextarea.setAttribute(\"tab-index\", \"-1\");\n hiddenTextarea.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenTextarea);\n }\n\n const uiTextNodeStyle = window.getComputedStyle(uiTextNode);\n const sizingStyle = SIZING_STYLE.map(\n (name) => `${name}:${uiTextNodeStyle.getPropertyValue(name)}`\n ).join(\";\");\n\n // equal style\n hiddenTextarea.setAttribute(\n \"style\",\n `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`\n );\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || \"\";\n\n let minHeight: number | undefined = undefined;\n let maxHeight: number | undefined = undefined;\n let overflowY: any;\n\n const borderSize = 2;\n const paddingSize = 8;\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = \" \";\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n overflowY = height > maxHeight ? \"\" : \"hidden\";\n height = Math.min(maxHeight, height);\n }\n }\n\n const style: React.CSSProperties = {\n height,\n overflowY,\n resize: \"none\",\n };\n\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n\n return style;\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport calculateAutoSizeStyle from \"./calculateAutoSizeStyle.js\";\nimport styleText from \"./textarea.shadow.css\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport \"@next-core/theme\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ntype AutoSize =\n | boolean\n | {\n minRows: number;\n maxRows: number;\n };\n\nexport interface TextareaProps extends FormItemProps {\n name?: string;\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n textareaStyle?: React.CSSProperties;\n minLength?: number;\n maxLength?: number;\n autoSize?: AutoSize;\n validateState?: string;\n onInputChange: (value: string) => void;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 通用多行文本输入框构件\n * @author sailor\n * @category form-input-basic\n */\n@defineElement(\"eo-textarea\", {\n styleTexts: [styleText],\n alias: [\"form.general-textarea\"],\n})\nclass Textarea extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 最小长度\n */\n @property({\n type: Number,\n })\n accessor minLength: number | undefined;\n\n /**\n * 最大长度\n */\n @property({\n type: Number,\n })\n accessor maxLength: number | undefined;\n\n /**\n * 大小自适应\n */\n @property({\n attribute: false,\n })\n accessor autoSize: AutoSize | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 表单校验最大长度\n */\n @property({\n type: Number,\n })\n accessor max: number | undefined;\n\n /**\n * 表单校验最小长度\n */\n @property({\n type: Number,\n })\n accessor min: number | undefined;\n\n /**\n * 校验信息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 自定义样式\n */\n @property({ attribute: false }) accessor textareaStyle:\n | React.CSSProperties\n | undefined;\n\n /**\n * @detail\n * @description 值改变事件\n */\n @event({ type: \"change\" })\n accessor #InputChangeEvent!: EventEmitter<string>;\n\n handleInputChange = (value: string) => {\n this.value = value;\n this.#InputChangeEvent.emit(value);\n };\n\n render() {\n return (\n <TextareaComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n value={this.value}\n required={this.required}\n placeholder={this.placeholder}\n disabled={this.disabled}\n minLength={this.minLength}\n maxLength={this.maxLength}\n autoSize={this.autoSize}\n notRender={this.notRender}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n textareaStyle={this.textareaStyle}\n validateState={this.validateState}\n max={this.max}\n min={this.min}\n message={this.message}\n trigger=\"handleInputChange\"\n onInputChange={this.handleInputChange}\n />\n );\n }\n}\n\nexport function TextareaComponent(props: TextareaProps) {\n const {\n name,\n placeholder,\n disabled,\n textareaStyle,\n minLength,\n maxLength,\n autoSize,\n validateState,\n onInputChange,\n } = props;\n const [value, setValue] = useState(props.value ?? \"\");\n const [autoSizeStyle, setAutoSizeStyle] = useState<React.CSSProperties>();\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n const [minRows, maxRows] = React.useMemo(() => {\n if (autoSize && typeof autoSize === \"object\") {\n return [autoSize.minRows, autoSize.maxRows];\n }\n\n return [];\n }, [autoSize]);\n\n const setAutoSize = useCallback(() => {\n const textareaElement = textareaRef.current as HTMLTextAreaElement;\n if (textareaElement && autoSize) {\n const textareaStyles = calculateAutoSizeStyle(\n textareaElement,\n minRows,\n maxRows\n );\n\n setAutoSizeStyle(textareaStyles);\n }\n }, [autoSize, maxRows, minRows]);\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ): void => {\n setValue(e.target.value);\n onInputChange(e.target.value);\n setAutoSize();\n };\n\n useEffect(() => {\n setValue(props.value ?? \"\");\n }, [props.value]);\n\n useEffect(() => {\n setAutoSize();\n }, [maxRows, minRows, setAutoSize]);\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <textarea\n ref={textareaRef}\n className={classNames({\n error: validateState === \"error\",\n })}\n name={name}\n value={value}\n disabled={disabled}\n style={{\n display: \"block\",\n height: 94,\n ...textareaStyle,\n ...autoSizeStyle,\n }}\n placeholder={placeholder}\n minLength={minLength}\n maxLength={maxLength}\n onChange={handleInputChange}\n />\n </WrappedFormItem>\n );\n}\n\nexport { Textarea };\n","import { remove } from \"lodash\";\n\nexport class PubSub {\n #topics: Record<string, { token: string; func: Function }[]> = {};\n #subUid = 0;\n\n publish(topic: string, body: any): void {\n if (!this.#topics[topic]) {\n return;\n }\n const subscribers = this.#topics[topic];\n let len = subscribers ? subscribers.length : 0;\n while (len--) {\n subscribers[len].func(topic, body);\n }\n }\n\n subscribe(topic: string, fn: (topic: string, detail: any) => void): string {\n if (!this.#topics[topic]) {\n this.#topics[topic] = [];\n }\n const token = (++this.#subUid).toString();\n this.#topics[topic].push({\n token: token,\n func: fn,\n });\n return token;\n }\n\n unsubscribe(token: string): void {\n for (const m in this.#topics) {\n if (this.#topics[m]) {\n remove(this.#topics[m], (item) => item.token === token);\n }\n }\n }\n}\n","import { isEmpty, isNil } from \"lodash\";\nimport { PubSub } from \"./PubSub.js\";\n\ninterface FormStoreOptions {\n onValuesChanged?: (data: any) => void;\n}\n\nexport interface FieldDetail {\n name: string;\n label?: string;\n notRender?: boolean;\n originProps?: Record<string, any>;\n validate: Validate;\n [k: string]: any;\n}\n\nexport interface MessageBody {\n message: string;\n type: string;\n}\n\nexport interface WatchOptions {\n needValidate?: boolean;\n}\n\ninterface Validate {\n required?: boolean;\n pattern?: string;\n min?: number;\n max?: number;\n message?: {\n required?: string;\n pattern?: string;\n min?: string;\n max?: string;\n };\n validator?: (value: any) => MessageBody | string;\n}\n\nlet uid = 0;\n\nclass Field {\n field: string;\n detail: FieldDetail;\n constructor(name: string, detail: FieldDetail) {\n this.field = name;\n this.detail = detail;\n }\n}\n\nexport class FormStore extends PubSub {\n static uid: number;\n static instance: Map<number, FormStore> = new Map();\n static getInstance(options?: FormStoreOptions): FormStore {\n if (!this.instance.get(uid)) {\n this.uid = uid;\n this.instance.set(this.uid, new FormStore(options));\n uid += 1;\n }\n return this.instance.get(this.uid) as FormStore;\n }\n\n #fields: Map<string, Field> = new Map();\n #options: FormStoreOptions | undefined;\n #formData!: Record<string, unknown>;\n #initData: Record<string, unknown> | undefined;\n\n constructor(options?: FormStoreOptions) {\n super();\n this.#formData = {};\n this.#options = options;\n }\n\n setField(name: string, detail: FieldDetail) {\n this.#fields.set(name, new Field(name, detail));\n }\n #getAllFields() {\n return [...this.#fields.keys()].filter((key) => {\n return !this.#fields.get(key)!.detail?.notRender;\n });\n }\n\n getAllValues() {\n const allFields = this.#getAllFields();\n const formData = Object.fromEntries(\n Object.entries(this.#formData)\n .map(([k, v]) => {\n if (allFields.includes(k)) {\n return [k, v];\n }\n return [];\n })\n .filter((item) => item.length)\n );\n return formData;\n }\n\n setInitValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n this.#initData = values;\n this.setFieldsValue(values, isEmitValuseChange);\n }\n\n setFieldsValueByInitData(name: string) {\n const value = this.#initData?.[name];\n if (!isNil(value)) {\n this.#formData[name] = value;\n this.publish(`${name}.init.value`, value);\n }\n }\n\n setFieldsValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n const newFormData: Record<string, unknown> = {\n ...this.#formData,\n };\n Object.entries(values).forEach(([k, v]) => {\n newFormData[k] = v;\n this.#initData && (this.#initData[k] = v);\n this.publish(`${k}.init.value`, v);\n });\n this.#formData = newFormData;\n\n if (isEmitValuseChange) {\n this.#options?.onValuesChanged?.({\n changedValues: values,\n allValues: this.getAllValues(),\n });\n }\n }\n\n resetFields(name?: string) {\n if (name) {\n delete this.#formData[name];\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#formData = {};\n this.publish(\"reset.fields\", null);\n }\n this.resetValidateState();\n }\n\n getFieldsValue(name?: string) {\n if (name) {\n return this.#formData[name];\n }\n return this.getAllValues();\n }\n\n removeField(name: string) {\n this.#fields.delete(name);\n }\n\n validateFields(\n callback: (err: boolean, value: any) => void\n ): boolean | Record<string, unknown> {\n const allFields = this.#getAllFields();\n const results: Array<MessageBody | undefined> = [];\n allFields.forEach((name) => {\n const field = this.#fields.get(name);\n if (field) {\n results.push(this.validateField(field.detail));\n }\n });\n\n if (results.some((result) => result?.type !== \"normal\")) {\n callback(\n true,\n results.filter((result) => result?.type !== \"normal\")\n );\n return false;\n } else {\n const formData = this.getAllValues();\n callback(false, formData);\n return formData;\n }\n }\n\n validateField(field: string | FieldDetail) {\n const fieldDetail =\n typeof field === \"string\" ? this.#fields.get(field)?.detail : field;\n if (!fieldDetail) return;\n const { name, label, validate } = fieldDetail;\n const validateValue = this.#formData[name];\n\n const messageBody = (message: string, type = \"error\") => {\n return {\n type,\n message,\n };\n };\n\n const getName = () => label ?? name;\n\n const valid = (validate: Validate, value: string): MessageBody => {\n const { required, pattern, message, min, max, validator } = validate;\n const label = getName();\n\n if (\n required &&\n (typeof value === \"object\"\n ? isEmpty(value)\n : value === undefined || value === null)\n ) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n\n if (pattern && value) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n if (min && (!value || value.length < min)) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n\n if (max && value && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\n }\n\n if (validator) {\n let result = \"\";\n let parsedValidator = [];\n if (Array.isArray(validator)) {\n parsedValidator = validator;\n } else {\n parsedValidator.push(validator);\n }\n\n for (const v of parsedValidator) {\n result = v(value);\n\n if (result) {\n break;\n }\n }\n return typeof result === \"string\"\n ? messageBody(result, result ? \"error\" : \"normal\")\n : (result as MessageBody);\n }\n\n return messageBody(\"\", \"normal\");\n };\n\n const result = valid(validate, validateValue as string);\n this.publish(`${name}.validate`, result);\n return result;\n }\n\n getValueFromEvent(e: React.ChangeEvent): any {\n if (!e || !e.target) {\n return e;\n }\n const target = e.target as HTMLInputElement;\n return target.type === \"checkbox\" ? target.checked : target.value;\n }\n\n resetValidateState() {\n this.publish(`reset.validate`, null);\n }\n\n onWatch(\n name: string,\n event: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n const value = this.getValueFromEvent(event);\n // default first params is value\n const realValue = Array.isArray(value) ? value[0] : value;\n\n this.setFieldsValue({\n [name]: realValue,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.apply(this, value);\n }\n }\n\n onChange(\n name: string,\n value: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n this.setFieldsValue({\n [name]: value,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.(value);\n }\n }\n}\n","import React, { useMemo } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n AbstractForm,\n FormStore,\n MessageBody,\n ColProps,\n} from \"@next-shared/form\";\nimport { ComponentSize, Layout } from \"../interface.js\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\ninterface FormProps {\n values?: Record<string, any>;\n layout?: Layout;\n size?: ComponentSize;\n}\n\nexport interface FormEvents {\n valuesChange?: Event;\n validateSuccess?: Event;\n validateError?: Event;\n}\n\nexport interface FormMapEvents {\n onValuesChange: \"values.change\";\n onValidateSuccess: \"validate.success\";\n onValidateError: \"validate.error\";\n}\n\n/**\n * 表单构件\n * @author sailor\n * @slot - 表单内容\n * @category form-input-basic\n */\n@defineElement(\"eo-form\", {\n alias: [\"form.general-form\"],\n})\nclass Form extends ReactNextElement implements FormProps, AbstractForm {\n formStore: FormStore;\n #values!: Record<string, unknown>;\n defaultEmitValuesChange = true;\n\n constructor() {\n super();\n this.formStore = FormStore.getInstance({\n onValuesChanged: this.handleValuesChange,\n });\n }\n\n get isFormElement(): true {\n return true;\n }\n\n set values(value: Record<string, unknown>) {\n this.#values = value;\n\n this.#setInitValue(value);\n }\n get values(): Record<string, unknown> {\n return this.#values;\n }\n\n #setInitValue(values: Record<string, unknown>) {\n this.formStore.setInitValue(values, this.defaultEmitValuesChange);\n }\n\n /**\n * 布局方式(默认 vertical 布局)\n * @default vertical\n */\n @property() accessor layout: Layout = \"vertical\";\n\n /**\n * 表单组件尺寸\n */\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 标签列布局样式(仅当 layout=\"horizontal\" 时有效)\n */\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps = {\n sm: {\n span: 24,\n },\n md: {\n span: 24,\n },\n lg: {\n span: 7,\n },\n xl: {\n span: 5,\n },\n xxl: {\n span: 4,\n },\n };\n\n /**\n * 输入控件列布局样式(仅当 layout=\"horizontal\" 时有效)\n */\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps = {\n sm: {\n span: 18,\n },\n md: {\n span: 18,\n },\n lg: {\n span: 13,\n },\n xl: {\n span: 16,\n },\n xxl: {\n span: 18,\n },\n };\n\n /**\n * 表单值变更事件\n * @detail\n */\n @event({ type: \"values.change\" }) accessor #valuesChangeEvent!: EventEmitter<\n Record<string, unknown>\n >;\n handleValuesChange = (values: Record<string, unknown>) => {\n this.#valuesChangeEvent.emit(values);\n };\n\n /**\n * 表单验证成功时触发事件\n */\n @event({ type: \"validate.success\" }) accessor #successEvent!: EventEmitter<\n Record<string, unknown>\n >;\n /**\n * 表单验证报错时触发事件\n */\n @event({ type: \"validate.error\" }) accessor #errorEvent!: EventEmitter<\n MessageBody[]\n >;\n\n /**\n * 表单校验方法\n */\n @method()\n validate(): boolean | Record<string, unknown> {\n return this.formStore.validateFields((err, values) => {\n if (err) {\n this.#errorEvent.emit(values);\n } else {\n this.#successEvent.emit(values);\n }\n });\n }\n\n /**\n * 表单设置值方法\n */\n @method()\n setInitValue(\n values: Record<string, unknown>,\n options?: { runInMacrotask?: boolean; runInMicrotask?: boolean }\n ) {\n if (options) {\n options.runInMicrotask &&\n queueMicrotask(() => {\n this.values = values;\n });\n options.runInMacrotask &&\n setTimeout(() => {\n this.values = values;\n });\n } else {\n this.values = values;\n }\n }\n\n /**\n * 表单重置值方法\n */\n @method()\n resetFields(name?: string) {\n this.formStore.resetFields(typeof name === \"string\" ? name : undefined);\n }\n\n /**\n * 获取表单值方法\n */\n @method()\n getFieldsValue(name?: string) {\n return this.formStore.getFieldsValue(\n typeof name === \"string\" ? name : undefined\n );\n }\n\n @property({\n attribute: false,\n })\n accessor formStyle: React.CSSProperties | undefined;\n\n /**\n * 校验表单字段方法\n */\n @method()\n validateField(name: string) {\n this.formStore.validateField(name);\n }\n\n /**\n * 重置表单校验状态方法\n */\n @method()\n resetValidateState() {\n this.formStore.resetValidateState();\n }\n\n render() {\n return (\n <FormComponent\n layout={this.layout}\n size={this.size}\n labelCol={this.labelCol}\n wrapperCol={this.wrapperCol}\n formStyle={this.formStyle}\n />\n );\n }\n}\n\ninterface FormComponentProps extends FormProps {\n formStyle?: React.CSSProperties;\n labelCol?: ColProps;\n wrapperCol?: ColProps;\n onValuesChange?: (value: Record<string, any>) => void;\n onValidateSuccess?: () => void;\n onValidateError?: () => void;\n}\n\nexport function FormComponent({\n layout = \"vertical\",\n formStyle,\n}: FormComponentProps) {\n const computedStyle = useMemo((): React.CSSProperties => {\n switch (layout) {\n case \"vertical\":\n case \"horizontal\": {\n return {\n display: \"flex\",\n flexDirection: \"column\",\n };\n }\n case \"inline\": {\n return {\n display: \"flex\",\n gap: 10,\n };\n }\n default:\n return {};\n }\n }, [layout]);\n\n return (\n <form>\n <slot\n style={{\n ...computedStyle,\n ...(formStyle ? formStyle : {}),\n }}\n />\n </form>\n );\n}\n\nexport { Form, FormProps };\n","import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport {\n AbstractForm,\n FormItemElementBase,\n MessageBody,\n ColProps,\n} from \"@next-shared/form\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport type { Form } from \"../form/index.jsx\";\nimport styleText from \"./FormItem.shadow.less\";\nimport classNames from \"classnames\";\nimport type { ComponentSize, Layout } from \"../interface.js\";\nimport {\n convertToItemColName,\n calcWrapperColOffsetWithoutLabel,\n} from \"./convertToItemColName.js\";\nimport \"@next-core/theme\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\ntype CurrentElement = HTMLElement & {\n size?: ComponentSize;\n validateState?: MessageBody | string;\n [key: string]: any;\n};\n\nexport interface FormItemProps {\n formElement?: AbstractForm | null;\n curElement?: CurrentElement;\n name?: string;\n label?: string;\n current?: HTMLElement;\n required?: boolean;\n pattern?: string;\n min?: number;\n max?: number;\n labelCol?: ColProps;\n wrapperCol?: ColProps;\n message?: Record<string, string>;\n layout?: Layout;\n size?: ComponentSize;\n trigger?: string;\n valuePropsName?: string;\n notRender?: boolean;\n helpBrick?: {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n placement?: \"right\" | \"bottom\";\n };\n labelBrick?: { useBrick: UseSingleBrickConf | UseSingleBrickConf[] };\n needValidate?: boolean;\n validator?: (value: any) => MessageBody | string;\n}\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * 通用输入框构件\n * @author sailor\n * @slot - 表单项内容\n * @category form-input-basic\n * @insider\n */\n@defineElement(\"eo-form-item\", {\n styleTexts: [styleText],\n alias: [\"form.general-form-item\"],\n})\nclass FormItem extends FormItemElementBase implements FormItemProps {\n @property({\n attribute: false,\n })\n accessor formElement: Form | undefined;\n\n @property({\n attribute: false,\n })\n accessor curElement: HTMLElement | undefined;\n\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n @property() accessor label: string | undefined;\n\n @property() accessor pattern: string | undefined;\n\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n @property({\n type: Number,\n })\n accessor max: number | undefined;\n\n @property({\n type: Number,\n })\n accessor min: number | undefined;\n\n /**\n * 表单项是否必填\n * @group basicFormItem\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 初始值\n */\n @property() accessor value: string | undefined;\n\n @property() accessor valuePropsName: string | undefined;\n\n @property() accessor layout: Layout | undefined;\n\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 是否自动去除前后的空白字符\n * @default true\n * @group advancedFormItem\n */\n @property({\n type: Boolean,\n })\n accessor trim = true;\n\n /**\n * 事件触发方法名\n */\n @property()\n accessor trigger!: string;\n\n /**\n * 表单项校验方法\n */\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody) | undefined;\n\n /**\n * 值变化时是否主动出发校验\n */\n @property({\n type: Boolean,\n })\n accessor needValidate: boolean | undefined;\n\n disconnectedCallback(): void {\n const name = this.name;\n const formInstance = this.formElement?.formStore;\n if (formInstance && name) {\n formInstance.removeField(name);\n formInstance.unsubscribe(`${name}.validate`);\n formInstance.unsubscribe(`${name}.init.value`);\n formInstance.unsubscribe(`${name}.reset.fields`);\n formInstance.unsubscribe(`reset.fields`);\n formInstance.unsubscribe(\"reset.validate\");\n }\n\n super.disconnectedCallback();\n }\n\n render() {\n return (\n <FormItemComponent\n formElement={this.formElement}\n curElement={this.curElement}\n label={this.label}\n name={this.name}\n required={this.required}\n pattern={this.pattern}\n min={this.min}\n max={this.max}\n message={this.message}\n size={this.size || this.formElement?.size}\n layout={this.layout || this.formElement?.layout}\n trigger={this.trigger}\n notRender={this.notRender}\n labelCol={this.labelCol}\n wrapperCol={this.wrapperCol}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n valuePropsName={this.valuePropsName}\n needValidate={this.needValidate}\n validator={this.validator}\n />\n );\n }\n}\n\nexport { FormItem };\n\nexport function FormItemComponent(props: FormItemProps) {\n const {\n name,\n label,\n required,\n pattern,\n max,\n min,\n message,\n formElement,\n curElement,\n valuePropsName = \"value\",\n size,\n trigger = \"onChange\",\n layout = \"horizontal\",\n helpBrick,\n labelBrick,\n needValidate = true,\n notRender,\n validator,\n } = props;\n const formInstance = formElement?.formStore;\n\n const labelCol = props.labelCol ?? formElement?.labelCol;\n const wrapperCol = props.wrapperCol ?? formElement?.wrapperCol;\n\n const finalWrapperCol = useMemo(() => {\n if (labelCol && wrapperCol && !label) {\n return calcWrapperColOffsetWithoutLabel(labelCol, wrapperCol);\n }\n\n return wrapperCol;\n }, [wrapperCol, label, labelCol]);\n\n const defaultValidateState = useRef<MessageBody>({\n message: \"\",\n type: \"normal\",\n });\n const [validateState, setValidateState] = useState<MessageBody>(\n defaultValidateState.current\n );\n\n useEffect(() => {\n if (!formInstance || !name || !curElement || curElement.$bindFormItem)\n return;\n const originTrigger = curElement[trigger];\n curElement[trigger] = (...args: any[]) =>\n formInstance.onWatch(name, args, originTrigger, {\n needValidate,\n });\n curElement.$bindFormItem = true;\n\n formInstance.subscribe(`${name}.validate`, (_, detail) => {\n setValidateState(detail);\n curElement.validateState = detail.type;\n });\n formInstance.subscribe(`${name}.init.value`, (_, v) => {\n curElement[valuePropsName] = v;\n curElement.validateState = \"\";\n setValidateState({\n message: \"\",\n type: \"normal\",\n });\n });\n formInstance.subscribe(`${name}.reset.fields`, () => {\n curElement[valuePropsName] = undefined;\n });\n formInstance.subscribe(\"reset.fields\", () => {\n curElement[valuePropsName] = undefined;\n });\n formInstance.subscribe(\"reset.validate\", () => {\n setValidateState(defaultValidateState.current);\n curElement.validateState = defaultValidateState.current.type;\n });\n\n formInstance.setFieldsValueByInitData(name);\n }, [curElement, formInstance, name, needValidate, trigger, valuePropsName]);\n\n useEffect(() => {\n if (!formInstance || !name || !curElement) return;\n formInstance.setField(name, {\n name,\n label,\n notRender,\n validate: {\n required,\n pattern,\n max,\n min,\n message,\n validator,\n },\n });\n if (layout === \"inline\") curElement.style.display = \"inline-block\";\n if (size) {\n curElement.size = formElement.size || size;\n }\n }, [\n curElement,\n formElement?.size,\n notRender,\n formInstance,\n label,\n layout,\n max,\n message,\n min,\n name,\n pattern,\n required,\n size,\n validator,\n ]);\n\n return (\n <div className={classNames(\"form-item\", layout)}>\n {label && (\n <div\n className={classNames(\n \"form-item-label-wrapper\",\n convertToItemColName(labelCol, layout)\n )}\n >\n <div className=\"form-item-label\">\n <label>\n {required && <span className=\"required\">*</span>}\n {label}\n </label>\n {labelBrick?.useBrick ? (\n <ReactUseMultipleBricks {...labelBrick}></ReactUseMultipleBricks>\n ) : null}\n </div>\n </div>\n )}\n <div\n className={classNames(\n \"form-item-wrapper\",\n convertToItemColName(finalWrapperCol, layout)\n )}\n >\n <div\n className={classNames(\"form-item-control\", {\n [`align-${helpBrick?.placement ?? \"bottom\"}`]: helpBrick,\n })}\n >\n <slot></slot>\n {helpBrick?.useBrick ? (\n <ReactUseMultipleBricks {...helpBrick}></ReactUseMultipleBricks>\n ) : null}\n </div>\n {formElement ? (\n <div\n className={classNames(\"message\", {\n error: validateState.type === \"error\",\n })}\n part=\"message\"\n >\n {validateState?.type !== \"normal\" && validateState.message}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n","import { get, uniqBy } from \"lodash\";\nimport { GeneralOption, GeneralComplexOption } from \"../interface.js\";\n\nexport function formatOptions(\n options: GeneralOption[] = [],\n fields?: { label?: string; value?: string }\n) {\n return uniqBy(\n options.map((op) => {\n if (typeof op === \"number\" || typeof op === \"string\") {\n return { label: op, value: op };\n }\n if (typeof op === \"boolean\") {\n return { label: String(op), value: op };\n }\n if (fields) {\n return {\n ...op,\n label: get(op, fields.label || \"label\"),\n value: get(op, fields.value || \"value\"),\n };\n }\n return { ...op, label: op.label, value: op.value };\n }),\n \"value\"\n ) as GeneralComplexOption[];\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { CSSProperties } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type {\n RadioType,\n GeneralOption,\n GeneralComplexOption,\n UIType,\n RadioGroupButtonStyle,\n ComponentSize,\n} from \"../interface.js\";\nimport styleText from \"./index.shadow.css\";\nimport classNames from \"classnames\";\nimport \"@next-core/theme\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport { isBoolean, isEqual } from \"lodash\";\nimport \"./host-context.css\";\n\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ninterface CustomOptions {\n url: string;\n description?: string;\n title: string;\n backgroundColor?: string;\n value: string;\n [propName: string]: any;\n}\n\nexport interface RadioProps {\n type?: RadioType;\n options: GeneralOption[] | CustomOptions[] | undefined;\n value?: any;\n disabled?: boolean;\n buttonStyle?: RadioGroupButtonStyle;\n size?: ComponentSize;\n ui?: UIType;\n useBrick?: UseSingleBrickConf;\n customStyle?: React.CSSProperties;\n}\nexport interface RadioEvents {\n change: CustomEvent<GeneralComplexOption>;\n optionsChange: CustomEvent<{\n options: GeneralComplexOption[];\n name: string;\n }>;\n}\nexport interface RadioEventsMapping {\n onValueChange: \"change\";\n onOptionsChange: \"optionsChange\";\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 通用单选构件\n * @author sailor\n * @category form-input-basic\n */\n@defineElement(\"eo-radio\", {\n styleTexts: [styleText],\n alias: [\"form.general-radio\"],\n})\nclass Radio extends FormItemElementBase {\n #formatOptions: GeneralComplexOption[] | undefined;\n /**\n * 下拉框字段名\n */\n @property() accessor name: string | undefined;\n\n /**\n * 单选框字段说明\n */\n @property() accessor label: string | undefined;\n\n /**\n * 单选框选项表\n * @required\n */\n @property({ attribute: false })\n accessor options: GeneralOption[] | undefined;\n\n /**\n * 单选框当前选中始值\n */\n @property({\n attribute: false,\n })\n accessor value: any | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false }) accessor message:\n | Record<string, string>\n | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 单选框样式类型\n * @default \"default\"\n */\n @property()\n accessor type: RadioType = \"default\";\n\n /**\n * UI样式\n * @default \"default\"\n */\n @property()\n accessor ui: UIType | undefined;\n\n /**\n * 大小,只对按钮样式生效\n * @default \"medium\"\n */\n @property()\n accessor size: ComponentSize | undefined;\n\n /**\n * 自定义radio的外层样式\n */\n @property({\n attribute: false,\n })\n accessor customStyle: React.CSSProperties | undefined;\n\n /**\n * 自定义radio的内容\n */\n @property({\n attribute: false,\n })\n accessor useBrick: UseSingleBrickConf | undefined;\n\n /**\n * 值变化事件\n */\n @event({ type: \"change\" }) accessor #changeEvent!: EventEmitter<\n GeneralComplexOption | undefined\n >;\n\n /**\n * 选项列表变化事件\n */\n @event({ type: \"options.change\" }) accessor #optionsChange!: EventEmitter<{\n options: {\n label: string;\n value: any;\n [key: string]: any;\n };\n name: string;\n }>;\n\n handleChange = (value: any): void => {\n this.value = value;\n this.#changeEvent.emit(\n this.#formatOptions?.find((item) => item?.value === value)\n );\n };\n\n #handleOptionsChange = (\n options: {\n label: string;\n value: any;\n [key: string]: any;\n },\n name: string\n ): void => {\n this.#optionsChange.emit({ options, name });\n };\n\n render() {\n this.#formatOptions = formatOptions(this.options);\n return (\n <RadioComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n useBrick={this.useBrick}\n ui={this.ui}\n disabled={this.disabled}\n size={this.size}\n options={this.#formatOptions}\n type={this.type}\n value={this.value}\n required={this.required}\n message={this.message}\n onChange={this.handleChange}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleChange\"\n optionsChange={this.#handleOptionsChange}\n customStyle={this.customStyle}\n />\n );\n }\n}\n\ninterface RadioComponentProps extends RadioProps, FormItemProps {\n onChange?: (value: any) => void;\n optionsChange?: (options: any, name: string) => void;\n}\n\nexport function RadioComponent(props: RadioComponentProps) {\n const { name, disabled, type, customStyle, optionsChange, size } = props;\n const [value, setValue] = React.useState(props.value);\n const [options, setOptions] = React.useState(props.options);\n\n React.useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n React.useEffect(() => {\n if (!isEqual(options, props.options)) {\n setOptions(props.options);\n optionsChange?.(props.options, name as string);\n }\n }, [name, options, optionsChange, props.options]);\n\n const handleChange = (\n e: React.ChangeEvent | React.MouseEvent,\n option: GeneralComplexOption\n ): void => {\n e.stopPropagation();\n setValue((option as GeneralComplexOption)?.value as any);\n props.onChange?.(option.value);\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div\n className={classNames(\"radio-group\", {\n dashboard: props.ui === \"dashboard\",\n })}\n >\n {options?.map((item: any) => {\n const icon = item.icon;\n const iconStyle: CSSProperties = icon?.iconStyle;\n const key = isBoolean(item.value)\n ? item.value.toString()\n : item.value;\n const isDisabled = item.disabled || disabled;\n return (\n <label\n htmlFor={key}\n style={customStyle}\n className={classNames(\"radio-item\", {\n disabled: isDisabled,\n checked: value === item.value,\n [size || \"medium\"]: type === \"button\",\n })}\n key={key}\n onClick={(e) => !isDisabled && handleChange(e, item)}\n >\n <span className=\"raido\">\n <input\n type=\"radio\"\n name={name}\n disabled={isDisabled}\n checked={value === item.value}\n onChange={(e) => !isDisabled && handleChange(e, item)}\n />\n <span\n className={classNames(\"radio-inner\", {\n checked: value === item.value,\n })}\n ></span>\n </span>\n {type === \"icon\" ? (\n <div className=\"content\">\n {icon && (\n <WrappedGeneralIcon\n {...icon}\n style={{\n fontSize: \"32px\",\n ...iconStyle,\n }}\n />\n )}\n <div>{item.label}</div>\n </div>\n ) : type === \"custom\" ? (\n <div className=\"custom-content\">\n {props.useBrick && (\n <ReactUseBrick\n useBrick={props.useBrick}\n data={item}\n ></ReactUseBrick>\n )}\n </div>\n ) : type === \"icon-circle\" || type === \"icon-square\" ? (\n <div\n className={classNames({\n \"icon-content\":\n type === \"icon-circle\" || type === \"icon-square\",\n })}\n >\n {item.icon && (\n <div\n className={classNames({\n \"circle-icon\": type === \"icon-circle\",\n \"square-icon\": type === \"icon-square\",\n })}\n >\n <WrappedGeneralIcon\n {...icon}\n style={{\n fontSize: \"46px\",\n ...iconStyle,\n }}\n />\n </div>\n )}\n <span title={item.label}>{item.label}</span>\n </div>\n ) : type === \"button\" ? (\n <div\n className={classNames(\"button-content\", {\n disabled: isDisabled,\n })}\n >\n <span>\n {icon && (\n <WrappedGeneralIcon\n {...icon}\n style={{\n fontSize: \"22px\",\n marginRight: \"4px\",\n verticalAlign: \"-0.25em\",\n ...iconStyle,\n }}\n />\n )}\n {item.label}\n </span>\n </div>\n ) : (\n <span className=\"content\">\n {icon && (\n <WrappedGeneralIcon\n {...icon}\n style={{\n fontSize: \"22px\",\n marginRight: \"8px\",\n verticalAlign: \"-0.25em\",\n ...iconStyle,\n }}\n />\n )}\n {item.label}\n </span>\n )}\n </label>\n );\n })}\n </div>\n </WrappedFormItem>\n );\n}\nexport { Radio };\n","import * as React from \"react\";\nconst SvgEmpty = props => <svg xmlns=\"http://www.w3.org/2000/svg\" xmlnsXlink=\"http://www.w3.org/1999/xlink\" width={56} height={53} {...props}><defs><linearGradient id=\"a\" x1=\"5.718%\" x2=\"83.05%\" y1=\"4.311%\" y2=\"88.915%\"><stop offset=\"0%\" stopColor=\"#D4D8E4\" /><stop offset=\"100%\" stopColor=\"#A9B0C4\" /></linearGradient><linearGradient id=\"g\" x1=\"41.823%\" x2=\"8.813%\" y1=\"24.795%\" y2=\"86.427%\"><stop offset=\"0%\" stopColor=\"#CCD0DD\" /><stop offset=\"100%\" stopColor=\"#9DA3B9\" /></linearGradient><filter id=\"b\" width=\"233.4%\" height=\"233.4%\" x=\"-57.2%\" y=\"-47.7%\" filterUnits=\"objectBoundingBox\"><feOffset dx={1} dy={2} in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" /><feGaussianBlur in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" stdDeviation={2} /><feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\" /><feColorMatrix in=\"shadowBlurOuter1\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22 0\" /></filter><filter id=\"e\" width=\"288.7%\" height=\"288.7%\" x=\"-94.4%\" y=\"-121.3%\" filterUnits=\"objectBoundingBox\"><feOffset dy={-2} in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" /><feGaussianBlur in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" stdDeviation={2} /><feColorMatrix in=\"shadowBlurOuter1\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" /></filter><path id=\"c\" d=\"M23.672 23.607h2.492a4 4 0 0 1 4 4v2.491a4 4 0 0 1-4 4h-2.492a4 4 0 0 1-4-4v-2.491a4 4 0 0 1 4-4\" /><path id=\"f\" d=\"M37.311 12.459a4 4 0 0 1 4 4v3.419l-7.418-7.419z\" /></defs><g fill=\"none\" fillRule=\"evenodd\"><path fill=\"#A6AAC3\" d=\"M39.682 33.967H10.81a2.8 2.8 0 0 0-1.94.782l-5.197 4.999v6.98a5.6 5.6 0 0 0 5.6 5.6H41.22a5.6 5.6 0 0 0 5.6-5.6v-6.98l-5.196-4.999a2.8 2.8 0 0 0-1.942-.782\" /><path fill=\"url(#a)\" d=\"m33.893 12.459 7.418 7.419v22.568a2.8 2.8 0 0 1-2.8 2.8h-26.53a2.8 2.8 0 0 1-2.8-2.8V18.459a6 6 0 0 1 6-6z\" /><use xlinkHref=\"#c\" fill=\"#000\" filter=\"url(#b)\" /><path fill=\"url(#d)\" stroke=\"#FFF\" strokeLinejoin=\"round\" d=\"M26.164 24.107c.966 0 1.841.391 2.475 1.025a3.5 3.5 0 0 1 1.025 2.475v2.491a3.5 3.5 0 0 1-1.025 2.475 3.5 3.5 0 0 1-2.475 1.025h-2.492a3.5 3.5 0 0 1-2.475-1.025 3.5 3.5 0 0 1-1.025-2.475v-2.491a3.5 3.5 0 0 1 1.025-2.475 3.5 3.5 0 0 1 2.475-1.025Z\" /><g transform=\"rotate(180 37.602 16.168)\"><use xlinkHref=\"#f\" fill=\"#000\" filter=\"url(#e)\" /><use xlinkHref=\"#f\" fill=\"url(#g)\" /></g><path fill=\"#D6D8E4\" d=\"M54.164 27.541c.253 0 .459.205.459.459v.918h.918a.459.459 0 1 1 0 .918h-.918v.918a.459.459 0 0 1-.918 0v-.918h-.918a.459.459 0 0 1 0-.918h.918V28c0-.254.205-.459.459-.459M1.377 20.197c.19 0 .344.154.344.344v.574h.574a.459.459 0 1 1 0 .918h-.574v.574a.344.344 0 0 1-.688 0l-.001-.574H.459a.459.459 0 0 1 0-.918h.573v-.574c0-.19.155-.344.345-.344\" opacity={0.3} /><path fill=\"#D6D8E4\" d=\"M24.787 43.53h.014c7.087.143 9.817-3.834 12.785-4.046l.19-.008h9.044v10.052a2.8 2.8 0 0 1-2.63 2.795l-.17.005H6.472l-.17-.005a2.8 2.8 0 0 1-2.63-2.795V39.475h8.126l.144-.004c2.485.004 5.214 3.898 12.83 4.06z\" /><path fill=\"#D6D8E4\" d=\"M13.77 2.2s2.308-.555 2.962-2.2c.943 1.35 1.429 1.933 2.547 2.189-1.522.453-2.183.963-2.704 2.401-.598-1.695-1.142-1.914-2.805-2.39\" opacity={0.5} /><path fill=\"#D6D8E4\" d=\"M41.311 6.64S47.464 5.194 49.21.917c2.514 3.508 3.81 5.025 6.791 5.691-4.059 1.18-5.822 2.503-7.21 6.243-1.594-4.406-3.045-4.976-7.479-6.213\" opacity={0.8} /></g></svg>;\nexport default SvgEmpty;","import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { GeneralComplexOption, GeneralOption } from \"../interface.js\";\nimport styleText from \"./index.shadow.css\";\nimport classNames from \"classnames\";\nimport \"@next-core/theme\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport type {\n Tag,\n TagProps,\n TagMapEvents,\n TagEvents,\n} from \"@next-bricks/basic/tag\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { isEmpty, groupBy, isNil, debounce } from \"lodash\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { handleHttpError, fetchByProvider } from \"@next-core/runtime\";\nimport Empty from \"./empty.svg\";\n\ninterface UseBackendConf {\n provider: string;\n args: any[] | ((...args: any[]) => any[]);\n transform?: (data: any) => void;\n}\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedTag = wrapBrick<Tag, TagProps, TagEvents, TagMapEvents>(\"eo-tag\", {\n onCheck: \"check\",\n onClose: \"close\",\n});\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst isSearchable = (value: UseBackendConf): value is UseBackendConf => {\n return typeof value?.provider === \"string\";\n};\n\nconst applyArgs = (\n args: any[] | ((query: string) => any[]),\n query: string\n): any => {\n if (Array.isArray(args)) {\n return args.map((arg) => applyArgs(arg, query));\n }\n if (typeof args === \"function\") {\n return (args as (query: string) => any[]).call(null, query);\n }\n\n return args;\n};\n\ntype RequestStatus = \"loading\" | \"success\" | \"error\";\n\nexport interface SelectProps extends FormItemProps {\n value?: any;\n options: GeneralComplexOption[];\n placeholder?: string;\n mode?: \"tags\" | \"multiple\";\n tokenSeparators?: string[];\n maxTagCount?: number;\n groupBy?: string;\n suffix?: { useBrick: UseSingleBrickConf };\n fields?: { label?: string; value?: string };\n useBackend?: UseBackendConf & {\n onValueChangeArgs?: any[] | ((...args: any[]) => any[]);\n // emptyConfig?: Partial<Record<RequestStatus, EasyopsEmptyProps>>;\n };\n debounceSearchDelay?: number;\n clearable?: boolean;\n disabled?: boolean;\n inputStyle?: React.CSSProperties;\n validateState?: string;\n onChange?: (value: any, options: GeneralComplexOption[]) => void;\n onValueChange?: (value: any) => void;\n optionsChange?: (options: any, name: string) => void;\n onFocus?: () => void;\n onSearch?: (value: string) => void;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 通用下拉选择构件\n * @author sailorshe\n * @category form-input-basic\n */\n@defineElement(\"eo-select\", {\n styleTexts: [styleText],\n alias: [\"form.general-select\"],\n})\nclass Select extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 字段文本\n */\n @property() accessor label: string | undefined;\n\n /**\n * 选项列表\n * @required\n */\n @property({ attribute: false })\n accessor options!: GeneralComplexOption[];\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: any | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false }) accessor message:\n | Record<string, string>\n | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 类型\n */\n @property()\n accessor mode: \"tags\" | \"multiple\" | undefined;\n\n /**\n * 自动分词的分隔符,仅在 mode=\"tags\" 时生效\n */\n @property({\n attribute: false,\n })\n accessor tokenSeparators: string[] | undefined;\n\n /**\n * 最多显示多少个 tag, 剩余的 tag 将被隐藏\n */\n @property()\n accessor maxTagCount: number | undefined;\n\n /**\n * 分组字段\n */\n @property()\n accessor groupBy: string | undefined;\n\n /**\n */\n @property({\n attribute: false,\n })\n accessor suffix: { useBrick: UseSingleBrickConf } | undefined;\n\n /**\n * 是否支持清除\n * @default true\n */\n @property({ type: Boolean })\n accessor clearable: boolean | undefined;\n\n /**\n * 列表指定字段作为 label 和 value\n */\n @property({\n attribute: false,\n })\n accessor fields: { label?: string; value?: string } | undefined;\n\n /**\n * 后端搜索\n */\n @property({\n attribute: false,\n })\n accessor useBackend: UseBackendConf | undefined;\n\n @property({\n type: Number,\n })\n accessor debounceSearchDelay: number | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputStyle: React.CSSProperties | undefined;\n\n /**\n * 下拉选择事件\n */\n @event({ type: \"change\" }) accessor #changeEvent!: EventEmitter<{\n value: string | string[];\n options: GeneralComplexOption[];\n }>;\n\n /**\n * 下拉框search事件\n */\n @event({ type: \"search\" }) accessor #searchEvent!: EventEmitter<{\n value: string;\n }>;\n\n /**\n * 下拉框focus事件\n */\n @event({ type: \"focus\" }) accessor #focusEvent!: EventEmitter<void>;\n\n /**\n * 选项列表变化事件\n */\n @event({ type: \"options.change\" }) accessor #optionsChange!: EventEmitter<{\n options: {\n label: string;\n value: any;\n [key: string]: any;\n };\n name: string;\n }>;\n\n handleChange = (\n value: string | string[],\n options: GeneralComplexOption[]\n ): void => {\n this.value = value;\n\n this.#changeEvent.emit({\n value,\n options,\n });\n };\n\n private _handleOptionsChange = (\n options: {\n label: string;\n value: any;\n [key: string]: any;\n },\n name: string\n ): void => {\n Promise.resolve().then(() => {\n this.#optionsChange.emit({ options, name });\n });\n };\n\n handleSearch = (value: string) => {\n this.#searchEvent.emit({\n value,\n });\n };\n\n handleFocus = () => {\n this.#focusEvent.emit();\n };\n\n render() {\n return (\n <SelectComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n value={this.value}\n disabled={this.disabled}\n placeholder={this.placeholder}\n required={this.required}\n mode={this.mode}\n tokenSeparators={this.tokenSeparators}\n maxTagCount={this.maxTagCount}\n groupBy={this.groupBy}\n suffix={this.suffix}\n fields={this.fields}\n useBackend={this.useBackend}\n debounceSearchDelay={this.debounceSearchDelay}\n clearable={this.clearable}\n trigger=\"handleChange\"\n inputStyle={this.inputStyle}\n validateState={this.validateState}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n options={this.options}\n onChange={this.handleChange}\n optionsChange={this._handleOptionsChange}\n onSearch={this.handleSearch}\n onFocus={this.handleFocus}\n />\n );\n }\n}\n\nexport function SelectComponent(props: SelectProps) {\n const {\n curElement,\n name,\n disabled,\n mode,\n tokenSeparators,\n maxTagCount,\n suffix,\n fields,\n useBackend,\n debounceSearchDelay,\n clearable = true,\n inputStyle,\n placeholder,\n validateState,\n optionsChange,\n onChange,\n onFocus,\n onValueChange,\n onSearch,\n } = props;\n\n const multiple = useMemo(\n () => mode && [\"multiple\", \"tags\"].includes(mode),\n [mode]\n );\n const selectRef = useRef<HTMLDivElement>(null);\n const inputSpanRef = useRef<HTMLSpanElement>(null);\n const shouldTriggerOnValueChangeArgs = useRef(true);\n const [inputValue, setInputValue] = useState<string>(\"\");\n const [inputWidth, setInputWidth] = useState<number>();\n const [value, setValue] = useState<any>(mode ? [] : undefined);\n const [requestStatus, setRequestStatus] = useState<RequestStatus>();\n const [options, setOptions] = useState<any[]>(\n formatOptions(props.options, fields) ?? []\n );\n const [isDropHidden, setIsDropHidden] = useState<boolean>(true);\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [selectedOptions, setSelectedOptions] = useState<\n GeneralComplexOption[]\n >([]);\n const [renderOptions, setRenderOptions] = useState<any[]>([]);\n const [focusOptionItem, setFocusOptionItem] = useState<GeneralComplexOption>(\n {} as GeneralComplexOption\n );\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setOptions(\n formatOptions(\n (props.options ?? []).concat(\n mode === \"tags\" && props.value ? props.value : []\n ),\n fields\n )\n );\n }, [props.options, fields, props.value, mode]);\n\n const handleSelectorClick = useCallback(() => {\n if (!value) {\n setIsDropHidden(false);\n setIsFocused(true);\n onFocus?.();\n inputRef.current && inputRef.current.focus();\n } else if (!disabled) {\n setIsDropHidden(!isDropHidden);\n setIsFocused(true);\n inputRef.current && inputRef.current.focus();\n }\n }, [disabled, isDropHidden, value, onFocus]);\n\n const handleChange = useCallback(\n (option: GeneralComplexOption<any>): void => {\n shouldTriggerOnValueChangeArgs.current = false;\n let newValue;\n if (multiple) {\n newValue = (value ?? []).includes(option.value)\n ? (value as string[]).filter((item) => item !== option.value)\n : (((value as any[]) ?? []).concat(option.value) as string[]);\n } else {\n newValue = option.value;\n }\n const getSelectOptions = () => {\n const hadSelected = selectedOptions.find(\n (item) => item.value === option.value\n );\n return hadSelected\n ? selectedOptions.filter((item) => item.value !== option.value)\n : selectedOptions.concat(option);\n };\n const newOptions = multiple ? getSelectOptions() : [option];\n setSelectedOptions(newOptions);\n setValue(newValue);\n onChange?.(newValue, newOptions);\n onValueChange?.(newValue);\n setIsDropHidden(!multiple);\n setFocusOptionItem(option);\n !multiple && setIsFocused(false);\n multiple && inputRef.current && inputRef.current.focus();\n setInputValue(\"\");\n },\n [multiple, onChange, onValueChange, selectedOptions, value]\n );\n\n const handleMultipleItemClose = useCallback(\n (closeValue: string | number | boolean) => {\n const newOptions = selectedOptions.filter(\n (item) => item.value !== closeValue\n );\n setSelectedOptions(newOptions);\n onChange?.(\n newOptions.map((item) => item.value),\n newOptions\n );\n },\n [onChange, selectedOptions]\n );\n\n const handleClear = (e: React.MouseEvent): void => {\n e.stopPropagation();\n setSelectedOptions([]);\n onChange?.(undefined, []);\n };\n\n const handleSearchQuery = useCallback(\n async (value = \"\", type: \"valueChange\" | \"search\") => {\n if (useBackend && isSearchable(useBackend)) {\n const {\n provider,\n args,\n onValueChangeArgs,\n transform = (data) => data,\n } = useBackend;\n try {\n setRequestStatus(\"loading\");\n const actualArgs = applyArgs(\n type === \"search\" ? args : onValueChangeArgs!,\n value\n );\n const result = await fetchByProvider(provider, actualArgs);\n if (isNil(result)) return;\n const transformedData = transform(result);\n const actualData = formatOptions(\n transformedData as unknown as GeneralOption[],\n fields as any\n );\n setRequestStatus(\"success\");\n setOptions(actualData);\n // 值设置后,需要回填\n if (type === \"valueChange\") {\n setSelectedOptions(\n actualData.filter((item) =>\n Array.isArray(props.value)\n ? props.value.includes(item.value)\n : item.value === props.value\n )\n );\n }\n } catch (e) {\n setRequestStatus(\"error\");\n handleHttpError(e);\n }\n }\n },\n [useBackend, fields, props.value]\n );\n\n const handleDebounceBackendSearch = useMemo(() => {\n return debounce(handleSearchQuery, debounceSearchDelay || 300);\n }, [debounceSearchDelay, handleSearchQuery]);\n\n const computedOptions = React.useMemo((): GeneralComplexOption[] => {\n return (mode === \"tags\" && inputValue ? [inputValue] : [])\n .map((item) => ({\n key: item,\n label: item,\n value: item,\n }))\n .concat(\n selectedOptions.filter(\n (selected) =>\n !options.find((option) => option.value === selected.value)\n ) as any\n )\n .concat(options);\n }, [inputValue, mode, options, selectedOptions]);\n\n useEffect(() => {\n const computedValue =\n multiple && props.value && !Array.isArray(props.value)\n ? [props.value]\n : props.value;\n setValue(computedValue);\n // 设置回填option\n if (computedValue) {\n setSelectedOptions(\n computedOptions.filter((item) =>\n multiple\n ? computedValue.includes(item.value)\n : item.value === props.value\n )\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, options]);\n\n useEffect(() => {\n optionsChange?.(computedOptions, name as string);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [computedOptions]);\n\n useEffect(() => {\n props?.useBackend?.onValueChangeArgs &&\n shouldTriggerOnValueChangeArgs.current &&\n !(Array.isArray(props.value)\n ? props.value.length === 0\n : isNil(props.value)) &&\n handleSearchQuery(props.value, \"valueChange\");\n shouldTriggerOnValueChangeArgs.current = true;\n }, [handleSearchQuery, props?.useBackend?.onValueChangeArgs, props.value]);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n const value = e.target.value;\n if (mode === \"tags\" && value) {\n const matchToken = tokenSeparators?.includes(value[value.length - 1]);\n const customValue =\n value && matchToken ? value.substring(0, value.length - 1) : value;\n if (matchToken) {\n handleChange({\n key: customValue,\n label: customValue,\n value: customValue,\n });\n } else {\n setInputValue(value);\n }\n } else {\n setInputValue(value);\n setIsDropHidden(false);\n onSearch?.(value);\n }\n handleDebounceBackendSearch(value, \"search\");\n },\n [handleChange, handleDebounceBackendSearch, mode, onSearch, tokenSeparators]\n );\n\n const handleKeydown = useCallback(\n (e: KeyboardEvent): void => {\n if (isFocused) {\n if (e.code === \"Enter\") {\n focusOptionItem && handleChange(focusOptionItem);\n }\n if (\n e.code === \"Backspace\" &&\n multiple &&\n inputValue === \"\" &&\n selectedOptions?.length\n ) {\n selectedOptions.pop();\n setSelectedOptions([...selectedOptions]);\n value.pop();\n setValue([...value]);\n }\n }\n if (!isDropHidden && focusOptionItem) {\n if (e.code === \"ArrowDown\") {\n const index = renderOptions.findIndex(\n (item) => item.value === focusOptionItem.value\n );\n setFocusOptionItem(\n renderOptions[\n index + 1 > renderOptions.length - 1\n ? renderOptions.length - 1\n : index + 1\n ]\n );\n }\n if (e.code === \"ArrowUp\") {\n const index = renderOptions.findIndex(\n (item) => item.value === focusOptionItem.value\n );\n setFocusOptionItem(renderOptions[index - 1 < 0 ? 0 : index - 1]);\n }\n }\n },\n [\n isFocused,\n multiple,\n inputValue,\n selectedOptions,\n isDropHidden,\n focusOptionItem,\n handleChange,\n value,\n renderOptions,\n ]\n );\n\n const isEmptyValue = useMemo(() => {\n return typeof selectedOptions === \"object\"\n ? isEmpty(selectedOptions)\n : selectedOptions === undefined;\n }, [selectedOptions]);\n\n useLayoutEffect(() => {\n const renderOptions = computedOptions.filter((item) =>\n inputValue\n ? (item.label as string)\n .toLocaleUpperCase()\n .includes(inputValue.toLocaleUpperCase())\n : true\n );\n setRenderOptions(renderOptions);\n setFocusOptionItem(renderOptions?.[0]);\n\n if (inputSpanRef.current) {\n setInputWidth(\n inputSpanRef.current?.offsetWidth === 0\n ? 4\n : inputSpanRef.current?.offsetWidth\n );\n }\n }, [computedOptions, handleChange, inputValue, mode, tokenSeparators]);\n\n useEffect(() => {\n const handleDocumentClick = (e: MouseEvent) => {\n e.stopPropagation();\n const path = e.composedPath();\n if (curElement && path.includes(curElement)) return;\n setIsFocused(false);\n setIsDropHidden(true);\n setInputValue(\"\");\n };\n document.addEventListener(\"keydown\", handleKeydown);\n document.addEventListener(\"click\", handleDocumentClick);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n document.removeEventListener(\"click\", handleDocumentClick);\n };\n }, [curElement, handleKeydown]);\n\n const renderSelector = useMemo(() => {\n let tagList: GeneralComplexOption[] = selectedOptions;\n if (maxTagCount) {\n const ellipsisInfo =\n selectedOptions.length - maxTagCount > 0\n ? {\n label: `+${selectedOptions.length - maxTagCount}`,\n key: \"$$key\",\n value: \"\",\n closable: false,\n }\n : null;\n tagList = selectedOptions.slice(0, maxTagCount);\n ellipsisInfo && tagList.push(ellipsisInfo);\n }\n const allOptions = computedOptions.reduce(\n (pre: any, cur: any) =>\n cur.options ? [...pre, ...cur.options] : [...pre, cur],\n []\n );\n\n const renderLabel = (option: GeneralComplexOption): React.ReactNode => {\n return (\n <div className=\"label\">\n <span className=\"text\">\n {multiple ? (\n <WrappedTag\n key={option.value as number}\n color={disabled ? \"#ddd\" : undefined}\n closable={option.closable ?? true}\n checkable={false}\n onClose={() => handleMultipleItemClose(option.value)}\n >\n {option.label}\n {multiple && suffix?.useBrick && (\n <ReactUseBrick useBrick={suffix.useBrick} data={option} />\n )}\n </WrappedTag>\n ) : (\n option.label\n )}\n </span>\n {!multiple && suffix?.useBrick && (\n <ReactUseBrick useBrick={suffix.useBrick} data={option} />\n )}\n </div>\n );\n };\n\n const renderMultipleLabel = (\n list: Array<GeneralComplexOption>\n ): React.ReactNode => {\n return list.map((item) => {\n let option: GeneralComplexOption;\n if (typeof item === \"object\") {\n option = item;\n } else {\n option =\n allOptions.find((option: any) => option.value === item) ??\n ({} as GeneralComplexOption);\n option.closeable = !disabled && option.closeable;\n }\n return renderLabel(option);\n });\n };\n\n return (\n <div\n className={classNames({\n \"selected-item\": multiple,\n \"select-single-item\": !multiple,\n })}\n style={\n isEmptyValue ? { color: \"var(--antd-input-placeholder-color)\" } : {}\n }\n >\n {selectedOptions?.length\n ? multiple\n ? renderMultipleLabel(tagList)\n : renderLabel(selectedOptions[0])\n : isFocused || inputValue\n ? \"\"\n : placeholder}\n </div>\n );\n }, [\n computedOptions,\n disabled,\n handleMultipleItemClose,\n inputValue,\n isEmptyValue,\n isFocused,\n maxTagCount,\n multiple,\n placeholder,\n selectedOptions,\n suffix,\n ]);\n\n const Options = useMemo(() => {\n const getSelectOption = (item: any): React.ReactNode => (\n <div\n key={item.value?.toString()}\n className={classNames(\"select-item\", \"select-item-option\", {\n disabled: item.disabled,\n \"select-option-hover\": item.value === focusOptionItem.value,\n \"select-option-selected\":\n typeof value !== \"object\"\n ? value === item?.value\n : (value as any[])?.includes(item.value),\n })}\n onClick={() => !item.disabled && handleChange(item)}\n onMouseOver={() => setFocusOptionItem(item)}\n onMouseLeave={() => setFocusOptionItem({} as any)}\n >\n <div className=\"select-item-option-content\">\n <div className=\"option\">\n <span className=\"label\">{item.label}</span>\n {suffix?.useBrick && (\n <ReactUseBrick useBrick={suffix.useBrick} data={item} />\n )}\n </div>\n {multiple && (\n <div className=\"is-checked\">\n <WrappedIcon\n {...{\n lib: \"antd\",\n icon: \"check\",\n theme: \"outlined\",\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n\n const renderGroupOption = (): React.ReactNode => {\n const optsGroup = Object.entries(groupBy(renderOptions, props.groupBy));\n\n return optsGroup.map(([group, options], index) =>\n group !== \"undefined\" ? (\n <div key={index} className=\"select-group-wrapper\">\n <div className=\"select-group-label\">{group}</div>\n {options.map((item) => getSelectOption(item))}\n </div>\n ) : (\n options.map((item) => getSelectOption(item))\n )\n );\n };\n\n const renderOption = () =>\n renderOptions.map((item: any) => {\n return getSelectOption(item);\n });\n\n return renderOptions.length > 0 ? (\n props.groupBy ? (\n renderGroupOption()\n ) : (\n renderOption()\n )\n ) : (\n <div className=\"empty-tips\">\n <Empty />\n <span>暂无数据</span>\n </div>\n );\n }, [\n renderOptions,\n props.groupBy,\n focusOptionItem,\n value,\n suffix,\n multiple,\n handleChange,\n ]);\n\n return (\n <WrappedFormItem exportparts=\"message\" {...(props as FormItemProps)}>\n <div\n className={classNames(\"select\", {\n \"select-disabled\": disabled,\n \"select-allow-clear\": clearable,\n \"select-single\": !multiple,\n \"select-multiple\": multiple,\n })}\n style={inputStyle}\n ref={selectRef}\n >\n <div\n className={classNames(\"select-selector\", {\n \"selector-focused\": isFocused,\n \"is-error\": validateState === \"error\",\n })}\n onClick={handleSelectorClick}\n >\n <div className=\"select-selection-overflow\">\n {multiple && renderSelector}\n <div className=\"input-item\">\n <div className=\"select-selection-search\">\n <span\n style={{ position: \"absolute\", opacity: \"0\" }}\n ref={inputSpanRef}\n >\n {inputValue}\n </span>\n <input\n style={{ width: inputWidth }}\n type=\"text\"\n value={inputValue}\n ref={inputRef}\n className=\"select-selection-search-input\"\n onChange={handleInputChange}\n />\n </div>\n {!multiple ? !inputValue && renderSelector : null}\n </div>\n </div>\n <span className=\"select-arrow\">\n {!isEmptyValue && clearable ? (\n <WrappedIcon\n className=\"close-btn\"\n lib=\"antd\"\n icon=\"close-circle\"\n theme=\"filled\"\n onClick={(e) => handleClear(e)}\n />\n ) : (\n <span\n className={classNames(\n \"anticon\",\n \"anticon-down \",\n \"ant-select-suffix\",\n {\n focus: isFocused,\n }\n )}\n >\n <WrappedIcon icon=\"down\" lib=\"antd\" theme=\"outlined\" />\n </span>\n )}\n </span>\n </div>\n <div\n style={{ ...(isDropHidden ? { display: \"none\" } : {}) }}\n className=\"select-dropdown\"\n >\n <div className=\"dropdown-list\">\n {requestStatus === \"loading\" ? (\n <div className=\"dropdown-list-loading-container\">\n <WrappedIcon\n {...{\n icon: \"loading\",\n lib: \"antd\",\n theme: \"outlined\",\n spinning: true,\n }}\n />\n </div>\n ) : (\n <div className=\"dropdown-inner\">{Options}</div>\n )}\n </div>\n </div>\n </div>\n </WrappedFormItem>\n );\n}\n\nexport { Select };\n","import React from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport styleText from \"./index.shadow.css\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type { ButtonType } from \"../interface.js\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\ninterface SubmitButtonsProps extends FormItemProps {\n curElement: HTMLElement;\n submitText?: string;\n submitType?: ButtonType;\n submitDisabled?: boolean;\n cancelText?: string;\n cancelType?: ButtonType;\n onSubmitClick?: (event: React.MouseEvent) => void;\n onCancelClick?: (event: React.MouseEvent) => void;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 表单提交按钮\n * @author zhendonghuang\n * @category form-input-basic\n */\n@defineElement(\"eo-submit-buttons\", {\n styleTexts: [styleText],\n alias: [\"form.submit-buttons\"],\n})\nclass SubmitButtons extends FormItemElementBase {\n /**\n * 提交按钮的文字\n * @default \"提交\"\n */\n @property() accessor submitText: string = \"提交\";\n\n /**\n * 取消按钮的文字,不设置则不显示取消按钮\n */\n @property()\n accessor cancelText: string | undefined;\n\n /**\n * 点击确定按钮后自动禁用\n */\n @property({ type: Boolean })\n accessor disableAfterClick: boolean | undefined;\n\n /**\n * 禁用提交按钮\n */\n @property({ type: Boolean }) accessor submitDisabled: boolean | undefined;\n\n /**\n * 提交按钮类型\n */\n @property() accessor submitType: ButtonType | undefined;\n\n /**\n * 取消按钮类型\n */\n @property() accessor cancelType: ButtonType | undefined;\n\n /**\n * 点击提交按钮触发的事件\n */\n @event({ type: \"submit\" }) accessor #submitEvent!: EventEmitter<void>;\n\n /**\n * 点击取消按钮触发的事件\n */\n @event({ type: \"cancel\" }) accessor #cancelEvent!: EventEmitter<void>;\n\n private _handleSubmitClick = (): void => {\n Promise.resolve().then(() => {\n this.#submitEvent.emit();\n if (this.getFormElement()) {\n (this.getFormElement() as any).validate();\n }\n if (this.disableAfterClick) {\n this.submitDisabled = true;\n }\n });\n };\n\n private _handleCancelClick = (): void => {\n Promise.resolve().then(() => {\n this.#cancelEvent.emit();\n });\n };\n\n render() {\n return (\n <ButtonsComponent\n formElement={this.getFormElement()}\n curElement={this}\n submitDisabled={this.submitDisabled}\n submitText={this.submitText}\n submitType={this.submitType}\n cancelText={this.cancelText}\n cancelType={this.cancelType}\n onCancelClick={this._handleCancelClick}\n onSubmitClick={this._handleSubmitClick}\n />\n );\n }\n}\n\nexport function ButtonsComponent(props: SubmitButtonsProps) {\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n {props.submitText && (\n <WrappedButton\n className={\"submitBtn\"}\n type={props.submitType || \"primary\"}\n onClick={props.onSubmitClick}\n disabled={props.submitDisabled}\n >\n {props.submitText}\n </WrappedButton>\n )}\n {props.cancelText && (\n <WrappedButton\n data-test-id=\"cancelBtn\"\n type={props.cancelType || \"text\"}\n onClick={props.onCancelClick}\n >\n {props.cancelText}\n </WrappedButton>\n )}\n </WrappedFormItem>\n );\n}\nexport { SubmitButtons };\n","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretRightOutlined = function CaretRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretRightOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CaretRightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CaretRightOutlined';\n}\nexport default RefIcon;","import React, { useEffect, useState, useMemo } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport \"@next-core/theme\";\nimport styleText from \"./checkbox.shadow.css\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport { intersection, isEqual, uniq } from \"lodash\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { CaretRightOutlined } from \"@ant-design/icons\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport type CheckboxType = \"default\" | \"icon\";\n\nexport declare type CheckboxValueType = string | number | boolean;\n\nexport interface CheckboxOptionType {\n label: React.ReactNode;\n value: any;\n style?: React.CSSProperties;\n disabled?: boolean;\n checkboxColor?: string;\n [propName: string]: any;\n}\n\nexport interface MenuIcon {\n [propName: string]: any;\n}\n\nexport interface OptionGroup {\n name: string;\n key: string;\n options: CheckboxOptionType[];\n}\n\nexport interface CheckboxProps extends FormItemProps {\n options?: CheckboxOptionType[];\n label?: string;\n value?: CheckboxValueType[];\n disabled?: boolean;\n type?: CheckboxType;\n isCustom?: boolean;\n isGroup?: boolean;\n optionGroups?: OptionGroup[];\n onChange?: (value: CheckboxValueType[]) => void;\n optionsChange?: (options: CheckboxOptionType[], name: string) => void;\n}\n\n/**\n * 表单复选框构件\n * @author derrickma\n * @category form-input-basic\n */\n@defineElement(\"eo-checkbox\", {\n styleTexts: [styleText],\n alias: [\"form.general-checkbox\"],\n})\nclass Checkbox extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n /**\n * 值\n */\n @property({ attribute: false })\n accessor value: CheckboxValueType[] | undefined;\n\n /**\n * 多选框选项表\n * @required\n */\n @property({ attribute: false })\n accessor options: CheckboxOptionType[] = [];\n\n /**\n * 类型\n * @default \"default\"\n */\n @property()\n accessor type: CheckboxType = \"default\";\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否为自定义\n * @default false\n */\n @property({ type: Boolean })\n accessor isCustom: boolean = false;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 校验文本\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否为复选框,为true时,则可设置分组数据 optionGroups\n */\n @property({\n type: Boolean,\n })\n accessor isGroup: boolean | undefined;\n\n /**\n * 多选框选项分组数据,需要设置 isGroup 为 true 才生效\n */\n @property({\n attribute: false,\n })\n accessor optionGroups: OptionGroup[] | undefined;\n\n /**\n * 复选框变化事件\n */\n @event({ type: \"change\" })\n accessor #checkboxChangeEvent!: EventEmitter<CheckboxOptionType[]>;\n\n handleCheckboxChange = (detail: CheckboxValueType[]) => {\n this.value = detail;\n const currentOptions = this.optionGroups\n ? this.optionGroups.reduce(\n (before: CheckboxOptionType[], after) => [\n ...before,\n ...after.options,\n ],\n []\n )\n : this.options;\n const currentSelectOption = formatOptions(currentOptions).filter((item) =>\n typeof item.value === \"object\" ? true : detail.includes(item.value)\n );\n this.#checkboxChangeEvent.emit(currentSelectOption);\n };\n\n /**\n * 复选框变化事件\n */\n @event({ type: \"options.change\" })\n accessor #optionsChangeEvent!: EventEmitter<{\n options: CheckboxOptionType[];\n name: string;\n }>;\n\n #handleOptionsChange = (options: CheckboxOptionType[], name: string) => {\n this.#optionsChangeEvent.emit({\n options,\n name,\n });\n };\n\n render() {\n return (\n <CheckboxComponent\n curElement={this}\n formElement={this.getFormElement()}\n options={formatOptions(this.options)}\n label={this.label}\n name={this.name}\n value={this.value}\n type={this.type}\n disabled={this.disabled}\n isCustom={this.isCustom}\n required={this.required}\n message={this.message}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleCheckboxChange\"\n onChange={this.handleCheckboxChange}\n optionsChange={this.#handleOptionsChange}\n isGroup={this.isGroup}\n optionGroups={this.optionGroups}\n />\n );\n }\n}\n\nfunction CheckboxComponent(props: CheckboxProps) {\n const { isGroup } = props;\n const [values, setValues] = useState<CheckboxValueType[]>(props?.value ?? []);\n const [options, setOptions] = useState<CheckboxOptionType[]>(\n props.options || []\n );\n const [collapseKeys, setCollapseKeys] = useState<string[]>(\n (props.optionGroups || []).map((o) => o.key)\n );\n const [optionGroups, setOptionGroups] = useState(props.optionGroups);\n useEffect(() => {\n if (!isEqual(optionGroups, props.optionGroups)) {\n setCollapseKeys((optionGroups || []).map((o) => o.key));\n setOptionGroups(props.optionGroups);\n }\n }, [props.optionGroups]);\n\n useEffect(() => {\n if (!isEqual(options, props.options)) {\n setOptions(props.options || []);\n props.optionsChange?.(props.options ?? [], props.name as string);\n }\n }, [options, props, props.options]);\n\n useEffect(() => {\n setValues(props?.value || []);\n }, [props.value]);\n\n const handleInputClick = (\n e: React.ChangeEvent<HTMLInputElement>,\n item: CheckboxOptionType\n ) => {\n e.stopPropagation();\n let newValue: CheckboxValueType[] = [];\n if (e.target.checked) {\n newValue = [...values, item.value];\n }\n if (!e.target.checked && values?.includes(item.value)) {\n newValue = [...values];\n const index = newValue.findIndex((i) => i == item.value);\n newValue.splice(index, 1);\n }\n setValues(newValue);\n props.onChange?.(newValue);\n };\n\n const getIcon = (item: CheckboxOptionType) => {\n let iconNode = null;\n const { icon } = item;\n if (icon) {\n if (\"imgSrc\" in icon) {\n const mergedIcon: any = {\n ...icon,\n imgSrc: icon.imgSrc,\n imgStyle: {\n marginRight: \"8px\",\n verticalAlign: \"-0.42em\",\n ...icon.imgStyle,\n },\n };\n iconNode = icon && (\n <WrappedIcon {...(mergedIcon as GeneralIconProps)} />\n );\n } else {\n iconNode = icon && (\n <WrappedIcon\n {...(icon as GeneralIconProps)}\n style={{\n fontSize: \"22px\",\n marginRight: \"8px\",\n verticalAlign: \"-0.25em\",\n }}\n />\n );\n }\n }\n return iconNode;\n };\n\n const IconCheckbox = (props: CheckboxProps) => {\n const { name, disabled = false, isCustom = false } = props;\n return (\n <>\n {options.map((item: any) => (\n <label\n key={item.value}\n className={\n disabled || item?.disabled\n ? classNames({\n disabledIconCheckbox: true,\n disabledIconCustomCheckbox: isCustom,\n })\n : classNames({\n iconCheckbox: true,\n iconCustomCheckbox: isCustom,\n })\n }\n >\n <div className={classNames({ inputBox: true })}>\n <input\n type=\"checkbox\"\n value={item.value}\n name={name}\n defaultChecked={values?.includes(item.value)}\n disabled={disabled || item?.disabled}\n onChange={(e) => handleInputClick(e, item)}\n />\n </div>\n <div className={classNames({ content: true })}>\n {item.icon && (\n <WrappedIcon\n {...(item.icon as GeneralIconProps)}\n style={{\n fontSize: isCustom ? \"52px\" : \"32px\",\n }}\n ></WrappedIcon>\n )}\n <div className={classNames({ text: true })}>\n {item.label || item.value}\n </div>\n </div>\n </label>\n ))}\n </>\n );\n };\n\n const CheckboxItem = (props: CheckboxProps) => {\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n minHeight: \"30px\",\n }}\n >\n <div className=\"checkboxWrapper\" part=\"checkbox-wrapper\">\n {props.options?.map((item: CheckboxOptionType) => {\n const disabled = item.disabled || props.disabled;\n return (\n <label\n key={item.value}\n className={classNames({\n checkboxLabel: true,\n checkboxLabelDisabled: disabled,\n checkboxLabelCheck: values.includes(item.value),\n })}\n part=\"checkbox-option\"\n >\n <span\n style={{ color: item.checkboxColor }}\n className={classNames({\n checkboxInputWrapper: true,\n checkboxInputWrapperDisabled: disabled,\n checkboxInputCheck: values.includes(item.value),\n })}\n >\n <input\n onChange={(e) => !disabled && handleInputClick(e, item)}\n disabled={disabled}\n defaultChecked={values?.includes(item.value)}\n className={classNames({\n checkboxInput: true,\n checkboxInputDisabled: disabled,\n })}\n type=\"checkbox\"\n id={item.value}\n ></input>\n <span\n className={classNames({ checkboxInner: true })}\n style={\n values.includes(item.value) && item.checkboxColor\n ? {\n background: item.checkboxColor,\n borderColor: item.checkboxColor,\n }\n : {}\n }\n ></span>\n </span>\n\n <span className={classNames({ checkboxText: true })}>\n <slot>\n {getIcon(item)}\n {item.label}\n </slot>\n </span>\n </label>\n );\n })}\n </div>\n </div>\n );\n };\n const CheckGroupItem = (props: CheckboxProps) => {\n const _optionGroups = useMemo(() => {\n return optionGroups?.map((option) => {\n const newOptions = formatOptions(option.options);\n const newOptionsKeys = newOptions.map((n) => n.value);\n const checkOptions = intersection(values, newOptionsKeys);\n const checkType =\n checkOptions.length === newOptionsKeys.length\n ? \"all\"\n : checkOptions.length > 0 &&\n checkOptions.length !== newOptionsKeys.length\n ? \"part\"\n : \"none\";\n return {\n ...option,\n options: newOptions,\n checkType,\n keys: newOptionsKeys,\n };\n });\n }, [optionGroups, props.value]);\n return (\n <div className=\"collapse-wrapper\">\n {\" \"}\n {_optionGroups?.map((i) => (\n <div key={i.key}>\n <div\n onClick={() => {\n if (collapseKeys.includes(i.key)) {\n const newKeys = collapseKeys.filter((key) => key !== i.key);\n setCollapseKeys(newKeys);\n } else {\n setCollapseKeys([...collapseKeys, i.key]);\n }\n }}\n className={classNames(\"collapse-header\")}\n >\n <span className=\"collapse-icon\">\n <CaretRightOutlined\n rotate={collapseKeys.includes(i.key) ? 90 : 0}\n rev=\"\"\n />\n </span>\n <label\n onClick={(e) => {\n e.stopPropagation();\n }}\n className={classNames({\n checkboxLabel: true,\n checkboxLabelCheck: i.checkType === \"all\",\n })}\n >\n <span\n className={classNames({\n checkboxInputWrapper: true,\n checkboxInputCheck: i.checkType === \"all\",\n checkboxInputPartCheck: i.checkType === \"part\",\n })}\n >\n <input\n className={classNames({\n checkboxInput: true,\n })}\n onChange={(e) => {\n e.stopPropagation();\n if (i.checkType === \"all\") {\n const newValue = values.filter(\n (v) => !i.keys.includes(v)\n );\n props.onChange?.(newValue);\n } else {\n props.onChange?.(uniq([...values, ...i.keys]));\n }\n }}\n type=\"checkbox\"\n ></input>\n <span className={classNames({ checkboxInner: true })}></span>\n </span>\n\n <span className={classNames({ checkboxText: true })}>\n {i.name}\n </span>\n </label>\n </div>\n <div\n className={classNames(\"collapse-content\", {\n \"collapse-content-visible\": collapseKeys.includes(i.key),\n })}\n >\n <CheckboxItem\n {...{ ...props, options: i.options }}\n ></CheckboxItem>\n </div>\n </div>\n ))}\n </div>\n );\n };\n return (\n <WrappedFormItem exportparts=\"message\" {...(props as FormItemProps)}>\n {props.type == \"icon\" ? (\n <IconCheckbox {...props}></IconCheckbox>\n ) : isGroup && props.optionGroups ? (\n <CheckGroupItem {...props}></CheckGroupItem>\n ) : (\n <CheckboxItem {...{ ...props, options: options }}></CheckboxItem>\n )}\n </WrappedFormItem>\n );\n}\n\nexport { Checkbox };\n","export enum K {\n UNIQUE = \"UNIQUE\",\n}\n\nconst en: Locale = {\n UNIQUE: \"{{ name }} can not repeat!\",\n};\n\nconst zh: Locale = {\n UNIQUE: \"{{ name }} 不能重复!\",\n};\n\nexport const NS = \"bricks/form/dynamic-form-item\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n Form,\n FormEvents,\n FormMapEvents,\n FormProps,\n} from \"../form/index.js\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport { UseBrickConf, UseSingleBrickConf } from \"@next-core/types\";\nimport styleText from \"./dynamic-form-item.shadow.css\";\nimport \"@next-core/theme\";\nimport { isEqual, flatten, omit, isEmpty } from \"lodash\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport classNames from \"classnames\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst WrappedForm = wrapBrick<Form, FormProps, FormEvents, FormMapEvents>(\n \"eo-form\",\n {\n onValuesChange: \"values.change\",\n onValidateSuccess: \"validate.success\",\n onValidateError: \"validate.error\",\n }\n);\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport function uniqueValidatorFN(\n props: DynamicFormItemProps,\n properties: any,\n t: any\n) {\n return () => {\n const fieldValue = props?.curElement?.value?.map(\n (v: any) => v[properties.name as string]\n );\n if (new Set(fieldValue).size !== fieldValue.length) {\n return (\n (properties.message as any)?.unique ??\n t(K.UNIQUE, { name: properties.label ?? properties.name })\n );\n }\n return \"\";\n };\n}\n\ntype DynamicFormValuesItem = Record<string, any>;\n\ninterface DynamicFormItemProps extends FormItemProps {\n form?: Form;\n useBrick?: UseBrickConf;\n value?: DynamicFormValuesItem[];\n validateState?: string;\n needValidate?: boolean;\n onChange?: (value: DynamicFormValuesItem[]) => void;\n onValuesChange?: (values: DynamicFormValuesItem[]) => void;\n onAdd?: (value: rowDataType) => void;\n onRemove?: (value: rowDataType) => void;\n hideRemoveButton?:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean);\n disabledRemoveButton?:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean);\n hideAddButton?: boolean | ((value: Record<string, any>[]) => boolean);\n disabledAddButton?: boolean | ((value: Record<string, any>[]) => boolean);\n}\ntype rowDataType = {\n detail: Record<string, any>;\n index: number;\n};\n\nexport const getRealValue = (\n property: boolean | ((...args: any[]) => boolean),\n args: any[]\n): boolean => {\n if (typeof property === \"function\") {\n return property(...args);\n }\n return property;\n};\n/**\n * 动态表单\n * @author sailor\n * @category form-input-basic\n */\n@defineElement(\"eo-dynamic-form-item\", {\n styleTexts: [styleText],\n alias: [\"form.dynamic-form-item\"],\n})\nclass DynamicFormItem extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n /**\n * 字段说明\n */\n @property() accessor label: string | undefined;\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: DynamicFormValuesItem[] | undefined;\n\n /**\n * 校验文本\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否隐藏每一行删除的按钮\n */\n @property({\n attribute: false,\n })\n accessor hideRemoveButton:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean)\n | undefined;\n\n /**\n * 是否禁止每一行删除的按钮\n */\n @property({\n attribute: false,\n })\n accessor disabledRemoveButton:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean)\n | undefined;\n\n /**\n * 是否隐藏添加的按钮\n */\n @property({\n attribute: false,\n })\n accessor hideAddButton:\n | boolean\n | ((value: Record<string, any>[]) => boolean)\n | undefined;\n\n /**\n * 是否禁止添加的按钮\n */\n @property({\n attribute: false,\n })\n accessor disabledAddButton:\n | boolean\n | ((value: Record<string, any>[]) => boolean)\n | undefined;\n\n /**\n * 动态表单子项构件列表\n */\n @property({\n attribute: false,\n })\n accessor useBrick: UseBrickConf | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<DynamicFormValuesItem[]>;\n\n /**\n * 增加一行时触发,detail为该行的默认值,index为该行的位置\n */\n @event({ type: \"row.add\" })\n accessor #addEvent!: EventEmitter<rowDataType>;\n\n /**\n * 移除一行时触发,detail为该行的值,index为该行的位置\n */\n @event({ type: \"row.remove\" })\n accessor #removeEvent!: EventEmitter<rowDataType>;\n\n #handleAdd = (value: rowDataType): void => {\n this.#addEvent.emit(value);\n };\n\n #handleRemove = (value: rowDataType): void => {\n this.#removeEvent.emit(value);\n };\n\n handleDynamicFormChange = (values: DynamicFormValuesItem[]) => {\n this.value = values;\n this.#changeEvent.emit(values);\n this.getFormElement()?.resetValidateState();\n };\n\n render() {\n return (\n <DynamicFormItemComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n required={this.required}\n useBrick={this.useBrick}\n value={this.value}\n validateState={this.validateState}\n needValidate={false}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleDynamicFormChange\"\n onChange={this.handleDynamicFormChange}\n onValuesChange={this.handleDynamicFormChange}\n message={this.message}\n onAdd={this.#handleAdd}\n onRemove={this.#handleRemove}\n hideAddButton={this.hideAddButton}\n hideRemoveButton={this.hideRemoveButton}\n disabledAddButton={this.disabledAddButton}\n disabledRemoveButton={this.disabledRemoveButton}\n />\n );\n }\n}\n\nexport function DynamicFormItemComponent(props: DynamicFormItemProps) {\n const { t } = useTranslation(NS);\n const {\n value,\n hideAddButton = false,\n hideRemoveButton = false,\n disabledRemoveButton = false,\n disabledAddButton = false,\n } = props;\n const formWrapperRef = useRef<HTMLDivElement>(null);\n const [values, setValues] = useState<DynamicFormValuesItem[]>(value ?? []);\n\n const [bricks, setBricks] = useState<UseSingleBrickConf[]>([]);\n\n const bricksOfNoLabel = useMemo(\n () => bricks.map((brick: any) => omit(brick, \"properties.label\")),\n [bricks]\n );\n\n const handleAddItem = () => {\n props.onAdd?.({ detail: {}, index: values.length });\n setValues(values.concat({}));\n };\n\n useEffect(() => {\n if (!isEqual(value, values)) {\n setValues(value ?? []);\n }\n }, [value]);\n\n useEffect(() => {\n if (props.useBrick) {\n const parsedUseBrick: UseSingleBrickConf[] = flatten(\n new Array(props.useBrick)\n );\n\n setBricks(\n parsedUseBrick.map((brick) => {\n const { properties = {} } = brick;\n if (properties.unique) {\n let parsedValidator: any = [\n uniqueValidatorFN(props, properties, t),\n ];\n if (properties.validator) {\n parsedValidator = [\n ...flatten(new Array(properties.validator)),\n ...parsedValidator,\n ];\n }\n return {\n ...brick,\n properties: {\n ...brick.properties,\n validator: parsedValidator,\n },\n };\n } else {\n return brick;\n }\n })\n );\n }\n }, [props.useBrick, props.curElement]);\n // istanbul ignore next;\n const validate = () => {\n const formWrapper = formWrapperRef.current;\n const forms = formWrapper?.querySelectorAll(\n \".dynamic-form\"\n ) as unknown as Form[];\n const result: Array<boolean | Record<string, unknown>> = [];\n if (forms.length) {\n forms.forEach((item) => {\n result.push(item.validate());\n });\n }\n return result.every(Boolean) ? \"\" : \"动态表单校验失败\";\n };\n\n // istanbul ignore next;\n const handleValuesChange = useCallback(\n (value: CustomEvent<DynamicFormValuesItem>, index: number) => {\n props.onChange?.(\n values.map((item, i) => {\n if (i === index) {\n return value.detail.allValues;\n }\n return item;\n })\n );\n },\n [props, values]\n );\n\n const handleRemoveItem = useCallback(\n (index: number) => {\n const newValues = values.filter((_, i) => i !== index);\n setValues(newValues);\n props.onChange?.(newValues);\n props.onRemove?.({\n detail: values.find((_, i) => i === index) as Record<string, any>,\n index,\n });\n },\n [props, values]\n );\n const addButtonDisabled = useMemo(\n () => getRealValue(disabledAddButton, [values]),\n [disabledAddButton, values]\n );\n const addButtonHide = useMemo(\n () => getRealValue(hideAddButton, [values]),\n [hideAddButton, values]\n );\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(props as FormItemProps)}\n validator={validate}\n >\n <div className=\"dynamic-form-wrapper\" ref={formWrapperRef}>\n {values.map((value, index) => {\n const hideRemoveBtn = getRealValue(hideRemoveButton, [value, index]);\n const removeBtnDisabled = getRealValue(disabledRemoveButton, [\n value,\n index,\n ]);\n return (\n <div className=\"dynamic-form-item\" key={index}>\n {!isEmpty(bricks) && (\n <WrappedForm\n layout=\"vertical\"\n formStyle={{\n flexDirection: \"row\",\n alignItems: \"flex-start\",\n }}\n className=\"dynamic-form\"\n values={value}\n defaultEmitValuesChange={false}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n onValuesChange={(value) => handleValuesChange(value, index)}\n >\n <ReactUseMultipleBricks\n useBrick={\n (index === 0\n ? bricks\n : bricksOfNoLabel) as UseSingleBrickConf[]\n }\n // NOTE: Passing changed `data={value}` will cause useBrick to re-render and lose state\n data={value}\n />\n {!hideRemoveBtn && (\n <div\n className={classNames(\"remove-btn-wrapper\", {\n \"remove-btn-disabled-wrapper\": removeBtnDisabled,\n })}\n >\n <WrappedIcon\n lib=\"easyops\"\n category=\"assets-inventory\"\n icon=\"out\"\n className={classNames(\"remove-btn\", {\n \"remove-btn-disabled\": removeBtnDisabled,\n })}\n onClick={() => handleRemoveItem(index)}\n />\n </div>\n )}\n </WrappedForm>\n )}\n </div>\n );\n })}\n <div\n className={classNames({\n \"add-btn-wrapper-disabled\": addButtonDisabled,\n })}\n >\n <WrappedButton\n className={classNames(\"add-btn\", {\n \"add-btn-hide\": addButtonHide,\n \"add-btn-disabled\": addButtonDisabled,\n })}\n icon={{\n category: \"assets-inventory\",\n icon: \"xin\",\n lib: \"easyops\",\n }}\n type=\"dashed\"\n buttonStyle={{\n width: \"100%\",\n color: addButtonDisabled ? \"var(--text-color-disabled)\" : \"\",\n }}\n onClick={handleAddItem}\n >\n 添加\n </WrappedButton>\n </div>\n </div>\n <slot name=\"helpSlot\"></slot>\n </WrappedFormItem>\n );\n}\n\nexport { DynamicFormItem };\n","import React, { useEffect, useState, useMemo } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { debounce } from \"lodash\";\nimport {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"../input/index.jsx\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\n\nexport interface SearchProps {\n value?: string;\n placeholder?: string;\n autoFocus?: boolean;\n clearable?: boolean;\n trim?: boolean;\n debounceTime?: number;\n}\n\nexport interface SearchEvents {\n change: CustomEvent<string>;\n search: CustomEvent<string>;\n}\n\nexport interface SearchEventsMap {\n onChange: \"change\";\n onSearch: \"search\";\n}\n\n/**\n * 搜索框\n * @author nlicro\n * @category interact-basic\n */\nexport\n@defineElement(\"eo-search\", {\n styleTexts: [styleText],\n alias: [\"form.general-search\"],\n})\nclass GeneralSearch extends ReactNextElement implements SearchProps {\n /**\n * 搜索框的值\n */\n @property()\n accessor value: string = \"\";\n\n /**\n * 提示语\n */\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 是否自动聚焦\n */\n @property({\n type: Boolean,\n })\n accessor autoFocus: boolean | undefined;\n\n /**\n * 可以点击清除图标删除内容\n */\n @property({\n type: Boolean,\n })\n accessor clearable: boolean | undefined;\n\n /**\n * 是否剔除前后空格\n */\n @property({\n type: Boolean,\n })\n accessor trim: boolean | undefined;\n\n /**\n * 默认延迟时间\n */\n @property({\n type: Number,\n })\n accessor debounceTime: number = 0;\n\n /**\n * 输入的搜索字符,输入变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<string>;\n #handleChange = (value: string) => {\n this.value = value;\n };\n #handleDebouncedChange = (value: string) => {\n this.#change.emit(this.trim ? value?.trim() : value);\n };\n\n /**\n * 搜索时触发\n */\n @event({ type: \"search\" })\n accessor #search!: EventEmitter<string>;\n #handleSearch = (value: string) => {\n this.#search.emit(this.trim ? value?.trim() : value);\n };\n\n render() {\n return (\n <GeneralSearchComponent\n value={this.value}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n clearable={this.clearable}\n debounceTime={this.debounceTime}\n onChange={this.#handleChange}\n onSearch={this.#handleSearch}\n onDebouncedChange={this.#handleDebouncedChange}\n />\n );\n }\n}\n\ninterface SearchComponentProps extends SearchProps {\n onSearch?: (value: string) => void;\n onChange?: (value: string) => void;\n onDebouncedChange?: (value: string) => void;\n}\n\nexport function GeneralSearchComponent(props: SearchComponentProps) {\n const {\n placeholder,\n autoFocus,\n clearable,\n debounceTime,\n onDebouncedChange,\n onChange,\n onSearch,\n } = props;\n\n const [value, setValue] = useState<string>();\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const _onDebouncedChange = useMemo(() => {\n return debounceTime\n ? debounce(onDebouncedChange!, debounceTime)\n : onDebouncedChange;\n }, [debounceTime]);\n\n const handleSearch = () => {\n onSearch?.(value!);\n };\n\n const handleChange = (e: CustomEvent<string>) => {\n setValue(e.detail);\n onChange?.(e.detail);\n _onDebouncedChange?.(e.detail);\n };\n\n return (\n <WrappedInput\n type=\"text\"\n // React has special treatment for autoFocus. So we set the autofocus attribute to eo-input.\n auto-focus={autoFocus}\n clearable={clearable}\n placeholder={placeholder}\n value={value}\n onChange={handleChange as any}\n onKeyDown={(e) => e.key === \"Enter\" && handleSearch()}\n >\n <WrappedIcon\n slot=\"suffix\"\n className=\"search-button\"\n lib=\"antd\"\n icon=\"search\"\n theme=\"outlined\"\n onClick={() => handleSearch()}\n onMouseDown={(e) => e.preventDefault()}\n />\n </WrappedInput>\n );\n}\n","export enum K {\n ICON = \"ICON\",\n COLOR = \"COLOR\",\n SELECT_ICON = \"SELECT_ICON\",\n SEARCH_PLACEHOLDER = \"SEARCH_PLACEHOLDER\",\n}\n\nconst en: Locale = {\n ICON: \"Icon\",\n COLOR: \"Color\",\n SELECT_ICON: \"Select Icon\",\n SEARCH_PLACEHOLDER: \"input keyword to search\",\n};\n\nconst zh: Locale = {\n ICON: \"图标\",\n COLOR: \"颜色\",\n SELECT_ICON: \"选择图标\",\n SEARCH_PLACEHOLDER: \"输入关键字搜索\",\n};\n\nexport const NS = \"bricks/form/icon-select\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","export enum Colors {\n green = \"green\",\n red = \"red\",\n blue = \"blue\",\n orange = \"orange\",\n cyan = \"cyan\",\n purple = \"purple\",\n geekblue = \"geekblue\",\n gray = \"gray\",\n}\n\nexport const COLORS_MAP: Record<\n Colors,\n { color: string; background: string; borderColor: string }\n> = {\n [Colors.green]: {\n color: \"var(--theme-green-color)\",\n background: \"var(--theme-green-background)\",\n borderColor: \"var(--theme-green-border-color)\",\n },\n [Colors.red]: {\n color: \"var(--theme-red-color)\",\n background: \"var(--theme-red-background)\",\n borderColor: \"var(--theme-red-border-color)\",\n },\n [Colors.blue]: {\n color: \"var(--theme-blue-color)\",\n background: \"var(--theme-blue-background)\",\n borderColor: \"var(--theme-blue-border-color)\",\n },\n [Colors.orange]: {\n color: \"var(--theme-orange-color)\",\n background: \"var(--theme-orange-background)\",\n borderColor: \"var(--theme-orange-border-color)\",\n },\n [Colors.cyan]: {\n color: \"var(--theme-cyan-color)\",\n background: \"var(--theme-cyan-background)\",\n borderColor: \"var(--theme-cyan-border-color)\",\n },\n [Colors.purple]: {\n color: \"var(--theme-purple-color)\",\n background: \"var(--theme-purple-background)\",\n borderColor: \"var(--theme-purple-border-color)\",\n },\n [Colors.geekblue]: {\n color: \"var(--theme-geekblue-color)\",\n background: \"var(--theme-geekblue-background)\",\n borderColor: \"var(--theme-geekblue-border-color)\",\n },\n [Colors.gray]: {\n color: \"var(--theme-gray-color)\",\n background: \"var(--theme-gray-background)\",\n borderColor: \"var(--theme-gray-border-color)\",\n },\n};\n\n/**\n * 如果提供的颜色值是平台提供的规范颜色,则转换为使用平台规范的颜色定义,包括color、background、borderColor,不是的话则原样输出。\n * @param color {string} 颜色值\n * @return {color:string;background:string;borderColor:string;} 返回处理后的对应颜色值\n */\nexport function getColor(color?: string): {\n color: string;\n background: string;\n borderColor: string;\n} {\n if (!color) {\n return {\n color: \"var(--antd-avatar-color)\",\n background: \"var(--antd-avatar-bg)\",\n borderColor: \"var(--antd-avatar-color)\",\n };\n }\n return (\n COLORS_MAP[color as Colors] ?? {\n color,\n background: color,\n borderColor: color,\n }\n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport classNames from \"classnames\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n LibIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n Modal,\n ModalProps,\n ModalEvents,\n ModalMapEvents,\n} from \"@next-bricks/containers/modal\";\nimport type {\n Radio,\n RadioProps,\n RadioEvents,\n RadioEventsMapping,\n} from \"../radio/index.js\";\nimport type {\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap,\n} from \"../search/index.js\";\nimport type {\n getLibs as _getLibs,\n LibInfo,\n IconInfo,\n} from \"@next-bricks/icons/data-providers/get-libs\";\nimport type { searchIcons as _searchIcons } from \"@next-bricks/icons/data-providers/search-icons\";\nimport { COLORS_MAP, getColor } from \"./utils.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst getLibs = unwrapProvider<typeof _getLibs>(\"icons.get-libs\");\nconst searchIcons = unwrapProvider<typeof _searchIcons>(\"icons.search-icons\");\nconst WrappedGeneralRadio = wrapBrick<\n Radio,\n RadioProps,\n RadioEvents,\n RadioEventsMapping\n>(\"eo-radio\", {\n onValueChange: \"change\",\n onOptionsChange: \"optionsChange\",\n});\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedModal = wrapBrick<Modal, ModalProps, ModalEvents, ModalMapEvents>(\n \"eo-modal\",\n {\n onClose: \"close\",\n onConfirm: \"confirm\",\n onCancel: \"cancel\",\n onOpen: \"open\",\n }\n);\nconst WrappedSearch = wrapBrick<\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap\n>(\"eo-search\", {\n onChange: \"change\",\n onSearch: \"search\",\n});\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ntype Icon = LibIconProps & { color?: string };\n\nexport interface IconSelectProps {\n name?: string;\n label?: string;\n value?: Icon;\n disabled?: boolean;\n required?: boolean;\n message?: Record<string, string>;\n}\n\n/**\n * 图标选择构件\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-icon-select\", {\n styleTexts: [styleText],\n alias: [\"form.icon-select\"],\n})\nclass IconSelect extends FormItemElementBase implements IconSelectProps {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: Icon | undefined;\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 值变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<Icon | undefined>;\n handleChange = (value?: Icon) => {\n this.value = value;\n this.#change.emit(value);\n };\n\n render() {\n return (\n <IconSelectComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n value={this.value}\n required={this.required}\n disabled={this.disabled}\n message={this.message}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n onChange={this.handleChange}\n trigger=\"handleChange\"\n />\n );\n }\n}\n\nconst emptyIcon = {\n lib: \"easyops\",\n icon: \"empty-icon\",\n category: \"common\",\n} as Icon;\n\ninterface IconSelectComponentProps extends FormItemProps, IconSelectProps {\n onChange?: (value?: Icon) => void;\n}\n\nexport function IconSelectComponent(props: IconSelectComponentProps) {\n const { t } = useTranslation(NS);\n const { disabled, onChange } = props;\n\n const modalRef = useRef<Modal>(null);\n\n const [iconLibs, setIconLibs] = useState<LibInfo[]>([]);\n const [searchParams, setSearchParams] = useState<{\n q?: string;\n lib?: string;\n }>({});\n const [iconList, setIconList] = useState<IconInfo[]>([]);\n\n useEffect(() => {\n getLibs().then((libs) => {\n setIconLibs(libs);\n setSearchParams({ ...searchParams, lib: libs[0].lib });\n });\n }, []);\n\n const handleSearchIcons = (params: { q?: string; lib?: string }) => {\n searchIcons({ lib: params.lib, q: params.q, page: 1, pageSize: 100 }).then(\n (result) => setIconList(result.list)\n );\n };\n\n const [previewIcon, setPreviewIcon] = useState<LibIconProps>();\n const [previewColor, setPreviewColor] = useState<string>();\n\n useEffect(() => {\n setPreviewIcon(props.value?.lib ? props.value : undefined);\n setPreviewColor(props.value?.color);\n }, [props.value]);\n\n const [selectedIcon, setSelectedIcon] = useState<LibIconProps>();\n const [selectedColor, setSelectedColor] = useState<string>();\n\n const clearSelect = () => {\n setSelectedIcon(undefined);\n setSelectedColor(undefined);\n };\n\n const handleModalOpen = () => {\n setSelectedIcon(previewIcon);\n setSelectedColor(previewColor);\n handleSearchIcons(searchParams);\n };\n\n const handleModalClose = () => {\n clearSelect();\n };\n\n const handleModalConfirm = () => {\n setPreviewIcon(selectedIcon);\n setPreviewColor(selectedColor);\n const newValue = selectedIcon?.lib\n ? { ...selectedIcon, color: selectedColor }\n : undefined;\n onChange?.(newValue);\n modalRef.current?.close();\n };\n\n const handleIconSelect = (icon: LibIconProps) => {\n setSelectedIcon(icon);\n };\n\n const handleColorSelect = (color?: string) => {\n setSelectedColor(color);\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...(props as FormItemProps)}>\n <span\n onClick={() => !disabled && modalRef.current?.open()}\n className={classNames(\"show-icon\", {\n disabled: disabled,\n })}\n style={{ backgroundColor: getColor(previewColor).background }}\n >\n <WrappedGeneralIcon\n {...(previewIcon || emptyIcon)}\n style={{ color: getColor(previewColor).color }}\n />\n </span>\n <WrappedModal\n ref={modalRef}\n modalTitle={t(K.SELECT_ICON)!}\n width=\"778px\"\n maskClosable={false}\n closeWhenConfirm={false}\n onConfirm={handleModalConfirm}\n onClose={handleModalClose}\n onOpen={handleModalOpen}\n >\n <div className=\"preview-container\">\n <div\n className=\"show-area\"\n style={{ backgroundColor: getColor(selectedColor).background }}\n >\n <WrappedGeneralIcon\n {...(selectedIcon || emptyIcon)}\n style={{ color: getColor(selectedColor).color }}\n />\n {selectedIcon && (\n <div className=\"delete-wrapper\" onClick={() => clearSelect()}>\n <div className=\"delete-icon\">\n <WrappedGeneralIcon\n lib=\"easyops\"\n category=\"default\"\n icon=\"delete\"\n style={{ color: \"var(--theme-red-color)\" }}\n />\n </div>\n </div>\n )}\n </div>\n <span className=\"preview-icon-name\">{selectedIcon?.icon}</span>\n </div>\n <div className=\"select-icon-container\">\n {\n <>\n <span className=\"label\">{t(K.COLOR)}:</span>\n <div className=\"select-color-area\">\n {Object.keys(COLORS_MAP).map((item) => {\n return (\n <div\n className=\"color-box\"\n style={{ backgroundColor: getColor(item).color }}\n key={item}\n onClick={() => handleColorSelect(item)}\n />\n );\n })}\n <div\n className=\"color-box empty-color\"\n onClick={() => handleColorSelect(undefined)}\n >\n <div className=\"empty-line\" />\n </div>\n </div>\n </>\n }\n <span className=\"label\">{t(K.ICON)}:</span>\n <div className=\"select-icon-area\">\n <div className=\"select-icon-search-bar\">\n <WrappedSearch\n value={searchParams.q}\n placeholder={t(K.SEARCH_PLACEHOLDER)!}\n onSearch={(e) => {\n const newSearchParams = { ...searchParams, q: e.detail };\n setSearchParams(newSearchParams);\n handleSearchIcons(newSearchParams);\n }}\n />\n <WrappedGeneralRadio\n options={iconLibs?.map((lib) => {\n return {\n label: lib.title,\n value: lib.lib,\n };\n })}\n value={searchParams.lib}\n onValueChange={(e) => {\n const newSearchParams = {\n ...searchParams,\n lib: e.detail.value as string,\n };\n setSearchParams(newSearchParams);\n handleSearchIcons(newSearchParams);\n }}\n />\n </div>\n <div className=\"icon-area\">\n {iconList.map((iconInfo) => {\n return (\n <div\n key={JSON.stringify(iconInfo.icon)}\n title={iconInfo.title}\n className=\"icon-container\"\n onClick={() => {\n handleIconSelect(iconInfo.icon);\n }}\n >\n <WrappedGeneralIcon {...iconInfo.icon} />\n <div className=\"icon-name\">{iconInfo.title}</div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </WrappedModal>\n </WrappedFormItem>\n );\n}\n","export enum K {\n UPLOAD = \"UPLOAD\",\n FILE_UPLOADING = \"FILE_UPLOADING\",\n DRAG_UPLOAD_TEXT = \"DRAG_UPLOAD_TEXT\",\n EXCEEDED_FILE_SIZE_LIMIT = \"EXCEEDED_FILE_SIZE_LIMIT\",\n}\n\nconst en: Locale = {\n UPLOAD: \"Upload\",\n FILE_UPLOADING: \"File is still uploading\",\n DRAG_UPLOAD_TEXT: \"Drag files here or <strong>click to upload</strong>\",\n EXCEEDED_FILE_SIZE_LIMIT:\n \"The uploaded file exceeded size limit: {{limitSize}} {{unit}}\",\n};\n\nconst zh: Locale = {\n UPLOAD: \"上传\",\n FILE_UPLOADING: \"文件上传中\",\n DRAG_UPLOAD_TEXT: \"将文件拖动到此处或<strong>点击上传</strong>\",\n EXCEEDED_FILE_SIZE_LIMIT: \"上传的文件超出大小限制: {{limitSize}} {{unit}}\",\n};\n\nexport const NS = \"bricks/form/eo-upload-file-and-image\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import { i18n } from \"@next-core/i18n\";\nimport { NS, K } from \"./i18n.js\";\n\nlet uid = 0;\n\nexport const symbolForAbortController = Symbol.for(\"AbortController\");\n\nexport const LIST_IGNORE = Symbol.for(\"list-ignore\");\n\nexport const getUid = () => {\n return `upload-image-${+new Date()}-${++uid}`;\n};\n\nexport enum FileSizeUnit {\n KB = \"KB\",\n MB = \"MB\",\n GB = \"GB\",\n}\n\nexport const acceptValidator = (file: File, accepts?: string | string[]) => {\n const validAccepts = ([] as string[]).concat(accepts || []).reduce(\n (pre, cur) =>\n pre.concat(\n cur\n .split(\",\")\n .map((v) => v.trim())\n .filter(Boolean)\n ),\n [] as string[]\n );\n\n if (file && validAccepts.length) {\n const lowerFileName = (file.name || \"\").toLowerCase();\n const mimeType = file.type || \"\";\n const baseMimeType = mimeType.split(\"/\")[0];\n\n return validAccepts.some((accept) => {\n // like *, */*\n if ([\"*\", \"*/*\"].includes(accept)) {\n return true;\n }\n\n // like .jpg, .png\n if (accept.startsWith(\".\")) {\n const lowerType = accept.toLowerCase();\n let affixList = [lowerType];\n if ([\".jpg\", \".jpeg\"].includes(lowerType)) {\n affixList = [\".jpg\", \".jpeg\"];\n }\n\n return affixList.some((affix) => lowerFileName.endsWith(affix));\n }\n\n // like image/*\n if (accept.endsWith(\"/*\")) {\n return baseMimeType === accept.split(\"/*\")[0];\n }\n\n // Full match\n if (mimeType === accept) {\n return true;\n }\n\n return false;\n });\n }\n return true;\n};\n\nexport const sizeValidator = (\n file: File,\n limitSize?: number,\n unit: FileSizeUnit = FileSizeUnit.MB\n) => {\n return new Promise((resolve, reject) => {\n if (file && limitSize) {\n const sizeConst = {\n [FileSizeUnit.KB]: 1024,\n [FileSizeUnit.MB]: 1024 * 1024,\n [FileSizeUnit.GB]: 1024 * 1024 * 1024,\n };\n\n file.size < limitSize * sizeConst[unit]\n ? resolve(file)\n : reject(\n new Error(\n i18n.t(`${NS}:${K.EXCEEDED_FILE_SIZE_LIMIT}`, { limitSize, unit })\n )\n );\n } else {\n resolve(file);\n }\n });\n};\n\nexport type UploadStatus = \"uploading\" | \"done\" | \"error\";\n\nexport interface FileData {\n uid: string;\n name: string;\n file?: File & { uid?: string };\n response?: any;\n userData?: any;\n status?: UploadStatus;\n errors?: Error[];\n [symbolForAbortController]?: AbortController;\n}\n","import React, { ChangeEvent, useEffect, useRef, useState } from \"react\";\nimport \"@next-core/theme\";\nimport { http } from \"@next-core/http\";\nimport {\n getUid,\n type FileData,\n symbolForAbortController,\n acceptValidator,\n sizeValidator,\n UploadStatus,\n} from \"./utils.js\";\n\nexport interface UploadActions {\n upload: () => void;\n uploadFiles: (files: FileList | File[]) => void;\n}\n\nexport interface ItemActions {\n remove: () => void;\n}\n\nexport interface UploadProps {\n children: (\n fileDataList: FileData[],\n uploadActions: UploadActions\n ) => React.ReactElement;\n itemRender: (\n fileData: FileData,\n fileDataList: FileData[],\n actions: ItemActions,\n index: number\n ) => React.ReactElement;\n fileList?: FileData[];\n autoUpload?: boolean;\n uploadName?: string;\n action?: string;\n method?: string;\n accept?: string;\n multiple?: boolean;\n maxCount?: number;\n limitSize?: number;\n overMaxCountMode?: \"ignore\" | \"replace\";\n beforeUploadValidators?: ((file: File, files: File[]) => Promise<unknown>)[];\n beforeUploadUserDataProcessor?: (\n file: File,\n fileDataList: { file: File; errors: Error[] }[]\n ) => Promise<any>;\n onChange?: (fileDataList: FileData[]) => void;\n}\n\nexport function Upload(props: UploadProps) {\n const {\n children,\n itemRender,\n autoUpload,\n onChange,\n uploadName = \"file\",\n action,\n method,\n accept,\n maxCount,\n limitSize,\n overMaxCountMode = \"replace\",\n beforeUploadValidators = [],\n beforeUploadUserDataProcessor,\n multiple,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [internalFileDataList, setInternalFileDataList] = useState<FileData[]>(\n []\n );\n\n useEffect(() => {\n setInternalFileDataList(props.fileList || []);\n }, [props.fileList]);\n\n const beforeLoadFilter = (files: File[]) => {\n return files.filter((file) => acceptValidator(file, accept));\n };\n\n const beforeLoadValidator = async (files: File[]) => {\n const results = await Promise.all(\n files.map((file) =>\n Promise.allSettled([\n file,\n sizeValidator(file, limitSize),\n ...beforeUploadValidators.map((validator) => validator(file, files)),\n ])\n )\n );\n return results.map(([_file, ...validatorResult]) => {\n const file = (_file as PromiseFulfilledResult<File>).value;\n const errors: Error[] = [];\n\n validatorResult.forEach((result) => {\n result.status === \"rejected\" && errors.push(result.reason);\n });\n\n return { file, errors };\n });\n };\n\n const beforeLoadProcessor = async (\n fileDataList: { file: File; errors: Error[] }[]\n ) => {\n return Promise.all(\n fileDataList.map(\n async ({\n file,\n errors,\n }: {\n file: File & { uid?: string };\n errors: Error[];\n }) => {\n const uid = getUid();\n file.uid = uid;\n const name = file.name;\n\n const status: UploadStatus = errors.length\n ? \"error\"\n : autoUpload\n ? \"uploading\"\n : \"done\";\n\n const userData = await beforeUploadUserDataProcessor?.(\n file,\n fileDataList\n );\n return { uid, file, name, status, userData, errors };\n }\n )\n );\n };\n\n const handleUploadSuccess = (fileData: FileData, response: unknown) => {\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = fileDataList.map((_fileData) => {\n return _fileData.uid === fileData.uid\n ? {\n ..._fileData,\n response,\n status: \"done\" as UploadStatus,\n }\n : _fileData;\n });\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n };\n\n const handleUploadError = (fileData: FileData, error: Error) => {\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = fileDataList.map((_fileData) => {\n return _fileData.uid === fileData.uid\n ? {\n ..._fileData,\n errors: _fileData.errors?.concat(error),\n status: \"error\" as UploadStatus,\n }\n : _fileData;\n });\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n };\n\n const handleFileRemove = (removedFileData: FileData) => {\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = fileDataList.filter(\n (fileData) => fileData.uid !== removedFileData.uid\n );\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n };\n\n const handleRemove = (fileData: FileData) => {\n if (fileData.status === \"uploading\") {\n fileData[symbolForAbortController]?.abort();\n }\n handleFileRemove(fileData);\n };\n\n const uploadFile = (fileData: FileData) => {\n const formData = new FormData();\n const abortController = new AbortController();\n fileData[symbolForAbortController] = abortController;\n formData.append(uploadName, fileData.file!, fileData.file!.name);\n\n const req = http.request(action!, {\n method,\n body: formData,\n signal: abortController.signal,\n });\n\n req\n .then((response) => handleUploadSuccess(fileData, response))\n .catch((error) => handleUploadError(fileData, error));\n\n return req;\n };\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const originFiles = [...files];\n let filteredFiles: File[] = [];\n let existsFilesSlice: [number, number] | undefined;\n\n if (maxCount && Number(maxCount) > 0) {\n const existsLength = internalFileDataList.length;\n if (existsLength + originFiles.length <= maxCount) {\n filteredFiles = beforeLoadFilter(originFiles);\n } else {\n const overCount = existsLength + originFiles.length - maxCount;\n const allowCount = originFiles.length - overCount;\n\n if (overMaxCountMode === \"ignore\") {\n filteredFiles = beforeLoadFilter(originFiles).slice(0, allowCount);\n } else {\n filteredFiles = beforeLoadFilter(originFiles).slice(\n -maxCount,\n Infinity\n );\n\n if (filteredFiles.length < maxCount) {\n existsFilesSlice = [filteredFiles.length - maxCount, Infinity];\n } else {\n existsFilesSlice = [0, 0];\n }\n }\n }\n } else {\n filteredFiles = beforeLoadFilter(originFiles);\n }\n\n const validatedFiles = await beforeLoadValidator(filteredFiles);\n const processedFileDataList = await beforeLoadProcessor(validatedFiles);\n (processedFileDataList.length || existsFilesSlice) &&\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = (\n existsFilesSlice\n ? fileDataList.slice(...existsFilesSlice)\n : fileDataList\n ).concat(processedFileDataList);\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n\n processedFileDataList.forEach(\n (fileData) => fileData.status === \"uploading\" && uploadFile(fileData)\n );\n };\n\n const handleInputChange = async (event: ChangeEvent<HTMLInputElement>) => {\n event.stopPropagation();\n handleFileUpload([...event.target.files!]);\n event.target.value = \"\";\n };\n\n return (\n <>\n <input\n ref={inputRef}\n type=\"file\"\n multiple={multiple}\n accept={accept}\n hidden\n onChange={handleInputChange}\n />\n <div className=\"upload-wrapper\">\n {children(internalFileDataList, {\n upload: () => inputRef.current?.click(),\n uploadFiles: (files) => handleFileUpload(files),\n })}\n <div className=\"file-list\">\n {internalFileDataList.map((fileData, index) => {\n const actions = {\n remove: () => handleRemove(fileData),\n };\n return (\n <React.Fragment key={fileData.uid}>\n {itemRender(fileData, internalFileDataList, actions, index)}\n </React.Fragment>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n","import { pipes } from \"@next-core/pipes\";\nimport { FileData } from \"../utils.js\";\n\nexport interface ImageData extends FileData {\n url?: string;\n}\n\nexport const getImage = (\n file: string | File,\n revokeUrl?: boolean\n): Promise<HTMLImageElement> => {\n return new Promise((resolve, reject) => {\n let url = \"\";\n if (typeof file === \"string\") {\n url = file;\n } else if (file instanceof Blob && file.type.startsWith(\"image/\")) {\n url = URL.createObjectURL(file);\n } else {\n reject(new Error(\"not Image\"));\n }\n const image = new Image();\n image.src = url;\n image.onload = () => {\n revokeUrl && URL.revokeObjectURL(url);\n resolve(image);\n };\n image.onerror = (error) => reject(error);\n });\n};\n\nexport const imageValidator = async (\n file: File,\n limit?: { width?: number; height?: number }\n) => {\n return new Promise((resolve, reject) => {\n if (file && limit) {\n getImage(file, true).then((image) => {\n (limit.width ? image.naturalWidth < limit.width : true) &&\n (limit.height ? image.naturalHeight < limit.height : true)\n ? resolve(file)\n : reject(new Error(\"Wrong image size!\"));\n });\n } else {\n resolve(file);\n }\n });\n};\n\nexport const userDataProcessor = async (file: File) => {\n const image = await getImage(file);\n return {\n url: image.src,\n name: file.name,\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight,\n size: pipes.unitFormat(file.size, \"bytes\").join(\"\"),\n };\n};\n","import React, { useRef } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type { Image, ImageProps } from \"@next-bricks/basic/image\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../../form-item/index.js\";\nimport classNames from \"classnames\";\nimport { UploadActions, ItemActions, Upload } from \"../Upload.js\";\nimport { userDataProcessor, imageValidator, type ImageData } from \"./utils.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedImage = wrapBrick<Image, ImageProps>(\"eo-image\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface UploadImageProps {\n label?: string;\n name?: string;\n required?: boolean;\n message?: Record<string, string>;\n value?: ImageData[];\n bucketName: string;\n maxCount?: number;\n multiple?: boolean;\n limitSize?: number;\n}\n\n/**\n * 上传图片构件\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-upload-image\", {\n styleTexts: [styleText],\n alias: [\"form.upload-image\"],\n})\nclass UploadImage extends FormItemElementBase implements UploadImageProps {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: ImageData[] | undefined;\n\n /**\n * 对象存储桶名字\n */\n @property()\n accessor bucketName!: string;\n\n /**\n * 最大上传数量\n */\n @property({\n type: Number,\n })\n accessor maxCount: number | undefined;\n\n /**\n * 是否支持选定的多张图片\n */\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n /**\n * 上传大小限制(单位为 MB)\n */\n @property({\n type: Number,\n })\n accessor limitSize: number | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 值变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<ImageData[]>;\n handleChange = (imageList: ImageData[]) => {\n this.value = imageList;\n this.#change.emit(imageList);\n };\n\n render() {\n return (\n <UploadImageComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n value={this.value}\n required={this.required}\n message={this.message}\n maxCount={this.maxCount}\n bucketName={this.bucketName}\n multiple={this.multiple}\n limitSize={this.limitSize}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n onChange={this.handleChange}\n trigger=\"handleChange\"\n />\n );\n }\n}\n\nconst defaultUploadIcon = {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n} as GeneralIconProps;\n\nconst deleteIcon = {\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n} as GeneralIconProps;\n\nconst closeIcon = {\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n} as GeneralIconProps;\n\ninterface UploadImageComponentProps extends UploadImageProps, FormItemProps {\n onChange?: (imageList: ImageData[]) => void;\n}\n\nexport function UploadImageComponent(props: UploadImageComponentProps) {\n const { value, bucketName, multiple, maxCount, onChange, limitSize } = props;\n const { t } = useTranslation(NS);\n const wrapBrickImageRef = useRef<Image>(null);\n\n const handleChange = (images: ImageData[]) => {\n const processedImages = images?.map((image) => {\n const url =\n image.url ??\n (image.response\n ? `${getBasePath()}api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${bucketName}/object/${\n image.response.data.objectName\n }`\n : undefined);\n return {\n ...image,\n url,\n };\n });\n onChange?.(processedImages);\n };\n\n const itemRender = (\n fileData: ImageData,\n _fileDataList: ImageData[],\n actions: ItemActions,\n index: number\n ) => {\n const { uid, url, name, userData, status = \"done\", errors } = fileData;\n\n return (\n <div\n key={uid}\n className={classNames(\"image-item\", {\n \"image-item-done\": status === \"done\",\n \"image-item-uploading\": status === \"uploading\",\n \"image-item-error\": status === \"error\",\n })}\n >\n <div className=\"image-item-inner\">\n <img\n className=\"image\"\n src={url || userData?.url}\n onClick={() => wrapBrickImageRef.current!.open(index)}\n />\n <div className=\"infos\">\n <div className=\"file-name\">{name}</div>\n {status === \"uploading\" && <div className=\"progress\"></div>}\n <div className=\"more-info\">\n {status === \"done\" && userData && (\n <div className=\"image-size\">\n {`LeaderBoard ${userData?.naturalWidth}*${userData?.naturalHeight}`}\n </div>\n )}\n {status === \"error\" && (\n <div className=\"error-info\">\n {errors\n ?.map((v) => {\n return v instanceof Error ? v.message : v;\n })\n .join(\" \")}\n </div>\n )}\n {(status === \"done\" || status === \"error\") && userData?.size && (\n <div className=\"file-size\">{userData.size}</div>\n )}\n </div>\n </div>\n <div className=\"operators\">\n <WrappedIcon\n className=\"delete-icon\"\n {...(status === \"done\" ? deleteIcon : closeIcon)}\n onClick={actions.remove}\n />\n </div>\n </div>\n </div>\n );\n };\n\n const validator = (curValue: ImageData[]) => {\n if (curValue?.some((file) => file.status === \"uploading\")) {\n return t(K.FILE_UPLOADING);\n }\n return \"\";\n };\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(props as FormItemProps)}\n validator={validator}\n >\n <Upload\n itemRender={itemRender}\n fileList={value}\n autoUpload={true}\n uploadName=\"file\"\n action={`${getBasePath()}api/gateway/object_store.object_store.PutObject/api/v1/objectStore/bucket/${bucketName}/object`}\n method=\"PUT\"\n accept=\"image/*\"\n maxCount={maxCount}\n multiple={multiple}\n limitSize={limitSize}\n beforeUploadValidators={[(file) => imageValidator(file)]}\n beforeUploadUserDataProcessor={userDataProcessor}\n onChange={handleChange}\n >\n {(fileDataList: ImageData[], uploadActions: UploadActions) => {\n return (\n <>\n <WrappedButton\n icon={defaultUploadIcon}\n onClick={uploadActions.upload}\n >\n {t(K.UPLOAD)}\n </WrappedButton>\n <WrappedImage\n ref={wrapBrickImageRef}\n onlyPreview={true}\n imgList={fileDataList.map((item) => ({\n src: item.url || item.userData?.url,\n }))}\n />\n </>\n );\n }}\n </Upload>\n </WrappedFormItem>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { ComponentSize } from \"../interface.js\";\nimport classNames from \"classnames\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\ninterface SwitchProps extends FormItemProps {\n curElement: HTMLElement;\n onSwitch: (value: boolean) => void;\n disabled?: boolean;\n size?: ComponentSize;\n value?: boolean;\n checkedText?: string;\n unCheckedText?: string;\n checkedIcon?: GeneralIconProps;\n unCheckedIcon?: GeneralIconProps;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 开关\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-switch\", {\n styleTexts: [styleText],\n alias: [\"form.general-switch\"],\n})\nclass GeneralSwitch extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 字段文本\n */\n @property() accessor label: string | undefined;\n\n /**\n * 初始值\n */\n @property({ type: Boolean })\n accessor value: boolean | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 按钮大小,目前只支持small和非small两种大小。\n */\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 选中时的文本\n */\n @property() accessor checkedText: string | undefined;\n\n /**\n * 非选中时的文本\n */\n @property() accessor unCheckedText: string | undefined;\n\n /**\n * 选中时的图标\n */\n @property({\n attribute: false,\n })\n accessor checkedIcon: GeneralIconProps | undefined;\n\n /**\n * 非选中时的文本\n */\n @property({\n attribute: false,\n })\n accessor unCheckedIcon: GeneralIconProps | undefined;\n\n /**\n * 开关改变时触发\n */\n @event({ type: \"switch\" }) accessor #switchEvent!: EventEmitter<boolean>;\n\n handleSwitch = (value: boolean) => {\n Promise.resolve().then(() => {\n this.#switchEvent.emit(value);\n });\n };\n render() {\n return (\n <GeneralSwitchComponent\n formElement={this.getFormElement()}\n curElement={this}\n disabled={this.disabled}\n size={this.size}\n value={this.value}\n onSwitch={this.handleSwitch}\n checkedText={this.checkedText}\n unCheckedText={this.unCheckedText}\n checkedIcon={this.checkedIcon}\n unCheckedIcon={this.unCheckedIcon}\n name={this.name}\n label={this.label}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleSwitch\"\n />\n );\n }\n}\n\nexport function GeneralSwitchComponent(props: SwitchProps) {\n const {\n unCheckedIcon,\n checkedIcon,\n checkedText,\n unCheckedText,\n value,\n disabled,\n size,\n } = props;\n const [checked, setChecked] = useState<boolean>();\n useEffect(() => {\n setChecked(value);\n }, [value]);\n const handleSwitchChange = () => {\n props.onSwitch(!checked);\n setChecked(!checked);\n };\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <button\n disabled={disabled}\n className={classNames(size, {\n \"switch-checked\": checked,\n \"switch-disabled\": disabled,\n })}\n onClick={handleSwitchChange}\n >\n <div className=\"switch-handle\"></div>\n <span className=\"switch-inner\">\n {checkedIcon && checked && (\n <WrappedGeneralIcon {...checkedIcon}></WrappedGeneralIcon>\n )}\n {unCheckedIcon && !checked && (\n <WrappedGeneralIcon {...unCheckedIcon}></WrappedGeneralIcon>\n )}\n\n {checked ? checkedText : unCheckedText}\n </span>\n </button>\n </WrappedFormItem>\n );\n}\n","import React, { useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EasyOpsIcon,\n EasyOpsIconProps,\n} from \"@next-bricks/icons/easyops-icon\";\nimport { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../../form-item/index.js\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { Trans } from \"react-i18next\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport { ItemActions, UploadActions, Upload } from \"../Upload.js\";\nimport { FileData } from \"../utils.js\";\nimport classNames from \"classnames\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedEasyopsIcon = wrapBrick<EasyOpsIcon, EasyOpsIconProps>(\n \"eo-easyops-icon\"\n);\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface UploadFileProps {\n label?: string;\n name?: string;\n required?: boolean;\n message?: Record<string, string>;\n value?: FileData[];\n multiple?: boolean;\n accept?: string;\n maxCount?: number;\n limitSize?: number;\n overMaxCountMode?: \"ignore\" | \"replace\";\n uploadDraggable?: boolean;\n draggableUploadTip?: string;\n autoUpload?: boolean;\n url?: string;\n method?: string;\n uploadName?: string;\n buttonText?: string;\n buttonType?: ButtonProps[\"type\"];\n buttonIcon?: GeneralIconProps;\n}\n\n/**\n * 上传文件\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-upload-file\", {\n styleTexts: [styleText],\n})\nclass EoUploadFile extends FormItemElementBase implements UploadFileProps {\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: FileData[] | undefined;\n\n /**\n * 是否支持多选\n */\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n /**\n * 接受上传的文件类型,多个之间用 `,` 连接\n */\n @property()\n accessor accept: string | undefined;\n\n /**\n * 最大上传数量\n */\n @property({\n type: Number,\n })\n accessor maxCount: number | undefined;\n\n /**\n * 上传大小限制(单位为 MB)\n */\n @property({\n type: Number,\n })\n accessor limitSize: number | undefined;\n\n /**\n * 上传按钮文本\n * @default 上传\n */\n @property()\n accessor buttonText: string | undefined;\n\n /**\n * 上传按钮类型\n */\n @property()\n accessor buttonType: ButtonProps[\"type\"] | undefined;\n\n /**\n * 上传按钮类型\n */\n @property({\n attribute: false,\n })\n accessor buttonIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n };\n\n /**\n * 超出最大上传数量时文件的保留方式\n */\n @property()\n accessor overMaxCountMode: \"ignore\" | \"replace\" = \"replace\";\n\n /**\n * 是否可以拖拽上传\n */\n @property({\n type: Boolean,\n })\n accessor uploadDraggable: boolean | undefined;\n\n /**\n * 拖拽上传的提示信息\n */\n @property()\n accessor draggableUploadTip: string | undefined;\n\n /**\n * 是否自动上传\n */\n @property({\n type: Boolean,\n })\n accessor autoUpload: boolean = false;\n\n /**\n * 自动上传的地址\n */\n @property()\n accessor url: string | undefined;\n\n /**\n * 自动上传的方法\n */\n @property()\n accessor method: string = \"POST\";\n\n /**\n * 自动上传的文件参数名\n */\n @property()\n accessor uploadName: string = \"file\";\n\n /**\n * 值变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<FileData[]>;\n handleChange = (fileDataList: FileData[]) => {\n this.value = fileDataList;\n this.#change.emit(fileDataList);\n };\n\n render() {\n return (\n <EoUploadFileComponent\n formElement={this.getFormElement()}\n curElement={this}\n label={this.label}\n name={this.name}\n required={this.required}\n message={this.message}\n value={this.value}\n multiple={this.multiple}\n accept={this.accept}\n maxCount={this.maxCount}\n limitSize={this.limitSize}\n buttonText={this.buttonText}\n buttonIcon={this.buttonIcon}\n buttonType={this.buttonType}\n overMaxCountMode={this.overMaxCountMode}\n uploadDraggable={this.uploadDraggable}\n draggableUploadTip={this.draggableUploadTip}\n autoUpload={this.autoUpload}\n url={this.url}\n method={this.method}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n uploadName={this.uploadName}\n trigger=\"handleChange\"\n onChange={this.handleChange}\n />\n );\n }\n}\n\nconst deleteIcon = {\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n} as GeneralIconProps;\n\nconst closeIcon = {\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n} as GeneralIconProps;\n\nconst fileTextIcon = {\n lib: \"antd\",\n icon: \"file-text\",\n theme: \"outlined\",\n} as GeneralIconProps;\n\nconst loadingIcon = {\n lib: \"antd\",\n icon: \"loading\",\n theme: \"outlined\",\n} as GeneralIconProps;\n\ninterface UploadFileComponentProps extends UploadFileProps, FormItemProps {\n onChange?: (fileDataList: FileData[]) => void;\n}\n\nexport function EoUploadFileComponent(props: UploadFileComponentProps) {\n const {\n value,\n multiple,\n accept,\n maxCount,\n limitSize,\n buttonIcon,\n buttonText,\n buttonType,\n overMaxCountMode,\n uploadDraggable,\n draggableUploadTip,\n autoUpload,\n url,\n method,\n uploadName,\n onChange,\n } = props;\n const { t } = useTranslation(NS);\n const theme = useCurrentTheme();\n\n const [isDragOver, setIsDragOver] = useState(false);\n\n const handleChange = (fileDataList: FileData[]) => {\n onChange?.(fileDataList);\n };\n\n const itemRender = (\n fileData: FileData,\n _fileDataList: FileData[],\n actions: ItemActions\n ) => {\n const { uid, name, status = \"done\", errors } = fileData;\n\n return (\n <WrappedTooltip content={errors?.map((item) => item.message).join(\", \")}>\n <div\n key={uid}\n className={classNames(\n \"upload-item-container\",\n status && `upload-item-container-${status}`\n )}\n >\n <div className=\"upload-item-inner\">\n <WrappedIcon\n className={classNames(\n \"upload-item-icon\",\n status === \"uploading\" && \"upload-icon\"\n )}\n {...(status === \"uploading\" ? loadingIcon : fileTextIcon)}\n />\n <div className=\"upload-item-infos\">\n <div className=\"upload-item-file-name\">{name}</div>\n </div>\n <div className=\"upload-item-operators\">\n <WrappedIcon\n className=\"delete-icon\"\n {...(status === \"done\" ? deleteIcon : closeIcon)}\n onClick={actions.remove}\n />\n </div>\n </div>\n </div>\n </WrappedTooltip>\n );\n };\n\n const validator = (curValue: FileData[]) => {\n if (curValue?.some((file) => file.status === \"uploading\")) {\n return t(K.FILE_UPLOADING);\n }\n return \"\";\n };\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(props as FormItemProps)}\n validator={validator}\n >\n <Upload\n itemRender={itemRender}\n fileList={value}\n multiple={multiple}\n accept={accept}\n maxCount={maxCount}\n limitSize={limitSize}\n overMaxCountMode={overMaxCountMode}\n autoUpload={autoUpload}\n action={url}\n method={method}\n uploadName={uploadName}\n onChange={handleChange}\n >\n {(fileDataList: FileData[], uploadActions: UploadActions) => {\n const isMaxQuantity =\n maxCount !== undefined && fileDataList.length >= maxCount;\n\n return uploadDraggable ? (\n <div\n className={classNames(\n \"upload-drag-button\",\n isDragOver && \"upload-drag-button-drag-over\"\n )}\n onClick={uploadActions.upload}\n onDragEnter={(e) => {\n e.preventDefault();\n setIsDragOver(true);\n }}\n onDragOver={(e) => {\n e.preventDefault();\n }}\n onDragLeave={() => {\n setIsDragOver(false);\n }}\n onDrop={(e) => {\n e.preventDefault();\n setIsDragOver(false);\n e.dataTransfer.files?.length &&\n uploadActions.uploadFiles(e.dataTransfer.files);\n }}\n >\n <div className=\"upload-drag-button-inner\">\n <WrappedEasyopsIcon\n className=\"upload-drag-button-icon\"\n category=\"colored-common\"\n icon={theme == \"dark-v2\" ? \"upload-dark\" : \"upload-light\"}\n />\n <div className=\"upload-drag-text\">\n <Trans\n i18nKey={t(K.DRAG_UPLOAD_TEXT)}\n components={{\n total: <strong />,\n }}\n />\n </div>\n {draggableUploadTip && (\n <div className=\"upload-drag-tip\">{draggableUploadTip}</div>\n )}\n </div>\n </div>\n ) : (\n <WrappedButton\n disabled={isMaxQuantity}\n type={buttonType}\n icon={buttonIcon}\n onClick={uploadActions.upload}\n >\n {buttonText || t(K.UPLOAD)}\n </WrappedButton>\n );\n }}\n </Upload>\n </WrappedFormItem>\n );\n}\n","import React, { useEffect, useRef, useMemo, useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport { cloneDeep, isEqual, toLower } from \"lodash\";\nimport {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"../input/index.jsx\";\nimport classNames from \"classnames\";\nimport { FormItemElementBase, MessageBody } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\n\nexport interface AutoCompleteProps extends FormItemProps {\n curElement?: HTMLElement;\n value?: string;\n options?: string[] | OptionType[];\n placeholder?: string;\n inputStyle?: React.CSSProperties;\n disabled?: boolean;\n filterByCaption?: boolean;\n validateState?: string;\n onChange?: (v: any) => void;\n}\n\nexport interface AutoCompleteEvents {\n change: CustomEvent<string>;\n}\n\nexport interface AutoCompleteEventsMap {\n onChange: \"change\";\n}\nexport interface Option {\n label: string;\n caption?: string;\n value: any;\n}\n\nexport interface OptionGroup {\n label: string;\n options: Option[];\n}\n\nexport type OptionType = Option | OptionGroup;\n\n/**\n * 带候选项的输入框\n * @author zhendonghuang\n *\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-auto-complete\", {\n styleTexts: [styleText],\n})\nclass AutoComplete extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 字段文本\n */\n @property() accessor label: string | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputStyle: React.CSSProperties | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * 选项列表\n * @required\n */\n @property({ attribute: false })\n accessor options: string[] | OptionType[] | undefined;\n\n /**\n * 搜索时是否根据caption过滤options\n */\n @property({ type: Boolean }) accessor filterByCaption: boolean | undefined;\n\n /**\n * 表单项校验方法\n */\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody) | undefined;\n\n /**\n * 正则校验规则\n */\n @property() accessor pattern: string | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false }) accessor message:\n | Record<string, string>\n | undefined;\n\n /**\n * 值改变事件\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n handleInputChange = (value: string) => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n\n render() {\n return (\n <EoAutoCompleteComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n placeholder={this.placeholder}\n disabled={this.disabled}\n inputStyle={this.inputStyle}\n required={this.required}\n message={this.message}\n value={this.value}\n options={this.options}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n notRender={this.notRender}\n validator={this.validator}\n pattern={this.pattern}\n filterByCaption={this.filterByCaption}\n validateState={this.validateState}\n trigger=\"handleInputChange\"\n onChange={this.handleInputChange}\n />\n );\n }\n}\n\nexport function EoAutoCompleteComponent(props: AutoCompleteProps) {\n const {\n onChange,\n inputStyle,\n disabled,\n placeholder,\n filterByCaption,\n validateState,\n } = props;\n const [options, setOptions] = useState(props.options || []);\n const [filteredOptions, setFilteredOptions] = useState<any[]>([]);\n const [active, setActive] = useState(false);\n const [value, setValue] = useState<string>(\"\");\n const inputRef = useRef<any>();\n const containerRef = useRef<HTMLDivElement>(null);\n\n const originalOptions: OptionType[] = useMemo(() => {\n const walkOptions = (options: (OptionType | string)[]): OptionType[] => {\n return formatOptions(options)?.map((op) => {\n if (\"options\" in op && Array.isArray(op.options)) {\n return { ...op, options: walkOptions(op.options) } as OptionGroup;\n } else {\n return op;\n }\n });\n };\n\n return walkOptions(options);\n }, [options]);\n\n const handleChange = (e: CustomEvent<string>) => {\n setValue(e.detail);\n const search = (options: OptionType[]) => {\n for (let i = options.length - 1; i >= 0; i--) {\n const option = options[i] as OptionGroup;\n if (option.options?.length) {\n search(option.options);\n }\n if (\n !option.options?.length &&\n !toLower(option.label).includes(toLower(e.detail)) &&\n (!filterByCaption ||\n !toLower((option as any).caption).includes(toLower(e.detail)))\n ) {\n options.splice(i, 1);\n }\n }\n return options;\n };\n const result = search(cloneDeep(originalOptions));\n setFilteredOptions(result);\n onChange?.(e.detail);\n };\n useEffect(() => {\n if (!isEqual(props.options, options)) {\n setOptions(props.options || []);\n }\n }, [props.options]);\n\n useEffect(() => {\n setValue(props.value || \"\");\n }, [props.value]);\n\n useEffect(() => {\n setFilteredOptions(originalOptions);\n }, [originalOptions]);\n\n useEffect(() => {\n const handleDocumentClick = (e: MouseEvent) => {\n e.stopPropagation();\n const path = e.composedPath();\n const containerElement = containerRef.current;\n if (containerElement && path.includes(containerElement)) return;\n setActive(false);\n inputRef.current?.blur();\n };\n document.addEventListener(\"click\", handleDocumentClick);\n return () => {\n document.removeEventListener(\"click\", handleDocumentClick);\n };\n }, []);\n\n const renderLabel = (option: Option, index: number) => {\n return (\n <div\n key={`${option.label}_${index}`}\n className={classNames(\"option-container\", {\n \"selected-option\": value === option.value,\n })}\n onClick={() => {\n setValue(option.value);\n setActive(false);\n onChange?.(option.value);\n }}\n >\n <div className=\"label\">{option.label}</div>\n {option.caption && <div className=\"caption\">{option.caption}</div>}\n </div>\n );\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...props}>\n <div className=\"complete-container\" ref={containerRef}>\n <WrappedInput\n ref={inputRef}\n value={value}\n placeholder={placeholder}\n disabled={disabled}\n inputStyle={inputStyle}\n validateState={validateState}\n onFocus={() => {\n setActive(true);\n }}\n onChange={handleChange as any}\n />\n {active && filteredOptions.length ? (\n <div className=\"dropdown-wrapper\">\n <div className=\"dropdown-list\">\n {filteredOptions.map((f: any, index) =>\n f.options?.length ? (\n <div key={`${f.label}_${index}`} className=\"group-wrapper\">\n <div className=\"group-item\">{f.label}</div>\n {f.options.map((option: any, i: number) =>\n renderLabel(option, i)\n )}\n </div>\n ) : (\n renderLabel(f, index)\n )\n )}\n </div>\n <slot name=\"options-toolbar\"></slot>\n </div>\n ) : null}\n </div>\n </WrappedFormItem>\n );\n}\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport { devUseWarning } from '../_util/warning';\nimport DatePicker from '../date-picker';\nconst {\n TimePicker: InternalTimePicker,\n RangePicker: InternalRangePicker\n} = DatePicker;\nconst RangePicker = /*#__PURE__*/React.forwardRef((props, ref) => ( /*#__PURE__*/React.createElement(InternalRangePicker, Object.assign({}, props, {\n picker: \"time\",\n mode: undefined,\n ref: ref\n}))));\nconst TimePicker = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n addon,\n renderExtraFooter\n } = _a,\n restProps = __rest(_a, [\"addon\", \"renderExtraFooter\"]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('TimePicker');\n warning.deprecated(!addon, 'addon', 'renderExtraFooter');\n }\n const internalRenderExtraFooter = React.useMemo(() => {\n if (renderExtraFooter) {\n return renderExtraFooter;\n }\n if (addon) {\n return addon;\n }\n return undefined;\n }, [addon, renderExtraFooter]);\n return /*#__PURE__*/React.createElement(InternalTimePicker, Object.assign({}, restProps, {\n mode: undefined,\n ref: ref,\n renderExtraFooter: internalRenderExtraFooter\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n TimePicker.displayName = 'TimePicker';\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(TimePicker, 'picker');\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nTimePicker.RangePicker = RangePicker;\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default TimePicker;","import React, { useEffect, useMemo, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport fixStyleText from \"./fix-style.shadow.css\";\nimport { TimePicker, ConfigProvider, theme } from \"antd\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { TimePickerProps } from \"antd/lib/time-picker\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { i18n } from \"@next-core/i18n\";\nimport { isNil, omit } from \"lodash\";\nimport dayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\n\ndayjs.extend(customParseFormat);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ninterface EoTimePickerProps extends FormItemProps {\n shadowRoot: ShadowRoot | null;\n configProps?: Partial<TimePickerProps>;\n placeholder?: string;\n value?: string;\n disabled?: boolean;\n onChange?: (value: string) => void;\n onOpenChange?: (flag: boolean, value: string) => void;\n}\n\n/**\n * 时间选择器\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-time-picker\", {\n styleTexts: [styleText, fixStyleText],\n})\nclass EoTimePicker extends FormItemElementBase {\n /**\n * 时间选择器字段名\n */\n @property() accessor name: string | undefined;\n\n /**\n * 时间选择器说明\n */\n @property() accessor label: string | undefined;\n\n /**\n *时间选择器的初始值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 时间选择器占位说明\n */\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean }) accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 透传 antd timePicker 属性 [timePickerProps](https://ant.design/components/time-picker-cn)\n */\n @property({ attribute: false })\n accessor configProps: Partial<TimePickerProps> | undefined;\n\n /**\n *时间变化时触发\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n\n /**\n *面板打开时触发, 传出当前时间值\n */\n @event({ type: \"open\" })\n accessor #openEvent!: EventEmitter<string>;\n\n /**\n *面板关闭时触发,传出当前时间值\n */\n @event({ type: \"close\" })\n accessor #closeEvent!: EventEmitter<string>;\n\n handleChange = (value: string): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n #handleOpenChange = (flag: boolean, value: string): void => {\n if (flag) {\n this.#openEvent.emit(value);\n } else {\n this.#closeEvent.emit(value);\n }\n };\n\n render() {\n return (\n <EoTimePickerComponent\n curElement={this}\n formElement={this.getFormElement()}\n configProps={this.configProps}\n name={this.name}\n label={this.label}\n onChange={this.handleChange}\n trigger=\"handleChange\"\n onOpenChange={this.#handleOpenChange}\n placeholder={this.placeholder}\n value={this.value}\n required={this.required}\n message={this.message}\n notRender={this.notRender}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n shadowRoot={this.shadowRoot}\n disabled={this.disabled}\n />\n );\n }\n}\n\nexport function EoTimePickerComponent(props: EoTimePickerProps) {\n const {\n configProps = {},\n onChange,\n onOpenChange,\n disabled,\n placeholder,\n } = props;\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n const [value, setValue] = useState<Dayjs | null>(null);\n const format: string = (configProps.format as string) ?? \"HH:mm:ss\";\n useEffect(() => {\n if (!isNil(props.value)) {\n setValue(dayjs(props.value, format) as Dayjs);\n } else {\n setValue(null);\n }\n }, [props.value, format]);\n\n const handleChange = (_time: Dayjs | null, timeString: string): void => {\n onChange?.(timeString);\n };\n\n const handleOpenChange = (flag: boolean): void => {\n onOpenChange?.(\n flag,\n !isNil(value) ? (dayjs(value as Dayjs).format(format) as string) : \"\"\n );\n };\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(omit(props, [\"shadowRoot\"]) as any)}\n >\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n <div\n onChange={(e) => {\n e.stopPropagation();\n }}\n >\n <TimePicker\n {...configProps}\n getPopupContainer={(trigger) => trigger}\n value={value}\n // Currently we don't support multiple pick mode\n onChange={handleChange as any}\n onOpenChange={handleOpenChange}\n disabled={disabled}\n placeholder={placeholder}\n allowClear={configProps.allowClear}\n />\n </div>\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n","export enum K {\n NEXT_DAY = \"NEXT_DAY\",\n TODAY = \"TODAY\",\n LAST_DAY = \"LAST_DAY\",\n NEXT_WEEK = \"NEXT_WEEK\",\n THIS_WEEK = \"THIS_WEEK\",\n LAST_WEEK = \"LAST_WEEK\",\n NEXT_MONTH = \"NEXT_MONTH\",\n THIS_MONTH = \"THIS_MONTH\",\n LAST_MONTH = \"LAST_MONTH\",\n NEXT_QUARTER = \"NEXT_QUARTER\",\n THIS_QUARTER = \"THIS_QUARTER\",\n LAST_QUARTER = \"LAST_QUARTER\",\n NEXT_YEAR = \"NEXT_YEAR\",\n THIS_YEAR = \"THIS_YEAR\",\n LAST_YEAR = \"LAST_YEAR\",\n FISRT_QUARTER = \"FISRT_QUARTER\",\n SECOND_QUARTER = \"SECOND_QUARTER\",\n THIRD_QUARTER = \"THIRD_QUARTER\",\n FOURTH_QUARTER = \"FOURTH_QUARTER\",\n}\n\nconst en: Locale = {\n NEXT_DAY: \"Next day\",\n TODAY: \"Today\",\n LAST_DAY: \"Previous day\",\n NEXT_WEEK: \"Next week\",\n THIS_WEEK: \"This week\",\n LAST_WEEK: \"Previous week\",\n NEXT_MONTH: \"Next month\",\n THIS_MONTH: \"This month\",\n LAST_MONTH: \"Previous month\",\n NEXT_QUARTER: \"Next quarter\",\n THIS_QUARTER: \"This quarter\",\n LAST_QUARTER: \"Previous quarter\",\n NEXT_YEAR: \"Next year\",\n THIS_YEAR: \"This year\",\n LAST_YEAR: \"Previous year\",\n FISRT_QUARTER: \"First quarter\",\n SECOND_QUARTER: \"Second quarter\",\n THIRD_QUARTER: \"Third quarter\",\n FOURTH_QUARTER: \"Fourth quarter\",\n};\n\nconst zh: Locale = {\n NEXT_DAY: \"下日\",\n TODAY: \"今日\",\n LAST_DAY: \"上日\",\n NEXT_WEEK: \"下周\",\n THIS_WEEK: \"本周\",\n LAST_WEEK: \"上周\",\n NEXT_MONTH: \"下月\",\n THIS_MONTH: \"本月\",\n LAST_MONTH: \"上月\",\n NEXT_QUARTER: \"下季度\",\n THIS_QUARTER: \"本季度\",\n LAST_QUARTER: \"上季度\",\n NEXT_YEAR: \"下年\",\n THIS_YEAR: \"今年\",\n LAST_YEAR: \"上年\",\n FISRT_QUARTER: \"第一季度\",\n SECOND_QUARTER: \"第二季度\",\n THIRD_QUARTER: \"第三季度\",\n FOURTH_QUARTER: \"第四季度\",\n};\n\nexport const NS = \"bricks/form/eo-date-picker\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\n\n/** */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'LeftOutlined';\n}\nexport default RefIcon;","import React, {\n useEffect,\n useState,\n useCallback,\n useMemo,\n CSSProperties,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { DatePicker, ConfigProvider, theme } from \"antd\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { omit } from \"lodash\";\nimport dayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\nimport isoWeek from \"dayjs/plugin/isoWeek.js\";\nimport advancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport quarterOfYear from \"dayjs/plugin/quarterOfYear.js\";\nimport \"dayjs/locale/zh-cn.js\";\nimport classNames from \"classnames\";\nimport { DisabledDateType, PickerMode, DisabledDate } from \"../interface.js\";\nimport { LeftOutlined, RightOutlined } from \"@ant-design/icons\";\nimport moment from \"moment\";\n\ninitializeI18n(NS, locales);\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(quarterOfYear);\n\ninterface InternalStateDatePickerProps {\n placeholder?: string;\n value?: Dayjs;\n showTime?: boolean;\n inputStyle?: React.CSSProperties;\n format?: string;\n picker?: PickerMode;\n disabledDate?: DisabledDateType;\n useFastSelectBtn?: boolean;\n futureDateDisabled?: boolean;\n disabled?: boolean;\n onChange?: (value: Dayjs | null, dateString: string) => void;\n onOk?: (date: Dayjs) => void;\n}\n\ninterface EoDatePickerProps\n extends Omit<InternalStateDatePickerProps, \"value\" | \"onChange\" | \"onOk\">,\n FormItemProps {\n shadowRoot: ShadowRoot | null;\n value?: string;\n onChange?: (value: string) => void;\n onOk?: (value: string) => void;\n}\n\ninterface FieldSetAndRanges {\n fieldSet: Set<number>;\n ranges: [number, number][];\n}\ntype PickerModeMap = {\n [K in PickerMode]: string[];\n};\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\n/**\n * 日期选择器\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-date-picker\", {\n styleTexts: [styleText],\n})\nclass EoDatePicker extends FormItemElementBase {\n /**\n * 日期选择器字段名\n */\n @property() accessor name: string | undefined;\n /**\n * 日期选择器说明\n */\n @property() accessor label: string | undefined;\n\n /**\n *日期选择器的初始值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 日期选择器占位说明\n */\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean }) accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 是否显示时间, 当设为 `true` 时, 请同时设置 `format` 为 `YYYY-MM-DD HH:mm:ss` 使其也显示具体时,分,秒 的时间\n */\n @property({\n type: Boolean,\n })\n accessor showTime: boolean | undefined;\n\n /**\n * 显示预览的格式,具体配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format#%E6%94%AF%E6%8C%81%E7%9A%84%E6%A0%BC%E5%BC%8F%E5%8C%96%E5%8D%A0%E4%BD%8D%E7%AC%A6%E5%88%97%E8%A1%A8),注意,这里并非是定义给后台的数据格式,给后台的数据格式定义请参考 `general-form` 构件的 [valueTypes](developers/brick-book/brick/forms.general-form) 属性\n */\n @property()\n accessor format: string | undefined;\n\n /**\n * 设置选择器类型\n */\n @property({ attribute: false })\n accessor picker: PickerMode | undefined;\n\n /**\n * 不可选择未来日期,优先级高于disabledDate\n */\n @property({ type: Boolean })\n accessor futureDateDisabled: boolean | undefined;\n\n /**\n * 不可选择的日期\n */\n @property({ attribute: false })\n accessor disabledDate: DisabledDateType | undefined;\n\n /**\n *快速选项\n */\n @property({ type: Boolean })\n accessor useFastSelectBtn: boolean | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputStyle: CSSProperties | undefined;\n\n /**\n *日期变化时触发\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n\n /**\n *点击确定按钮触发(showTime 为 true 使用)\n */\n @event({ type: \"ok\" })\n accessor #okEvent!: EventEmitter<string>;\n\n handleChange = (value: string): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n #handleOk = (value: string): void => {\n this.#okEvent.emit(value);\n };\n render() {\n return (\n <EoDatePickerComponent\n curElement={this}\n formElement={this.getFormElement()}\n shadowRoot={this.shadowRoot}\n label={this.label}\n name={this.name}\n value={this.value}\n message={this.message}\n required={this.required}\n placeholder={this.placeholder}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n inputStyle={this.inputStyle}\n disabled={this.disabled}\n disabledDate={this.disabledDate}\n notRender={this.notRender}\n futureDateDisabled={this.futureDateDisabled}\n picker={this.picker}\n format={this.format}\n showTime={this.showTime}\n onChange={this.handleChange}\n trigger={\"handleChange\"}\n onOk={this.#handleOk}\n useFastSelectBtn={this.useFastSelectBtn}\n />\n );\n }\n}\n\nconst getFieldSetAndRanges = (\n expression?: string | number\n): FieldSetAndRanges => {\n const fieldSet = new Set<number>();\n const ranges: [number, number][] = [];\n `${expression}`.split(\",\").forEach((part) => {\n if (part.includes(\"-\")) {\n const range = part.split(\"-\").map((v) => Number(v)) as [number, number];\n ranges.push(range);\n } else if (part.trim() !== \"\" && !Number.isNaN(Number(part))) {\n fieldSet.add(Number(part));\n }\n });\n return { fieldSet, ranges };\n};\n\nconst isInFieldSetOrRanges = (\n cur: number,\n fieldSetAndRanges: FieldSetAndRanges\n): boolean => {\n const { fieldSet, ranges } = fieldSetAndRanges;\n return fieldSet.size === 0 && ranges.length === 0\n ? true\n : fieldSet.has(cur) ||\n ranges.some(([min, max]) => cur >= min && cur <= max);\n};\n\nconst isEmptyFieldSetOrRanges = (\n fieldSetAndRanges: FieldSetAndRanges\n): boolean => {\n const { fieldSet, ranges } = fieldSetAndRanges;\n return fieldSet.size === 0 && ranges.length === 0;\n};\n\nconst getFieldsFromFieldSetAndRanges = (\n fieldSetAndRanges: FieldSetAndRanges\n): number[] => {\n const { fieldSet, ranges } = fieldSetAndRanges;\n let fields = [...fieldSet];\n ranges.forEach(([min, max]) => {\n fields = fields.concat([...Array(max + 1).keys()].slice(min));\n });\n return [...new Set(fields)];\n};\n\nexport function InternalStateDatePicker(\n props: InternalStateDatePickerProps\n): React.ReactElement {\n const {\n picker,\n format,\n showTime,\n inputStyle,\n disabledDate,\n futureDateDisabled,\n useFastSelectBtn,\n placeholder,\n disabled,\n onChange,\n onOk,\n } = props;\n\n const [value, setValue] = useState(props.value);\n const [confirmDisabled, setConfirmDisabled] = useState(false);\n const crontab = useMemo(() => {\n if (!disabledDate) {\n return [];\n }\n return ([] as DisabledDate[]).concat(disabledDate).map((item) => {\n const { second, minute, hour, date, month, weekday, year } = item;\n const hourFieldSetAndRanges = getFieldSetAndRanges(hour);\n const minuteFieldSetAndRanges = getFieldSetAndRanges(minute);\n const secondFieldSetAndRanges = getFieldSetAndRanges(second);\n const yearFieldSetAndRanges = getFieldSetAndRanges(year);\n const monthFieldSetAndRanges = getFieldSetAndRanges(month);\n const dateFieldSetAndRanges = getFieldSetAndRanges(date);\n const weekFieldSetAndRanges = getFieldSetAndRanges(weekday);\n return {\n fields: {\n hour: hourFieldSetAndRanges,\n minute: minuteFieldSetAndRanges,\n second: secondFieldSetAndRanges,\n year: yearFieldSetAndRanges,\n month: monthFieldSetAndRanges,\n date: dateFieldSetAndRanges,\n weekday: weekFieldSetAndRanges,\n },\n isAllDate:\n isEmptyFieldSetOrRanges(yearFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(monthFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(dateFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(weekFieldSetAndRanges),\n isAllTime:\n isEmptyFieldSetOrRanges(hourFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(minuteFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(secondFieldSetAndRanges),\n };\n });\n }, [disabledDate]);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const handleDisabledDate = (date: Dayjs): boolean => {\n const curYear = date.year();\n const curMonth = date.month() + 1;\n const curDate = date.date();\n const curWeekday = date.isoWeekday();\n return crontab.some((cron) => {\n const { isAllDate, isAllTime, fields } = cron;\n //没有限制日期或限制了时分秒,则该日可选\n if (isAllDate || !isAllTime) {\n return false;\n }\n const { year, month, weekday, date } = fields;\n return (\n isInFieldSetOrRanges(curYear, year) &&\n isInFieldSetOrRanges(curMonth, month) &&\n isInFieldSetOrRanges(curWeekday, weekday) &&\n isInFieldSetOrRanges(curDate, date)\n );\n });\n };\n\n const handleDisabledFutureDate = (date: Dayjs): boolean => {\n return date && date > dayjs();\n };\n\n const handleDisabledTime = (date: Dayjs | null) => {\n if (!date) return;\n const curYear = date.year();\n const curMonth = date.month() + 1;\n const curDate = date.date();\n const curWeekday = date.isoWeekday();\n const curHour = date.hour();\n const curMinute = date.minute();\n const currentSecond = date.second();\n let disabledHours: number[] = [];\n let disabledMinutes: number[] = [];\n let disabledSeconds: number[] = [];\n let matchCurDate = false;\n crontab.forEach((cron) => {\n const { isAllTime, fields } = cron;\n //时分秒都没输入,则所有时间都可选\n if (isAllTime) return;\n const { hour, minute, second, year, month, weekday, date } = fields;\n const isMatchDate =\n isInFieldSetOrRanges(curYear, year) &&\n isInFieldSetOrRanges(curMonth, month) &&\n isInFieldSetOrRanges(curWeekday, weekday) &&\n isInFieldSetOrRanges(curDate, date);\n matchCurDate =\n matchCurDate ||\n (isMatchDate &&\n isInFieldSetOrRanges(curHour, hour) &&\n isInFieldSetOrRanges(curMinute, minute) &&\n isInFieldSetOrRanges(currentSecond, second));\n if (isMatchDate) {\n const hourFields = isEmptyFieldSetOrRanges(hour)\n ? [...Array(24).keys()]\n : getFieldsFromFieldSetAndRanges(hour);\n const minuteFields = isEmptyFieldSetOrRanges(minute)\n ? [...Array(60).keys()]\n : getFieldsFromFieldSetAndRanges(minute);\n const secondFields = isEmptyFieldSetOrRanges(second)\n ? [...Array(60).keys()]\n : getFieldsFromFieldSetAndRanges(second);\n // 当前在禁止小时里\n if (isInFieldSetOrRanges(curHour, hour)) {\n // 当前在禁止分钟里\n if (isInFieldSetOrRanges(curMinute, minute)) {\n disabledSeconds = disabledSeconds.concat([...secondFields]);\n }\n // 秒全禁用则对应分钟也禁用\n if (secondFields.length === 60) {\n disabledMinutes = disabledMinutes.concat([...minuteFields]);\n }\n }\n // 分全禁用则对应小时也禁用\n if (minuteFields.length === 60 && secondFields.length === 60) {\n disabledHours = disabledHours.concat([...hourFields]);\n }\n }\n });\n setConfirmDisabled(matchCurDate);\n return {\n disabledHours: () => disabledHours,\n disabledMinutes: () => disabledMinutes,\n disabledSeconds: () => disabledSeconds,\n };\n };\n\n const isDatePicker = picker === \"date\";\n const isQuarterPicker = picker === \"quarter\";\n\n const PickerBtn = useCallback(() => {\n const strMap: PickerModeMap = {\n date: [\n i18n.t(`${NS}:${K.LAST_DAY}`),\n i18n.t(`${NS}:${K.TODAY}`),\n i18n.t(`${NS}:${K.NEXT_DAY}`),\n ],\n week: [\n i18n.t(`${NS}:${K.LAST_WEEK}`),\n i18n.t(`${NS}:${K.THIS_WEEK}`),\n i18n.t(`${NS}:${K.NEXT_WEEK}`),\n ],\n month: [\n i18n.t(`${NS}:${K.LAST_MONTH}`),\n i18n.t(`${NS}:${K.THIS_MONTH}`),\n i18n.t(`${NS}:${K.NEXT_MONTH}`),\n ],\n quarter: [\n i18n.t(`${NS}:${K.LAST_QUARTER}`),\n i18n.t(`${NS}:${K.THIS_QUARTER}`),\n i18n.t(`${NS}:${K.NEXT_QUARTER}`),\n ],\n year: [\n i18n.t(`${NS}:${K.LAST_YEAR}`),\n i18n.t(`${NS}:${K.THIS_YEAR}`),\n i18n.t(`${NS}:${K.NEXT_YEAR}`),\n ],\n };\n const strs = strMap[picker as PickerMode];\n const currentDate = value || dayjs();\n const handlePreTime = () => {\n let preDate: Dayjs;\n switch (picker) {\n case \"date\":\n preDate = currentDate.clone().subtract(1, \"days\");\n break;\n case \"week\":\n preDate = currentDate.clone().subtract(1, \"weeks\");\n break;\n case \"month\":\n preDate = currentDate.clone().subtract(1, \"months\");\n break;\n case \"quarter\":\n preDate = currentDate.clone().subtract(1, \"quarters\");\n break;\n case \"year\":\n preDate = currentDate.clone().subtract(1, \"years\");\n break;\n default:\n preDate = currentDate;\n break;\n }\n onChange?.(preDate, dayjs(preDate).format(format));\n setValue(preDate);\n };\n const handleCurTime = () => {\n let curDate: Dayjs;\n switch (picker) {\n case \"date\":\n curDate = dayjs();\n break;\n case \"week\":\n curDate = dayjs().startOf(\"week\");\n break;\n case \"month\":\n curDate = dayjs();\n break;\n case \"quarter\":\n curDate = dayjs().startOf(\"quarter\");\n break;\n case \"year\":\n curDate = dayjs();\n break;\n default:\n curDate = currentDate;\n break;\n }\n onChange?.(curDate, dayjs(curDate).format(format));\n setValue(curDate);\n };\n const handleNextTime = () => {\n let nextDate: Dayjs;\n switch (picker) {\n case \"date\":\n nextDate = currentDate.clone().add(1, \"days\");\n break;\n case \"week\":\n nextDate = currentDate.clone().add(1, \"weeks\");\n break;\n case \"month\":\n nextDate = currentDate.clone().add(1, \"months\");\n break;\n case \"quarter\":\n nextDate = currentDate.clone().add(1, \"quarters\");\n break;\n case \"year\":\n nextDate = currentDate.clone().add(1, \"years\");\n break;\n default:\n nextDate = currentDate;\n break;\n }\n onChange?.(nextDate, dayjs(nextDate).format(format));\n setValue(nextDate);\n };\n\n return (\n <div\n className={classNames(\"pickerBtnWrap\", {\n disabledFastSelect: disabled,\n })}\n >\n <div className={classNames(\"pre\")} onClick={() => handlePreTime()}>\n <LeftOutlined rev=\"\" />\n <span>{strs[0]}</span>\n </div>\n <div className=\"current\" onClick={() => handleCurTime()}>\n {strs[1]}\n </div>\n <div\n className={classNames({\n next: true,\n nextDisabled:\n futureDateDisabled &&\n handleDisabledFutureDate(\n currentDate\n .clone()\n .add(1, picker === \"date\" ? \"days\" : (picker as any))\n ),\n })}\n onClick={() => handleNextTime()}\n >\n <span>{strs[2]}</span>\n <RightOutlined rev=\"\" />\n </div>\n </div>\n );\n }, [value, picker, futureDateDisabled]);\n\n const cellRender = useCallback(\n (\n current: string | number | Dayjs,\n info: { originNode: React.ReactElement }\n ) => {\n const quarterMap = {\n 1: i18n.t(`${NS}:${K.FISRT_QUARTER}`),\n 2: i18n.t(`${NS}:${K.SECOND_QUARTER}`),\n 3: i18n.t(`${NS}:${K.THIRD_QUARTER}`),\n 4: i18n.t(`${NS}:${K.FOURTH_QUARTER}`),\n };\n const selectedQuarter: number = dayjs(value).quarter();\n const currentQuarter: number = dayjs(current).quarter();\n return picker === \"quarter\" ? (\n <div\n className={classNames(\"quarterContent\", {\n selectedQuarter: selectedQuarter === currentQuarter,\n })}\n >\n {quarterMap[currentQuarter as keyof typeof quarterMap]}\n </div>\n ) : (\n info.originNode\n );\n },\n [value, picker]\n );\n\n return (\n <div\n className=\"pickerWrap\"\n onChange={(e) => {\n e.stopPropagation();\n }}\n >\n <DatePicker\n cellRender={(current, info: { originNode: React.ReactElement }) => {\n return cellRender(current, info);\n }}\n value={value}\n getPopupContainer={(trigger) => trigger}\n popupClassName={classNames({\n quarterPicker: isQuarterPicker,\n confirmDisabled: confirmDisabled,\n })}\n format={format}\n showTime={isDatePicker ? showTime : undefined}\n // Currently we don't support multiple pick mode\n onChange={onChange as any}\n style={inputStyle}\n placeholder={placeholder}\n onOk={onOk}\n suffixIcon={<WrappedIcon icon=\"calendar\" lib=\"easyops\" />}\n picker={picker}\n disabledDate={\n (futureDateDisabled && handleDisabledFutureDate) ||\n (disabledDate && handleDisabledDate)\n }\n disabledTime={disabledDate && (handleDisabledTime as any)}\n disabled={disabled}\n />\n {useFastSelectBtn && <PickerBtn />}\n </div>\n );\n}\n\nexport function EoDatePickerComponent(\n props: EoDatePickerProps\n): React.ReactElement {\n const { picker = \"date\", ...restProps } = props;\n\n const PickerFormatMap = {\n date: \"YYYY-MM-DD\",\n week: \"gggg-ww周\",\n month: \"YYYY-MM月\",\n quarter: \"YYYY-第Q季度\",\n year: \"YYYY\",\n };\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n const isDatePicker = picker === \"date\";\n const format = props.format || PickerFormatMap[picker];\n\n const handleChange = (_date: Dayjs | null, dateString: string): void => {\n props.onChange?.(dateString);\n };\n\n const handleOk = (date: Dayjs): void => {\n props.onOk?.(date?.format(props.format));\n };\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n const value: Dayjs | undefined = useMemo(() => {\n const parseValue = props.value;\n if (parseValue) {\n if (!props.format && (picker === \"week\" || picker === \"quarter\")) {\n //dayjs目前不支持解析gggg-ww周、YYYY-第Q季度格式的输入\n return dayjs(moment(parseValue, format).format());\n } else {\n return dayjs(parseValue, format);\n }\n }\n }, [props.value, format]);\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(omit(props, [\"shadowRoot\"]) as any)}\n >\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n <InternalStateDatePicker\n {...restProps}\n value={value}\n format={format}\n onChange={handleChange}\n onOk={isDatePicker ? handleOk : undefined}\n picker={picker}\n />\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n","export enum K {\n TODAY = \"TODAY\",\n THIS_WEEK = \"THIS_WEEK\",\n THIS_MONTH = \"THIS_MONTH\",\n THIS_QUARTER = \"THIS_QUARTER\",\n THIS_YEAR = \"THIS_YEAR\",\n START_TIME_END_TIME_CANNOT_EQUAL = \"START_TIME_END_TIME_CANNOT_EQUAL\",\n START_TIME_REQUIRED = \"START_TIME_REQUIRED\",\n END_TIME_REQUIRED = \"END_TIME_REQUIRED\",\n}\n// HELLO = \"HELLO\",\n\nconst en: Locale = {\n TODAY: \"Today\",\n THIS_WEEK: \"This Week\",\n THIS_MONTH: \"This Month\",\n THIS_QUARTER: \"This Quarter\",\n THIS_YEAR: \"This Year\",\n START_TIME_END_TIME_CANNOT_EQUAL: \"Start Time and End Time can NOT be equal\",\n START_TIME_REQUIRED: \"Start Time is required\",\n END_TIME_REQUIRED: \"End Time is required\",\n};\n\nconst zh: Locale = {\n TODAY: \"今天\",\n THIS_WEEK: \"本周\",\n THIS_MONTH: \"本月\",\n THIS_QUARTER: \"本季度\",\n THIS_YEAR: \"今年\",\n START_TIME_END_TIME_CANNOT_EQUAL: \"开始时间和结束时间不能相等\",\n START_TIME_REQUIRED: \"开始时间必填\",\n END_TIME_REQUIRED: \"结束时间必填\",\n};\n\nexport const NS = \"bricks/form/eo-time-range-picker\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useEffect, useMemo, useState, useRef } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase, MessageBody } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { TimePicker, DatePicker, ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport styleText from \"./styles.shadow.css\";\nimport fixStyleText from \"../time-picker/fix-style.shadow.css\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { omit, isEmpty, uniqueId, difference } from \"lodash\";\nimport dayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport isoWeek from \"dayjs/plugin/isoWeek.js\";\nimport advancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport quarterOfYear from \"dayjs/plugin/quarterOfYear.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\nimport \"dayjs/locale/zh-cn.js\";\n\ninitializeI18n(NS, locales);\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(quarterOfYear);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst INIT_TIME_RANGE: TimeRange = {\n startTime: \"00:00:00\",\n endTime: \"23:59:59\",\n};\n\nexport enum presetRangeType {\n Today = \"今天\",\n ThisWeek = \"本周\",\n ThisMonth = \"本月\",\n ThisQuarter = \"本季度\",\n ThisYear = \"今年\",\n}\nexport interface TimeRange {\n startTime: string;\n endTime: string;\n}\n\ntype PickerType = \"date\" | \"week\" | \"month\" | \"quarter\" | \"year\";\ntype OtherPickerType = \"dateTime\" | \"hmTime\" | \"time\";\nexport type RangeType = PickerType & OtherPickerType;\n\nexport interface EoTimeRangePickerProps extends FormItemProps {\n shadowRoot?: ShadowRoot | null;\n value?: TimeRange;\n format: string;\n rangeType?: RangeType;\n onChange?: (range: TimeRange) => void;\n emitChangeOnInit?: boolean;\n selectNearDays?: number;\n presetRanges?: presetRangeType[];\n}\ntype RealTimeRangePickerProps = Omit<\n EoTimeRangePickerProps,\n keyof Omit<FormItemProps, \"formElement\">\n>;\n/**\n * 时间区间选择器\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-time-range-picker\", {\n styleTexts: [styleText, fixStyleText],\n})\nclass EoTimeRangePicker extends FormItemElementBase {\n /**\n * 时间段选择器字段名\n */\n @property() accessor name: string | undefined;\n\n /**\n * 时间段选择器说明\n */\n @property() accessor label: string | undefined;\n\n /**\n *时间段选择器的初始值\n * @default { \"startTime\": \"00:00:00\", \"endTime\": \"23:59:59\" }\n */\n @property({ attribute: false }) accessor value: TimeRange | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 时间段类型\n */\n @property({ attribute: false })\n accessor rangeType: RangeType | undefined;\n\n /**\n * 只有rangeType在`date` 和 `dateTime`下, 才支持只选择最近n天(当前时间向前n天)\n */\n @property({ type: Number })\n accessor selectNearDays: number | undefined;\n\n /**\n * @default true\n * 是否在初始化完成后额外触发一次`time.range.change`, 这里因为历史原因之前默认行为就是在初始化后会触发该事件,这里为了兼容之前的行为,默认值只能设置为 true。\n */\n @property({ type: Boolean })\n accessor emitChangeOnInit: boolean | undefined = true;\n\n /**\n * @default []\n * 预设时间范围快捷选择;设置了属性selectNearDays时,属性presetRanges不生效;属性rangeType为week时,presetRanges的值只能为本周、本月、本季度、今年,属性rangeType为month、quarter、year时,以此类推\n */\n @property({ attribute: false })\n accessor presetRanges: presetRangeType[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody | string) | undefined;\n\n /**\n *时间段变化时触发\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<TimeRange>;\n\n handleChange = (value: TimeRange): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n // istanbul ignore next;\n unequal = (value: TimeRange): string => {\n if (value.startTime && value.endTime && value.startTime === value.endTime) {\n return i18n.t(`${NS}:${K.START_TIME_END_TIME_CANNOT_EQUAL}`);\n }\n return \"\";\n };\n // istanbul ignore next;\n startTimeRequired = (value: TimeRange): string => {\n if (!value.startTime && this.required) {\n return i18n.t(`${NS}:${K.START_TIME_REQUIRED}`);\n }\n return \"\";\n };\n // istanbul ignore next;\n endTimeRequired = (value: TimeRange): string => {\n if (!value.endTime && this.required) {\n return i18n.t(`${NS}:${K.END_TIME_REQUIRED}`);\n }\n return \"\";\n };\n\n #builtInvalidator: ((value: any) => MessageBody | string)[] = [\n this.unequal,\n this.startTimeRequired,\n this.endTimeRequired,\n ];\n\n #defaultFormat = \"HH:mm:ss\";\n render() {\n let format = this.#defaultFormat;\n switch (this.rangeType as RangeType) {\n case \"date\":\n format = \"YYYY-MM-DD\";\n break;\n case \"dateTime\":\n format = `YYYY-MM-DD ${this.#defaultFormat}`;\n break;\n case \"hmTime\":\n format = `HH:mm`;\n break;\n case \"week\": //week,month,quarter,year 不设置format,使用ant.design RangePicker的默认format\n format = \"\";\n break;\n case \"month\":\n format = \"\";\n break;\n case \"quarter\":\n format = \"\";\n break;\n case \"year\":\n format = \"\";\n break;\n }\n\n return (\n <EoTimeRangePickerComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n value={this.value}\n notRender={this.notRender}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n selectNearDays={this.selectNearDays}\n emitChangeOnInit={this.emitChangeOnInit}\n rangeType={this.rangeType}\n required={this.required}\n format={format}\n validator={\n (this.validator\n ? this.#builtInvalidator.concat(this.validator)\n : this.#builtInvalidator) as any\n }\n presetRanges={this.presetRanges}\n onChange={this.handleChange}\n shadowRoot={this.shadowRoot}\n needValidate={true}\n trigger=\"handleChange\"\n />\n );\n }\n}\n\nconst rangeRules = {\n date: [] as presetRangeType[],\n dateTime: [] as presetRangeType[],\n week: [presetRangeType.Today],\n month: [presetRangeType.Today, presetRangeType.ThisWeek],\n quarter: [\n presetRangeType.Today,\n presetRangeType.ThisWeek,\n presetRangeType.ThisMonth,\n ],\n year: [\n presetRangeType.Today,\n presetRangeType.ThisWeek,\n presetRangeType.ThisMonth,\n presetRangeType.ThisQuarter,\n ],\n};\n\nexport function RealTimeRangePicker(\n props: RealTimeRangePickerProps\n): React.ReactElement {\n const {\n value,\n selectNearDays,\n format,\n emitChangeOnInit,\n presetRanges,\n onChange,\n formElement,\n } = props;\n const times = [\"time\", \"hmTime\"];\n const rangeType = props.rangeType ?? \"time\";\n const today = times.includes(rangeType) ? \"\" : dayjs().format(\"YYYY-MM-DD\");\n const initRange = {\n startTime: today + (today ? \" \" : \"\") + INIT_TIME_RANGE.startTime,\n endTime: today + (today ? \" \" : \"\") + INIT_TIME_RANGE.endTime,\n };\n\n const initValue: TimeRange =\n !isEmpty(value?.startTime) || !isEmpty(value?.endTime)\n ? (value as TimeRange)\n : initRange;\n\n const [startTime, setStartTime] = useState(\n dayjs(initValue.startTime, format)\n );\n const [prevStartTime, setPrevStartTime] = useState(startTime?.clone());\n const [endTime, setEndTime] = useState(dayjs(initValue.endTime, format));\n const [prevEndTime, setPrevEndTime] = useState(endTime?.clone());\n\n const onStartTimeChange = (time: Dayjs | null, timeString: string) => {\n time && setStartTime(time);\n onChange?.({\n startTime: timeString,\n endTime: endTime?.format(format),\n });\n };\n\n const onEndTimeChange = (time: Dayjs | null, timeString: string) => {\n time && setEndTime(time);\n onChange?.({\n endTime: timeString,\n startTime: startTime?.format(format),\n });\n };\n\n useEffect(() => {\n if (emitChangeOnInit && !props.value && !formElement && onChange) {\n onChange(times.includes(rangeType) ? INIT_TIME_RANGE : initRange);\n }\n }, []);\n\n useEffect(() => {\n if (value?.startTime) {\n const start = dayjs(value.startTime, format || \"YYYY-MM-DD\");\n setStartTime(start);\n setPrevStartTime(start);\n }\n if (value?.endTime) {\n const end = dayjs(value.endTime, format || \"YYYY-MM-DD\");\n setEndTime(end);\n setPrevEndTime(end);\n }\n }, [value]);\n\n const timeRange = (\n <div className=\"timeRange\">\n <TimePicker\n {...{ id: uniqueId(\"start-time-\") }}\n // Currently we don't support multiple pick mode\n onChange={onStartTimeChange as any}\n getPopupContainer={(trigger) => trigger}\n value={!isEmpty(value?.startTime) ? startTime : undefined}\n format={format}\n />\n <span className=\"timeRangeSplit\">~</span>\n <TimePicker\n {...{ id: uniqueId(\"end-time-\") }}\n // Currently we don't support multiple pick mode\n onChange={onEndTimeChange as any}\n getPopupContainer={(trigger) => trigger}\n value={!isEmpty(value?.endTime) ? endTime : undefined}\n format={format}\n />\n </div>\n );\n const presetRangeMap = {\n [presetRangeType.Today]: {\n [i18n.t(`${NS}:${K.TODAY}`)]: [dayjs().startOf(\"day\"), dayjs()],\n },\n [presetRangeType.ThisWeek]: {\n [i18n.t(`${NS}:${K.THIS_WEEK}`)]: [\n dayjs().startOf(\"week\"),\n dayjs().endOf(\"week\"),\n ],\n },\n [presetRangeType.ThisMonth]: {\n [i18n.t(`${NS}:${K.THIS_MONTH}`)]: [\n dayjs().startOf(\"month\"),\n dayjs().endOf(\"month\"),\n ],\n },\n [presetRangeType.ThisQuarter]: {\n [i18n.t(`${NS}:${K.THIS_QUARTER}`)]: [\n dayjs().startOf(\"quarter\"),\n dayjs().endOf(\"quarter\"),\n ],\n },\n [presetRangeType.ThisYear]: {\n [i18n.t(`${NS}:${K.THIS_YEAR}`)]: [\n dayjs().startOf(\"year\"),\n dayjs().endOf(\"year\"),\n ],\n },\n };\n\n const presetRange = useMemo(() => {\n const rangeResult = [];\n if (!selectNearDays && !times.includes(rangeType)) {\n const compliantRanges = difference(\n presetRanges,\n (rangeRules as any)[rangeType]\n );\n for (const i of compliantRanges) {\n const list = Object.entries(presetRangeMap[i])[0];\n rangeResult.push({ label: list[0], value: list[1] });\n }\n }\n return rangeResult;\n }, [rangeType, selectNearDays, presetRanges]);\n const rangeChange = (dates: any) => {\n setStartTime(dates?.[0]);\n setEndTime(dates?.[1]);\n onChange?.({\n startTime: dates?.[0].format(format || \"YYYY-MM-DD\"), //week,month,quarter,year 的format为\"\",比如rangeType为quarter,直接返回2022-Q3的这种格式的数据,目前看起来还不是平台通用的,还是先默认转换成\"YYYY-MM-DD\"\n endTime: dates?.[1].format(format || \"YYYY-MM-DD\"),\n });\n };\n\n const needConfirm = useRef(false);\n const onOpenChange = (open: boolean) => {\n if (!open && needConfirm.current) {\n setStartTime(prevStartTime);\n setEndTime(prevEndTime);\n } else {\n needConfirm.current = true;\n }\n };\n\n const rangeOk = (selectedTime: any) => {\n needConfirm.current = false;\n const dates = selectedTime as [Dayjs, Dayjs];\n setPrevStartTime(dates?.[0]?.clone());\n setPrevEndTime(dates?.[1]?.clone());\n };\n\n const disabledDate = (current: Dayjs) => {\n if (!selectNearDays) {\n return false;\n }\n const tooSelectNearDays =\n current <= dayjs().subtract(selectNearDays, \"days\") ||\n current > dayjs().endOf(\"day\");\n return !!tooSelectNearDays;\n };\n\n // Memoize the picker value\n const pickerValue = useMemo(() => {\n return (\n !isEmpty(value?.startTime) || !isEmpty(value?.endTime)\n ? [startTime, endTime]\n : []\n ) as any;\n }, [endTime, startTime, value?.endTime, value?.startTime]);\n\n const dateRange = (\n <DatePicker.RangePicker\n style={{ width: 400 }}\n showTime={(rangeType as RangeType) === \"dateTime\"}\n picker={(rangeType as RangeType) === \"dateTime\" ? \"date\" : rangeType}\n value={pickerValue}\n presets={presetRange as any}\n format={format}\n onChange={rangeChange}\n onOpenChange={onOpenChange}\n onOk={rangeOk}\n disabledDate={disabledDate}\n separator={\"~\"}\n getPopupContainer={(trigger) => trigger}\n suffixIcon={<WrappedIcon icon=\"calendar\" lib=\"easyops\" />}\n />\n );\n const range = times.includes(rangeType) ? timeRange : dateRange;\n\n return <div>{range}</div>;\n}\n\nexport function EoTimeRangePickerComponent(props: EoTimeRangePickerProps) {\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <WrappedFormItem\n exportparts=\"message\"\n {...(omit(props, [\"shadowRoot\"]) as any)}\n >\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n <div\n onChange={(e) => {\n e.stopPropagation();\n }}\n >\n <RealTimeRangePicker\n format={props.format}\n value={props.value}\n rangeType={props.rangeType}\n onChange={props.onChange}\n emitChangeOnInit={props.emitChangeOnInit}\n selectNearDays={props.selectNearDays}\n presetRanges={props.presetRanges}\n formElement={props.formElement}\n />\n </div>\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { ColorPicker, theme, ConfigProvider } from \"antd\";\nimport { ColorPickerProps, Color } from \"antd/lib/color-picker\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport styleText from \"./styles.shadow.css\";\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface EoColorPickerProps\n extends Pick<\n ColorPickerProps,\n \"allowClear\" | \"disabled\" | \"showText\" | \"format\" | \"size\" | \"defaultValue\"\n > {\n shadowRoot: ShadowRoot | null;\n configProps?: Partial<ColorPickerProps>;\n onChange?: (value?: string) => void;\n value?: string;\n}\n\n/**\n * 构件 `eo-color-picker`\n * @author astrid\n */\nexport\n@defineElement(\"eo-color-picker\", {\n styleTexts: [styleText],\n})\nclass EoColorPicker extends FormItemElementBase implements EoColorPickerProps {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n /**\n * 值\n */\n @property()\n accessor value: string | undefined;\n\n /**\n * 颜色默认的值\n */\n @property()\n accessor defaultValue: string | Color | undefined;\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n /**\n * 允许清除选择的颜色\n */\n @property({ type: Boolean })\n accessor allowClear: boolean | undefined;\n /**\n * 设置触发器大小\n * @default middle\n */\n @property({ attribute: false })\n accessor size: \"small\" | \"middle\" | \"large\" | undefined;\n\n /**\n * 显示颜色文本\n */\n @property({ type: Boolean })\n accessor showText: boolean | undefined;\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 颜色格式\n * @default hex\n */\n @property({ attribute: false })\n accessor format: \"rgb\" | \"hex\" | \"hsb\" | undefined;\n /**\n * 透传 antd ColorPicker 属性 [ColorPickerProps](https://ant.design/components/color-picker-cn#api)\n */\n @property({ attribute: false })\n accessor configProps: Partial<ColorPickerProps> | undefined;\n\n /**\n * 颜色变化事件, 返回值格式和`format`格式一致\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string | undefined>;\n handleChange = (value?: string) => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this as HTMLElement}\n formElement={this.getFormElement()}\n label={this.label}\n name={this.name}\n required={this.required}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n trigger=\"handleChange\"\n >\n <EoColorPickerComponent\n format={this.format}\n value={this.value}\n size={this.size}\n disabled={this.disabled}\n onChange={this.handleChange}\n shadowRoot={this.shadowRoot}\n configProps={this.configProps}\n showText={this.showText}\n allowClear={this.allowClear}\n defaultValue={this.defaultValue}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport function EoColorPickerComponent(\n props: EoColorPickerProps\n): React.ReactElement {\n const currentTheme = useCurrentTheme();\n const [format, setFormat] = useState<ColorPickerProps[\"format\"]>(\n props.format\n );\n const cache = useMemo(() => {\n return createCache();\n }, []);\n return (\n <ConfigProvider\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cache}>\n <ColorPicker\n {...props.configProps}\n getPopupContainer={(trigger) => trigger.parentElement as HTMLElement}\n value={props.value}\n disabled={props.disabled}\n allowClear={props.allowClear}\n defaultValue={props.defaultValue}\n size={props.size}\n showText={props.showText}\n format={format}\n onFormatChange={setFormat}\n onChange={(value) => {\n let outputValue = value.toHexString();\n switch (props.format) {\n case \"rgb\":\n outputValue = value.toRgbString();\n break;\n case \"hsb\":\n outputValue = value.toHsbString();\n break;\n default:\n outputValue = value.toHexString();\n break;\n }\n props.onChange?.(outputValue);\n }}\n onClear={() => {\n props.onChange?.();\n }}\n />\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--radio-dashboard-selected-bg:#ffffff;--radio-dashboard-disabled-bg:#e8e8e8}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--radio-dashboard-selected-bg:#414145;--radio-dashboard-disabled-bg:#3d3d43}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.complete-container{position:relative}.option-container{display:flex;flex-direction:column;margin:2px 4px;padding:5px 12px;cursor:pointer;border-radius:var(--medius-border-radius)}.option-container .label{line-height:22px}.option-container .caption{font-size:var(--auxiliary-font-size-small);color:var(--color-secondary-text);line-height:20px}.option-container:hover{background-color:var(--antd-select-item-active-bg)}.group-wrapper .option-container{padding-left:24px}.group-item{color:var(--antd-text-color-secondary);font-size:12px;margin:2px 4px;padding:5px 12px}.selected-option{background-color:var(--color-info-icon-bg)}.dropdown-wrapper{position:absolute;box-sizing:border-box;width:100%;background-color:var(--antd-select-dropdown-bg);box-shadow:var(--antd-box-shadow-base);z-index:1050;margin-top:5px;padding:4px 2px;border-radius:var(--small-border-radius)}.dropdown-list{max-height:256px;overflow:scroll}eo-input{width:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.checkboxWrapper{display:flex;flex-wrap:wrap;gap:12px 16px}.checkboxLabel{font-size:14px;line-height:1.57;display:inline-flex;align-items:baseline;cursor:pointer;line-height:22px;text-align:center;box-sizing:22px;padding:1px 4px;border-radius:var(--medius-border-radius)}.checkboxLabelDisabled{cursor:not-allowed;color:var(--text-color-disabled)}.checkboxInputWrapper{position:relative;top:0.2em}.checkboxInputWrapperDisabled{cursor:not-allowed}.checkboxLabel .checkboxInput{height:16px;width:16px;z-index:1;cursor:pointer;margin:0px;position:absolute;opacity:0}.checkboxLabel .checkboxInput[type=\"checkbox\"]:checked{color:black;background-color:var(--color-info-icon-bg)}.checkboxLabel .checkboxInner{border-radius:3px;position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:var(--color-fill-bg-container-1);border:1px solid var(--color-border-divider-line);box-sizing:border-box;border-collapse:separate;transition:all 0.3s}.checkboxLabel:hover .checkboxInner{background-color:var(--color-fill-bg-base-1)}.checkboxLabel:active .checkboxInner{background-color:var(--color-info-icon-bg)}.checkboxLabel .checkboxInputCheck .checkboxInner,\n.checkboxLabel .checkboxInputPartCheck .checkboxInner{background-color:var(--antd-checkbox-color);border-color:var(--antd-checkbox-color)}.checkboxLabelDisabled .checkboxInputCheck .checkboxInner{background-color:inherit;border-color:var(--color-disabled-text)}.checkboxLabelDisabled .checkboxInputCheck .checkboxInner::after{background-color:inherit;border-color:var(--color-disabled-text)}.checkboxLabel .checkboxInner::after{position:absolute;top:45%;left:3px;display:table;width:0.2em;height:0.5em;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all 0.1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity 0.1s;content:\" \"}.checkboxLabel .checkboxInputCheck .checkboxInner::after{transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all 0.2s cubic-bezier(0.12,0.4,0.29,1.46) 0.1s}.checkboxLabelCheck{background:var(--checkbox-bg-active)}.checkboxLabel .checkboxInputPartCheck .checkboxInner::after{height:2px;background-color:#fff;width:8px;border:0;left:50%;opacity:1;transform:translate(-50%,-50%) scale(1)}.checkboxLabel .checkboxInputDisabled{cursor:not-allowed}.checkboxLabel:hover{background:var(--checkbox-bg-hover)}.checkboxLabel .checkboxText{padding:0 8px}.iconCheckbox,\n.disabledIconCheckbox{position:relative;display:inline-block;width:104px;height:104px;margin-right:12px;text-align:center;cursor:pointer}.iconCustomCheckbox,\n.disabledIconCustomCheckbox{width:186px;height:114px;margin:0 15px 20px 0}.disabledIconCheckbox,\n.disabledIconCustomCheckbox{background-color:var(--input-outline-disabled)}.disabledIconCheckbox input[type=\"checkbox\"]::before, .disabledIconCustomCheckbox input[type=\"checkbox\"]::before{cursor:not-allowed}.disabledIconCheckbox .content .text, .disabledIconCustomCheckbox .content .text{color:var(--antd-checkbox-custom-type-disabled-color)}.iconCheckbox:hover input[type=\"checkbox\"]::before{border:1px solid var(--color-brand-hover)}.iconCheckbox input[type=\"checkbox\"]:checked::before{border:1px solid var(--color-brand-hover)}.iconCustomCheckbox:hover input[type=\"checkbox\"]::before{border:1px solid var(--color-brand-hover)}.iconCustomCheckbox input[type=\"checkbox\"]:checked::before{border:1px solid var(--color-brand-hover)}.iconCheckbox.content{position:absolute;width:100%;height:100%;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.inputBox{padding:5px;text-align:right;line-height:15px}.inputBox input[type=\"checkbox\"]::before{content:\"\";position:absolute;width:100%;height:100%;border-radius:6px;border:1px solid var(--color-border-divider-line);cursor:pointer;top:0;left:0}.collapse-wrapper{margin-top:4px}.collapse-header{padding:0px 16px 12px 40px;position:relative;margin-left:0px;margin-top:-4px}.collapse-content{padding:0px 16px 12px 40px;margin-top:-4px;display:none}.collapse-content-visible{display:block}.collapse-header .collapse-icon{position:absolute;left:16px}.collapse-header .checkboxLabel{margin-left:0px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.confirmDisabled .ant-picker-ok .ant-btn{color:var(--text-color-disabled);background:\"red\";border-color:var(--antd-border-color-base);text-shadow:none;box-shadow:none;pointer-events:none}.quarterPicker .quarterContent{left:auto;display:flex;align-items:center;justify-content:center;width:60%;padding:4px}.quarterPicker .quarterContent:hover{background:var(--antd-picker-basic-cell-hover-bg)}.quarterPicker .selectedQuarter{color:var(--antd-picker-panel-cell-selected-color);background:var(--antd-picker-panel-cell-selected-bg)}.quarterPicker .ant-picker-quarter-panel .ant-picker-content tr{display:flex;flex-wrap:wrap}.quarterPicker .ant-picker-quarter-panel .ant-picker-content td{display:flex;align-items:center;justify-content:center;width:50%;height:50%;padding:20px}.quarterPicker .ant-picker-cell-selected::before{color:var(--antd-picker-panel-cell-selected-color);background:var(--antd-picker-panel-cell-selected-bg)}.quarterPicker .ant-picker-cell::before{right:auto;left:auto;display:flex;align-items:center;justify-content:center;width:60%;display:none}.quarterPicker .ant-picker-cell:hover::before{background:var(--antd-picker-basic-cell-hover-bg);cursor:not-allowed}.pickerBtnWrap{box-sizing:border-box;margin:0;padding:0;color:var(--antd-text-color);font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:\"tnum\";padding:0 8px;position:relative;display:inline-flex;align-items:center;background:var(--antd-component-background);border:1px solid var(--antd-border-color-base);border-radius:4px;-webkit-user-select:none;user-select:none}.pre,\n.current,\n.next{position:relative;display:flex;align-items:center;line-height:1;padding:4px;cursor:pointer}.pre:hover,\n.current:hover,\n.next:hover{color:var(--antd-link-color)}.pre:hover .anticon-left,\n.pre:hover .anticon-right,\n.current:hover .anticon-left,\n.current:hover .anticon-right,\n.next:hover .anticon-left,\n.next:hover .anticon-right{color:var(--antd-link-color)}.nextDisabled{color:var(--text-color-disabled);background:var(--antd-background-color-base);pointer-events:none}.pickerWrap{display:flex;gap:10px}.pickerWrap .current{padding:4px 20px}.pickerWrap .current::after,\n.pickerWrap .current::before{content:\"\";position:absolute;top:50%;width:1px;height:70%;transform:translateY(-50%);background:var(--antd-border-color-base)}.pickerWrap .current::after{right:10px}.pickerWrap .current::before{left:10px}.pickerWrap .anticon-left,\n.pickerWrap .anticon-right{color:var(--antd-border-color-base);font-size:\" 11px\"}.pickerWrap .disabledFastSelect{pointer-events:none;color:var(--text-color-disabled);background:var(--antd-background-color-base)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dynamic-form-wrapper{border-radius:6px;padding:16px;background:var(--color-fill-bg-base-1)}.remove-btn{cursor:pointer;justify-content:center;display:flex;align-items:center;width:16px;height:16px;border:1px solid;border-radius:50%;line-height:12px;padding:2px;margin-left:8px;color:var(--color-secondary-text)}.remove-btn:hover{color:var(--color-auxiliary-text)}.remove-btn:active{color:var(--color-strong-text)}.remove-btn-wrapper{padding-top:4px}.dynamic-form > *:not(.remove-btn-wrapper){flex:1;margin-right:8px}.add-btn{width:calc(100% - 38px)}.add-btn-wrapper-disabled{cursor:not-allowed}.add-btn-disabled{pointer-events:none}.dynamic-form-item:first-child .dynamic-form:has(*[label]) .remove-btn-wrapper{margin-top:22px}.remove-btn-disabled-wrapper{cursor:not-allowed}.remove-btn-disabled{pointer-events:none;cursor:not-allowed;color:var(--text-color-disabled)}.add-btn-hide{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host([hidden]){display:none}button{line-height:22px;margin:0;padding:0;color:var(--antd-text-color);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:\"tnum\";position:relative;display:inline-block;box-sizing:border-box;min-width:44px;height:22px;line-height:22px;vertical-align:middle;background-color:var(--text-color-disabled);border:0;border-radius:100px;cursor:pointer;transition:all 0.2s;-webkit-user-select:none;user-select:none}.switch-checked{background-color:var(--antd-switch-color)}.switch-handle{position:absolute;top:2px;left:2px;width:18px;height:18px;transition:all 0.2s ease-in-out}.switch-checked .switch-handle{left:calc(100% - 18px - 2px)}.switch-checked .switch-inner{margin:0 25px 0 7px}.switch-handle::before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--antd-switch-bg);border-radius:9px;box-shadow:0 2px 4px 0 rgba(0,35,11,0.2);transition:all 0.2s ease-in-out;content:\"\"}.switch-inner{display:flex;align-items:center;margin:0 7px 0 25px;transition:margin 0.2s;color:#fff}.switch-disabled{cursor:not-allowed;opacity:0.4}.small{min-width:28px;height:16px;line-height:16px}.small .switch-handle{width:12px;height:12px}.small.switch-checked .switch-handle{left:calc(100% - 12px - 2px)}.small .switch-inner{margin:0 7px 0 18px}.small.switch-checked .switch-inner{margin:0 18px 0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.show-icon{display:grid;justify-items:center;align-items:center;width:54px;height:54px;font-size:27px;line-height:54px;border-radius:50%;cursor:pointer}.show-icon.disabled{cursor:not-allowed}.preview-container{display:grid;justify-items:center;margin-bottom:20px}.show-area{display:grid;justify-items:center;align-items:center;position:relative;font-size:35px;height:70px;width:70px;border-radius:50%}.delete-wrapper{display:grid;justify-items:center;align-items:center;position:absolute;top:0;cursor:pointer;width:100%;height:100%;border-radius:50%;background-color:rgba(0,0,0,0.15);opacity:0;transition:opacity 0.3s}.show-area:hover .delete-wrapper{opacity:1}.delete-icon{display:grid;justify-items:center;align-items:center;font-size:14px;background:#ffffff;width:36px;height:36px;border-radius:50%;border:1px solid rgba(238,239,243,1)}.delete-icon:focus{background-color:#f2f2f2}.preview-icon-name{text-align:center}.select-icon-container{display:grid;grid-template-columns:80px auto;row-gap:20px}.label{text-align:right;line-height:32px;font-size:14px;font-weight:400;color:rgba(102,102,102,1)}.select-color-area{display:flex}.color-box{width:38px;height:38px;border-radius:var(--larger-border-radius);cursor:pointer}.empty-color{border:var(--border-width-double-base) solid var(--color-border-divider-line);background-color:var(--color-info-white);position:relative;overflow:hidden}.empty-line{background:var(--palette-red-6);position:absolute;transform:translateX(-10px) rotate(-45deg);width:50px;margin:19px 0;height:var(--border-width-double-base)}.color-box:not(:last-child){margin-right:30px}.color-box:first-child{margin-left:22px}.select-icon-area{margin-left:22px}.select-icon-search-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.icon-area{padding-top:20px;display:grid;grid-template-columns:repeat(8,12.5%);overflow:auto;width:616px;height:218px;font-size:20px;background:var(--color-fill-bg-base-4);border-radius:var(--larger-border-radius)}.icon-container{display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;color:var(--color-normal-text);height:50px}.icon-container:hover{cursor:pointer;color:var(--color-brand)}.icon-container .icon-name{width:100%;text-align:center;font-size:10px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;visibility:hidden}.icon-container:hover .icon-name{visibility:visible}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.input-addon-wrapper{display:table;width:100%;line-height:22px;--input-affix-wrapper-padding:4px 10px}.input-addon-wrapper-size-large{--input-affix-wrapper-padding:8px 10px}.input-addon-wrapper-size-small{--input-affix-wrapper-padding:0 10px}.input-before-addon,\n.input-after-addon{display:table-cell;position:relative;padding:0 11px;font-size:14px;line-height:1;text-align:center;width:0;color:var(--text-color-default);background-color:var(--theme-gray-background);border:1px solid var(--color-border-divider-line);border-radius:var(--small-border-radius);transition:all 0.3s}.input-before-addon{right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.input-after-addon{left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host(:not([has-addon-before])) .input-before-addon{display:none}:host(:not([has-addon-after])) .input-after-addon{display:none}.input-affix-wrapper{display:inline-flex;position:relative;padding:var(--input-affix-wrapper-padding);border-radius:var(--small-border-radius);width:100%;color:var(--text-color-default);background-color:var(--antd-input-bg);border:1px solid var(--color-border-divider-line);transition:border-color 0.3s,box-shadow 0.3s;overflow:visible}:host([has-addon-before]) .input-affix-wrapper{border-top-left-radius:0;border-bottom-left-radius:0}:host([has-addon-after]) .input-affix-wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.input-affix-wrapper:not(.input-affix-wrapper-disabled):hover{border-color:var(--antd-input-hover-border-color);z-index:1}.input-affix-wrapper:focus,\n.input-affix-wrapper-focused{border-color:var(--antd-input-focus-border-color);box-shadow:0 0 0 2px rgba(0,113,235,0.2);z-index:1}.input-affix-wrapper-disabled{cursor:not-allowed;color:var(--text-color-disabled);background-color:var(--theme-gray-background)}.input{flex:1;padding:0;margin:0;border:none;outline:none;font-size:14px;line-height:20px;color:inherit;background-color:transparent;cursor:inherit;width:100%}.input::placeholder{color:var(--text-color-disabled);-webkit-user-select:none;user-select:none}.input:placeholder-shown{text-overflow:ellipsis}.input-prefix,\n.input-suffix{display:flex;flex:none;align-items:center}.input-prefix{margin-right:4px}.input-suffix{margin-left:4px}:host(:not([has-prefix])) .input-prefix{display:none}:host(:not([has-suffix])) .input-suffix:not(:has(:not(slot))){display:none}.input-clear-icon{margin-left:4px;font-size:12px;color:var(--text-color-disabled);cursor:pointer}:host([has-suffix]) .input-clear-icon{margin-right:4px}.input-clear-icon:hover{color:var(--antd-text-color-secondary)}.input-clear-icon-hidden{visibility:hidden}.input-addon-wrapper-status-error .input-affix-wrapper{border-color:var(--antd-error-color)}.input-addon-wrapper-status-error\n .input-affix-wrapper:not(.input-affix-wrapper-disabled):hover{border-color:var(--antd-error-color)}.input-addon-wrapper-status-error .input-affix-wrapper:focus,\n.input-addon-wrapper-status-error .input-affix-wrapper-focused{border-color:var(--antd-error-color);box-shadow:0 0 0 2px var(--antd-error-color-fade-20)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.radio-group{display:flex;flex-wrap:wrap;gap:12px 16px}:host([type=\"default\"]) .radio-item{position:relative;display:inline-flex;align-items:center;text-align:center;cursor:pointer;gap:8px}:host([type=\"default\"]) .radio-item .raido{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;position:relative;display:inline-block;outline:none;cursor:pointer;align-self:center;border-radius:50%}:host([type=\"default\"]) .radio-item .raido input[type=\"radio\"]{position:absolute;inset:0;z-index:1;cursor:pointer;opacity:0}:host([type=\"default\"]) .radio-item .raido::after{position:absolute;inset-block-start:0;inset-inline-start:0;width:100%;height:100%;border:1px solid var(--color-brand);border-radius:50%;visibility:hidden;content:\"\"}:host([type=\"default\"]) .radio-item .raido .radio-inner{box-sizing:border-box;position:relative;inset-block-start:0;inset-inline-start:0;display:block;width:16px;height:16px;background-color:var(--color-fill-bg-container-1);border:1px solid var(--color-border-divider-line);border-radius:50%;transition:all 0.3s}:host([type=\"default\"]) .radio-item .raido .radio-inner.checked{border-color:var(--color-brand);background-color:var(--color-brand)}:host([type=\"default\"]) .radio-item .raido .radio-inner.checked::after{transform:scale(0.375);opacity:1}:host([type=\"default\"]) .radio-item .raido .radio-inner::after{box-sizing:border-box;position:absolute;inset-block-start:50%;inset-inline-start:50%;display:block;width:16px;height:16px;margin-block-start:-8px;margin-inline-start:-8px;background-color:var(--color-fill-bg-container-1);border-block-start:0;border-inline-start:0;border-radius:16px;transform:scale(0);opacity:0;transition:all 0.3s cubic-bezier(0.78,0.14,0.15,0.86);content:\"\"}:host([type=\"default\"]) .radio-item input[type=\"radio\"]{width:16px;height:16px;vertical-align:middle;margin-top:0px}:host([type=\"default\"]) .radio-item .content{display:flex;align-items:center}:host([type=\"default\"]) .radio-item.disabled .radio-inner{background-color:var(--input-outline-disabled)}:host([type=\"default\"]) .radio-item.disabled .radio-inner.checked{background-color:var(--color-disabled-text);border-color:var(--color-disabled-text)}:host([type=\"default\"]) .radio-item:not(.disabled):hover .radio-inner{border:1px solid var(--color-brand)}:host([type=\"icon\"]) .radio-item{position:relative;display:inline-block;width:104px;height:104px;text-align:center;cursor:pointer}:host([type=\"icon\"]) .radio-item input[type=\"radio\"]{width:0px;height:0px}:host([type=\"icon\"]) .radio-item.checked .content{border-color:var(--color-brand);color:var(--color-brand)}:host([type=\"icon\"]) .radio-item .content{position:absolute;width:100%;height:100%;top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--color-fill-bg-container-1);color:var(--color-normal-text);border-radius:var(--medius-border-radius);border:var(--border-width-base) solid var(--color-border-divider-line)}:host([type=\"icon\"]) .radio-item:not(.disabled):hover .content{border-color:var(--color-brand-hover)}:host([type=\"icon\"]) .radio-item.disabled .content{background-color:var(--input-outline-disabled)}:host([type=\"button\"]){width:max-content}:host([type=\"button\"]) .radio-group{gap:0}:host([type=\"button\"]) .radio-item{position:relative;display:inline-block;margin:0;margin-left:-1px;padding:0;color:var(--antd-btn-default-color);font-size:14px;background:var(--antd-btn-default-bg);border:1px solid var(--antd-border-color-base);cursor:pointer;transition:color 0.3s,box-shadow 0.3s}:host([type=\"button\"]) .radio-item:first-child{border-radius:var(--small-border-radius) 0 0 var(--small-border-radius);margin-left:0px}:host([type=\"button\"]) .radio-item:last-child{border-radius:0 var(--small-border-radius) var(--small-border-radius) 0}:host([type=\"button\"]) .radio-item.checked.disabled{background-color:var(--color-border-divider-line)}:host([type=\"button\"]) .radio-item.disabled{color:var(--color-disabled-text)}:host([type=\"button\"]) .radio-item.checked:not(.disabled){border-color:var(--antd-radio-dot-color);background-color:var(--antd-radio-dot-color);color:#fff;margin-right:-1px;z-index:1}:host([type=\"button\"]) .radio-item.checked:not(.disabled) .button-content:not(.disabled):hover{color:inherit}:host([type=\"button\"]) .radio-item input[type=\"radio\"]{width:0;height:0;position:absolute}:host([type=\"button\"]) .radio-item .button-content{padding:0 15px}:host([type=\"button\"]) .radio-item .button-content:not(.disabled):hover{color:var(--antd-radio-dot-color)}:host([type=\"button\"]) .dashboard{border-radius:var(--small-border-radius);border:none;background-color:var(--antd-dashboard-radio-bg)}:host([type=\"button\"]) .dashboard .radio-item{background:var(--antd-dashboard-radio-item-bg);font-size:14px;color:var(--antd-dashboard-radio-item-color);border:none;margin:3px 0;border-radius:var(--medius-border-radius)}:host([type=\"button\"]) .dashboard .radio-item:first-child{margin-left:3px}:host([type=\"button\"]) .dashboard .radio-item:last-child{margin-right:3px}:host([type=\"button\"]) .dashboard .radio-item .button-content:not(.disabled):hover{color:var(--antd-dashboard-radio-item-checked-color)}:host([type=\"button\"]) .dashboard .radio-item.disabled{color:var(--color-disabled-text)}:host([type=\"button\"]) .dashboard .radio-item.checked.disabled{background-color:var(--radio-dashboard-disabled-bg)}:host([type=\"button\"]) .dashboard .radio-item.checked:not(.disabled){color:var(--antd-dashboard-radio-item-checked-color);background-color:var(--radio-dashboard-selected-bg);border-radius:var(--small-border-radius);font-weight:var(--font-weight-500)}:host([type=\"button\"]) .dashboard .radio-item.checked:not(:first-child){margin-left:-1px}:host([type=\"button\"]) .dashboard .radio-item:not(:last-child)::after{position:absolute;top:50%;right:0px;display:block;box-sizing:content-box;width:1px;height:calc(100% - 14px);background-color:var(--antd-border-color-base);transition:background-color 0.3s;content:\"\";transform:translateY(-50%)}:host([type=\"button\"]) .dashboard .radio-item.checked::after{width:0}:host([type=\"icon-circle\"]) .radio-item, :host([type=\"icon-square\"]) .radio-item{position:relative;display:inline-block;width:auto;text-align:center;cursor:pointer;line-height:1}:host([type=\"icon-circle\"]) .radio-item input[type=\"radio\"], :host([type=\"icon-square\"]) .radio-item input[type=\"radio\"]{width:0;height:0}:host([type=\"icon-circle\"]) .radio-item:not(.disabled):hover .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item:not(.disabled):hover .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item:not(.disabled):hover .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item:not(.disabled):hover .icon-content .square-icon{border-color:var(--color-brand-hover)}:host([type=\"icon-circle\"]) .radio-item .icon-content, :host([type=\"icon-square\"]) .radio-item .icon-content{color:var(--color-normal-text)}:host([type=\"icon-circle\"]) .radio-item .icon-content > span, :host([type=\"icon-square\"]) .radio-item .icon-content > span{width:93px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host([type=\"icon-circle\"]) .radio-item .icon-content .circle-icon, :host([type=\"icon-square\"]) .radio-item .icon-content .circle-icon{border-radius:50%}:host([type=\"icon-circle\"]) .radio-item .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item .icon-content .square-icon{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:auto auto 6px;background:var(--color-fill-bg-container-1);border:1px solid var(--color-border-divider-line);width:94px;height:94px;font-size:46px;box-sizing:border-box}:host([type=\"icon-circle\"]) .radio-item.disabled .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item.disabled .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item.disabled .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item.disabled .icon-content .square-icon{background-color:var(--input-outline-disabled)}:host([type=\"icon-circle\"]) .radio-item.checked .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item.checked .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item.checked .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item.checked .icon-content .square-icon{border-color:1px solid var(--color-brand);color:var(--color-brand);border-width:var(--border-width-double-base)}:host([type=\"custom\"]) .radio-item{position:relative;display:inline-block;width:212px;height:271px;text-align:center;cursor:pointer}:host([type=\"custom\"]) .radio-item input[type=\"radio\"]{width:0;height:0}:host([type=\"custom\"]) .radio-item input[type=\"radio\"]:checked ~ .custom-content{box-shadow:var(--hover-shadow)}:host([type=\"custom\"]) .radio-item .custom-content{position:absolute;width:100%;height:100%;top:0;color:var(--color-normal-text);border-radius:var(--small-border-radius)}:host([type=\"custom\"]) .radio-item:not(.disabled):hover .custom-content{box-shadow:var(--hover-shadow)}.radio-item.small{height:24px;font-size:13px;line-height:24px}.radio-item.medium{height:32px;font-size:14px}.radio-item.large{height:40px;font-size:18px;line-height:40px}.disabled,\n.disabled .content,\n.disabled .icon-content{cursor:not-allowed}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}eo-input{display:block}.search-button{width:16px;font-size:16px;color:var(--color-secondary-text);cursor:pointer}.search-button:hover{color:var(--color-normal-text)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.select{width:100%;margin:0;padding:0;color:var(--antd-text-color);font-size:14px;position:relative;cursor:text;min-width:100px}.select-selector{position:relative;border:1px solid var(--antd-border-color-base);border-radius:var(--small-border-radius);box-sizing:border-box;background-color:var(--antd-component-background);transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1);padding-right:24px}.select:not(.select-disabled):hover .select-selector{border-color:var(--antd-input-hover-border-color);z-index:1}.select:not(.select-disabled):hover .close-btn{display:block}.select-multiple .select-selector{min-height:30px;height:auto}.select-selection-overflow{position:relative;display:flex;flex:auto;flex-wrap:wrap;max-width:100%;padding-left:10px}.select-multiple .select-selection-overflow{padding-left:4px}.selected-item{flex:none;align-self:center;max-width:100%;line-height:1;margin-top:2px}.selected-item .label{display:inline-block;margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.selector-focused{border-color:var(--antd-input-focus-border-color);border-width:1px;outline:0;box-shadow:0 0 0 2px rgb(0 113 235/20%)}.select-single-item{line-height:1}.selector-focused .selected-single-item{color:var(--antd-input-placeholder-color)}.select-single .select-selection-search{position:absolute;top:-2px;right:25px;bottom:0;left:10px}.select-multiple .select-selection-search{left:4px}.select-single-item{flex:1;min-width:0}.select-single-item .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-single-item .label .text{margin-right:4px}.select-multiple .select-selection-search{padding-right:22px}.select-selection-search-input{margin:0;padding:0;background:transparent;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:30px;cursor:pointer;color:var(--antd-text-color)}.select-disabled .select-selector{color:var(--text-color-disabled);background:var(--antd-input-disabled-bg);cursor:not-allowed}.select-disabled .select-selection-search-input{cursor:not-allowed}.select-selector.is-error{border-color:var(--antd-error-color)}.close-btn{display:none}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.select-arrow{display:inline-block;color:inherit;cursor:pointer;font-style:normal;line-height:0;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:53%;right:11px;width:12px;height:12px;margin-top:-6px;color:var(--text-color-disabled);font-size:12px;line-height:1;text-align:center}.anticon{vertical-align:top;transition:0.4s rotate ease}.anticon.focus{rotate:-180deg}.select-dropdown{margin:0;padding:0;margin-top:5px;color:var(--antd-text-color);font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:\"tnum\",;position:absolute;top:100%;left:0px;width:100%;z-index:1050;box-sizing:border-box;padding:2px;overflow:hidden;font-size:14px;font-variant:initial;background-color:var(--color-fill-bg-container-4);border-radius:var(--medius-border-radius);outline:none;box-shadow:var(--feedback-container-shadow)}.dropdown-list{max-height:256px;overflow-y:scroll;overflow-anchor:none}.dropdown-inner{display:flex;flex-direction:column}.select-item{position:relative;display:block;padding:5px 12px;color:var(--antd-text-color);font-weight:normal;font-size:14px;line-height:22px;cursor:pointer;transition:background 0.3s ease;margin:2px}.select-item-option{display:flex;border-radius:var(--medius-border-radius);margin:2px}.select-item-option.disabled{cursor:not-allowed;color:var(--color-disabled-text);background:var(--antd-input-disabled-bg)}.select-option-hover{background-color:var(--antd-select-item-active-bg)}.select-item-option-content{position:relative;flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.select-item-option-content .option{display:flex;align-items:center;justify-content:space-between;margin-right:22px}.dropdown-list .option .label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:8px}.select-option-selected{background-color:var(--color-info-icon-bg)}.select-option-hover{background-color:var(--antd-select-item-active-bg)}.is-checked{display:none;position:absolute;right:0px;top:0;color:var(--color-brand)}.select-option-selected .is-checked{display:block}.input-item{min-height:28px;display:flex;align-items:center;min-width:0}.empty-tips{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;color:var(--palette-gray-8);padding:20px}.empty-tips > span{margin-left:-4px;margin-top:8px;color:var(--color-secondary-text)}.select-group-wrapper .select-group-label{padding-left:12px;color:var(--antd-text-color-secondary);font-size:12px;cursor:default}.select-group-wrapper .select-item-option{padding-left:24px}.dropdown-list-loading-container{height:40px;display:flex;align-items:center;justify-content:center;background:rgba(var(--antd-component-background),0.7);font-size:24px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.submitBtn{margin-right:8px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `textarea{width:100%;padding:4px 11px;color:var(--antd-input-color);background:var(--antd-input-bg);box-sizing:border-box;border-radius:var(--antd-button-border-radius);border:1px solid var(--antd-input-border-color);line-height:1.5715}textarea:not(:disabled):hover{border:1px solid var(--antd-input-hover-border-color)}textarea:not(:disabled):focus{border:1px solid var(--antd-input-focus-border-color);outline:0;box-shadow:0 0 0 2px rgb(0 113 235/20%)}textarea:disabled{cursor:not-allowed;color:var(--text-color-disabled);background:var(--antd-input-disabled-bg);resize:none}textarea::placeholder{color:var(--antd-input-placeholder-color)}textarea.error{border-color:var(--antd-error-color)}textarea.error:hover{border-color:var(--antd-error-color)}textarea.error:focus{border-color:var(--antd-error-color)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ant-picker{border-radius:var(--small-border-radius);height:30px}.ant-picker-dropdown .ant-picker-panel-container{border:var(--medius-border-radius)}.ant-picker-dropdown .ant-picker-panel > .ant-picker-time-panel{padding-top:0}.ant-picker-dropdown\n .ant-picker-time-panel-column\n > li.ant-picker-time-panel-cell{margin-inline:0}.ant-picker-dropdown\n .ant-picker-time-panel-column\n > li.ant-picker-time-panel-cell\n .ant-picker-time-panel-cell-inner{width:auto;border-radius:0}.ant-picker-dropdown .ant-picker-time-panel-column{margin:0}.ant-picker-dropdown .ant-picker-ranges{margin-top:0px;padding:3px 10px;background-color:var(--color-fill-bg-base-3)}.ant-btn{box-shadow:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.timeRange{display:flex;align-items:center}.timeRange .timeRangeSplit{width:32px!important;height:30px;background:var(--input-fill-bg);pointer-events:none;border-left:0;border-right:0;display:inline-flex;justify-content:center;pointer-events:none;border-color:var(--antd-border-color-base);border-style:solid;border-top-width:1px;border-bottom-width:1px;align-items:center;color:var(--text-color-disabled);box-sizing:border-box}.timeRange .ant-picker:first-child{margin-right:0;border-top-right-radius:0px;border-bottom-right-radius:0px}.timeRange .ant-picker:last-child{margin-right:0;border-top-left-radius:0px;border-bottom-left-radius:0px}.timeRange\n .ant-picker-dropdown\n .ant-picker-panel-container\n .ant-picker-footer\n .ant-picker-ranges{margin-top:0px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}@keyframes loadingCircle{100%{transform:rotate(360deg)}}eo-icon{line-height:0.25em}.upload-wrapper{line-height:initial}.upload-drag-button{padding:36px 0 24px 0;border-radius:var(--larger-border-radius);background:var(--antd-upload-drag-bg);border:1px dashed var(--antd-upload-drag-border-color);cursor:pointer}.upload-drag-button:hover,\n.upload-drag-button-drag-over{background:var(--antd-upload-drag-hover-bg);border-color:var(--antd-upload-drag-hover-border-color)}.upload-drag-button-inner{display:flex;flex-direction:column;align-items:center;pointer-events:none}.upload-drag-button-icon{height:42px;font-size:153.6px}.upload-drag-text{margin-top:15px;font-size:14px;color:var(--text-color-title);line-height:20px}.upload-drag-text strong{color:var(--color-brand)}.upload-drag-tip{margin-top:8px;font-size:12px;color:var(--text-color-secondary);line-height:17px}.file-list{margin-top:12px;display:flex;flex-direction:column;gap:7px}.upload-item-container{padding:2px 8px;border-radius:var(--larger-border-radius);overflow:hidden;cursor:pointer}.upload-item-inner{position:relative;display:flex;align-items:center;gap:5px}.upload-item-icon{font-size:14px}.upload-icon{animation:loadingCircle 1s infinite linear}.upload-item-infos{flex:1;display:flex;flex-direction:column;padding-right:16px;gap:5px}.upload-item-file-name{font-size:12px;line-height:17px}.upload-item-operators{position:absolute;top:1px;right:0}.delete-icon{opacity:0;font-size:14px}.upload-item-container-uploading .upload-item-icon{color:var(--text-color-secondary)}.upload-item-container-uploading .upload-item-file-name{color:var(--text-color-default)}.upload-item-container-uploading .delete-icon{color:var(--text-color-disabled)}.upload-item-container-uploading:hover{background:var(--antd-upload-list-type-picture-bg)}.upload-item-container-uploading:hover .delete-icon{opacity:1}.upload-item-container-uploading .delete-icon:hover{color:var(--text-color-default)}.upload-item-container-done .upload-item-icon,\n.upload-item-container-done .upload-item-file-name{color:var(--text-color-default)}.upload-item-container-done .delete-icon{color:var(--text-color-disabled)}.upload-item-container-done:hover{background:var(--antd-upload-list-type-picture-hover-bg)}.upload-item-container-done:hover .upload-item-icon,\n.upload-item-container-done:hover .upload-item-file-name{color:var(--color-brand)}.upload-item-container-done:hover .delete-icon{opacity:1}.upload-item-container-done .delete-icon:hover{color:var(--color-error)}.upload-item-container-error .upload-item-icon,\n.upload-item-container-error .upload-item-file-name{color:var(--color-error)}.upload-item-container-error .delete-icon{opacity:1;color:var(--color-error)}.upload-item-container-error:hover{background:var(--palette-red-1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}eo-icon{line-height:0.25em}.upload-wrapper{line-height:initial}.file-list{margin-top:12px;display:flex;flex-direction:column;gap:7px}.image-item{padding:12px 20px;border-radius:var(--larger-border-radius);cursor:pointer}.image-item-inner{position:relative;display:flex;gap:12px}.image{width:38px;height:38px}.infos{flex:1;display:flex;flex-direction:column}.file-name{font-size:14px;font-weight:var(--font-weight-500);color:var(--text-color-default);line-height:20px;margin-bottom:4px}.progress{width:100%;height:4px;background:#ffffff;border-radius:var(--small-border-radius);margin:8px 0}.more-info{display:flex;align-items:center;gap:10px}.image-size{font-size:12px;color:var(--text-color-default);line-height:18px}.file-size{font-size:12px;font-weight:var(--font-weight-500);color:var(--text-color-disabled);line-height:18px}.progress-info{font-size:12px;font-weight:var(--font-weight-500);color:var(--text-color-disabled);line-height:18px}.error-info{font-size:12px;color:var(--color-error);line-height:18px}.operators{position:absolute;top:0;right:0}.delete-icon{opacity:0;font-size:16px}.image-item-done{background:var(--antd-upload-list-type-picture-bg);border:1px solid var(--antd-upload-list-type-picture-border-color)}.image-item-done:hover{background:var(--palette-blue-1);border-color:var(--palette-blue-1)}.image-item-done:hover .delete-icon{opacity:1}.image-item-done .delete-icon{color:var(--text-color-disabled)}.image-item-done .delete-icon:hover{color:var(--color-error)}.image-item-uploading{background:var(--antd-upload-list-type-picture-bg);border:1px dashed var(--antd-upload-list-type-picture-border-color)}.image-item-uploading:hover{background:var(--antd-upload-list-type-picture-hover-bg);border-color:var(--antd-upload-list-type-picture-hover-bg)}.image-item-uploading:hover .delete-icon{opacity:1}.image-item-uploading .delete-icon{color:var(--text-color-disabled)}.image-item-uploading .delete-icon:hover{color:var(--text-color-default)}.image-item-error{background:var(--palette-red-1);border:1px solid var(--theme-orangered-border-color)}.image-item-error .delete-icon{opacity:1;color:var(--color-error)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e,_){return\"W\"===_?e+\"周\":e+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(e,_){var t=100*e+_;return t<600?\"凌晨\":t<900?\"早上\":t<1100?\"上午\":t<1300?\"中午\":t<1800?\"下午\":\"晚上\"}};return t.default.locale(d,null,!0),d}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;"],"names":["defineElement","property","event","method","createDecorators","WrappedIcon","wrapBrick","WrappedFormItem","_Input","_RCInputRef","WeakMap","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_Input_brand","WeakSet","_T","_U","_V","_W","_X","Input","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","createRef","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_pattern","_init_extra_pattern","_init_max","_init_extra_max","_init_min","_init_extra_min","_init_message","_init_extra_message","_init_value","_init_extra_value","_init_placeholder","_init_extra_placeholder","_init_disabled","_init_extra_disabled","_init_readonly","_init_extra_readonly","_init_clearable","_init_extra_clearable","_init_autoFocus","_init_extra_autoFocus","_init_type","_init_extra_type","_init_size","_init_extra_size","_init_minLength","_init_extra_minLength","_init_maxLength","_init_extra_maxLength","_init_inputStyle","_init_extra_inputStyle","_init_changeEvent","_defineProperty","_init_extra_changeEvent","value","this","_classPrivateGetter","_get_changeEvent","emit","_init_hasAddonBefore","_init_extra_hasAddonBefore","_init_hasAddonAfter","_init_extra_hasAddonAfter","_init_hasPrefix","_init_extra_hasPrefix","_init_hasSuffix","_init_extra_hasSuffix","_init_validator","_init_extra_validator","ref","_classPrivateFieldGet","current","addonBefore","_assertClassBrand","_getSlotByName","call","addonAfter","prefix","suffix","addEventListener","hasAddonBefore","assignedElements","length","hasAddonAfter","hasSuffix","hasPrefix","name","v","_classPrivateFieldSet","label","required","pattern","max","min","message","placeholder","disabled","readonly","clearable","autoFocus","type","size","minLength","maxLength","inputStyle","focusInput","_classPrivateFieldGet2","focus","blurInput","_classPrivateFieldGet3","blur","validator","render","React","RCInput","formElement","getFormElement","curElement","renderCallback","notRender","helpBrick","labelBrick","validateState","readOnly","trigger","onInputChange","handleInputChange","_this$shadowRoot","shadowRoot","querySelector","_Input2","e","_set_changeEvent","c","_initClass","_applyDecs","styleTexts","styleText","alias","Boolean","Number","attribute","o","_","has","_checkInRHS","forwardRef","props","inputRef","useRef","inputAffixWrapperRef","setValue","useState","focused","setFocused","searchInputRef","element","Promise","resolve","then","mergeInputRef","refs","useMemo","forEach","useEffect","useImperativeHandle","options","_inputRef$current","_inputRef$current2","handleClear","_extends","exportparts","part","className","classNames","style","onClick","_inputAffixWrapperRef","_inputRef$current3","contains","target","fixValue","onChange","onFocus","handleFocus","onBlur","handleBlur","getClearIcon","hidden","lib","icon","theme","onMouseDown","preventDefault","isNil","String","SIZING_STYLE","hiddenTextarea","_Textarea","_Textarea_brand","Textarea","_init_autoSize","_init_extra_autoSize","_init_textareaStyle","_init_extra_textareaStyle","_init_InputChangeEvent","_init_extra_InputChangeEvent","_get_InputChangeEvent","autoSize","textareaStyle","TextareaComponent","autoSizeStyle","setAutoSizeStyle","textareaRef","minRows","maxRows","setAutoSize","useCallback","textareaElement","textareaStyles","uiTextNode","undefined","document","createElement","setAttribute","body","appendChild","uiTextNodeStyle","window","getComputedStyle","sizingStyle","map","getPropertyValue","join","minHeight","maxHeight","overflowY","height","scrollHeight","singleRowHeight","Math","resize","calculateAutoSizeStyle","error","display","_Textarea2","_set_InputChangeEvent","_topics","_subUid","PubSub","publish","topic","subscribers","len","func","subscribe","fn","_this$subUid","token","toString","push","unsubscribe","m","remove","item","uid","Field","detail","field","_fields","_options","_formData","_initData","_FormStore_brand","FormStore","getInstance","instance","get","set","super","Map","setField","getAllValues","allFields","_getAllFields","Object","fromEntries","entries","_ref","k","includes","filter","setInitValue","values","isEmitValuseChange","setFieldsValue","setFieldsValueByInitData","newFormData","_classPrivateFieldGet4","_ref2","onValuesChanged","changedValues","allValues","resetFields","resetValidateState","getFieldsValue","removeField","delete","validateFields","callback","results","validateField","some","result","formData","_classPrivateFieldGet5","fieldDetail","validate","validateValue","messageBody","getName","valid","isEmpty","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","checked","onWatch","realValue","needValidate","apply","keys","key","_detail","_Form","_values","_Form_brand","Form","ReactNextElement","_init_layout","_init_extra_layout","_init_labelCol","sm","span","md","lg","xl","xxl","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","_init_valuesChangeEvent","_init_extra_valuesChangeEvent","_get_valuesChangeEvent","_init_successEvent","_init_extra_successEvent","_init_errorEvent","_init_extra_errorEvent","_init_formStyle","_init_extra_formStyle","formStore","handleValuesChange","isFormElement","_setInitValue","layout","labelCol","wrapperCol","err","_get_errorEvent","_get_successEvent","runInMicrotask","queueMicrotask","runInMacrotask","setTimeout","formStyle","FormComponent","defaultEmitValuesChange","computedStyle","flexDirection","gap","_Form2","_set_valuesChangeEvent","_set_successEvent","_set_errorEvent","_FormItem","FormItem","_init_formElement","_init_extra_formElement","_init_curElement","_init_extra_curElement","_init_valuePropsName","_init_extra_valuePropsName","_init_trim","_init_extra_trim","_init_trigger","_init_extra_trigger","_init_needValidate","_init_extra_needValidate","valuePropsName","trim","disconnectedCallback","_this$formElement","formInstance","_this$formElement2","_this$formElement3","FormItemComponent","finalWrapperCol","calcWrapperColOffsetWithoutLabel","defaultValidateState","setValidateState","$bindFormItem","originTrigger","_len","args","_key","convertToItemColName","useBrick","ReactUseMultipleBricks","placement","_FormItem2","formatOptions","fields","uniqBy","op","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","WrappedGeneralIcon","_Radio","_formatOptions","_Radio_brand","_handleOptionsChange","Radio","_init_options","_init_extra_options","_init_ui","_init_extra_ui","_init_customStyle","_init_extra_customStyle","_init_useBrick","_init_extra_useBrick","_init_optionsChange","_init_extra_optionsChange","find","_get_optionsChange","ui","customStyle","RadioComponent","handleChange","optionsChange","setOptions","isEqual","option","_props$onChange","stopPropagation","dashboard","iconStyle","isBoolean","isDisabled","htmlFor","fontSize","ReactUseBrick","data","title","marginRight","verticalAlign","_Radio2","_set_optionsChange","xmlns","xmlnsXlink","width","id","x1","x2","y1","y2","offset","stopColor","x","y","filterUnits","dx","dy","in","stdDeviation","in2","operator","d","fill","fillRule","xlinkHref","stroke","strokeLinejoin","transform","opacity","WrappedTag","onCheck","onClose","applyArgs","query","arg","_Select","_Select_brand","Select","_init_mode","_init_extra_mode","_init_tokenSeparators","_init_extra_tokenSeparators","_init_maxTagCount","_init_extra_maxTagCount","_init_groupBy","_init_extra_groupBy","_init_suffix","_init_extra_suffix","_init_fields","_init_extra_fields","_init_useBackend","_init_extra_useBackend","_init_debounceSearchDelay","_init_extra_debounceSearchDelay","_init_searchEvent","_init_extra_searchEvent","_init_focusEvent","_init_extra_focusEvent","_get_searchEvent","_get_focusEvent","mode","tokenSeparators","maxTagCount","groupBy","useBackend","debounceSearchDelay","SelectComponent","onSearch","handleSearch","_props$useBackend2","onValueChange","multiple","selectRef","inputSpanRef","shouldTriggerOnValueChangeArgs","inputValue","setInputValue","inputWidth","setInputWidth","requestStatus","setRequestStatus","isDropHidden","setIsDropHidden","isFocused","setIsFocused","selectedOptions","setSelectedOptions","renderOptions","setRenderOptions","focusOptionItem","setFocusOptionItem","concat","handleSelectorClick","newValue","newOptions","handleMultipleItemClose","closeValue","handleSearchQuery","async","provider","isSearchable","onValueChangeArgs","actualArgs","fetchByProvider","actualData","handleHttpError","handleDebounceBackendSearch","debounce","computedOptions","selected","computedValue","_props$useBackend","matchToken","customValue","substring","handleKeydown","code","pop","index","findIndex","isEmptyValue","useLayoutEffect","toLocaleUpperCase","_inputSpanRef$current","_inputSpanRef$current2","offsetWidth","handleDocumentClick","path","composedPath","removeEventListener","renderSelector","tagList","ellipsisInfo","closable","slice","allOptions","reduce","pre","cur","renderLabel","color","checkable","closeable","Options","getSelectOption","_item$value","onMouseOver","onMouseLeave","group","Empty","position","spinning","_Select2","_set_searchEvent","_set_focusEvent","WrappedButton","_SubmitButtons","_SubmitButtons_brand","SubmitButtons","_init_submitText","_init_extra_submitText","_init_cancelText","_init_extra_cancelText","_init_disableAfterClick","_init_extra_disableAfterClick","_init_submitDisabled","_init_extra_submitDisabled","_init_submitType","_init_extra_submitType","_init_cancelType","_init_extra_cancelType","_init_submitEvent","_init_extra_submitEvent","_init_cancelEvent","_init_extra_cancelEvent","_get_submitEvent","disableAfterClick","submitDisabled","_get_cancelEvent","submitText","cancelText","submitType","cancelType","ButtonsComponent","onCancelClick","_handleCancelClick","onSubmitClick","_handleSubmitClick","_SubmitButtons2","_set_submitEvent","_set_cancelEvent","AntdIcon","A","_Checkbox","_Checkbox_brand","Checkbox","_init_isCustom","_init_extra_isCustom","_init_isGroup","_init_extra_isGroup","_init_optionGroups","_init_extra_optionGroups","_init_checkboxChangeEvent","_init_extra_checkboxChangeEvent","currentSelectOption","optionGroups","before","after","_get_checkboxChangeEvent","_init_optionsChangeEvent","_init_extra_optionsChangeEvent","_get_optionsChangeEvent","isCustom","isGroup","CheckboxComponent","handleCheckboxChange","setValues","collapseKeys","setCollapseKeys","setOptionGroups","_props$optionsChange","handleInputClick","i","splice","IconCheckbox","disabledIconCheckbox","disabledIconCustomCheckbox","iconCheckbox","iconCustomCheckbox","inputBox","defaultChecked","content","text","CheckboxItem","_props$options","alignItems","checkboxLabel","checkboxLabelDisabled","checkboxLabelCheck","checkboxColor","checkboxInputWrapper","checkboxInputWrapperDisabled","checkboxInputCheck","checkboxInput","checkboxInputDisabled","checkboxInner","background","borderColor","checkboxText","iconNode","mergedIcon","imgSrc","imgStyle","getIcon","CheckGroupItem","_optionGroups","newOptionsKeys","n","checkOptions","intersection","checkType","newKeys","CaretRightOutlined","rotate","rev","checkboxInputPartCheck","_props$onChange2","_props$onChange3","uniq","_Checkbox2","_set_checkboxChangeEvent","_set_optionsChangeEvent","K","NS","initializeReactI18n","en","UNIQUE","zh","WrappedForm","onValuesChange","onValidateSuccess","onValidateError","uniqueValidatorFN","properties","t","_props$curElement","fieldValue","_properties$message","Set","unique","getRealValue","_DynamicFormItem","_DynamicFormItem_brand","_handleAdd","_handleRemove","DynamicFormItem","_init_hideRemoveButton","_init_extra_hideRemoveButton","_init_disabledRemoveButton","_init_extra_disabledRemoveButton","_init_hideAddButton","_init_extra_hideAddButton","_init_disabledAddButton","_init_extra_disabledAddButton","_init_addEvent","_init_extra_addEvent","_init_removeEvent","_init_extra_removeEvent","_get_addEvent","_get_removeEvent","_this$getFormElement","hideRemoveButton","disabledRemoveButton","hideAddButton","disabledAddButton","DynamicFormItemComponent","handleDynamicFormChange","onAdd","onRemove","useTranslation","formWrapperRef","bricks","setBricks","bricksOfNoLabel","brick","omit","parsedUseBrick","flatten","handleRemoveItem","_props$onRemove","newValues","addButtonDisabled","addButtonHide","formWrapper","forms","querySelectorAll","every","hideRemoveBtn","removeBtnDisabled","category","buttonStyle","handleAddItem","_props$onAdd","_DynamicFormItem2","_set_addEvent","_set_removeEvent","WrappedInput","_GeneralSearch","_GeneralSearch_brand","_handleChange","_handleDebouncedChange","_handleSearch","GeneralSearch","_init_debounceTime","_init_extra_debounceTime","_init_change","_init_extra_change","_get_change","_init_search","_init_extra_search","_get_search","debounceTime","GeneralSearchComponent","onDebouncedChange","_onDebouncedChange","onKeyDown","slot","_GeneralSearch2","_set_change","_set_search","Colors","COLORS_MAP","green","red","blue","orange","cyan","purple","geekblue","gray","getColor","ICON","COLOR","SELECT_ICON","SEARCH_PLACEHOLDER","getLibs","unwrapProvider","searchIcons","WrappedGeneralRadio","onOptionsChange","WrappedModal","onConfirm","onCancel","onOpen","WrappedSearch","_IconSelect","_IconSelect_brand","IconSelect","IconSelectComponent","_IconSelect2","emptyIcon","modalRef","iconLibs","setIconLibs","searchParams","setSearchParams","iconList","setIconList","libs","handleSearchIcons","params","q","page","pageSize","list","previewIcon","setPreviewIcon","previewColor","setPreviewColor","_props$value","_props$value2","selectedIcon","setSelectedIcon","selectedColor","setSelectedColor","clearSelect","handleColorSelect","_modalRef$current2","open","backgroundColor","modalTitle","maskClosable","closeWhenConfirm","handleModalConfirm","_modalRef$current","close","handleModalClose","handleModalOpen","newSearchParams","iconInfo","JSON","stringify","locales","UPLOAD","FILE_UPLOADING","DRAG_UPLOAD_TEXT","EXCEEDED_FILE_SIZE_LIMIT","symbolForAbortController","Symbol","for","getUid","Date","FileSizeUnit","acceptValidator","file","accepts","validAccepts","split","lowerFileName","toLowerCase","mimeType","baseMimeType","accept","startsWith","lowerType","affixList","affix","endsWith","sizeValidator","limitSize","unit","MB","reject","sizeConst","KB","GB","Error","i18n","Upload","children","itemRender","autoUpload","uploadName","action","maxCount","overMaxCountMode","beforeUploadValidators","beforeUploadUserDataProcessor","internalFileDataList","setInternalFileDataList","fileList","beforeLoadFilter","files","handleFileUpload","originFiles","existsFilesSlice","filteredFiles","existsLength","allowCount","Infinity","validatedFiles","all","allSettled","_file","validatorResult","errors","status","reason","beforeLoadValidator","processedFileDataList","fileDataList","userData","beforeLoadProcessor","newFileDataList","fileData","FormData","abortController","AbortController","append","req","http","request","signal","response","handleUploadSuccess","_fileData","catch","handleUploadError","_fileData$errors","uploadFile","upload","click","uploadFiles","actions","_fileData$symbolForAb","removedFileData","abort","handleRemove","getImage","revokeUrl","url","Blob","URL","createObjectURL","image","Image","src","onload","revokeObjectURL","onerror","userDataProcessor","naturalWidth","naturalHeight","pipes","unitFormat","WrappedImage","_UploadImage","_UploadImage_brand","UploadImage","_init_bucketName","_init_extra_bucketName","_init_maxCount","_init_extra_maxCount","_init_multiple","_init_extra_multiple","_init_limitSize","_init_extra_limitSize","imageList","bucketName","UploadImageComponent","_UploadImage2","defaultUploadIcon","deleteIcon","closeIcon","wrapBrickImageRef","curValue","_fileDataList","getBasePath","limit","imageValidator","images","processedImages","objectName","uploadActions","onlyPreview","imgList","_item$userData","_GeneralSwitch","_GeneralSwitch_brand","GeneralSwitch","_init_checkedText","_init_extra_checkedText","_init_unCheckedText","_init_extra_unCheckedText","_init_checkedIcon","_init_extra_checkedIcon","_init_unCheckedIcon","_init_extra_unCheckedIcon","_init_switchEvent","_init_extra_switchEvent","_get_switchEvent","checkedText","unCheckedText","checkedIcon","unCheckedIcon","GeneralSwitchComponent","onSwitch","handleSwitch","setChecked","handleSwitchChange","_GeneralSwitch2","_set_switchEvent","WrappedEasyopsIcon","WrappedTooltip","_EoUploadFile","_EoUploadFile_brand","EoUploadFile","_init_accept","_init_extra_accept","_init_buttonText","_init_extra_buttonText","_init_buttonType","_init_extra_buttonType","_init_buttonIcon","_init_extra_buttonIcon","_init_overMaxCountMode","_init_extra_overMaxCountMode","_init_uploadDraggable","_init_extra_uploadDraggable","_init_draggableUploadTip","_init_extra_draggableUploadTip","_init_autoUpload","_init_extra_autoUpload","_init_url","_init_extra_url","_init_method","_init_extra_method","_init_uploadName","_init_extra_uploadName","buttonText","buttonType","buttonIcon","uploadDraggable","draggableUploadTip","EoUploadFileComponent","_EoUploadFile2","fileTextIcon","loadingIcon","useCurrentTheme","isDragOver","setIsDragOver","isMaxQuantity","onDragEnter","onDragOver","onDragLeave","onDrop","_e$dataTransfer$files","dataTransfer","Trans","i18nKey","components","total","_AutoComplete","_AutoComplete_brand","AutoComplete","_init_filterByCaption","_init_extra_filterByCaption","filterByCaption","EoAutoCompleteComponent","filteredOptions","setFilteredOptions","active","setActive","containerRef","originalOptions","walkOptions","containerElement","caption","search","_option$options","_option$options2","toLower","cloneDeep","f","_f$options","_AutoComplete2","TimePicker","InternalTimePicker","RangePicker","InternalRangePicker","assign","picker","_a","addon","renderExtraFooter","restProps","s","p","prototype","hasOwnProperty","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","internalRenderExtraFooter","_InternalPanelDoNotUseOrYouWillBeFired","dayjs","customParseFormat","_EoTimePicker","_EoTimePicker_brand","_handleOpenChange","EoTimePicker","_init_configProps","_init_extra_configProps","_init_openEvent","_init_extra_openEvent","_init_closeEvent","_init_extra_closeEvent","flag","_get_openEvent","_get_closeEvent","configProps","EoTimePickerComponent","onOpenChange","currentTheme","locale","language","enUS","zhCN","format","cahce","createCache","ConfigProvider","algorithm","darkAlgorithm","defaultAlgorithm","StyleProvider","container","cache","getPopupContainer","_time","timeString","allowClear","_EoTimePicker2","_set_openEvent","_set_closeEvent","fixStyleText","initializeI18n","NEXT_DAY","TODAY","LAST_DAY","NEXT_WEEK","THIS_WEEK","LAST_WEEK","NEXT_MONTH","THIS_MONTH","LAST_MONTH","NEXT_QUARTER","THIS_QUARTER","LAST_QUARTER","NEXT_YEAR","THIS_YEAR","LAST_YEAR","FISRT_QUARTER","SECOND_QUARTER","THIRD_QUARTER","FOURTH_QUARTER","advancedFormat","isoWeek","quarterOfYear","_EoDatePicker","_EoDatePicker_brand","_handleOk","EoDatePicker","_init_showTime","_init_extra_showTime","_init_format","_init_extra_format","_init_picker","_init_extra_picker","_init_futureDateDisabled","_init_extra_futureDateDisabled","_init_disabledDate","_init_extra_disabledDate","_init_useFastSelectBtn","_init_extra_useFastSelectBtn","_init_okEvent","_init_extra_okEvent","_get_okEvent","showTime","futureDateDisabled","disabledDate","useFastSelectBtn","EoDatePickerComponent","onOk","_EoDatePicker2","_set_okEvent","getFieldSetAndRanges","expression","fieldSet","ranges","range","isNaN","add","isInFieldSetOrRanges","fieldSetAndRanges","isEmptyFieldSetOrRanges","getFieldsFromFieldSetAndRanges","InternalStateDatePicker","confirmDisabled","setConfirmDisabled","crontab","second","minute","hour","date","month","weekday","year","hourFieldSetAndRanges","minuteFieldSetAndRanges","secondFieldSetAndRanges","yearFieldSetAndRanges","monthFieldSetAndRanges","dateFieldSetAndRanges","weekFieldSetAndRanges","isAllDate","isAllTime","handleDisabledFutureDate","isDatePicker","isQuarterPicker","PickerBtn","strs","week","quarter","currentDate","disabledFastSelect","handlePreTime","preDate","clone","subtract","LeftOutlined","handleCurTime","curDate","startOf","next","nextDisabled","handleNextTime","nextDate","RightOutlined","cellRender","info","quarterMap","selectedQuarter","currentQuarter","originNode","DatePicker","popupClassName","quarterPicker","suffixIcon","curYear","curMonth","curWeekday","isoWeekday","cron","disabledTime","curHour","curMinute","currentSecond","disabledHours","disabledMinutes","disabledSeconds","matchCurDate","isMatchDate","hourFields","minuteFields","secondFields","parseValue","moment","_date","dateString","_props$onOk","START_TIME_END_TIME_CANNOT_EQUAL","START_TIME_REQUIRED","END_TIME_REQUIRED","INIT_TIME_RANGE","startTime","endTime","_EoTimeRangePicker","presetRangeType","_EoTimeRangePicker_brand","_builtInvalidator","_defaultFormat","EoTimeRangePicker","_init_rangeType","_init_extra_rangeType","_init_selectNearDays","_init_extra_selectNearDays","_init_emitChangeOnInit","_init_extra_emitChangeOnInit","_init_presetRanges","_init_extra_presetRanges","unequal","startTimeRequired","endTimeRequired","rangeType","selectNearDays","emitChangeOnInit","presetRanges","EoTimeRangePickerComponent","_EoTimeRangePicker2","rangeRules","dateTime","Today","ThisWeek","ThisMonth","ThisQuarter","RealTimeRangePicker","times","today","initRange","initValue","setStartTime","prevStartTime","setPrevStartTime","setEndTime","prevEndTime","setPrevEndTime","start","end","timeRange","uniqueId","onStartTimeChange","time","onEndTimeChange","presetRangeMap","endOf","ThisYear","presetRange","rangeResult","compliantRanges","difference","needConfirm","pickerValue","dateRange","presets","dates","selectedTime","_dates$","_dates$2","separator","_EoColorPicker","_EoColorPicker_brand","EoColorPicker","_init_defaultValue","_init_extra_defaultValue","_init_allowClear","_init_extra_allowClear","_init_showText","_init_extra_showText","defaultValue","showText","EoColorPickerComponent","setFormat","ColorPicker","parentElement","onFormatChange","outputValue","toHexString","toRgbString","toHsbString","onClear","_EoColorPicker2","___CSS_LOADER_EXPORT___","module","exports","default","weekdays","weekdaysShort","weekdaysMin","months","monthsShort","ordinal","weekStart","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","l","ll","lll","llll","relativeTime","future","past","mm","h","hh","dd","M","MM","yy","meridiem","a","isoWeekYear","$utils","u","r","$u","utc","diff","day","bind","ceil","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","api","update","newObj","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","styleTarget","HTMLIFrameElement","contentDocument","head","getTarget","attributes","styleElement","nonce","needLayer","btoa","unescape","encodeURIComponent","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""}
|