liyu-pc-base 1.0.80 → 1.0.84
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/{SearchRender-fe931b37.js → SearchRender-c5095766.js} +14 -1
- package/dist/{SearchRender-fe931b37.js.map → SearchRender-c5095766.js.map} +1 -1
- package/dist/components/index.js +2131 -1180
- package/dist/components/index.js.map +1 -1
- package/dist/components/remotePages/index.js +21 -1
- package/dist/components/remotePages/index.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/components/FormRender/GeneralFilter/AddConditionModal/index.vue","../../src/components/FormRender/GeneralFilter/AddConditionGroupModal/index.vue","../../src/components/FormRender/GeneralFilter/data.ts","../../src/components/FormRender/GeneralFilter/index.vue","../../src/components/FormRender/FormRender3.vue","../../src/components/FormRender/FormRender.vue","../../src/components/FormRender/FormRender2.vue","../../src/api/view-model.ts","../../src/constants.ts","../../src/components/SideSearchRender/viewManage.vue","../../src/components/SideSearchRender/SideSearchRender.vue"],"sourcesContent":["<template>\n <a-modal\n title=\"添加过滤条件\"\n width=\"800px\"\n :open=\"open\"\n transitionName=\"\"\n maskTransitionName=\"\"\n :destroyOnClose=\"true\"\n :confirmLoading=\"loading\"\n centered\n @ok=\"handleSubmit\"\n @cancel=\"\n () => {\n $emit('cancel');\n }\n \"\n >\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane\n class=\"my-card\"\n v-for=\"item in tab_list\"\n :key=\"item.key\"\n :tab=\"item.tab_name\"\n >\n <div\n v-for=\"base_search_item in item.base_search_list\"\n :key=\"base_search_item.name\"\n >\n <div style=\"font-size: 14px\">{{ base_search_item.name }}</div>\n <a-space\n wrap\n style=\"padding-left: 10px; margin-bottom: 0\"\n >\n <div\n v-for=\"obj in base_search_item.group\"\n :key=\"obj.field_name\"\n >\n <a-checkbox v-model:checked=\"obj.checked\">\n <span style=\"color: #7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, reactive, ref } from 'vue';\n\nexport default defineComponent({\n name: 'AddConditionModal',\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n loading: {\n type: Boolean,\n required: false,\n },\n default_search_condition_config_list: {\n type: Array,\n required: false,\n },\n base_search_condition_config_list: {\n type: Array,\n required: false,\n },\n },\n emits: ['ok', 'cancel'],\n setup(props, { emit }) {\n const activeKey = ref('condition_tab_0');\n const tab_list = ref([]);\n props.default_search_condition_config_list.forEach((item_list: any, index: number) => {\n const base_search_list: any = JSON.parse(\n JSON.stringify(props.base_search_condition_config_list),\n );\n if (base_search_list) {\n base_search_list.forEach((base_search_list: any) => {\n base_search_list.group.forEach(i => {\n item_list.forEach((k: any) => {\n if (i.field_name == k.field_name) {\n i.operator = k.operator;\n i.checked = true;\n }\n });\n });\n });\n }\n tab_list.value.push({\n tab_name: `条件组${index + 1}`,\n key: `condition_tab_${index}`,\n base_search_list: base_search_list,\n });\n });\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n const list = [];\n tab_list.value.forEach(item => {\n const selected_group_list: any = [];\n item.base_search_list.forEach(i => {\n i.group.forEach((temp: any) => {\n if (temp.checked) {\n if (!temp.operator) {\n const operator_list_selected = get_operator_list_selected(temp);\n if (operator_list_selected.length > 0) {\n const [first] = operator_list_selected;\n temp.operator = first;\n }\n }\n selected_group_list.push(temp);\n }\n });\n });\n list.push(selected_group_list);\n });\n emit('ok', { new_list: list });\n };\n const get_operator_list_selected = (condition) => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n }\n else if (condition.operator_list) {\n return condition.operator_list;\n }\n else {\n return [];\n }\n };\n\n return {\n props,\n activeKey,\n tab_list,\n handleSubmit,\n };\n },\n});\n</script>\n<style scoped>\n.my-card {\n padding: 20px;\n background-color: #f6f7f9;\n}\n</style>\n","<template>\n <a-modal\n title=\"添加过滤条件组\"\n width=\"800px\"\n :open=\"open\"\n transitionName=\"\"\n maskTransitionName=\"\"\n :destroyOnClose=\"true\"\n :confirmLoading=\"loading\"\n centered\n @ok=\"handleSubmit\"\n @cancel=\"\n () => {\n $emit('cancel');\n }\n \"\n >\n\n <a-tab-pane class=\"my-card\" v-for=\"item in tab_list\"\n :key=\"item.key\" :tab=\"item.tab_name\">\n <div v-for=\"base_search_item in item.base_search_list\" :key=\"base_search_item.name\">\n <div style=\"font-size: 14px;\">{{base_search_item.name}}</div>\n <a-space wrap>\n <div v-for=\"obj in base_search_item.group\" :key=\"obj.field_name\">\n <a-checkbox v-model:checked=\"obj.checked\" >\n <span style=\"color:#7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane class=\"my-card\" v-for=\"item in tab_list\"\n :key=\"item.key\" :tab=\"item.tab_name\">\n <div v-for=\"base_search_item in item.base_search_list\" :key=\"base_search_item.name\">\n <div style=\"font-size: 14px;\">{{base_search_item.name}}</div>\n <a-space wrap style=\"padding-left: 10px; margin-bottom:0\">\n <div v-for=\"obj in base_search_item.group\" :key=\"obj.field_name\">\n <a-checkbox v-model:checked=\"obj.checked\" >\n <span style=\"color:#7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, reactive, ref } from 'vue';\nimport { message } from 'ant-design-vue';\nexport default defineComponent({\n name: 'AddConditionGroupModal',\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n loading: {\n type: Boolean,\n required: false,\n },\n default_search_condition_config_list: {\n type: Array,\n required: false,\n },\n base_search_condition_config_list: {\n type: Array,\n required: false,\n },\n },\n emits: ['ok', 'cancel'],\n setup(props, { emit }) {\n const tab_list = ref([]);\n const get_operator_list_selected = (condition) => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n }\n else if (condition.operator_list) {\n return condition.operator_list;\n }\n else {\n return [];\n }\n };\n props.default_search_condition_config_list?.forEach((item_list:any, index:number)=>{\n const base_search_list:any = JSON.parse(JSON.stringify(props.base_search_condition_config_list));\n if(base_search_list){\n base_search_list.forEach((base_search_list:any)=>{\n base_search_list.group.forEach(i=>{\n item_list.forEach((k:any)=>{\n if(i.field_name == k.field_name){\n i.checked = true;\n }\n });\n });\n });\n }\n tab_list.value.push({\n tab_name:`条件组${index+1}`,\n key:`condition_tab_${index}`,\n base_search_list: base_search_list,\n });\n });\n const index = props.default_search_condition_config_list?.length || 0;\n const new_search_list = [];\n props.base_search_condition_config_list.forEach((item:any)=>{\n const new_group = [];\n item.group.forEach(i=>{\n const operator_list_selected = get_operator_list_selected(i);\n if(i.default_operator){\n i.operator = i.default_operator;\n }\n if(!operator_list_selected.includes(i.operator)){\n i.operator = null;\n }\n if(!i.operator && operator_list_selected.length>0){\n const [first] = operator_list_selected;\n i.operator = first;\n }\n const new_i = { ...i, checked:false };\n new_group.push(new_i);\n });\n new_search_list.push({\n name:item.name,\n group:new_group,\n });\n });\n tab_list.value.push({\n tab_name:`条件组${index+1}`,\n key:`condition_tab_${index}`,\n base_search_list: new_search_list,\n });\n const activeKey = ref(`condition_tab_${index}`);\n\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n const list = [];\n tab_list.value.forEach(item=>{\n const selected_group_list:any = [];\n item.base_search_list.forEach(i=>{\n i.group.forEach((temp:any)=>{\n if(temp.checked){\n selected_group_list.push(temp);\n }\n });\n });\n if(selected_group_list.length>0){\n list.push(selected_group_list);\n }\n });\n if(list.length==0){\n message.error('新增条件组未增加新的字段,自动取消');\n emit('cancel');//关闭对话框\n }else{\n emit('ok', { new_list: list });\n }\n };\n\n return {\n props,\n activeKey,\n tab_list,\n handleSubmit,\n get_operator_list_selected,\n };\n },\n});\n</script>\n<style scoped>\n.my-card{\n padding:20px;\n background-color: #f6f7f9;\n}\n</style>","export const get_options_eq = t => {\n const options_eq = [\n { value: '上月', label: '上月' },\n { value: '本月', label: '本月' },\n { value: '今日', label: '今日' },\n { value: '昨日', label: '昨日' },\n { value: '期初', label: '期初' },\n ];\n return {\n options_eq,\n };\n};\n","<template>\n <a-space v-if=\"!is_massage_default\">\n <a-button\n type=\"link\"\n v-if=\"is_show_normal_search\"\n @click=\"handleShowSearchRender\"\n >\n {{ $t('普通') }}\n </a-button>\n <a-button\n v-if=\"!isShowForm\"\n type=\"link\"\n @click=\"\n () => {\n isShowForm = true;\n $emit('resize');\n }\n \"\n >\n <span class=\"expand-btn\">{{ $t('展开') }}</span>\n </a-button>\n <a-button\n v-else\n type=\"link\"\n @click=\"\n () => {\n isShowForm = false;\n $emit('resize');\n }\n \"\n >\n {{ $t('隐藏') }}\n </a-button>\n </a-space>\n <span v-show=\"!isShowForm\">\n <span\n v-for=\"(item, index) in default_search_condition_config_list\"\n :key=\"index\"\n >\n <a-tag>{{ $t('条件组') }}{{ index + 1 }}:</a-tag>\n <span\n v-for=\"condition in item\"\n :key=\"condition.field_name\"\n >\n <a-tag\n v-show=\"isShowSearchTag(index, condition)\"\n color=\"green\"\n >\n {{ condition.label }}: {{ transferValueFunc(index, condition) }}\n <close-outlined\n style=\"cursor: pointer; margin-left: 5px\"\n @click=\"handleDelSearch(index, condition.field_name)\"\n />\n </a-tag>\n </span>\n </span>\n </span>\n <div\n class=\"card\"\n v-show=\"isShowForm\"\n >\n <div\n v-for=\"(group_item, group_index) in default_search_condition_config_list\"\n :key=\"group_index\"\n >\n <div\n class=\"condition-group\"\n v-if=\"default_search_condition_config_list.length > 1\"\n >\n {{ $t('条件组') }} {{ group_index + 1 }}\n </div>\n <a-space\n :wrap=\"true\"\n align=\"center\"\n :size=\"0\"\n >\n <a-space-compact\n block\n v-for=\"(condition, k) in group_item\"\n :key=\"condition.field_name\"\n size=\"middle\"\n @mouseenter=\"handleMouseEnter(group_index, condition)\"\n @mouseleave=\"handleMouseLeave(group_index, condition)\"\n >\n <a-input-group compact>\n <a-tooltip :title=\"condition.label\">\n <a-cascader\n :value=\"condition.label\"\n style=\"width: 125px\"\n :options=\"searchItemOptionsDict[group_index]\"\n showSearch\n :allowClear=\"false\"\n :placeholder=\"$t('请选择...')\"\n @change=\"value => onChangeSearchItem(value, group_index, condition, k)\"\n />\n </a-tooltip>\n <a-tooltip :title=\"get_operator_type_map(condition.format, condition.operator)\">\n <a-select\n v-if=\"get_operator_list_selected(condition).length > 0\"\n :dropdownMatchSelectWidth=\"false\"\n v-model:value=\"condition.operator\"\n @change=\"value => onChangeOperator(value, group_index, condition)\"\n style=\"width: 100px\"\n >\n <a-select-option\n v-for=\"item in get_operator_list_selected(condition)\"\n :value=\"item\"\n :key=\"item\"\n >\n {{ get_operator_type_map(condition.format, item) }}\n </a-select-option>\n </a-select>\n </a-tooltip>\n <span style=\"width: 315px; height: 40px\">\n <template\n v-if=\"['is_or_not_blank_or_null', 'is_or_not_null'].includes(condition.operator)\"\n >\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'select',\n mode: 'default',\n format: 'choices',\n class_name: 'str',\n placeholder: '',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"is_or_not_blank_or_null_options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"['input'].includes(condition.format)\">\n <template\n v-if=\"condition.operator === 'between' || condition.operator === 'notbetween'\"\n >\n <template v-if=\"condition.type === 'datepicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, type: 'rangepicker', format: condition.dateFormat }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.type === 'monthpicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'monthrangepicker',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else>\n <a-flex>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name][0]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n <div class=\"range\">~</div>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name][1]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </a-flex>\n </template>\n </template>\n <template v-else-if=\"condition.operator === '_eq'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'select',\n mode: 'default',\n format: 'choices',\n class_name: 'str',\n placeholder: '',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"options_eq\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template\n v-else-if=\"condition.type === 'datepicker' || condition.type === 'monthpicker'\"\n >\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, format: condition.dateFormat }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n </template>\n <template v-else-if=\"['choices', 'remote'].includes(condition.format)\">\n <template v-if=\"condition.format === 'choices'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.format === 'remote'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, name: condition?.field_name }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n </template>\n </span>\n <span class=\"close-icon\">\n <a-tooltip\n title=\"删除此条件\"\n v-if=\"\n deleteBtnDict[group_index][condition.field_name] &&\n (default_search_condition_config_list[0].length > 1 ||\n default_search_condition_config_list.length > 1) &&\n !is_massage_default\n \"\n >\n <close-circle-outlined @click=\"handleDeleteFormItem(group_index, condition)\" />\n </a-tooltip>\n </span>\n </a-input-group>\n </a-space-compact>\n </a-space>\n <a-divider\n class=\"divider\"\n style=\"margin: 0\"\n v-if=\"\n default_search_condition_config_list.length > 1 &&\n group_index != default_search_condition_config_list.length - 1\n \"\n >\n 或\n </a-divider>\n </div>\n </div>\n <div\n class=\"search-bar\"\n v-show=\"isShowForm && !is_massage_default\"\n >\n <a-space>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddConditions\"\n >\n {{ $t('添加条件') }}\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddGroupCondition\"\n >\n {{ $t('添加条件组') }}\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleSearch\"\n >\n {{ $t('查询') }}\n </a-button>\n </a-space>\n </div>\n\n <add-condition-modal\n v-if=\"addConditionModal.open\"\n :open=\"addConditionModal.open\"\n :default_search_condition_config_list=\"default_search_condition_config_list\"\n :base_search_condition_config_list=\"base_search_condition_config_list\"\n @ok=\"handleAddConditionOk\"\n @cancel=\"handleAddConditionCancel\"\n />\n\n <add-condition-group-modal\n v-if=\"addConditionGroupModal.open\"\n :open=\"addConditionGroupModal.open\"\n :default_search_condition_config_list=\"default_search_condition_config_list\"\n :base_search_condition_config_list=\"base_search_condition_config_list\"\n @ok=\"handleAddGroupConditionOK\"\n @cancel=\"handleAddGroupConditionCancel\"\n />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n onMounted,\n reactive,\n ref,\n computed,\n watch,\n PropType,\n nextTick,\n onUnmounted,\n} from 'vue';\nimport FieldRender from 'liyu-pc-base/components/FormRender/FieldRender.vue';\nimport AddConditionModal from 'liyu-pc-base/components/FormRender/GeneralFilter/AddConditionModal/index.vue';\nimport AddConditionGroupModal from 'liyu-pc-base/components/FormRender/GeneralFilter/AddConditionGroupModal/index.vue';\nimport { isNotEmpty } from 'liyu-pc-base/utils/function';\nimport {\n CloseCircleOutlined,\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n} from '@ant-design/icons-vue';\nimport { useI18n } from 'vue-i18n';\nimport { get_options_eq } from 'liyu-pc-base/components/FormRender/GeneralFilter/data';\nimport moment from 'moment';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\nimport { get_operator_type_map } from 'liyu-pc-base/utils/function';\n\nexport default defineComponent({\n name: 'GeneralFilter',\n props: {\n base_search_condition_config_list: {\n type: Array as PropType<any[]>,\n },\n default_search_condition_config_list: {\n type: Array as PropType<any[]>,\n },\n is_show_normal_search: {\n type: Boolean,\n default: () => false,\n },\n is_clear_model: {\n type: Boolean,\n default: () => false,\n },\n is_show_advantage: {\n type: Boolean,\n default: () => false,\n },\n is_massage_default: {\n type: Boolean,\n default: () => false,\n },\n eventBus: {\n type: Object,\n required: false,\n },\n },\n components: {\n FieldRender2,\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n FieldRender,\n AddConditionGroupModal,\n AddConditionModal,\n CloseCircleOutlined,\n },\n emits: [\n 'search',\n 'resize',\n 'update_default_search_condition_config_list',\n 'onShowSearchRender',\n 'delSearch',\n 'onChangeValue',\n 'update:is_clear_model',\n ],\n setup(props, { emit }) {\n const isShowForm = ref(props.is_massage_default);\n const labelModel = ref({});\n const { t } = useI18n();\n const { options_eq } = get_options_eq(t);\n //条件组-->\n const condition_model_dict = ref([]);\n const validateInfos = {};\n const source_default_search_condition_config_list = ref(null);\n const is_or_not_blank_or_null_options = ref([\n { value: 'yes', label: t('is_or_not_blank_or_null.yes') },\n { value: 'no', label: t('is_or_not_blank_or_null.no') },\n ]);\n if (!source_default_search_condition_config_list.value) {\n source_default_search_condition_config_list.value = JSON.parse(\n JSON.stringify(props.default_search_condition_config_list),\n );\n }\n\n const operator_type_count_map = {\n between: 2,\n gt: 1,\n lt: 1,\n gte: 1,\n lte: 1,\n in: 0,\n eq: 1,\n _eq: 1,\n contains: 1,\n icontains: 1,\n startswith: 1,\n notbetween: 2,\n notin: 0,\n notcontains: 1,\n not_eq: 1,\n not_blank_not_null: 1,\n json_list_not_blank_not_null: 1,\n json_list_is_blank_is_null: 1,\n is_or_not_blank_or_null: 1,\n is_or_not_null: 1,\n };\n const is2DArray = arr => {\n const [first] = [arr];\n return Array.isArray(first) && arr.every(subArray => Array.isArray(subArray));\n };\n let old_operator = null;\n const onChangeOperator = (operator, index, condition) => {\n //不同操作类型,设置不同的默认值\n // if (condition_model_dict.value[index][condition.field_name]) {\n // return;\n // }\n const value = condition_model_dict.value[index][condition.field_name];\n if (get_operator_list_selected(condition).includes('_eq')) {\n if (operator == '_eq') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == '_eq') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (get_operator_list_selected(condition).includes('not_blank_not_null')) {\n if (operator == 'not_blank_not_null') {\n condition_model_dict.value[index][condition.field_name] = '是';\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == 'not_blank_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (\n get_operator_list_selected(condition).includes('is_or_not_blank_or_null') ||\n get_operator_list_selected(condition).includes('is_or_not_null')\n ) {\n if (operator == 'is_or_not_blank_or_null' || operator == 'is_or_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == 'is_or_not_blank_or_null' || old_operator == 'is_or_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (value instanceof Array && is2DArray(value)) {\n // 级联类型,默认值默认清空\n condition_model_dict.value[index][condition.field_name] = null;\n } else if (operator_type_count_map[operator] == 1) {\n if (value instanceof Array) {\n const [first] = condition_model_dict.value[index][condition.field_name];\n if (isNotEmpty(first)) {\n condition_model_dict.value[index][condition.field_name] = first;\n } else {\n condition_model_dict.value[index][condition.field_name] = null;\n }\n } else {\n condition_model_dict.value[index][condition.field_name] = value ? value : null;\n }\n const is = options_eq.some(\n obj => obj.value === condition_model_dict.value[index][condition.field_name],\n );\n if (is) {\n condition_model_dict.value[index][condition.field_name] = null;\n }\n } else if (operator_type_count_map[operator] == 2) {\n if (condition_model_dict.value[index][condition.field_name] instanceof Array) {\n const [first, seconds] = condition_model_dict.value[index][condition.field_name];\n condition_model_dict.value[index][condition.field_name] = [first, seconds];\n } else if (condition_model_dict.value[index][condition.field_name]) {\n const first = condition_model_dict.value[index][condition.field_name];\n condition_model_dict.value[index][condition.field_name] = [first, null];\n } else {\n condition_model_dict.value[index][condition.field_name] = [null, null];\n }\n const is = options_eq.some(\n obj => obj.value === condition_model_dict.value[index][condition.field_name][0],\n );\n if (is) {\n condition_model_dict.value[index][condition.field_name] = [null, null];\n }\n }\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n // console.log('onChangeValue');\n };\n\n const addConditionModal = reactive({\n open: false,\n });\n const handleAddConditions = () => {\n addConditionModal.open = true;\n };\n const handleAddConditionOk = (data: any) => {\n props.default_search_condition_config_list.forEach((item: any, index: any) => {\n data.new_list.forEach((item1: any, index1: any) => {\n if (index == index1) {\n item.forEach((item2: any) => {\n item1.forEach((item3: any) => {\n if (item2.field_name == item3.field_name) {\n item3.value = item2.value;\n item3.operator = item2.operator;\n }\n });\n });\n }\n });\n });\n //保存后处理 new_list\n emit('update_default_search_condition_config_list', { new_list: data.new_list });\n // refreshCondition();\n addConditionModal.open = false;\n };\n const handleAddConditionCancel = () => {\n addConditionModal.open = false;\n };\n\n const addConditionGroupModal = reactive({\n open: false,\n });\n const handleAddGroupCondition = () => {\n addConditionGroupModal.open = true;\n };\n const handleAddGroupConditionOK = (data: any) => {\n props.default_search_condition_config_list.forEach((item: any, index: any) => {\n data.new_list.forEach((item1: any, index1: any) => {\n if (index == index1) {\n item.forEach((item2: any) => {\n item1.forEach((item3: any) => {\n if (item2.field_name == item3.field_name) {\n item3.value = item2.value;\n item3.operator = item2.operator;\n }\n });\n });\n }\n });\n });\n emit('update_default_search_condition_config_list', { new_list: data.new_list });\n // refreshCondition();\n addConditionGroupModal.open = false;\n };\n const handleAddGroupConditionCancel = () => {\n addConditionGroupModal.open = false;\n };\n const handleSearch = () => {\n isShowForm.value = false;\n console.log('condition_model_dict.value', condition_model_dict.value);\n emit('search', { model: condition_model_dict.value });\n };\n const refreshCondition = (update_all = false) => {\n if (props.base_search_condition_config_list.length == 0) {\n return;\n }\n props.default_search_condition_config_list?.forEach((item_list: any, index: number) => {\n deleteBtnDict[index] = {};\n if (!condition_model_dict.value[index]) {\n condition_model_dict.value[index] = {};\n }\n props.base_search_condition_config_list.forEach((i: any) => {\n i.group?.forEach((group_item: any) => {\n item_list.forEach((k: any) => {\n if (group_item.field_name == k.field_name) {\n const value = condition_model_dict.value[index][k.field_name];\n if (value == undefined || update_all) {\n if (operator_type_count_map[k.operator] == 1) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = null;\n }\n } else if (operator_type_count_map[k.operator] == 2) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = [null, null];\n }\n } else if (operator_type_count_map[k.operator] == 0) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = [];\n }\n }\n }\n Object.assign(k, { ...group_item, operator: k.operator }); // 保持表单项原有选择的查询条件\n if (k.operator == 'eq' && k.mode != 'default') {\n group_item.mode = 'default';\n Object.assign(k, { model: 'default' });\n } else if (['in', 'notin'].includes(k.operator) && k.mode != 'multiple') {\n group_item.mode = 'multiple';\n Object.assign(k, { model: 'multiple' });\n }\n }\n });\n });\n });\n });\n };\n const onFilterChanged = () => {\n refreshCondition(true);\n };\n\n const deleteBtnDict = reactive({}); // 表单项的删除按钮是否显示\n const handleMouseEnter = (index: any, form_item: any) => {\n deleteBtnDict[index][form_item.field_name] = true;\n };\n const handleMouseLeave = (index: any, form_item: any) => {\n deleteBtnDict[index][form_item.field_name] = false;\n };\n const handleDeleteFormItem = (index: any, condition: any) => {\n //default_search_condition_config_list 不允许删除最后一个条件组的条件项\n const new_list = [];\n props.default_search_condition_config_list.forEach((item_list: any, index_: number) => {\n if (index_ !== index) {\n new_list.push(item_list);\n } else {\n const list = [];\n item_list.forEach((k: any) => {\n if (k.field_name !== condition.field_name) {\n list.push(k);\n }\n });\n if (list.length > 0) {\n new_list.push(list);\n }\n }\n });\n emit('update_default_search_condition_config_list', { new_list: new_list });\n // refreshCondition();\n };\n const handleDelSearch = (index, filed_name) => {\n if (condition_model_dict.value[index][filed_name] instanceof Array) {\n condition_model_dict.value[index][filed_name].length = 0;\n } else {\n condition_model_dict.value[index][filed_name] = null;\n }\n emit('onChangeValue', { model: condition_model_dict.value });\n emit('delSearch', { model: JSON.parse(JSON.stringify(condition_model_dict.value)) });\n };\n\n const onChangeSearchItem = (value: any, group_index, condition: any, condition_index) => {\n if (value instanceof Array && value.length > 0) {\n const selected_field_name = value[value.length - 1];\n let new_condition = null;\n props.base_search_condition_config_list.forEach(item_list => {\n item_list.group.forEach(i => {\n if (i.field_name === selected_field_name) {\n new_condition = JSON.parse(JSON.stringify(i));\n if (new_condition.default_operator) {\n new_condition.operator = new_condition.default_operator;\n } else if (get_operator_list_selected(new_condition).length > 0) {\n const [first] = get_operator_list_selected(new_condition);\n new_condition.operator = first;\n }\n }\n });\n });\n\n if (new_condition) {\n const new_list = JSON.parse(JSON.stringify(props.default_search_condition_config_list));\n new_list.forEach((item_list, i) => {\n if (i === group_index) {\n item_list.forEach((item, k) => {\n if (item.field_name == condition.field_name && k == condition_index) {\n item_list.splice(k, 1, new_condition);\n delete condition_model_dict.value[group_index][item.field_name];\n }\n });\n }\n });\n emit('update_default_search_condition_config_list', {\n new_list: new_list,\n });\n }\n refreshCondition();\n }\n };\n\n const searchItemOptionsDict: any = computed(() => {\n const dict = {};\n props.default_search_condition_config_list.forEach((group_item, index) => {\n dict[index] = [];\n const filter_field_name_list = group_item.map(item => item.field_name);\n props.base_search_condition_config_list.forEach(item => {\n const filter_list = item.group.filter(\n i => !filter_field_name_list.includes(i.field_name),\n );\n const o = {\n value: item.name,\n label: item.name,\n children: filter_list.map(i => {\n return {\n value: i.field_name,\n label: i.label,\n };\n }),\n };\n dict[index].push(o);\n });\n });\n return dict;\n });\n\n const isShowSearchTag = (index, condition) => {\n const value = condition_model_dict.value[index][condition.field_name];\n if (value instanceof Array) {\n const [first] = value;\n if (isNotEmpty(first)) {\n return true;\n }\n } else if (isNotEmpty(value)) {\n return true;\n }\n return false;\n };\n\n const transferValueFunc = (index, condition) => {\n const str_list: any = [];\n const value = condition_model_dict.value[index][condition.field_name];\n if (\n condition.operator === 'is_or_not_blank_or_null' ||\n condition.operator === 'is_or_not_null'\n ) {\n if (value === 'yes') {\n return t('is_or_not_blank_or_null.yes');\n } else {\n return t('is_or_not_blank_or_null.no');\n }\n } else if (condition.operator === '_eq') {\n if (['上月', '本月', '今日', '昨日', '期初'].includes(value)) {\n return t(value);\n }\n } else if (labelModel.value[condition.field_name] != undefined) {\n return `${get_operator_type_map(condition.format, condition.operator)} ${\n labelModel.value[condition.field_name]\n }`;\n } else if (value instanceof Array && condition.field_name_list instanceof Array) {\n let transfer_value;\n if (condition.field_name_list) {\n if (value instanceof Array) {\n transfer_value = value.join(',');\n } else {\n transfer_value = value;\n }\n }\n return `${get_operator_type_map(condition.format, condition.operator)} ${transfer_value}`;\n } else if (value instanceof Array && condition.options instanceof Array) {\n value.forEach(item => {\n condition.options.forEach(i => {\n if (item == i.value) {\n str_list.push(i.label);\n }\n });\n });\n return `${get_operator_type_map(condition.format, condition.operator)} ${str_list.join(\n ',',\n )}`;\n } else {\n let transfer_value;\n if (condition.options) {\n condition.options.forEach(i => {\n if (value == i.value) {\n transfer_value = i.label;\n }\n });\n } else if (condition.type == 'monthpicker' && condition.dateFormat) {\n if (value instanceof Array) {\n const str_list = [];\n value.forEach(i => {\n if (i) {\n str_list.push(moment(i).format(condition.dateFormat));\n } else {\n str_list.push(i);\n }\n });\n transfer_value = str_list.join(',');\n } else {\n transfer_value = moment(value).format(condition.dateFormat);\n }\n } else {\n transfer_value = value;\n }\n return `${get_operator_type_map(condition.format, condition.operator)} ${transfer_value}`;\n }\n };\n\n const handleShowSearchRender = () => {\n emit('onShowSearchRender');\n };\n\n const get_operator_list_selected = condition => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n } else if (condition.operator_list) {\n return condition.operator_list;\n } else {\n return [];\n }\n };\n\n watch(\n () => condition_model_dict.value,\n () => {\n emit('onChangeValue', { model: condition_model_dict.value });\n // console.log('onChangeValue_watch');\n },\n { deep: true },\n );\n watch(\n () => props.default_search_condition_config_list,\n () => {\n if (props.default_search_condition_config_list?.length == 0) {\n emit('update_default_search_condition_config_list', {\n new_list: source_default_search_condition_config_list.value,\n });\n return;\n }\n refreshCondition();\n },\n { deep: true },\n );\n watch(\n () => props.base_search_condition_config_list,\n () => {\n refreshCondition();\n },\n { deep: true },\n );\n\n watch(\n () => props.is_clear_model,\n () => {\n if (props.is_clear_model) {\n condition_model_dict.value = {};\n refreshCondition();\n emit('update:is_clear_model', false);\n }\n },\n );\n onMounted(() => {\n refreshCondition();\n if (props.eventBus) {\n props.eventBus.on('filterChange', onFilterChanged);\n }\n });\n onUnmounted(() => {\n if (props.eventBus) {\n props.eventBus.off('filterChange', onFilterChanged);\n }\n });\n return {\n props,\n t,\n isShowForm,\n labelModel,\n get_operator_type_map,\n condition_model_dict,\n addConditionModal,\n handleAddConditions,\n handleAddConditionOk,\n handleAddConditionCancel,\n onChangeOperator,\n handleAddGroupCondition,\n handleSearch,\n\n addConditionGroupModal,\n handleAddGroupConditionOK,\n handleAddGroupConditionCancel,\n validateInfos,\n\n deleteBtnDict,\n handleMouseEnter,\n handleMouseLeave,\n handleDeleteFormItem,\n handleDelSearch,\n\n searchItemOptionsDict,\n onChangeSearchItem,\n transferValueFunc,\n isShowSearchTag,\n handleShowSearchRender,\n options_eq,\n get_operator_list_selected,\n is_or_not_blank_or_null_options,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.card {\n overflow: auto;\n max-height: 300px;\n background: #f2f5f7;\n}\n\n.condition-group {\n padding: 5px;\n}\n\n.range {\n margin-top: 5px;\n}\n\n.close-icon {\n width: 15px;\n margin-top: 5px;\n margin-left: 5px;\n color: red;\n}\n\n.search-bar {\n background: #f2f5f7;\n text-align: right;\n}\n\n:deep(.divider .ant-divider) {\n margin: 0;\n}\n</style>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n :layout=\"form.settings.layout\"\n scrollToFirstError\n class=\"cards\"\n :validateTrigger=\"false\"\n >\n <template\n v-for=\"(row, index) in form.dynamicFieldList\"\n :key=\"index\"\n >\n <a-card\n :body-style=\"{ padding: '10px 10px 0' }\"\n style=\"margin-bottom: 5px\"\n >\n <template\n v-if=\"row.group_name && form.dynamicFieldList.length > 1\"\n #title\n >\n {{ row.group_name }}\n </template>\n <a-row\n :gutter=\"5\"\n type=\"flex\"\n >\n <a-col\n v-for=\"(field_item, i) in row?.children\"\n :key=\"i\"\n :span=\"\n field_item.is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0\n \"\n :offset=\"field_item.offset\"\n :push=\"field_item.push\"\n :pull=\"field_item.pull\"\n >\n <field-render-2\n v-model:value=\"model[field_item.name]\"\n v-model:is_show_field=\"field_item['is_show_field']\"\n :field=\"field_item\"\n :formModel=\"model\"\n :outModel=\"outModel\"\n :key=\"field_item.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n />\n </a-col>\n </a-row>\n </a-card>\n <!-- <a-row-->\n <!-- v-else-->\n <!-- :gutter=\"5\"-->\n <!-- type=\"flex\"-->\n <!-- >-->\n <!-- <a-col-->\n <!-- v-for=\"(field_item, i) in row?.children\"-->\n <!-- :key=\"i\"-->\n <!-- :span=\"-->\n <!-- field_item.is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0-->\n <!-- \"-->\n <!-- :offset=\"field_item.offset\"-->\n <!-- :push=\"field_item.push\"-->\n <!-- :pull=\"field_item.pull\"-->\n <!-- >-->\n <!-- <field-render-2-->\n <!-- v-model:value=\"model[field_item.name]\"-->\n <!-- v-model:is_show_field=\"field_item['is_show_field']\"-->\n <!-- :field=\"field_item\"-->\n <!-- :formModel=\"model\"-->\n <!-- :outModel=\"outModel\"-->\n <!-- :key=\"field_item.name\"-->\n <!-- :validateInfos=\"validateInfos\"-->\n <!-- :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"-->\n <!-- @update_model=\"onUpdateModel\"-->\n <!-- @update_name2=\"onUpdateName2\"-->\n <!-- />-->\n <!-- </a-col>-->\n <!-- </a-row>-->\n </template>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\n\nexport default defineComponent({\n name: 'FormRender3',\n components: {\n FieldRender2,\n },\n props: {\n model: {\n type: Object,\n required: true,\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n default: () => {},\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n emits: ['update_model', 'update_model'],\n setup(props, { emit }) {\n if (props.form.watch) {\n for (let k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n\n const validate = () => {\n return (props.form as any).validate();\n };\n const onUpdateModel = params => {\n emit('update_model', params);\n };\n const onUpdateName2 = params => {\n emit('update_model', params);\n };\n return {\n validate,\n onUpdateModel,\n onUpdateName2,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.cards {\n ::v-deep(.ant-card-head) {\n padding: 0 8px;\n min-height: 44px;\n background-color: rgba(0, 0, 0, 0.02);\n }\n}\n</style>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n :layout=\"form.settings.layout\"\n :validateTrigger=\"false\"\n :label-col=\"\n form.settings.layout == 'vertical'\n ? undefined\n : form.settings.labelCol\n ? form.settings.labelCol\n : form.settings.col && form.settings.col.length > 0\n ? { span: 6 }\n : { span: 4 }\n \"\n :wrapper-col=\"\n form.settings.layout == 'vertical'\n ? undefined\n : form.settings.wrapperCol\n ? form.settings.wrapperCol\n : form.settings.col && form.settings.col.length > 0\n ? { span: 18 }\n : { span: 20 }\n \"\n :labelAlign=\"form.settings.labelAlign\"\n scrollToFirstError\n >\n <a-row\n :gutter=\"20\"\n style=\"margin: 0\"\n >\n <template v-if=\"form.settings.col && form.settings.col.length > 0\">\n <a-col\n v-for=\"col in fieldList\"\n :xl=\"24 / fieldList.length\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <field-render\n v-for=\"field in form.fields.slice(col[0], col[1])\"\n v-model:value=\"model[field.name]\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </a-col>\n </template>\n <a-col\n v-if=\"!form.settings.col || form.settings.col.length === 0\"\n :xl=\"24\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <template v-for=\"field in form.fields\">\n <field-render\n v-model:value=\"model[field.name]\"\n v-model:label=\"model[field.name2]\"\n v-if=\"field.name2\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n <field-render\n v-model:value=\"model[field.name]\"\n v-else\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </template>\n </a-col>\n </a-row>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\n\nexport default defineComponent({\n name: 'FormRender',\n components: {},\n props: {\n model: {\n type: Object,\n required: true,\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n setup(props) {\n if (props.form.watch) {\n for (const k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n },\n\n data() {\n return {\n fieldList: [] as any[],\n };\n },\n methods: {\n validate() {\n return (this.$refs.form as any).validate();\n },\n reset() {\n (this.$refs.form as any).resetFields();\n },\n disable(name: string | number) {\n // eslint-disable-next-line vue/no-mutating-props\n this.form.fields[name].disabled = true;\n },\n disableAll() {\n this.form.fields.forEach((item: any) => {\n item.disabled = true;\n });\n },\n },\n created() {\n let a = 0;\n if (this.form.settings.col && this.form.settings.col.length > 0) {\n this.form.settings.col.forEach((item: number, i: number) => {\n a = a + item;\n if (i === 0) {\n this.fieldList.push([0, a]);\n } else {\n this.fieldList.push([a - item, a]);\n }\n });\n }\n },\n});\n</script>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n scrollToFirstError\n >\n <a-row\n gutter=\"5\"\n v-for=\"row in form.fieldList\"\n type=\"flex\"\n >\n <a-col\n v-for=\"field in row\"\n :span=\"field.span\"\n >\n <template v-for=\"field in form.fields\">\n <field-render\n v-model:value=\"model[field.name]\"\n v-model:label=\"model[field.name2]\"\n v-if=\"field.name2\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n <field-render\n v-model:value=\"model[field.name]\"\n v-else\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </template>\n </a-col>\n </a-row>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\n\nexport default defineComponent({\n name: 'FormRender2',\n components: {},\n props: {\n model: {\n type: Object,\n required: true,\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n setup(props) {\n if (props.form.watch) {\n for (const k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n },\n\n data() {\n return {};\n },\n methods: {\n validate() {\n return (this.$refs.form as any).validate();\n },\n reset() {\n (this.$refs.form as any).resetFields();\n },\n disable(name: string | number) {\n // eslint-disable-next-line vue/no-mutating-props\n this.form.fields[name].disabled = true;\n },\n disableAll() {\n this.form.fields.forEach((item: any) => {\n item.disabled = true;\n });\n },\n },\n created() {},\n});\n</script>\n","import { useRequest } from 'liyu-pc-base/init-plugin';\nimport type { PageResult } from 'liyu-pc-base/api/typing';\n\nexport async function create_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/create_view_settings', params);\n}\n\nexport async function update_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/update_view_settings', params);\n}\n\nexport async function refresh_view_settings_cache(params: Record<string, any>) {\n return useRequest().post('/view/refresh_view_settings_cache', params);\n}\n\nexport async function set_view_settings_default(params: Record<string, any>) {\n return useRequest().post('/view/set_view_settings_default', params);\n}\n\nexport async function delete_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/delete_view_settings', params);\n}\n\nexport async function recover_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/recover_view_settings', params);\n}\n\nexport async function get_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/get_view_settings', params);\n}\n\nexport async function create_user_view(params: Record<string, any>) {\n return useRequest().post('/view/create_user_view', params);\n}\n\nexport async function update_user_view(params: Record<string, any>) {\n return useRequest().post('/view/update_user_view', params);\n}\n\nexport async function delete_user_view(params: Record<string, any>) {\n return useRequest().post('/view/delete_user_view', params);\n}\n\nexport async function recover_user_view(params: Record<string, any>) {\n return useRequest().post('/view/recover_user_view', params);\n}\n\nexport async function get_user_view(params: Record<string, any>) {\n return useRequest().post('/view/get_user_view', params);\n}\n\nexport async function get_view_settings_for_user(params: Record<string, any>) {\n return useRequest().post('/view/get_view_settings_for_user', params);\n}\n\nexport async function change_view_settings_sort(params: Record<string, any>) {\n return useRequest().post('/view/change_view_settings_sort', params);\n}\n\nexport async function query_view_settings_list(params?: {\n [key: string]: any;\n}): Promise<PageResult> {\n return useRequest().post('/view/query_view_settings_list', params);\n}\n\nexport async function query_user_view_list(params?: { [key: string]: any }): Promise<PageResult> {\n return useRequest().post('/view/query_user_view_list', params);\n}\n","export const CUSTOM_VIEW_DATA_USER = 'customviewdatauser';\n","<template>\n <a-card :body-style=\"{ padding: 0, height: height + 96 + 'px', overflowY: 'auto' }\">\n <a-collapse\n v-model:activeKey=\"viewKey\"\n :bordered=\"false\"\n class=\"collapses\"\n style=\"background: rgb(255, 255, 255)\"\n >\n <template #expandIcon=\"{ isActive }\">\n <caret-right-outlined :rotate=\"isActive ? 90 : 0\" />\n </template>\n <a-collapse-panel\n :key=\"'1'\"\n :style=\"customStyle\"\n >\n <template #header>\n <span style=\"font-weight: 700\">{{ $t('个人视图') }}</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>{{ $t('个人视图管理') }}</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('personal')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>{{ $t('新建个人视图') }}</template>\n <plus-outlined @click.stop=\"addView('personal')\" />\n </a-tooltip>\n </template>\n <a-table\n v-if=\"personData.length > 0\"\n :columns=\"columns\"\n :customRow=\"customRow\"\n :dataSource=\"personData\"\n :pagination=\"false\"\n :showHeader=\"false\"\n :size=\"'small'\"\n >\n <template #bodyCell=\"{ column, record }\">\n <div\n class=\"table\"\n v-if=\"column.dataIndex === 'name'\"\n style=\"width: 100%; cursor: pointer\"\n @click=\"changeView(record)\"\n >\n <a-tooltip\n :title=\"record.name\"\n :color=\"appStore.primaryColor\"\n placement=\"left\"\n :destroyTooltipOnHide=\"true\"\n :overlayStyle=\"{ maxWidth: '200px' }\"\n >\n <div style=\"max-width: 130px; float: left; white-space: nowrap; overflow: hidden\">\n {{ record.name }}\n </div>\n </a-tooltip>\n <span\n class=\"num\"\n style=\"float: right\"\n :style=\"\n currentViewObj.id === record.id ? { color: '#1890ff', fontWeight: 'bold' } : {}\n \"\n >\n {{ record.num }}\n </span>\n <a-dropdown class=\"dropdown\">\n <span\n style=\"float: right; font-weight: 800\"\n @click.stop=\"\"\n >\n · · ·\n </span>\n <template #overlay>\n <a-menu>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleSubmit(record, 'personal')\"\n >\n {{ $t('编辑') }}\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n {{ $t('分享视图') }}\n </a>\n </a-menu-item>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleDelet(record)\"\n >\n {{ $t('删除') }}\n </a>\n </a-menu-item>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n </template>\n </a-table>\n </a-collapse-panel>\n <a-collapse-panel\n :key=\"'2'\"\n :style=\"customStyle\"\n >\n <template #header>\n <span style=\"font-weight: 700\">{{ $t('公共视图') }}</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>{{ $t('公共视图管理') }}</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('public')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>{{ $t('新建公共视图') }}</template>\n <plus-outlined @click.stop=\"addView('public')\" />\n </a-tooltip>\n </template>\n <a-table\n v-if=\"publicData.length > 0\"\n :columns=\"columns\"\n :customRow=\"customRow\"\n :dataSource=\"publicData\"\n :pagination=\"false\"\n :showHeader=\"false\"\n :size=\"'small'\"\n >\n <template #bodyCell=\"{ column, record }\">\n <div\n class=\"table\"\n v-if=\"column.dataIndex === 'name'\"\n style=\"width: 100%; cursor: pointer\"\n @click=\"changeView(record)\"\n >\n <a-tooltip\n :title=\"record.name\"\n :color=\"appStore.primaryColor\"\n placement=\"left\"\n :destroyTooltipOnHide=\"true\"\n :overlayStyle=\"{ maxWidth: '200px' }\"\n >\n <div style=\"max-width: 130px; float: left; white-space: nowrap; overflow: hidden\">\n {{ record.name }}\n </div>\n </a-tooltip>\n <span\n class=\"num\"\n style=\"float: right\"\n :style=\"\n currentViewObj.id === record.id ? { color: '#1890ff', fontWeight: 'bold' } : {}\n \"\n >\n {{ record.num }}\n </span>\n <a-dropdown class=\"dropdown\">\n <span\n style=\"float: right; font-weight: 800\"\n @click.stop=\"\"\n >\n · · ·\n </span>\n <template #overlay>\n <a-menu>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleSubmit(record, 'public')\"\n >\n {{ $t('编辑') }}\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n {{ $t('分享视图') }}\n </a>\n </a-menu-item>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleDelet(record)\"\n >\n {{ $t('删除') }}\n </a>\n </a-menu-item>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n </template>\n </a-table>\n </a-collapse-panel>\n </a-collapse>\n </a-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n createVNode,\n defineComponent,\n onActivated,\n onMounted,\n onUnmounted,\n reactive,\n ref,\n watch,\n} from 'vue';\nimport {\n CaretRightOutlined,\n ExclamationCircleOutlined,\n PlusOutlined,\n SettingOutlined,\n} from '@ant-design/icons-vue';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { message, Modal } from 'ant-design-vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport { useAppStore } from 'liyu-pc-base/init-plugin';\nimport {\n change_view_settings_sort,\n create_view_settings,\n delete_view_settings,\n query_view_settings_list,\n refresh_view_settings_cache,\n set_view_settings_default,\n update_view_settings,\n} from 'liyu-pc-base/api/view-model';\nimport { sourceStore } from 'liyu-pc-base/init-plugin';\nimport { copyValue } from 'liyu-pc-base/utils/function';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport {\n getPageConfig,\n getViewSettingsAndPageConfig,\n} from 'liyu-pc-base/components/remotePages/index';\nimport { useI18n } from 'vue-i18n';\nimport { useRequiredConditionStore } from 'liyu-pc-base/init-plugin';\nimport { required_condition_event_obj } from 'liyu-pc-base/init-plugin';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { CUSTOM_VIEW_DATA_USER } from 'liyu-pc-base/constants';\n\nconst VIEW_SYSTEM_EDIT = 'view_system_edit';\nconst columns = [\n {\n title: '',\n dataIndex: 'name',\n key: 'name',\n },\n];\nexport default defineComponent({\n name: 'ViewManage',\n components: {\n CaretRightOutlined,\n PlusOutlined,\n SettingOutlined,\n },\n props: {\n currentViewObj: {\n type: Object,\n required: true,\n },\n menu_flag: {\n type: String,\n required: true,\n },\n menu_name: {\n type: String,\n required: true,\n },\n countData: {\n type: String,\n required: true,\n },\n create_num: {\n type: Number,\n required: true,\n },\n current_num: {\n type: Number,\n required: true,\n },\n count_num: {\n type: Number,\n required: true,\n },\n height: {\n type: Number,\n required: true,\n },\n modalType: {\n type: String,\n },\n app_flag: {\n type: String,\n },\n },\n emits: ['change'],\n setup(props, { emit }) {\n const env = useEnv();\n const requiredConditionStore = useRequiredConditionStore();\n const userStore = useUserStore();\n const appStore = useAppStore();\n const current_org = userStore.currentOrg;\n const userid = userStore.userid;\n const is_auth = ref(userStore.CHECK_AUTH(VIEW_SYSTEM_EDIT));\n const viewData = ref([]); // 视图数据\n const { t } = useI18n();\n let mergedConfig: any;\n let defaultAndServerConfig: any;\n const personData = computed(() => {\n const list = viewData.value\n .filter((item: any) => !!item.user_id && item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n const list1 = viewData.value\n .filter((item: any) => !!item.user_id && !item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n return list.concat(list1);\n }); // 个人视图数据\n const publicData = computed(() => {\n const list = viewData.value\n .filter((item: any) => !item.user_id && item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n const list1 = viewData.value\n .filter((item: any) => !item.user_id && !item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n return list.concat(list1);\n }); // 公共视图数据\n const viewNameList = computed(() => {\n return viewData.value.map((item: any) => {\n return item.name;\n });\n }); // 视图名称列表,用于创建、修改时查重\n\n const fetchData = async ({\n id,\n search_model,\n filter_map,\n sort_fields,\n group_condition,\n conditions,\n isShowGeneralFilter,\n }) => {\n return new Promise(resolve => {\n if (!props.countData && !mergedConfig?.countData) {\n console.error('无count接口');\n resolve(null);\n }\n const obj: any = {\n org_id: current_org.id,\n ...search_model,\n ...filter_map,\n sort_fields: sort_fields,\n };\n if (isShowGeneralFilter) {\n obj.group_condition = group_condition;\n obj.conditions = conditions;\n }\n obj.required_condition = getRequiredConditionObj();\n getApiData(obj, mergedConfig?.countData ? mergedConfig.countData : props.countData)\n .then((res: any) => {\n viewData.value.forEach((item: any) => {\n if (item.id == id) {\n item.num = res;\n }\n });\n resolve(null);\n })\n .catch(error => {\n console.log('error', error);\n message.error(t('获取数据失败, 请刷新页面'));\n });\n });\n };\n const setCount = async (list: any) => {\n for (const item of list) {\n try {\n await fetchData(item);\n } catch (error) {\n console.log('error', error);\n message.error(t('获取数据失败, 请刷新页面'));\n }\n }\n };\n // 查询视图、刷新count\n const viewRefresh = () => {\n getViewSettingsAndPageConfig({\n org_id: current_org.id,\n user_id: userid,\n app_flag: props.app_flag,\n modalType: props.modalType,\n sort_fields: ['sort', 'create_time'],\n is_cache: false,\n })\n .then((res: any) => {\n mergedConfig = getPageConfig(\n props.app_flag,\n props.modalType,\n res.defaultAndServerConfig,\n t,\n {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n },\n );\n defaultAndServerConfig = res.defaultAndServerConfig;\n if (mergedConfig?.isView === false) {\n window.location.hash = '';\n emit('change', defaultAndServerConfig, {}, true, true);\n return;\n }\n requiredConditionStore.set_required_condition(\n props.modalType,\n mergedConfig.required_condition,\n );\n viewData.value.length = 0;\n let list: any = [];\n const count_search_list: any = [];\n if (res && res.system_user_datas && res.system_user_datas.length > 0) {\n list = list.concat(res.system_user_datas);\n }\n if (res && res.system_public_datas && res.system_public_datas.length > 0) {\n list = list.concat(res.system_public_datas);\n }\n if (res && res.public_datas && res.public_datas.length > 0) {\n list = list.concat(res.public_datas);\n }\n if (res && res.user_datas && res.user_datas.length > 0) {\n list = list.concat(res.user_datas);\n }\n list.forEach((item: any) => {\n let search_model: any = null;\n let filter_map: any = null;\n let group_condition: any = null;\n let conditions: any = null;\n if (item.data.isShowGeneralFilter) {\n search_model = {};\n filter_map = {};\n group_condition = item.data.group_condition;\n conditions = item.data.conditions;\n } else {\n search_model = item.data.search_model;\n filter_map = item.data.filter_map;\n group_condition = {};\n conditions = [];\n }\n viewData.value.push({\n ...item,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition: group_condition,\n conditions: conditions,\n });\n count_search_list.push({\n id: item.id,\n isShowGeneralFilter: item.data.isShowGeneralFilter,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition,\n conditions,\n });\n });\n if (count_search_list.length > 0) {\n setCount(count_search_list);\n }\n handleHashChange(null);\n })\n .catch(err => {\n console.log('err', err);\n message.error(t('获取视图失败, 请刷新页面'));\n });\n };\n // 根据hash选定当前视图数据 event返回(视图数据,是否刷新页面,是否可自我保存)\n const handleHashChange = (uid: any) => {\n let hash = null;\n if (uid) {\n hash = uid;\n } else if (window.location.hash) {\n hash = window.location.hash.substring(1); // 去掉 # 符号\n }\n if (hash) {\n // 分享的视图链接打开\n const list = viewData.value.filter((item: any) => item.uid == hash);\n if (list && list.length > 0) {\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n } else {\n query_view_settings_list({\n org_id: current_org.id,\n conditions: [\n [\n {\n field_name: 'is_active',\n operator: 'in',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n {\n field_name: 'view_menu__flag',\n operator: 'eq',\n value: [props.menu_flag],\n format: 'input',\n class_name: 'str',\n },\n {\n field_name: 'uid',\n operator: 'eq',\n value: [hash],\n format: 'input',\n class_name: 'str',\n },\n ],\n ],\n }).then((res: any) => {\n if (res && res.data && res.data.length > 0) {\n emit(\n 'change',\n defaultAndServerConfig,\n {\n ...res.data[0],\n ...res.data[0].data,\n },\n true,\n false,\n );\n } else {\n const list = viewData.value.filter((item: any) => !item.user_id && item.is_default);\n if (list && list.length > 0) {\n window.location.hash = list[0].uid;\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n return;\n }\n let obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => !item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n const obj = {\n uid: null,\n view_menu__flag: props.menu_flag,\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n };\n emit('change', defaultAndServerConfig, obj, true, false);\n window.location.hash = '';\n }\n }\n }\n });\n }\n } else {\n let current_uid = '';\n if (sourceStore().get(CUSTOM_VIEW_DATA_USER)) {\n current_uid = sourceStore().get(CUSTOM_VIEW_DATA_USER)?.[props.menu_flag]; // 菜单当前视图uid\n }\n if (current_uid) {\n window.location.hash = current_uid;\n handleHashChange(current_uid);\n } else {\n // 优先选择非系统视图的默认视图\n const list = viewData.value.filter(\n (item: any) => !item.user_id && item.is_default && !item.is_system,\n );\n if (list && list.length > 0) {\n window.location.hash = list[0].uid;\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n return;\n }\n // 其次选择系统视图默认视图(多个默认选择第一个)\n const list_is_system = viewData.value.filter(\n (item: any) => !item.user_id && item.is_default && item.is_system,\n );\n if (list_is_system && list_is_system.length > 0) {\n window.location.hash = list_is_system[0].uid;\n emit(\n 'change',\n defaultAndServerConfig,\n { ...list_is_system[0], ...list_is_system[0].data },\n true,\n true,\n );\n return;\n }\n let obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => !item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n window.location.hash = '';\n const obj = {\n uid: null,\n view_menu__flag: props.menu_flag,\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n };\n emit('change', defaultAndServerConfig, obj, true, false);\n }\n }\n }\n }\n };\n viewRefresh();\n const viewKey = ref(['1', '2']); // 视图数据展开控制key\n const customStyle =\n 'background: #ffffff;border-radius: 4px;margin-bottom: 2px;border: 0;overflow: hidden;';\n const customRow = (record: any) => {\n return props.currentViewObj && record && record.id === props.currentViewObj.id\n ? { style: { backgroundColor: '#ddf1ff' } }\n : { style: {} };\n };\n // 切换视图\n const changeView = (record: any) => {\n window.location.hash = record.uid;\n handleHashChange(record.uid);\n refreshCount([record]);\n };\n // 保存修改视图\n const viewSubmit = ({ updateView, record }) => {\n if (record.name != updateView.name && viewNameList.value.includes(updateView.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n if (record?.id) {\n const list = viewData.value.filter((item: any) => record?.id == item.id);\n if (updateView.is_submit?.[0]) {\n const view = {\n ...list[0].data,\n search_model: { ...props.currentViewObj.search_model, current: 1 },\n filter_map: props.currentViewObj.filter_map,\n sort_fields: props.currentViewObj.sort_fields,\n filtered_value: props.currentViewObj.filtered_value,\n sort_orders: props.currentViewObj.sort_orders,\n column: props.currentViewObj.column,\n isShowGeneralFilter: props.currentViewObj.isShowGeneralFilter,\n conditions: props.currentViewObj.conditions,\n group_condition: props.currentViewObj.group_condition,\n group_record: props.currentViewObj.group_record,\n default_search_condition_config_list:\n props.currentViewObj.default_search_condition_config_list,\n };\n delete view.is_system; // 存储时不记录is_system,防止后端直接修改,前端不起效\n update_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n is_system: updateView.is_system?.[0],\n name: updateView.name,\n data: JSON.stringify(view),\n }).then((res: any) => {\n if (updateView.is_default?.[0]) {\n set_view_settings_default({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n });\n } else {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n }\n });\n } else {\n update_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n is_system: updateView.is_system?.[0],\n name: updateView.name,\n }).then((res: any) => {\n if (updateView.is_default?.[0]) {\n set_view_settings_default({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n });\n } else {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n }\n });\n }\n } else {\n let view: any = {};\n if (updateView.is_submit?.[0]) {\n view = {\n search_model: { ...props.currentViewObj.search_model, current: 1 },\n filter_map: props.currentViewObj.filter_map,\n sort_fields: props.currentViewObj.sort_fields,\n filtered_value: props.currentViewObj.filtered_value,\n sort_orders: props.currentViewObj.sort_orders,\n column: props.currentViewObj.column,\n isShowGeneralFilter: props.currentViewObj.isShowGeneralFilter,\n conditions: props.currentViewObj.conditions,\n group_condition: props.currentViewObj.group_condition,\n group_record: props.currentViewObj.group_record,\n default_search_condition_config_list:\n props.currentViewObj.default_search_condition_config_list,\n };\n delete view.is_system; // 存储时不记录is_system,防止后端直接修改,前端不起效\n } else {\n view = {\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n isShowGeneralFilter: null,\n conditions: [],\n group_condition: {},\n group_record: {},\n };\n }\n create_view_settings({\n org_id: current_org.id,\n user_id: updateView.view_type == 'personal' ? userid : null,\n name: updateView.name,\n view_project__flag: env.VITE_APP_VIEW_PROJECT_FLAG,\n view_menu__flag: props.menu_flag,\n view_menu__name: props.menu_name,\n is_system: false,\n data: JSON.stringify(view),\n }).then((res: any) => {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, true, true);\n if (res.id) {\n viewData.value = viewData.value.concat([\n {\n ...res,\n },\n ]);\n setCount([\n {\n id: res.id,\n search_model: view.search_model,\n filter_map: view.filter_map,\n sort_fields: view.sort_fields,\n group_condition: view.group_condition,\n conditions: view.conditions,\n isShowGeneralFilter: view.isShowGeneralFilter,\n },\n ]);\n window.location.hash = res.uid;\n handleHashChange(res.uid);\n }\n });\n }\n };\n // 视图编辑按钮\n const handleSubmit = (record: any, view_type: string) => {\n let is_submit: any = [false];\n if (props.currentViewObj.id == record.id) {\n is_submit = [true];\n }\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('编辑视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'checkbox',\n name: 'is_submit',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: record.name,\n is_submit: is_submit,\n is_default: [record?.is_default ? record?.is_default : false],\n is_system: [record?.is_system ? record?.is_system : false],\n }),\n },\n options: {\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n is_default: [\n {\n name: t('设为默认视图'),\n value: true,\n },\n ],\n is_system: [\n {\n name: t('设为系统视图'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n viewSubmit({ updateView: data, record: record });\n resolve(null);\n });\n },\n });\n if (view_type == 'public') {\n tempModal.form.fields.push({\n type: 'checkbox',\n name: 'is_default',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n });\n if (is_auth.value) {\n tempModal.form.fields.push({\n type: 'checkbox',\n name: 'is_system',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n });\n }\n }\n modalBox(tempModal);\n };\n // 添加视图\n const addView = (view_type: any) => {\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('新建视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'radio',\n name: 'view_type',\n label: t('视图可见范围'),\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '',\n },\n {\n type: 'checkbox',\n name: 'is_submit',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: null,\n view_type: view_type,\n is_submit: [true],\n }),\n },\n options: {\n view_type: [\n { name: t('个人视图(仅自己可见)'), value: 'personal' },\n { name: t('公共视图(项目成员均可见)'), value: 'public' },\n ],\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n if (viewNameList.value.includes(data.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n viewSubmit({ updateView: data, record: data });\n resolve(null);\n });\n },\n });\n modalBox(tempModal);\n };\n // 管理视图\n const editView = (view_type: any) => {\n const tempModal = reactive({\n open: true,\n component: 'ViewEditModal',\n compObj: {\n title: view_type == 'personal' ? t('个人视图管理') : t('公共视图管理'),\n data: view_type == 'personal' ? personData.value : publicData.value,\n },\n ok: (ids: any) => {\n if (ids && ids.length > 0) {\n change_view_settings_sort({\n org_id: current_org.id,\n view_settings_ids: ids,\n }).then(() => {\n message.success(t('保存成功'));\n viewRefresh();\n });\n } else {\n message.success(t('保存成功'));\n viewRefresh();\n }\n },\n cancel: (isEdit: any) => {\n if (isEdit) {\n viewRefresh();\n }\n },\n });\n modalBox(tempModal);\n };\n // 分享视图\n const handleShare = (record: any) => {\n let url = '';\n const index = window.location.href.indexOf('#');\n if (index !== -1) {\n // 如果找到了 #,则截取它之前的部分\n url = window.location.href.substring(0, index) + '#' + record.uid;\n } else {\n // 如果没有找到 #,则返回原始字符串\n url = window.location.href + '#' + record.uid;\n }\n copyValue({ val: url, message: t('复制成功') });\n };\n // 删除视图\n const handleDelet = (record: any) => {\n Modal.confirm({\n title: () =>\n `${t('确认删除此')}【${record.name}】${record?.user_id ? t('个人视图') : t('公共视图')}?`,\n content: t('视图删除后不可恢复,视图下工作项不受影响,是否确认删除?'),\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: t('确定'),\n onOk() {\n return new Promise(resolve => {\n delete_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n })\n .then(() => {\n viewData.value = viewData.value.filter((item: any) => item.id != record.id);\n handleHashChange(null);\n message.success(t('删除成功'));\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onCancel() {},\n });\n };\n const getRequiredConditionObj = () => {\n const page_config = getPageConfig(props.app_flag, props.modalType, null, t, {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n });\n const required_condition = page_config.required_condition;\n const required_condition_obj = {};\n if (required_condition) {\n required_condition.forEach((item: any) => {\n const value = requiredConditionStore.value_map[item.key];\n if (value !== undefined && value !== null) {\n required_condition_obj[item.field_name] = value;\n }\n });\n }\n return required_condition_obj;\n };\n // 刷新Count (视图record,uid) => {}\n const refreshCount = (list: any) => {\n const count_search_list = [];\n list.forEach((item: any) => {\n let search_model: any = null;\n let filter_map: any = null;\n let group_condition: any = null;\n let conditions: any = null;\n if (item.data.isShowGeneralFilter) {\n search_model = {};\n filter_map = {};\n group_condition = item.data.group_condition;\n conditions = item.data.conditions;\n } else {\n search_model = item.data.search_model;\n filter_map = item.data.filter_map;\n group_condition = {};\n conditions = [];\n }\n count_search_list.push({\n id: item.id,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition,\n conditions,\n isShowGeneralFilter: item.data.isShowGeneralFilter,\n });\n });\n setCount(count_search_list);\n };\n watch(\n () => props.current_num, // 监听保存当前视图\n () => {\n Modal.confirm({\n title: () => t('确定覆盖视图吗?'),\n content: t('当前视图原有的数据会被覆盖'),\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: t('确定'),\n onOk() {\n return new Promise(resolve => {\n viewSubmit({\n updateView: {\n is_submit: [true],\n is_system: [props.currentViewObj.is_system],\n name: props.currentViewObj.name,\n },\n record: props.currentViewObj,\n });\n resolve(null);\n }).catch(() => console.log('Oops errors!'));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onCancel() {},\n });\n },\n );\n watch(\n () => props.create_num, // 监听另存为\n () => {\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('新建视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'radio',\n name: 'view_type',\n label: t('视图可见范围'),\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: null,\n view_type: 'personal',\n is_submit: [true],\n }),\n },\n options: {\n view_type: [\n { name: t('个人视图(仅自己可见)'), value: 'personal' },\n { name: t('公共视图(项目成员均可见)'), value: 'public' },\n ],\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n const viewNameList = viewData.value.map((item: any) => item.name);\n if (viewNameList.includes(data.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n viewSubmit({ updateView: data, record: data });\n resolve(null);\n });\n },\n });\n modalBox(tempModal);\n },\n );\n\n watch(\n () => props.count_num, // 监听刷新当前视图count\n () => {\n refreshCount(viewData.value);\n },\n );\n const handleRequiredConditionChange = (key: string) => {\n const page_config = getPageConfig(props.currentViewObj.app_flag, props.modalType, null, t, {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n });\n if (page_config.required_condition) {\n const item = page_config.required_condition.find((item: any) => item.key === key);\n if (item) {\n viewRefresh();\n }\n }\n };\n onMounted(() => {\n required_condition_event_obj().on('change', handleRequiredConditionChange);\n });\n onUnmounted(() => {\n required_condition_event_obj().off('change', handleRequiredConditionChange);\n });\n // 页面重新进入刷新count\n onActivated(() => {\n refreshCount(viewData.value);\n });\n return {\n props,\n viewKey,\n customStyle,\n columns,\n personData,\n publicData,\n is_auth,\n addView,\n editView,\n customRow,\n changeView,\n handleSubmit,\n handleShare,\n handleDelet,\n appStore,\n };\n },\n});\n</script>\n<style lang=\"less\">\n.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box {\n padding: 0;\n}\n\n.num {\n display: inline-block;\n}\n\n.dropdown {\n display: none;\n}\n\n.table:hover .dropdown {\n display: inline-block;\n}\n\n.table:hover .num {\n display: none;\n}\n</style>\n","<template>\n <a-card :body-style=\"{ padding: 0, height: selectObj.height + 96 + 'px', overflowY: 'auto' }\">\n <view-manage\n :select-obj=\"selectObj\"\n @change=\"change\"\n />\n </a-card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue';\n// import SideFieldRender from 'liyu-pc-base/components/SideSearchRender/SideFieldRender.vue';\n// import { ReloadOutlined } from '@ant-design/icons-vue';\nimport ViewManage from 'liyu-pc-base/components/SideSearchRender/viewManage.vue';\n\nexport default defineComponent({\n name: 'SideSearchRender',\n components: {\n ViewManage,\n },\n props: {\n selectObj: {\n type: Object,\n required: true,\n },\n },\n emits: ['change'],\n setup(props, { emit }) {\n const change = (data: any, is_refresh: any, is_ownView: any) => {\n emit('change', data, is_refresh, is_ownView);\n };\n return {\n props,\n change,\n };\n },\n});\n</script>\n<style lang=\"less\">\n.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box {\n padding: 0;\n}\n</style>\n"],"names":["_sfc_main$7","defineComponent","props","emit","activeKey","ref","tab_list","item_list","index","base_search_list","i","k","handleSubmit","e","list","item","selected_group_list","temp","operator_list_selected","get_operator_list_selected","first","condition","_resolveComponent","_openBlock","_createBlock","_component_a_modal","_ctx","_cache","_withCtx","_createVNode","_component_a_tabs","$event","_createElementBlock","_Fragment","_renderList","_component_a_tab_pane","base_search_item","_createElementVNode","_hoisted_1","_toDisplayString","_component_a_space","obj","_component_a_checkbox","_sfc_main$6","_a","_b","new_search_list","new_group","new_i","message","_hoisted_3","get_options_eq","t","_sfc_main$5","FieldRender2","CloseOutlined","LeftOutlined","RightOutlined","FieldRender","AddConditionGroupModal","AddConditionModal","CloseCircleOutlined","isShowForm","labelModel","useI18n","options_eq","condition_model_dict","validateInfos","source_default_search_condition_config_list","is_or_not_blank_or_null_options","operator_type_count_map","is2DArray","arr","subArray","old_operator","onChangeOperator","operator","value","isNotEmpty","seconds","addConditionModal","reactive","handleAddConditions","handleAddConditionOk","data","item1","index1","item2","item3","handleAddConditionCancel","addConditionGroupModal","handleAddGroupCondition","handleAddGroupConditionOK","handleAddGroupConditionCancel","handleSearch","refreshCondition","update_all","deleteBtnDict","group_item","onFilterChanged","handleMouseEnter","form_item","handleMouseLeave","handleDeleteFormItem","new_list","index_","handleDelSearch","filed_name","onChangeSearchItem","group_index","condition_index","selected_field_name","new_condition","searchItemOptionsDict","computed","dict","filter_field_name_list","filter_list","o","isShowSearchTag","transferValueFunc","str_list","get_operator_type_map","transfer_value","moment","handleShowSearchRender","watch","onMounted","onUnmounted","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_4","_createCommentVNode","_component_a_button","_withDirectives","_component_a_tag","_createTextVNode","_component_close_outlined","_vShow","_hoisted_2","_component_a_space_compact","_component_a_input_group","_component_a_tooltip","_component_a_cascader","_component_a_select","_component_a_select_option","_component_field_render_2","_component_a_flex","_hoisted_5","_hoisted_6","_component_close_circle_outlined","_component_a_divider","_hoisted_7","_component_add_condition_modal","_component_add_condition_group_modal","_sfc_main$4","params","_component_a_form","row","_component_a_card","_createSlots","_component_a_row","field_item","_component_a_col","_sfc_main$3","name","a","col","field","_component_field_render","_sfc_main$2","field2","create_view_settings","useRequest","update_view_settings","refresh_view_settings_cache","set_view_settings_default","delete_view_settings","change_view_settings_sort","query_view_settings_list","CUSTOM_VIEW_DATA_USER","VIEW_SYSTEM_EDIT","columns","_sfc_main$1","CaretRightOutlined","PlusOutlined","SettingOutlined","env","useEnv","requiredConditionStore","useRequiredConditionStore","userStore","useUserStore","appStore","useAppStore","current_org","userid","is_auth","viewData","mergedConfig","defaultAndServerConfig","personData","b","list1","publicData","viewNameList","fetchData","id","search_model","filter_map","sort_fields","group_condition","conditions","isShowGeneralFilter","resolve","getRequiredConditionObj","getApiData","res","error","setCount","viewRefresh","getViewSettingsAndPageConfig","getPageConfig","count_search_list","handleHashChange","err","uid","hash","current_uid","sourceStore","list_is_system","viewKey","customStyle","customRow","record","changeView","refreshCount","viewSubmit","updateView","view","_c","_d","view_type","is_submit","tempModal","modalBox","addView","editView","ids","isEdit","handleShare","url","copyValue","handleDelet","Modal","createVNode","ExclamationCircleOutlined","required_condition","required_condition_obj","handleRequiredConditionChange","key","page_config","required_condition_event_obj","onActivated","_component_a_collapse","isActive","_component_caret_right_outlined","_component_a_collapse_panel","_normalizeStyle","_component_setting_outlined","_component_plus_outlined","_component_a_table","column","_component_a_dropdown","_component_a_menu","_component_a_menu_item","_withModifiers","_sfc_main","ViewManage","is_refresh","is_ownView","_component_view_manage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/components/FormRender/GeneralFilter/AddConditionModal/index.vue","../../src/components/FormRender/GeneralFilter/AddConditionGroupModal/index.vue","../../src/components/FormRender/GeneralFilter/data.ts","../../src/components/FormRender/GeneralFilter/index.vue","../../src/components/FormRender/FormRender3.vue","../../src/components/FormRender/FormRender.vue","../../src/components/FormRender/FormRender2.vue","../../src/components/FormRender/SmallTableSerarchField.vue","../../src/api/view-model.ts","../../src/constants.ts","../../src/components/SideSearchRender/viewManage.vue","../../src/components/SideSearchRender/SideSearchRender.vue"],"sourcesContent":["<template>\n <a-modal\n title=\"添加过滤条件\"\n width=\"800px\"\n :open=\"open\"\n transitionName=\"\"\n maskTransitionName=\"\"\n :destroyOnClose=\"true\"\n :confirmLoading=\"loading\"\n centered\n @ok=\"handleSubmit\"\n @cancel=\"\n () => {\n $emit('cancel');\n }\n \"\n >\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane\n class=\"my-card\"\n v-for=\"item in tab_list\"\n :key=\"item.key\"\n :tab=\"item.tab_name\"\n >\n <div\n v-for=\"base_search_item in item.base_search_list\"\n :key=\"base_search_item.name\"\n >\n <div style=\"font-size: 14px\">{{ base_search_item.name }}</div>\n <a-space\n wrap\n style=\"padding-left: 10px; margin-bottom: 0\"\n >\n <div\n v-for=\"obj in base_search_item.group\"\n :key=\"obj.field_name\"\n >\n <a-checkbox v-model:checked=\"obj.checked\">\n <span style=\"color: #7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, reactive, ref } from 'vue';\n\nexport default defineComponent({\n name: 'AddConditionModal',\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n loading: {\n type: Boolean,\n required: false,\n },\n default_search_condition_config_list: {\n type: Array,\n required: false,\n },\n base_search_condition_config_list: {\n type: Array,\n required: false,\n },\n },\n emits: ['ok', 'cancel'],\n setup(props, { emit }) {\n const activeKey = ref('condition_tab_0');\n const tab_list = ref([]);\n props.default_search_condition_config_list.forEach((item_list: any, index: number) => {\n const base_search_list: any = JSON.parse(\n JSON.stringify(props.base_search_condition_config_list),\n );\n if (base_search_list) {\n base_search_list.forEach((base_search_list: any) => {\n base_search_list.group.forEach(i => {\n item_list.forEach((k: any) => {\n if (i.field_name == k.field_name) {\n i.operator = k.operator;\n i.checked = true;\n }\n });\n });\n });\n }\n tab_list.value.push({\n tab_name: `条件组${index + 1}`,\n key: `condition_tab_${index}`,\n base_search_list: base_search_list,\n });\n });\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n const list = [];\n tab_list.value.forEach(item => {\n const selected_group_list: any = [];\n item.base_search_list.forEach(i => {\n i.group.forEach((temp: any) => {\n if (temp.checked) {\n if (!temp.operator) {\n const operator_list_selected = get_operator_list_selected(temp);\n if (operator_list_selected.length > 0) {\n const [first] = operator_list_selected;\n temp.operator = first;\n }\n }\n selected_group_list.push(temp);\n }\n });\n });\n list.push(selected_group_list);\n });\n emit('ok', { new_list: list });\n };\n const get_operator_list_selected = (condition) => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n }\n else if (condition.operator_list) {\n return condition.operator_list;\n }\n else {\n return [];\n }\n };\n\n return {\n props,\n activeKey,\n tab_list,\n handleSubmit,\n };\n },\n});\n</script>\n<style scoped>\n.my-card {\n padding: 20px;\n background-color: #f6f7f9;\n}\n</style>\n","<template>\n <a-modal\n title=\"添加过滤条件组\"\n width=\"800px\"\n :open=\"open\"\n transitionName=\"\"\n maskTransitionName=\"\"\n :destroyOnClose=\"true\"\n :confirmLoading=\"loading\"\n centered\n @ok=\"handleSubmit\"\n @cancel=\"\n () => {\n $emit('cancel');\n }\n \"\n >\n\n <a-tab-pane class=\"my-card\" v-for=\"item in tab_list\"\n :key=\"item.key\" :tab=\"item.tab_name\">\n <div v-for=\"base_search_item in item.base_search_list\" :key=\"base_search_item.name\">\n <div style=\"font-size: 14px;\">{{base_search_item.name}}</div>\n <a-space wrap>\n <div v-for=\"obj in base_search_item.group\" :key=\"obj.field_name\">\n <a-checkbox v-model:checked=\"obj.checked\" >\n <span style=\"color:#7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane class=\"my-card\" v-for=\"item in tab_list\"\n :key=\"item.key\" :tab=\"item.tab_name\">\n <div v-for=\"base_search_item in item.base_search_list\" :key=\"base_search_item.name\">\n <div style=\"font-size: 14px;\">{{base_search_item.name}}</div>\n <a-space wrap style=\"padding-left: 10px; margin-bottom:0\">\n <div v-for=\"obj in base_search_item.group\" :key=\"obj.field_name\">\n <a-checkbox v-model:checked=\"obj.checked\" >\n <span style=\"color:#7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, reactive, ref } from 'vue';\nimport { message } from 'ant-design-vue';\nexport default defineComponent({\n name: 'AddConditionGroupModal',\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n loading: {\n type: Boolean,\n required: false,\n },\n default_search_condition_config_list: {\n type: Array,\n required: false,\n },\n base_search_condition_config_list: {\n type: Array,\n required: false,\n },\n },\n emits: ['ok', 'cancel'],\n setup(props, { emit }) {\n const tab_list = ref([]);\n const get_operator_list_selected = (condition) => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n }\n else if (condition.operator_list) {\n return condition.operator_list;\n }\n else {\n return [];\n }\n };\n props.default_search_condition_config_list?.forEach((item_list:any, index:number)=>{\n const base_search_list:any = JSON.parse(JSON.stringify(props.base_search_condition_config_list));\n if(base_search_list){\n base_search_list.forEach((base_search_list:any)=>{\n base_search_list.group.forEach(i=>{\n item_list.forEach((k:any)=>{\n if(i.field_name == k.field_name){\n i.checked = true;\n }\n });\n });\n });\n }\n tab_list.value.push({\n tab_name:`条件组${index+1}`,\n key:`condition_tab_${index}`,\n base_search_list: base_search_list,\n });\n });\n const index = props.default_search_condition_config_list?.length || 0;\n const new_search_list = [];\n props.base_search_condition_config_list.forEach((item:any)=>{\n const new_group = [];\n item.group.forEach(i=>{\n const operator_list_selected = get_operator_list_selected(i);\n if(i.default_operator){\n i.operator = i.default_operator;\n }\n if(!operator_list_selected.includes(i.operator)){\n i.operator = null;\n }\n if(!i.operator && operator_list_selected.length>0){\n const [first] = operator_list_selected;\n i.operator = first;\n }\n const new_i = { ...i, checked:false };\n new_group.push(new_i);\n });\n new_search_list.push({\n name:item.name,\n group:new_group,\n });\n });\n tab_list.value.push({\n tab_name:`条件组${index+1}`,\n key:`condition_tab_${index}`,\n base_search_list: new_search_list,\n });\n const activeKey = ref(`condition_tab_${index}`);\n\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n const list = [];\n tab_list.value.forEach(item=>{\n const selected_group_list:any = [];\n item.base_search_list.forEach(i=>{\n i.group.forEach((temp:any)=>{\n if(temp.checked){\n selected_group_list.push(temp);\n }\n });\n });\n if(selected_group_list.length>0){\n list.push(selected_group_list);\n }\n });\n if(list.length==0){\n message.error('新增条件组未增加新的字段,自动取消');\n emit('cancel');//关闭对话框\n }else{\n emit('ok', { new_list: list });\n }\n };\n\n return {\n props,\n activeKey,\n tab_list,\n handleSubmit,\n get_operator_list_selected,\n };\n },\n});\n</script>\n<style scoped>\n.my-card{\n padding:20px;\n background-color: #f6f7f9;\n}\n</style>","export const get_options_eq = t => {\n const options_eq = [\n { value: '上月', label: '上月' },\n { value: '本月', label: '本月' },\n { value: '今日', label: '今日' },\n { value: '昨日', label: '昨日' },\n { value: '期初', label: '期初' },\n ];\n return {\n options_eq,\n };\n};\n","<template>\n <a-space v-if=\"!is_massage_default\">\n <a-button\n type=\"link\"\n v-if=\"is_show_normal_search\"\n @click=\"handleShowSearchRender\"\n >\n {{ $t('普通') }}\n </a-button>\n <a-button\n v-if=\"!isShowForm\"\n type=\"link\"\n @click=\"\n () => {\n isShowForm = true;\n $emit('resize');\n }\n \"\n >\n <span class=\"expand-btn\">{{ $t('展开') }}</span>\n </a-button>\n <a-button\n v-else\n type=\"link\"\n @click=\"\n () => {\n isShowForm = false;\n $emit('resize');\n }\n \"\n >\n {{ $t('隐藏') }}\n </a-button>\n </a-space>\n <span v-show=\"!isShowForm\">\n <span\n v-for=\"(item, index) in default_search_condition_config_list\"\n :key=\"index\"\n >\n <a-tag>{{ $t('条件组') }}{{ index + 1 }}:</a-tag>\n <span\n v-for=\"condition in item\"\n :key=\"condition.field_name\"\n >\n <a-tag\n v-show=\"isShowSearchTag(index, condition)\"\n color=\"green\"\n >\n {{ condition.label }}: {{ transferValueFunc(index, condition) }}\n <close-outlined\n style=\"cursor: pointer; margin-left: 5px\"\n @click=\"handleDelSearch(index, condition.field_name)\"\n />\n </a-tag>\n </span>\n </span>\n </span>\n <div\n class=\"card\"\n v-show=\"isShowForm\"\n >\n <div\n v-for=\"(group_item, group_index) in default_search_condition_config_list\"\n :key=\"group_index\"\n >\n <div\n class=\"condition-group\"\n v-if=\"default_search_condition_config_list.length > 1\"\n >\n {{ $t('条件组') }} {{ group_index + 1 }}\n </div>\n <a-space\n :wrap=\"true\"\n align=\"center\"\n :size=\"0\"\n >\n <a-space-compact\n block\n v-for=\"(condition, k) in group_item\"\n :key=\"condition.field_name\"\n size=\"middle\"\n @mouseenter=\"handleMouseEnter(group_index, condition)\"\n @mouseleave=\"handleMouseLeave(group_index, condition)\"\n >\n <a-input-group compact>\n <a-tooltip :title=\"condition.label\">\n <a-cascader\n :value=\"condition.label\"\n style=\"width: 125px\"\n :options=\"searchItemOptionsDict[group_index]\"\n showSearch\n :allowClear=\"false\"\n :placeholder=\"$t('请选择...')\"\n @change=\"value => onChangeSearchItem(value, group_index, condition, k)\"\n />\n </a-tooltip>\n <a-tooltip :title=\"get_operator_type_map(condition.format, condition.operator)\">\n <a-select\n v-if=\"get_operator_list_selected(condition).length > 0\"\n :dropdownMatchSelectWidth=\"false\"\n v-model:value=\"condition.operator\"\n @change=\"value => onChangeOperator(value, group_index, condition)\"\n style=\"width: 100px\"\n >\n <a-select-option\n v-for=\"item in get_operator_list_selected(condition)\"\n :value=\"item\"\n :key=\"item\"\n >\n {{ get_operator_type_map(condition.format, item) }}\n </a-select-option>\n </a-select>\n </a-tooltip>\n <span style=\"width: 315px; height: 40px\">\n <template\n v-if=\"['is_or_not_blank_or_null', 'is_or_not_null'].includes(condition.operator)\"\n >\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'select',\n mode: 'default',\n format: 'choices',\n class_name: 'str',\n placeholder: '',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"is_or_not_blank_or_null_options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"['input'].includes(condition.format)\">\n <template\n v-if=\"condition.operator === 'between' || condition.operator === 'notbetween'\"\n >\n <template v-if=\"condition.type === 'datepicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, type: 'rangepicker', format: condition.dateFormat }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.type === 'monthpicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'monthrangepicker',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else>\n <a-flex>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name][0]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n <div class=\"range\">~</div>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name][1]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </a-flex>\n </template>\n </template>\n <template v-else-if=\"condition.operator === '_eq'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'select',\n mode: 'default',\n format: 'choices',\n class_name: 'str',\n placeholder: '',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"options_eq\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template\n v-else-if=\"condition.type === 'datepicker' || condition.type === 'monthpicker'\"\n >\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, format: condition.dateFormat }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n </template>\n <template v-else-if=\"['choices', 'remote'].includes(condition.format)\">\n <template v-if=\"condition.format === 'choices'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.format === 'remote'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, name: condition?.field_name }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n </template>\n </span>\n <span class=\"close-icon\">\n <a-tooltip\n title=\"删除此条件\"\n v-if=\"\n deleteBtnDict[group_index][condition.field_name] &&\n (default_search_condition_config_list[0].length > 1 ||\n default_search_condition_config_list.length > 1) &&\n !is_massage_default\n \"\n >\n <close-circle-outlined @click=\"handleDeleteFormItem(group_index, condition)\" />\n </a-tooltip>\n </span>\n </a-input-group>\n </a-space-compact>\n </a-space>\n <a-divider\n class=\"divider\"\n style=\"margin: 0\"\n v-if=\"\n default_search_condition_config_list.length > 1 &&\n group_index != default_search_condition_config_list.length - 1\n \"\n >\n 或\n </a-divider>\n </div>\n </div>\n <div\n class=\"search-bar\"\n v-show=\"isShowForm && !is_massage_default\"\n >\n <a-space>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddConditions\"\n >\n {{ $t('添加条件') }}\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddGroupCondition\"\n >\n {{ $t('添加条件组') }}\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleSearch\"\n >\n {{ $t('查询') }}\n </a-button>\n </a-space>\n </div>\n\n <add-condition-modal\n v-if=\"addConditionModal.open\"\n :open=\"addConditionModal.open\"\n :default_search_condition_config_list=\"default_search_condition_config_list\"\n :base_search_condition_config_list=\"base_search_condition_config_list\"\n @ok=\"handleAddConditionOk\"\n @cancel=\"handleAddConditionCancel\"\n />\n\n <add-condition-group-modal\n v-if=\"addConditionGroupModal.open\"\n :open=\"addConditionGroupModal.open\"\n :default_search_condition_config_list=\"default_search_condition_config_list\"\n :base_search_condition_config_list=\"base_search_condition_config_list\"\n @ok=\"handleAddGroupConditionOK\"\n @cancel=\"handleAddGroupConditionCancel\"\n />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n onMounted,\n reactive,\n ref,\n computed,\n watch,\n PropType,\n nextTick,\n onUnmounted,\n} from 'vue';\nimport FieldRender from 'liyu-pc-base/components/FormRender/FieldRender.vue';\nimport AddConditionModal from 'liyu-pc-base/components/FormRender/GeneralFilter/AddConditionModal/index.vue';\nimport AddConditionGroupModal from 'liyu-pc-base/components/FormRender/GeneralFilter/AddConditionGroupModal/index.vue';\nimport { isNotEmpty } from 'liyu-pc-base/utils/function';\nimport {\n CloseCircleOutlined,\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n} from '@ant-design/icons-vue';\nimport { useI18n } from 'vue-i18n';\nimport { get_options_eq } from 'liyu-pc-base/components/FormRender/GeneralFilter/data';\nimport moment from 'moment';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\nimport { get_operator_type_map } from 'liyu-pc-base/utils/function';\n\nexport default defineComponent({\n name: 'GeneralFilter',\n props: {\n base_search_condition_config_list: {\n type: Array as PropType<any[]>,\n },\n default_search_condition_config_list: {\n type: Array as PropType<any[]>,\n },\n is_show_normal_search: {\n type: Boolean,\n default: () => false,\n },\n is_clear_model: {\n type: Boolean,\n default: () => false,\n },\n is_show_advantage: {\n type: Boolean,\n default: () => false,\n },\n is_massage_default: {\n type: Boolean,\n default: () => false,\n },\n eventBus: {\n type: Object,\n required: false,\n },\n },\n components: {\n FieldRender2,\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n FieldRender,\n AddConditionGroupModal,\n AddConditionModal,\n CloseCircleOutlined,\n },\n emits: [\n 'search',\n 'resize',\n 'update_default_search_condition_config_list',\n 'onShowSearchRender',\n 'delSearch',\n 'onChangeValue',\n 'update:is_clear_model',\n ],\n setup(props, { emit }) {\n const isShowForm = ref(props.is_massage_default);\n const labelModel = ref({});\n const { t } = useI18n();\n const { options_eq } = get_options_eq(t);\n //条件组-->\n const condition_model_dict = ref([]);\n const validateInfos = {};\n const source_default_search_condition_config_list = ref(null);\n const is_or_not_blank_or_null_options = ref([\n { value: 'yes', label: t('is_or_not_blank_or_null.yes') },\n { value: 'no', label: t('is_or_not_blank_or_null.no') },\n ]);\n if (!source_default_search_condition_config_list.value) {\n source_default_search_condition_config_list.value = JSON.parse(\n JSON.stringify(props.default_search_condition_config_list),\n );\n }\n\n const operator_type_count_map = {\n between: 2,\n gt: 1,\n lt: 1,\n gte: 1,\n lte: 1,\n in: 0,\n eq: 1,\n _eq: 1,\n contains: 1,\n icontains: 1,\n startswith: 1,\n notbetween: 2,\n notin: 0,\n notcontains: 1,\n not_eq: 1,\n not_blank_not_null: 1,\n json_list_not_blank_not_null: 1,\n json_list_is_blank_is_null: 1,\n is_or_not_blank_or_null: 1,\n is_or_not_null: 1,\n };\n const is2DArray = arr => {\n const [first] = [arr];\n return Array.isArray(first) && arr.every(subArray => Array.isArray(subArray));\n };\n let old_operator = null;\n const onChangeOperator = (operator, index, condition) => {\n //不同操作类型,设置不同的默认值\n // if (condition_model_dict.value[index][condition.field_name]) {\n // return;\n // }\n const value = condition_model_dict.value[index][condition.field_name];\n if (get_operator_list_selected(condition).includes('_eq')) {\n if (operator == '_eq') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == '_eq') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (get_operator_list_selected(condition).includes('not_blank_not_null')) {\n if (operator == 'not_blank_not_null') {\n condition_model_dict.value[index][condition.field_name] = '是';\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == 'not_blank_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (\n get_operator_list_selected(condition).includes('is_or_not_blank_or_null') ||\n get_operator_list_selected(condition).includes('is_or_not_null')\n ) {\n if (operator == 'is_or_not_blank_or_null' || operator == 'is_or_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == 'is_or_not_blank_or_null' || old_operator == 'is_or_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (value instanceof Array && is2DArray(value)) {\n // 级联类型,默认值默认清空\n condition_model_dict.value[index][condition.field_name] = null;\n } else if (operator_type_count_map[operator] == 1) {\n if (value instanceof Array) {\n const [first] = condition_model_dict.value[index][condition.field_name];\n if (isNotEmpty(first)) {\n condition_model_dict.value[index][condition.field_name] = first;\n } else {\n condition_model_dict.value[index][condition.field_name] = null;\n }\n } else {\n condition_model_dict.value[index][condition.field_name] = value ? value : null;\n }\n const is = options_eq.some(\n obj => obj.value === condition_model_dict.value[index][condition.field_name],\n );\n if (is) {\n condition_model_dict.value[index][condition.field_name] = null;\n }\n } else if (operator_type_count_map[operator] == 2) {\n if (condition_model_dict.value[index][condition.field_name] instanceof Array) {\n const [first, seconds] = condition_model_dict.value[index][condition.field_name];\n condition_model_dict.value[index][condition.field_name] = [first, seconds];\n } else if (condition_model_dict.value[index][condition.field_name]) {\n const first = condition_model_dict.value[index][condition.field_name];\n condition_model_dict.value[index][condition.field_name] = [first, null];\n } else {\n condition_model_dict.value[index][condition.field_name] = [null, null];\n }\n const is = options_eq.some(\n obj => obj.value === condition_model_dict.value[index][condition.field_name][0],\n );\n if (is) {\n condition_model_dict.value[index][condition.field_name] = [null, null];\n }\n }\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n // console.log('onChangeValue');\n };\n\n const addConditionModal = reactive({\n open: false,\n });\n const handleAddConditions = () => {\n addConditionModal.open = true;\n };\n const handleAddConditionOk = (data: any) => {\n props.default_search_condition_config_list.forEach((item: any, index: any) => {\n data.new_list.forEach((item1: any, index1: any) => {\n if (index == index1) {\n item.forEach((item2: any) => {\n item1.forEach((item3: any) => {\n if (item2.field_name == item3.field_name) {\n item3.value = item2.value;\n item3.operator = item2.operator;\n }\n });\n });\n }\n });\n });\n //保存后处理 new_list\n emit('update_default_search_condition_config_list', { new_list: data.new_list });\n // refreshCondition();\n addConditionModal.open = false;\n };\n const handleAddConditionCancel = () => {\n addConditionModal.open = false;\n };\n\n const addConditionGroupModal = reactive({\n open: false,\n });\n const handleAddGroupCondition = () => {\n addConditionGroupModal.open = true;\n };\n const handleAddGroupConditionOK = (data: any) => {\n props.default_search_condition_config_list.forEach((item: any, index: any) => {\n data.new_list.forEach((item1: any, index1: any) => {\n if (index == index1) {\n item.forEach((item2: any) => {\n item1.forEach((item3: any) => {\n if (item2.field_name == item3.field_name) {\n item3.value = item2.value;\n item3.operator = item2.operator;\n }\n });\n });\n }\n });\n });\n emit('update_default_search_condition_config_list', { new_list: data.new_list });\n // refreshCondition();\n addConditionGroupModal.open = false;\n };\n const handleAddGroupConditionCancel = () => {\n addConditionGroupModal.open = false;\n };\n const handleSearch = () => {\n isShowForm.value = false;\n console.log('condition_model_dict.value', condition_model_dict.value);\n emit('search', { model: condition_model_dict.value });\n };\n const refreshCondition = (update_all = false) => {\n if (props.base_search_condition_config_list.length == 0) {\n return;\n }\n props.default_search_condition_config_list?.forEach((item_list: any, index: number) => {\n deleteBtnDict[index] = {};\n if (!condition_model_dict.value[index]) {\n condition_model_dict.value[index] = {};\n }\n props.base_search_condition_config_list.forEach((i: any) => {\n i.group?.forEach((group_item: any) => {\n item_list.forEach((k: any) => {\n if (group_item.field_name == k.field_name) {\n const value = condition_model_dict.value[index][k.field_name];\n if (value == undefined || update_all) {\n if (operator_type_count_map[k.operator] == 1) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = null;\n }\n } else if (operator_type_count_map[k.operator] == 2) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = [null, null];\n }\n } else if (operator_type_count_map[k.operator] == 0) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = [];\n }\n }\n }\n Object.assign(k, { ...group_item, operator: k.operator }); // 保持表单项原有选择的查询条件\n if (k.operator == 'eq' && k.mode != 'default') {\n group_item.mode = 'default';\n Object.assign(k, { model: 'default' });\n } else if (['in', 'notin'].includes(k.operator) && k.mode != 'multiple') {\n group_item.mode = 'multiple';\n Object.assign(k, { model: 'multiple' });\n }\n }\n });\n });\n });\n });\n };\n const onFilterChanged = () => {\n refreshCondition(true);\n };\n\n const deleteBtnDict = reactive({}); // 表单项的删除按钮是否显示\n const handleMouseEnter = (index: any, form_item: any) => {\n deleteBtnDict[index][form_item.field_name] = true;\n };\n const handleMouseLeave = (index: any, form_item: any) => {\n deleteBtnDict[index][form_item.field_name] = false;\n };\n const handleDeleteFormItem = (index: any, condition: any) => {\n //default_search_condition_config_list 不允许删除最后一个条件组的条件项\n const new_list = [];\n props.default_search_condition_config_list.forEach((item_list: any, index_: number) => {\n if (index_ !== index) {\n new_list.push(item_list);\n } else {\n const list = [];\n item_list.forEach((k: any) => {\n if (k.field_name !== condition.field_name) {\n list.push(k);\n }\n });\n if (list.length > 0) {\n new_list.push(list);\n }\n }\n });\n emit('update_default_search_condition_config_list', { new_list: new_list });\n // refreshCondition();\n };\n const handleDelSearch = (index, filed_name) => {\n if (condition_model_dict.value[index][filed_name] instanceof Array) {\n condition_model_dict.value[index][filed_name].length = 0;\n } else {\n condition_model_dict.value[index][filed_name] = null;\n }\n emit('onChangeValue', { model: condition_model_dict.value });\n emit('delSearch', { model: JSON.parse(JSON.stringify(condition_model_dict.value)) });\n };\n\n const onChangeSearchItem = (value: any, group_index, condition: any, condition_index) => {\n if (value instanceof Array && value.length > 0) {\n const selected_field_name = value[value.length - 1];\n let new_condition = null;\n props.base_search_condition_config_list.forEach(item_list => {\n item_list.group.forEach(i => {\n if (i.field_name === selected_field_name) {\n new_condition = JSON.parse(JSON.stringify(i));\n if (new_condition.default_operator) {\n new_condition.operator = new_condition.default_operator;\n } else if (get_operator_list_selected(new_condition).length > 0) {\n const [first] = get_operator_list_selected(new_condition);\n new_condition.operator = first;\n }\n }\n });\n });\n\n if (new_condition) {\n const new_list = JSON.parse(JSON.stringify(props.default_search_condition_config_list));\n new_list.forEach((item_list, i) => {\n if (i === group_index) {\n item_list.forEach((item, k) => {\n if (item.field_name == condition.field_name && k == condition_index) {\n item_list.splice(k, 1, new_condition);\n delete condition_model_dict.value[group_index][item.field_name];\n }\n });\n }\n });\n emit('update_default_search_condition_config_list', {\n new_list: new_list,\n });\n }\n refreshCondition();\n }\n };\n\n const searchItemOptionsDict: any = computed(() => {\n const dict = {};\n props.default_search_condition_config_list.forEach((group_item, index) => {\n dict[index] = [];\n const filter_field_name_list = group_item.map(item => item.field_name);\n props.base_search_condition_config_list.forEach(item => {\n const filter_list = item.group.filter(\n i => !filter_field_name_list.includes(i.field_name),\n );\n const o = {\n value: item.name,\n label: item.name,\n children: filter_list.map(i => {\n return {\n value: i.field_name,\n label: i.label,\n };\n }),\n };\n dict[index].push(o);\n });\n });\n return dict;\n });\n\n const isShowSearchTag = (index, condition) => {\n const value = condition_model_dict.value[index][condition.field_name];\n if (value instanceof Array) {\n const [first] = value;\n if (isNotEmpty(first)) {\n return true;\n }\n } else if (isNotEmpty(value)) {\n return true;\n }\n return false;\n };\n\n const transferValueFunc = (index, condition) => {\n const str_list: any = [];\n const value = condition_model_dict.value[index][condition.field_name];\n if (\n condition.operator === 'is_or_not_blank_or_null' ||\n condition.operator === 'is_or_not_null'\n ) {\n if (value === 'yes') {\n return t('is_or_not_blank_or_null.yes');\n } else {\n return t('is_or_not_blank_or_null.no');\n }\n } else if (condition.operator === '_eq') {\n if (['上月', '本月', '今日', '昨日', '期初'].includes(value)) {\n return t(value);\n }\n } else if (labelModel.value[condition.field_name] != undefined) {\n return `${get_operator_type_map(condition.format, condition.operator)} ${\n labelModel.value[condition.field_name]\n }`;\n } else if (value instanceof Array && condition.field_name_list instanceof Array) {\n let transfer_value;\n if (condition.field_name_list) {\n if (value instanceof Array) {\n transfer_value = value.join(',');\n } else {\n transfer_value = value;\n }\n }\n return `${get_operator_type_map(condition.format, condition.operator)} ${transfer_value}`;\n } else if (value instanceof Array && condition.options instanceof Array) {\n value.forEach(item => {\n condition.options.forEach(i => {\n if (item == i.value) {\n str_list.push(i.label);\n }\n });\n });\n return `${get_operator_type_map(condition.format, condition.operator)} ${str_list.join(\n ',',\n )}`;\n } else {\n let transfer_value;\n if (condition.options) {\n condition.options.forEach(i => {\n if (value == i.value) {\n transfer_value = i.label;\n }\n });\n } else if (condition.type == 'monthpicker' && condition.dateFormat) {\n if (value instanceof Array) {\n const str_list = [];\n value.forEach(i => {\n if (i) {\n str_list.push(moment(i).format(condition.dateFormat));\n } else {\n str_list.push(i);\n }\n });\n transfer_value = str_list.join(',');\n } else {\n transfer_value = moment(value).format(condition.dateFormat);\n }\n } else {\n transfer_value = value;\n }\n return `${get_operator_type_map(condition.format, condition.operator)} ${transfer_value}`;\n }\n };\n\n const handleShowSearchRender = () => {\n emit('onShowSearchRender');\n };\n\n const get_operator_list_selected = condition => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n } else if (condition.operator_list) {\n return condition.operator_list;\n } else {\n return [];\n }\n };\n\n watch(\n () => condition_model_dict.value,\n () => {\n emit('onChangeValue', { model: condition_model_dict.value });\n // console.log('onChangeValue_watch');\n },\n { deep: true },\n );\n watch(\n () => props.default_search_condition_config_list,\n () => {\n if (props.default_search_condition_config_list?.length == 0) {\n emit('update_default_search_condition_config_list', {\n new_list: source_default_search_condition_config_list.value,\n });\n return;\n }\n refreshCondition();\n },\n { deep: true },\n );\n watch(\n () => props.base_search_condition_config_list,\n () => {\n refreshCondition();\n },\n { deep: true },\n );\n\n watch(\n () => props.is_clear_model,\n () => {\n if (props.is_clear_model) {\n condition_model_dict.value = {};\n refreshCondition();\n emit('update:is_clear_model', false);\n }\n },\n );\n onMounted(() => {\n refreshCondition();\n if (props.eventBus) {\n props.eventBus.on('filterChange', onFilterChanged);\n }\n });\n onUnmounted(() => {\n if (props.eventBus) {\n props.eventBus.off('filterChange', onFilterChanged);\n }\n });\n return {\n props,\n t,\n isShowForm,\n labelModel,\n get_operator_type_map,\n condition_model_dict,\n addConditionModal,\n handleAddConditions,\n handleAddConditionOk,\n handleAddConditionCancel,\n onChangeOperator,\n handleAddGroupCondition,\n handleSearch,\n\n addConditionGroupModal,\n handleAddGroupConditionOK,\n handleAddGroupConditionCancel,\n validateInfos,\n\n deleteBtnDict,\n handleMouseEnter,\n handleMouseLeave,\n handleDeleteFormItem,\n handleDelSearch,\n\n searchItemOptionsDict,\n onChangeSearchItem,\n transferValueFunc,\n isShowSearchTag,\n handleShowSearchRender,\n options_eq,\n get_operator_list_selected,\n is_or_not_blank_or_null_options,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.card {\n overflow: auto;\n max-height: 300px;\n background: #f2f5f7;\n}\n\n.condition-group {\n padding: 5px;\n}\n\n.range {\n margin-top: 5px;\n}\n\n.close-icon {\n width: 15px;\n margin-top: 5px;\n margin-left: 5px;\n color: red;\n}\n\n.search-bar {\n background: #f2f5f7;\n text-align: right;\n}\n\n:deep(.divider .ant-divider) {\n margin: 0;\n}\n</style>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n :layout=\"form.settings.layout\"\n scrollToFirstError\n class=\"cards\"\n :validateTrigger=\"false\"\n >\n <template\n v-for=\"(row, index) in form.dynamicFieldList\"\n :key=\"index\"\n >\n <a-card\n :body-style=\"{ padding: '10px 10px 0' }\"\n style=\"margin-bottom: 5px\"\n >\n <template\n v-if=\"row.group_name && (form.dynamicFieldList.length > 1 || alwaysShowGroup)\"\n #title\n >\n {{ row.group_name }}\n </template>\n <a-row\n :gutter=\"5\"\n type=\"flex\"\n >\n <a-col\n v-for=\"(field_item, i) in row?.children\"\n :key=\"i\"\n :span=\"\n field_item.is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0\n \"\n :offset=\"field_item.offset\"\n :push=\"field_item.push\"\n :pull=\"field_item.pull\"\n >\n <field-render-2\n v-model:value=\"model[field_item.name]\"\n v-model:is_show_field=\"field_item['is_show_field']\"\n :field=\"field_item\"\n :formModel=\"model\"\n :outModel=\"outModel\"\n :key=\"field_item.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n />\n </a-col>\n </a-row>\n </a-card>\n <!-- <a-row-->\n <!-- v-else-->\n <!-- :gutter=\"5\"-->\n <!-- type=\"flex\"-->\n <!-- >-->\n <!-- <a-col-->\n <!-- v-for=\"(field_item, i) in row?.children\"-->\n <!-- :key=\"i\"-->\n <!-- :span=\"-->\n <!-- field_item.is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0-->\n <!-- \"-->\n <!-- :offset=\"field_item.offset\"-->\n <!-- :push=\"field_item.push\"-->\n <!-- :pull=\"field_item.pull\"-->\n <!-- >-->\n <!-- <field-render-2-->\n <!-- v-model:value=\"model[field_item.name]\"-->\n <!-- v-model:is_show_field=\"field_item['is_show_field']\"-->\n <!-- :field=\"field_item\"-->\n <!-- :formModel=\"model\"-->\n <!-- :outModel=\"outModel\"-->\n <!-- :key=\"field_item.name\"-->\n <!-- :validateInfos=\"validateInfos\"-->\n <!-- :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"-->\n <!-- @update_model=\"onUpdateModel\"-->\n <!-- @update_name2=\"onUpdateName2\"-->\n <!-- />-->\n <!-- </a-col>-->\n <!-- </a-row>-->\n </template>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\n\nexport default defineComponent({\n name: 'FormRender3',\n components: {\n FieldRender2,\n },\n props: {\n model: {\n type: Object,\n required: true,\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n default: () => {},\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n alwaysShowGroup: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update_model', 'update_model'],\n setup(props, { emit }) {\n if (props.form.watch) {\n for (let k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n\n const validate = () => {\n return (props.form as any).validate();\n };\n const onUpdateModel = params => {\n emit('update_model', params);\n };\n const onUpdateName2 = params => {\n emit('update_model', params);\n };\n return {\n validate,\n onUpdateModel,\n onUpdateName2,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.cards {\n ::v-deep(.ant-card-head) {\n padding: 0 8px;\n min-height: 44px;\n background-color: rgba(0, 0, 0, 0.02);\n }\n}\n</style>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n :layout=\"form.settings.layout\"\n :validateTrigger=\"false\"\n :label-col=\"\n form.settings.layout == 'vertical'\n ? undefined\n : form.settings.labelCol\n ? form.settings.labelCol\n : form.settings.col && form.settings.col.length > 0\n ? { span: 6 }\n : { span: 4 }\n \"\n :wrapper-col=\"\n form.settings.layout == 'vertical'\n ? undefined\n : form.settings.wrapperCol\n ? form.settings.wrapperCol\n : form.settings.col && form.settings.col.length > 0\n ? { span: 18 }\n : { span: 20 }\n \"\n :labelAlign=\"form.settings.labelAlign\"\n scrollToFirstError\n >\n <a-row\n :gutter=\"20\"\n style=\"margin: 0\"\n >\n <template v-if=\"form.settings.col && form.settings.col.length > 0\">\n <a-col\n v-for=\"col in fieldList\"\n :xl=\"24 / fieldList.length\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <field-render\n v-for=\"field in form.fields.slice(col[0], col[1])\"\n v-model:value=\"model[field.name]\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </a-col>\n </template>\n <a-col\n v-if=\"!form.settings.col || form.settings.col.length === 0\"\n :xl=\"24\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <template v-for=\"field in form.fields\">\n <field-render\n v-model:value=\"model[field.name]\"\n v-model:label=\"model[field.name2]\"\n v-if=\"field.name2\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n <field-render\n v-model:value=\"model[field.name]\"\n v-else\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </template>\n </a-col>\n </a-row>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\n\nexport default defineComponent({\n name: 'FormRender',\n components: {},\n props: {\n model: {\n type: Object,\n required: true,\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n setup(props) {\n if (props.form.watch) {\n for (const k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n },\n\n data() {\n return {\n fieldList: [] as any[],\n };\n },\n methods: {\n validate() {\n return (this.$refs.form as any).validate();\n },\n reset() {\n (this.$refs.form as any).resetFields();\n },\n disable(name: string | number) {\n // eslint-disable-next-line vue/no-mutating-props\n this.form.fields[name].disabled = true;\n },\n disableAll() {\n this.form.fields.forEach((item: any) => {\n item.disabled = true;\n });\n },\n },\n created() {\n let a = 0;\n if (this.form.settings.col && this.form.settings.col.length > 0) {\n this.form.settings.col.forEach((item: number, i: number) => {\n a = a + item;\n if (i === 0) {\n this.fieldList.push([0, a]);\n } else {\n this.fieldList.push([a - item, a]);\n }\n });\n }\n },\n});\n</script>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n scrollToFirstError\n >\n <a-row\n gutter=\"5\"\n v-for=\"row in form.fieldList\"\n type=\"flex\"\n >\n <a-col\n v-for=\"field in row\"\n :span=\"field.span\"\n >\n <template v-for=\"field in form.fields\">\n <field-render\n v-model:value=\"model[field.name]\"\n v-model:label=\"model[field.name2]\"\n v-if=\"field.name2\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n <field-render\n v-model:value=\"model[field.name]\"\n v-else\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </template>\n </a-col>\n </a-row>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\n\nexport default defineComponent({\n name: 'FormRender2',\n components: {},\n props: {\n model: {\n type: Object,\n required: true,\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n setup(props) {\n if (props.form.watch) {\n for (const k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n },\n\n data() {\n return {};\n },\n methods: {\n validate() {\n return (this.$refs.form as any).validate();\n },\n reset() {\n (this.$refs.form as any).resetFields();\n },\n disable(name: string | number) {\n // eslint-disable-next-line vue/no-mutating-props\n this.form.fields[name].disabled = true;\n },\n disableAll() {\n this.form.fields.forEach((item: any) => {\n item.disabled = true;\n });\n },\n },\n created() {},\n});\n</script>\n","<template>\n <template\n v-if=\"field.type !== 'divider' && (field?.is_search_show !== false || field_render_show)\"\n >\n <slot />\n <div\n v-if=\"field.type === 'kong'\"\n style=\"height: 62px; width: 200px\"\n ></div>\n <!-- 展示内容-->\n <div v-if=\"field.type === 'tag'\">\n <a-tag\n :color=\"field.color ? field.color(field, model) : 'green'\"\n :style=\"field.style\"\n v-if=\"(field.content && field.content(field, model)) || model\"\n @click=\"field.cb ? field.cb(field, model) : ''\"\n >\n <span v-if=\"field.content\">\n {{ field.content(field, model) }}\n </span>\n <span v-else>{{ model }}</span>\n </a-tag>\n </div>\n <!-- 表单占位组件-->\n <!-- 默认 【表单空位 高62px; 名称空位 高30px;】 如遇个别特殊表单,根据实际情况自行调节 高度-->\n <!-- height 属性必填-->\n <div\n v-if=\"field.type === 'kong_title'\"\n :style=\"'height: ' + field.height + 'px'\"\n ></div>\n <div\n v-if=\"field.type === 'title'\"\n style=\"height: 30px; position: relative\"\n >\n <span\n style=\"\n position: absolute;\n bottom: 0;\n padding: 0;\n margin: 0;\n font-weight: bolder;\n font-size: 17px;\n \"\n >\n {{ field.name }}\n </span>\n </div>\n <a-rate\n v-if=\"field.type === 'rate'\"\n v-model:value=\"model\"\n :disabled=\"field.disabled\"\n allow-half\n :style=\"`width: ${field_width}px`\"\n />\n <a-input\n v-if=\"field.type === 'input'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear == undefined ? true : field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :maxlength=\"field.maxlength\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请输入') + field.label\"\n :type=\"field.inputType ? field.inputType : 'text'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <template\n v-if=\"field?.prefix || field?.prefixIcon\"\n #prefix\n >\n <span v-if=\"field?.prefix\">{{ field.prefix }}</span>\n <component\n v-if=\"field?.prefixIcon\"\n :is=\"field?.prefixIcon\"\n />\n </template>\n <template\n v-if=\"field?.suffix || field?.suffixIcon\"\n #suffix\n >\n <span v-if=\"field?.suffix\">{{ field.suffix }}</span>\n <component\n v-if=\"field?.suffixIcon\"\n :is=\"field?.suffixIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonBefore || field?.addonBeforeIcon\"\n #addonBefore\n >\n <span v-if=\"field?.addonBefore\">{{ field.addonBefore }}</span>\n <component\n v-if=\"field?.addonBeforeIcon\"\n :is=\"field?.addonBeforeIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonAfter || field?.addonAfterIcon\"\n #addonAfter\n >\n <span v-if=\"field?.addonAfter\">{{ field.addonAfter }}</span>\n <component\n v-if=\"field?.addonAfterIcon\"\n :is=\"field?.addonAfterIcon\"\n />\n </template>\n </a-input>\n\n <a-input-number\n v-if=\"field.type === 'money'\"\n size=\"small\"\n v-model:value=\"model\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :disabled=\"field.disabled\"\n :default-value=\"field.defaultValue\"\n :min=\"field.min\"\n :max=\"field.max\"\n :formatter=\"value => `${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\"\n :precision=\"field.precision\"\n :step=\"field.step\"\n :placeholder=\"\n field.placeholder_i18n == undefined ? field.placeholder : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <a-input-number\n v-if=\"field.type === 'number'\"\n v-model:value=\"model\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :formatter=\"field.formatter\"\n :max=\"field.max\"\n :min=\"field.min\"\n :placeholder=\"field.placeholder ? field.placeholder : '请输入' + field.label\"\n :precision=\"field.precision\"\n :step=\"field.step\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <template\n v-if=\"field?.prefix || field?.prefixIcon\"\n #prefix\n >\n <span v-if=\"field?.prefix\">{{ field.prefix }}</span>\n <component\n v-if=\"field?.prefixIcon\"\n :is=\"field?.prefixIcon\"\n />\n </template>\n <template\n v-if=\"field?.suffix || field?.suffixIcon\"\n #suffix\n >\n <span v-if=\"field?.suffix\">{{ field.suffix }}</span>\n <component\n v-if=\"field?.suffixIcon\"\n :is=\"field?.suffixIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonBefore || field?.addonBeforeIcon\"\n #addonBefore\n >\n <span v-if=\"field?.addonBefore\">{{ field.addonBefore }}</span>\n <component\n v-if=\"field?.addonBeforeIcon\"\n :is=\"field?.addonBeforeIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonAfter || field?.addonAfterIcon\"\n #addonAfter\n >\n <span v-if=\"field?.addonAfter\">{{ field.addonAfter }}</span>\n <component\n v-if=\"field?.addonAfterIcon\"\n :is=\"field?.addonAfterIcon\"\n />\n </template>\n </a-input-number>\n\n <template v-if=\"field.type === 'select'\">\n <a-select\n v-if=\"field.mode === 'default'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-select-option\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-select-option>\n </a-select>\n <a-select\n v-else\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-select-option\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-select-option>\n </a-select>\n </template>\n <template v-if=\"field.type === 'groupselect'\">\n <a-select\n v-if=\"field.mode === 'default'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :getPopupContainer=\"field.getPopupContainer == undefined ? null : field.getPopupContainer\"\n :labelInValue=\"field.labelInValue === true\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :options=\"options\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n ></a-select>\n <a-select\n v-else\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :getPopupContainer=\"field.getPopupContainer == undefined ? null : field.getPopupContainer\"\n :labelInValue=\"field.labelInValue === true\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode\"\n :options=\"options\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n ></a-select>\n </template>\n\n <a-cascader\n v-if=\"field.type === 'cascader'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :multiple=\"field.multiple\"\n :show-search=\"field.show_search\"\n :changeOnSelect=\"field.changeOnSelect ? field.changeOnSelect : false\"\n :options=\"field.getOptionsData ? field.getOptionsData(options, model) : options\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <remote-cascader\n v-if=\"field.type === 'remotecascader'\"\n v-model:value=\"model\"\n v-model:label=\"labelModel\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :label-key=\"field.labelKey\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-cascader-pro\n v-if=\"field.type === 'remotecascaderpro'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :multiple=\"field.multiple\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :show_search=\"field.show_search\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :label-key=\"field.labelKey\"\n :value-key=\"field.valueKey\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n\n <month-picker\n v-if=\"field.type === 'monthpicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n size=\"small\"\n :is_range=\"field.is_range\"\n :value_has_time=\"field.value_has_time\"\n :start_offset_day=\"field.start_offset_day\"\n :end_offset_day=\"field.end_offset_day\"\n :fix_day=\"field.fix_day\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-date-picker\n v-if=\"field.type === 'datepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :format=\"field.format\"\n :picker=\"field.picker\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-time=\"field.showTime\"\n :value-format=\"field.valueFormat\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <a-range-picker\n v-if=\"field.type === 'rangepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue || []\"\n :disabled=\"field.disabled\"\n :format=\"field.format\"\n :placeholder=\"\n field.placeholder && isArray(field.placeholder) && field.placeholder.length > 0\n ? field.placeholder\n : [$t('开始时间'), $t('结束时间')]\n \"\n :show-time=\"field.showTime\"\n :value-format=\"field.valueFormat\"\n :picker=\"field.picker ? field.picker : 'date'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <month-range-picker\n v-if=\"field.type === 'monthrangepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue || []\"\n :disabled=\"field.disabled\"\n :placeholder=\"field.placeholder\"\n size=\"small\"\n :is_range=\"field.is_range\"\n :value_has_time=\"field.value_has_time\"\n :start_offset_day=\"field.start_offset_day\"\n :end_offset_day=\"field.end_offset_day\"\n :fix_day=\"field.fix_day\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <a-time-picker\n v-if=\"field.type === 'timepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :format=\"field.format ? field.format : 'HH:mm'\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :value-format=\"field.valueFormat ? field.valueFormat : 'HH:mm'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-time-range-picker\n v-if=\"field.type === 'timerangepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :format=\"field.format ? field.format : 'HH:mm'\"\n :placeholder=\"\n field.placeholder && isArray(field.placeholder) && field.placeholder.length > 0\n ? field.placeholder\n : [$t('开始时间'), $t('结束时间')]\n \"\n :value-format=\"field.valueFormat ? field.valueFormat : 'HH:mm'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-radio-group\n v-if=\"field.type === 'radio'\"\n v-model:value=\"model\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-radio\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :disabled=\"option.disabled\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-radio>\n </a-radio-group>\n\n <a-checkbox-group\n v-if=\"field.type === 'checkbox'\"\n v-model:value=\"model\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-checkbox\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :disabled=\"option.disabled\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-checkbox>\n </a-checkbox-group>\n\n <a-tree-select\n v-if=\"field.type === 'treeselect'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :multiple=\"field.multiple\"\n :tree-checkable=\"field.treeCheckable\"\n :tree-data=\"options\"\n :tree-label-prop=\"field.labelKey\"\n :tree-node-filter-prop=\"field.valueKey\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-filter-select\n v-if=\"field.type === 'remotefilterselect'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :label-key=\"field.labelKey\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-select\n v-if=\"field.type === 'remoteselect'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :label-key=\"field.labelKey\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-select-pro\n v-if=\"field.type === 'remoteselectpro'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :label-key=\"field.labelKey\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :is_input=\"field.is_input\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : $t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-complete\n v-if=\"field.type === 'remotecomplete'\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :label-key=\"field.labelKey\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :maxlength=\"field.maxlength\"\n :is_input=\"field.is_input\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : $t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-tree-select\n v-if=\"field.type === 'remotetreeselect'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :label-key=\"field.labelKey\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-tree-select-pro\n v-if=\"field.type === 'remotetreeselectpro'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :multiple=\"field.multiple\"\n :search_config=\"field.search_config\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :label-key=\"field.labelKey\"\n :value-key=\"field.valueKey\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : $t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-modal\n v-if=\"field.type === 'remotemodal'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :columns=\"field.columns\"\n :field=\"field\"\n :field_status=\"field.field_status\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :modalType=\"field.modalType\"\n :search_config=\"field.search_config\"\n :watch=\"field.watch\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-table\n v-if=\"field.type === 'remotetable'\"\n v-model:value=\"model\"\n :columns=\"field.columns\"\n :formModel=\"formModel\"\n :field=\"field\"\n :field_status=\"field.field_status\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :modalType=\"field.modalType\"\n :search_config=\"field.search_config\"\n :watch=\"field.watch\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <remote-text\n v-if=\"field.type === 'remotetext'\"\n v-model:value=\"model\"\n :columns=\"field.columns\"\n :formModel=\"formModel\"\n :field=\"field\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :modalType=\"field.modalType\"\n :search_config=\"field.search_config\"\n :watch=\"field.watch\"\n />\n\n <a-rate\n v-if=\"field.type === 'rate'\"\n v-model:value=\"model\"\n :count=\"field.count ? field.count : 5\"\n :allow-half=\"field.allowHalf\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-radio-group\n v-if=\"field.type === 'radio-color'\"\n v-model:value=\"model\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-radio\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :disabled=\"option.disabled\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n <div\n :style=\"{\n width: '20px',\n height: '20px',\n backgroundColor: option[field.valueKey ? field.valueKey : 'value'],\n }\"\n ></div>\n </a-radio>\n </a-radio-group>\n </template>\n\n <a-divider\n v-if=\"field.type === 'divider'\"\n :orientation=\"field.orientation\"\n >\n {{ field.label }}\n </a-divider>\n</template>\n<script lang=\"ts\">\nimport RemoteSelect from 'liyu-pc-base/components/FormRender/RemoteSelect/RemoteSelect.vue';\nimport RemoteCascader from 'liyu-pc-base/components/FormRender/RemoteCascader/RemoteCascader.vue';\nimport RemoteModal from 'liyu-pc-base/components/FormRender/RemoteModal/RemoteModal.vue';\nimport RemoteTreeSelect from 'liyu-pc-base/components/FormRender/RemoteTreeSelect/RemoteTreeSelect.vue';\nimport RemoteTable from 'liyu-pc-base/components/FormRender/RemoteTable/RemoteTable.vue';\nimport { defineComponent, watch, onMounted, ref } from 'vue';\nimport RemoteFilterSelect from 'liyu-pc-base/components/FormRender/RemoteFilterSelect/RemoteFilterSelect.vue';\nimport AttributeNomTable from 'liyu-pc-base/components/FormRender/AttributeNomTable/index.vue';\nimport AttributeTable from 'liyu-pc-base/components/FormRender/AttributeTable/index.vue';\nimport JsonStr from 'liyu-pc-base/components/FormRender/JsonStr/index.vue';\nimport JsonObj from 'liyu-pc-base/components/FormRender/JsonObj/index.vue';\nimport RemoteText from 'liyu-pc-base/components/FormRender/RemoteText/RemoteText.vue';\nimport RemoteTablePro from 'liyu-pc-base/components/FormRender/RemoteTablePro/RemoteTablePro.vue';\nimport { debounce, isArray, isEqual } from 'lodash-es';\nimport moment from 'moment';\nimport { isEmpty, isNotEmpty } from 'liyu-pc-base/utils/function';\nimport { PlusOutlined } from '@ant-design/icons-vue';\nimport RemoteSelectPro from 'liyu-pc-base/components/FormRender/RemoteSelectPro/RemoteSelectPro.vue';\nimport RemoteComplete from 'liyu-pc-base/components/FormRender/RemoteComplete/RemoteComplete.vue';\nimport RemoteTreeSelectPro from 'liyu-pc-base/components/FormRender/RemoteTreeSelectPro/RemoteTreeSelectPro.vue';\nimport RemoteCascaderPro from 'liyu-pc-base/components/FormRender/RemoteCascaderPro/RemoteCascaderPro.vue';\nimport Upload from 'liyu-pc-base/components/FormRender/Upload/upload.vue';\nimport RichTextEditor from 'liyu-pc-base/components/FormRender/RichTextEditor/index.vue';\nimport { useI18n } from 'vue-i18n';\nimport IconSelect from 'liyu-pc-base/components/FormRender/iconSelect/index.vue';\nimport MonthPicker from 'liyu-pc-base/components/FormRender/MonthPicker/index.vue';\nimport MonthRangePicker from 'liyu-pc-base/components/FormRender/MonthRangePicker/index.vue';\nimport CodeEditor from 'liyu-pc-base/components/code/CodeEditor.vue';\nimport TinymceEditor from 'liyu-pc-base/components/tinymce/TinymceEditor.vue';\n\nconst isValidDate = (dateString, format = 'YYYY-MM-DD') => {\n const date = moment(dateString, format, true);\n return date.isValid();\n};\nconst isValidDateTime = (dateString, format = 'YYYY-MM-DD HH:mm:ss') => {\n const date = moment(dateString, format, true);\n return date.isValid();\n};\nconst isValidTime = (dateString, format = 'HH:mm:ss') => {\n const date = moment(dateString, format, true);\n return date.isValid();\n};\nexport default defineComponent({\n name: 'FieldRender2',\n methods: { isArray },\n props: {\n field: {\n type: Object,\n required: true,\n },\n value: {\n required: true,\n },\n label: {\n required: false,\n },\n options: {\n type: Array,\n default: () => [],\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n formModel: {\n type: Object,\n default: () => {},\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n field_render_show: {\n type: Boolean,\n default: true,\n },\n is_show_label: {\n type: Boolean,\n default: true,\n },\n isUseConditions: {\n type: Boolean,\n default: true,\n },\n is_show_field: {\n type: Boolean,\n default: true,\n },\n is_edit: {\n type: Boolean,\n default: true,\n },\n conditionsVisibleNum: {\n type: Number,\n default: 0,\n },\n is_form_design: {\n type: Boolean,\n default: false,\n },\n field_width: {\n type: Number,\n default: 150,\n },\n },\n emits: [\n 'add',\n 'update:value',\n 'update:label',\n 'update_model',\n 'update:is_show_field',\n 'update:is_edit',\n 'update_name2',\n ],\n setup(props, { emit }) {\n const newModel = ref({ ...props.formModel });\n const rangeDate = (v: any) => {\n if (typeof v == 'string' && v.indexOf(',') >= 0) {\n return v.split(',');\n }\n return v;\n };\n const convertValueByClassName = (value, class_name) => {\n //class_name 'int','float',str','bool','date','datetime','time'\n let new_value;\n if (class_name == 'int') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'string') {\n new_value.push(Number(item));\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'string') {\n new_value = Number(value);\n } else {\n new_value = value;\n }\n } else if (class_name == 'str') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'number') {\n new_value.push(item.toString());\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'number') {\n new_value = value.toString();\n } else {\n new_value = value;\n }\n } else if (class_name == 'date') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isValidDate(item) && typeof item === 'string') {\n new_value.push(moment(item, 'YYYY-MM-DD'));\n } else {\n new_value.push(item);\n }\n });\n } else if (isValidDate(value) && typeof value === 'string') {\n new_value = value.toString();\n } else {\n new_value = value;\n }\n } else if (class_name == 'datetime') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isValidDateTime(item) && typeof item === 'string') {\n new_value.push(moment(item, 'YYYY-MM-DD HH:mm:ss'));\n } else {\n new_value.push(item);\n }\n });\n } else if (isValidDateTime(value) && typeof value === 'string') {\n new_value = moment(value, 'YYYY-MM-DD HH:mm:ss');\n } else {\n new_value = value;\n }\n } else if (class_name == 'time') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isValidTime(item) && typeof item === 'string') {\n new_value.push(moment(item, 'HH:mm:ss'));\n } else {\n new_value.push(item);\n }\n });\n } else if (isValidTime(value) && typeof value === 'string') {\n new_value = moment(value, 'HH:mm:ss');\n } else {\n new_value = value;\n }\n } else if (class_name == 'float') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'string') {\n new_value.push(Number(item));\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'string') {\n new_value = Number(value);\n } else {\n new_value = value;\n }\n } else if (class_name == 'bool') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'string') {\n new_value.push(Boolean(item));\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'string') {\n new_value = Boolean(value);\n } else {\n new_value = value;\n }\n }\n return new_value;\n };\n const is_show_field = ref(props.is_show_field);\n const is_edit = ref(false);\n const handleToggleEdit = () => {\n emit('update:is_edit', is_edit.value);\n };\n const handleAdd = () => {\n emit('add');\n };\n const check_visible_field_fun = debounce(() => {\n const old_is_show_field = is_show_field.value;\n const condition_result_list: any = [];\n for (const i in props.field?.conditions) {\n const group_list = props.field?.conditions[i];\n const group_results = [];\n for (const j in group_list) {\n const item = group_list[j];\n const value = props.formModel[item.watchKey];\n let new_value;\n if (item.class_name) {\n new_value = convertValueByClassName(item.value, item.class_name);\n } else {\n new_value = item.value;\n }\n let first, second;\n if (new_value instanceof Array) {\n [first, second] = new_value;\n }\n if (item.operator == 'lt') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value < first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (moment(value).isBefore(moment(first))) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'lte') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value <= first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n moment(value).isBefore(moment(first)) ||\n moment(value).isSame(moment(first))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'gt') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value > first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (moment(value).isAfter(moment(first))) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'gte') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value >= first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n moment(value).isAfter(moment(first)) ||\n moment(value).isSame(moment(first))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'between') {\n if (typeof first === 'number' && typeof second === 'number' && first && second) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value >= first && value <= second) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n (moment(value).isAfter(moment(first)) || moment(value).isSame(moment(first))) &&\n (moment(value).isBefore(moment(second)) || moment(value).isSame(moment(second)))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'notbetween') {\n if (typeof first === 'number' && typeof second === 'number' && first && second) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value < first || value > second) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n moment(value).isBefore(moment(first)) ||\n moment(value).isAfter(moment(second))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'in') {\n if (value instanceof Array) {\n const f_list = new_value.filter(x => {\n return value.includes(x);\n });\n if (f_list.length > 0) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (typeof value == 'string' || typeof value == 'number' || isEmpty(value)) {\n // 数字 字符串 空\n const f = new_value.find(x => {\n return value == x;\n });\n if (f) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'eq') {\n if (value === first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'contains') {\n if (value.toString().indexOf(first) > -1) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'startswith') {\n if (value.toString().startsWith(first)) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'notin') {\n if (value instanceof Array) {\n const f_list = new_value.filter(x => {\n return value.includes(x);\n });\n if (f_list.length > 0) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (typeof value == 'string' || typeof value == 'number' || isEmpty(value)) {\n // 数字 字符串 空\n const f = new_value.find(x => {\n return value == x;\n });\n if (!f) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'notcontains') {\n if (value.toString().indexOf(first) == -1) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == '_eq') {\n //todo\n } else if (item.operator == 'json_list_not_blank_not_null') {\n // 非空\n if (value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'json_list_is_blank_is_null') {\n //为空\n if (!value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'not_eq') {\n //为空\n if (!value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'not_blank_not_null') {\n // 非空\n if (value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n }\n condition_result_list.push(group_results);\n }\n const con_list = [];\n condition_result_list.forEach(item => {\n const find_false_list = item.filter(x => x === false);\n if (find_false_list && find_false_list.length > 0) {\n con_list.push(false);\n } else {\n con_list.push(true);\n }\n });\n\n const find_true_list = con_list.filter(x => x === true);\n if (find_true_list && find_true_list.length > 0) {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n } else {\n is_show_field.value = false;\n emit('update:is_show_field', is_show_field.value);\n }\n if (is_show_field.value !== old_is_show_field) {\n if (is_show_field.value) {\n newModel.value[props.field.name] = null;\n emit('update_model', {\n add_key: props.field.name,\n value: null,\n });\n } else {\n delete newModel.value[props.field.name];\n emit('update_model', {\n remove_key: props.field.name,\n });\n }\n }\n }, 300);\n const model = ref<any>('');\n const labelModel = ref(props.label);\n watch(\n () => model.value,\n (newValue, oldValue) => {\n if (isEqual(newValue, oldValue)) {\n return;\n }\n emit('update:value', newValue);\n if (props.field.name2) {\n let label: any;\n if (props.field.type === 'radio') {\n const obj = props.options.find(\n (item: any) =>\n item[props.field.valueKey ? props.field.valueKey : 'value'] == newValue,\n );\n label = obj?.[props.field.labelKey ? props.field.labelKey : 'label'];\n } else if (props.field.type === 'checkbox' && newValue && newValue.length >= 0) {\n const list = [];\n props.options.forEach((item: any) => {\n newValue.forEach((item1: any) => {\n if (item1 == item?.[props.field.valueKey ? props.field.valueKey : 'value']) {\n list.push(item?.[props.field.labelKey ? props.field.labelKey : 'label']);\n }\n });\n });\n label = list.toString();\n } else if (props.field.type === 'select') {\n if (isArray(newValue)) {\n const list = [];\n props.options.forEach((item: any) => {\n newValue.forEach((item1: any) => {\n if (item1 == item?.[props.field.valueKey ? props.field.valueKey : 'value']) {\n list.push(item?.[props.field.labelKey ? props.field.labelKey : 'label']);\n }\n });\n });\n label = list.toString();\n } else {\n const obj = props.options.find(\n (item: any) =>\n item[props.field.valueKey ? props.field.valueKey : 'value'] == newValue,\n );\n label = obj?.[props.field.labelKey ? props.field.labelKey : 'label'];\n }\n }\n emit('update_name2', {\n key: props.field.name2,\n value: label,\n });\n }\n },\n { deep: true },\n );\n watch(\n () => props.value,\n newValue => {\n let value = newValue;\n if (props.field.type === 'rangepicker' && value) {\n value = rangeDate(value);\n } else if (props.field.type === 'input' && value) {\n value = value.toString().replace(/(^\\s*)|(\\s*$)/g, '');\n }\n if (is_show_field.value) {\n //当该表单项显示时,才做向上的数据绑定,避免把undefined向上传递,影响rules字段的有效过滤\n model.value = value;\n }\n },\n { immediate: true },\n );\n watch(\n () => labelModel.value,\n newValue => {\n emit('update:label', newValue);\n if ('name2' in props.field) {\n emit('update_name2', { key: props.field.name2, value: newValue.toString() });\n }\n },\n { deep: true },\n );\n watch(\n () => props.label,\n newValue => {\n labelModel.value = newValue;\n },\n );\n watch(\n () => props.formModel,\n newValue => {\n newModel.value = { ...newValue };\n },\n { deep: true },\n );\n watch(\n () => newModel.value,\n (newValue, oldValue) => {\n if (props.field?.conditions) {\n props.field?.conditions.forEach(condition_list => {\n condition_list.forEach(item => {\n if (oldValue[item.watchKey] != newValue[item.watchKey]) {\n check_visible_field_fun();\n }\n });\n });\n }\n },\n { deep: true },\n );\n watch(\n () => [props.conditionsVisibleNum, props.isUseConditions],\n () => {\n if (props.field?.conditions) {\n if (props.isUseConditions) {\n check_visible_field_fun();\n } else {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n }\n } else {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n }\n },\n );\n onMounted(() => {\n if (props.field?.conditions instanceof Array && props.field?.conditions.length > 0) {\n check_visible_field_fun();\n } else {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n }\n if (!is_show_field.value) {\n // 表单项所见即所得,如果有隐藏的字段,那么model的key也要清除\n delete newModel.value[props.field.name];\n emit('update_model', {\n remove_key: props.field.name,\n });\n }\n });\n const { t } = useI18n();\n return {\n t,\n is_show_field,\n is_edit,\n handleToggleEdit,\n rangeDate,\n handleAdd,\n model,\n labelModel,\n };\n },\n components: {\n IconSelect,\n RichTextEditor,\n Upload,\n RemoteCascaderPro,\n RemoteTreeSelectPro,\n RemoteSelectPro,\n RemoteComplete,\n AttributeTable,\n AttributeNomTable,\n RemoteFilterSelect,\n RemoteModal,\n RemoteSelect,\n RemoteCascader,\n RemoteTreeSelect,\n RemoteTable,\n JsonStr,\n JsonObj,\n RemoteText,\n RemoteTablePro,\n PlusOutlined,\n MonthPicker,\n MonthRangePicker,\n CodeEditor,\n TinymceEditor,\n },\n});\n</script>\n\n<style scoped>\n.ant-calendar-picker {\n width: 100% !important;\n}\n</style>\n","import { useRequest } from 'liyu-pc-base/init-plugin';\nimport type { PageResult } from 'liyu-pc-base/api/typing';\n\nexport async function create_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/create_view_settings', params);\n}\n\nexport async function update_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/update_view_settings', params);\n}\n\nexport async function refresh_view_settings_cache(params: Record<string, any>) {\n return useRequest().post('/view/refresh_view_settings_cache', params);\n}\n\nexport async function set_view_settings_default(params: Record<string, any>) {\n return useRequest().post('/view/set_view_settings_default', params);\n}\n\nexport async function delete_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/delete_view_settings', params);\n}\n\nexport async function recover_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/recover_view_settings', params);\n}\n\nexport async function get_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/get_view_settings', params);\n}\n\nexport async function create_user_view(params: Record<string, any>) {\n return useRequest().post('/view/create_user_view', params);\n}\n\nexport async function update_user_view(params: Record<string, any>) {\n return useRequest().post('/view/update_user_view', params);\n}\n\nexport async function delete_user_view(params: Record<string, any>) {\n return useRequest().post('/view/delete_user_view', params);\n}\n\nexport async function recover_user_view(params: Record<string, any>) {\n return useRequest().post('/view/recover_user_view', params);\n}\n\nexport async function get_user_view(params: Record<string, any>) {\n return useRequest().post('/view/get_user_view', params);\n}\n\nexport async function get_view_settings_for_user(params: Record<string, any>) {\n return useRequest().post('/view/get_view_settings_for_user', params);\n}\n\nexport async function change_view_settings_sort(params: Record<string, any>) {\n return useRequest().post('/view/change_view_settings_sort', params);\n}\n\nexport async function query_view_settings_list(params?: {\n [key: string]: any;\n}): Promise<PageResult> {\n return useRequest().post('/view/query_view_settings_list', params);\n}\n\nexport async function query_user_view_list(params?: { [key: string]: any }): Promise<PageResult> {\n return useRequest().post('/view/query_user_view_list', params);\n}\n","export const CUSTOM_VIEW_DATA_USER = 'customviewdatauser';\n","<template>\n <a-card :body-style=\"{ padding: 0, height: height + 96 + 'px', overflowY: 'auto' }\">\n <a-collapse\n v-model:activeKey=\"viewKey\"\n :bordered=\"false\"\n class=\"collapses\"\n style=\"background: rgb(255, 255, 255)\"\n >\n <template #expandIcon=\"{ isActive }\">\n <caret-right-outlined :rotate=\"isActive ? 90 : 0\" />\n </template>\n <a-collapse-panel\n :key=\"'1'\"\n :style=\"customStyle\"\n >\n <template #header>\n <span style=\"font-weight: 700\">{{ $t('个人视图') }}</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>{{ $t('个人视图管理') }}</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('personal')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>{{ $t('新建个人视图') }}</template>\n <plus-outlined @click.stop=\"addView('personal')\" />\n </a-tooltip>\n </template>\n <a-table\n v-if=\"personData.length > 0\"\n :columns=\"columns\"\n :customRow=\"customRow\"\n :dataSource=\"personData\"\n :pagination=\"false\"\n :showHeader=\"false\"\n :size=\"'small'\"\n >\n <template #bodyCell=\"{ column, record }\">\n <div\n class=\"table\"\n v-if=\"column.dataIndex === 'name'\"\n style=\"width: 100%; cursor: pointer\"\n @click=\"changeView(record)\"\n >\n <a-tooltip\n :title=\"record.name\"\n :color=\"appStore.primaryColor\"\n placement=\"left\"\n :destroyTooltipOnHide=\"true\"\n :overlayStyle=\"{ maxWidth: '200px' }\"\n >\n <div style=\"max-width: 130px; float: left; white-space: nowrap; overflow: hidden\">\n {{ record.name }}\n </div>\n </a-tooltip>\n <span\n class=\"num\"\n style=\"float: right\"\n :style=\"\n currentViewObj.id === record.id ? { color: '#1890ff', fontWeight: 'bold' } : {}\n \"\n >\n {{ record.num }}\n </span>\n <a-dropdown class=\"dropdown\">\n <span\n style=\"float: right; font-weight: 800\"\n @click.stop=\"\"\n >\n · · ·\n </span>\n <template #overlay>\n <a-menu>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleSubmit(record, 'personal')\"\n >\n {{ $t('编辑') }}\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n {{ $t('分享视图') }}\n </a>\n </a-menu-item>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleDelet(record)\"\n >\n {{ $t('删除') }}\n </a>\n </a-menu-item>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n </template>\n </a-table>\n </a-collapse-panel>\n <a-collapse-panel\n :key=\"'2'\"\n :style=\"customStyle\"\n >\n <template #header>\n <span style=\"font-weight: 700\">{{ $t('公共视图') }}</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>{{ $t('公共视图管理') }}</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('public')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>{{ $t('新建公共视图') }}</template>\n <plus-outlined @click.stop=\"addView('public')\" />\n </a-tooltip>\n </template>\n <a-table\n v-if=\"publicData.length > 0\"\n :columns=\"columns\"\n :customRow=\"customRow\"\n :dataSource=\"publicData\"\n :pagination=\"false\"\n :showHeader=\"false\"\n :size=\"'small'\"\n >\n <template #bodyCell=\"{ column, record }\">\n <div\n class=\"table\"\n v-if=\"column.dataIndex === 'name'\"\n style=\"width: 100%; cursor: pointer\"\n @click=\"changeView(record)\"\n >\n <a-tooltip\n :title=\"record.name\"\n :color=\"appStore.primaryColor\"\n placement=\"left\"\n :destroyTooltipOnHide=\"true\"\n :overlayStyle=\"{ maxWidth: '200px' }\"\n >\n <div style=\"max-width: 130px; float: left; white-space: nowrap; overflow: hidden\">\n {{ record.name }}\n </div>\n </a-tooltip>\n <span\n class=\"num\"\n style=\"float: right\"\n :style=\"\n currentViewObj.id === record.id ? { color: '#1890ff', fontWeight: 'bold' } : {}\n \"\n >\n {{ record.num }}\n </span>\n <a-dropdown class=\"dropdown\">\n <span\n style=\"float: right; font-weight: 800\"\n @click.stop=\"\"\n >\n · · ·\n </span>\n <template #overlay>\n <a-menu>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleSubmit(record, 'public')\"\n >\n {{ $t('编辑') }}\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n {{ $t('分享视图') }}\n </a>\n </a-menu-item>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleDelet(record)\"\n >\n {{ $t('删除') }}\n </a>\n </a-menu-item>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n </template>\n </a-table>\n </a-collapse-panel>\n </a-collapse>\n </a-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n createVNode,\n defineComponent,\n onActivated,\n onMounted,\n onUnmounted,\n reactive,\n ref,\n watch,\n} from 'vue';\nimport {\n CaretRightOutlined,\n ExclamationCircleOutlined,\n PlusOutlined,\n SettingOutlined,\n} from '@ant-design/icons-vue';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { message, Modal } from 'ant-design-vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport { useAppStore } from 'liyu-pc-base/init-plugin';\nimport {\n change_view_settings_sort,\n create_view_settings,\n delete_view_settings,\n query_view_settings_list,\n refresh_view_settings_cache,\n set_view_settings_default,\n update_view_settings,\n} from 'liyu-pc-base/api/view-model';\nimport { sourceStore } from 'liyu-pc-base/init-plugin';\nimport { copyValue } from 'liyu-pc-base/utils/function';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport {\n getPageConfig,\n getViewSettingsAndPageConfig,\n} from 'liyu-pc-base/components/remotePages/index';\nimport { useI18n } from 'vue-i18n';\nimport { useRequiredConditionStore } from 'liyu-pc-base/init-plugin';\nimport { required_condition_event_obj } from 'liyu-pc-base/init-plugin';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { CUSTOM_VIEW_DATA_USER } from 'liyu-pc-base/constants';\n\nconst VIEW_SYSTEM_EDIT = 'view_system_edit';\nconst columns = [\n {\n title: '',\n dataIndex: 'name',\n key: 'name',\n },\n];\nexport default defineComponent({\n name: 'ViewManage',\n components: {\n CaretRightOutlined,\n PlusOutlined,\n SettingOutlined,\n },\n props: {\n currentViewObj: {\n type: Object,\n required: true,\n },\n menu_flag: {\n type: String,\n required: true,\n },\n menu_name: {\n type: String,\n required: true,\n },\n countData: {\n type: String,\n required: true,\n },\n create_num: {\n type: Number,\n required: true,\n },\n current_num: {\n type: Number,\n required: true,\n },\n count_num: {\n type: Number,\n required: true,\n },\n height: {\n type: Number,\n required: true,\n },\n modalType: {\n type: String,\n },\n app_flag: {\n type: String,\n },\n },\n emits: ['change'],\n setup(props, { emit }) {\n const env = useEnv();\n const requiredConditionStore = useRequiredConditionStore();\n const userStore = useUserStore();\n const appStore = useAppStore();\n const current_org = userStore.currentOrg;\n const userid = userStore.userid;\n const is_auth = ref(userStore.CHECK_AUTH(VIEW_SYSTEM_EDIT));\n const viewData = ref([]); // 视图数据\n const { t } = useI18n();\n let mergedConfig: any;\n let defaultAndServerConfig: any;\n const personData = computed(() => {\n const list = viewData.value\n .filter((item: any) => !!item.user_id && item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n const list1 = viewData.value\n .filter((item: any) => !!item.user_id && !item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n return list.concat(list1);\n }); // 个人视图数据\n const publicData = computed(() => {\n const list = viewData.value\n .filter((item: any) => !item.user_id && item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n const list1 = viewData.value\n .filter((item: any) => !item.user_id && !item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n return list.concat(list1);\n }); // 公共视图数据\n const viewNameList = computed(() => {\n return viewData.value.map((item: any) => {\n return item.name;\n });\n }); // 视图名称列表,用于创建、修改时查重\n\n const fetchData = async ({\n id,\n search_model,\n filter_map,\n sort_fields,\n group_condition,\n conditions,\n isShowGeneralFilter,\n }) => {\n return new Promise(resolve => {\n if (!props.countData && !mergedConfig?.countData) {\n console.error('无count接口');\n resolve(null);\n }\n const obj: any = {\n org_id: current_org.id,\n ...search_model,\n ...filter_map,\n sort_fields: sort_fields,\n };\n if (isShowGeneralFilter) {\n obj.group_condition = group_condition;\n obj.conditions = conditions;\n }\n obj.required_condition = getRequiredConditionObj();\n getApiData(obj, mergedConfig?.countData ? mergedConfig.countData : props.countData)\n .then((res: any) => {\n viewData.value.forEach((item: any) => {\n if (item.id == id) {\n item.num = res;\n }\n });\n resolve(null);\n })\n .catch(error => {\n console.log('error', error);\n message.error(t('获取数据失败, 请刷新页面'));\n });\n });\n };\n const setCount = async (list: any) => {\n for (const item of list) {\n try {\n await fetchData(item);\n } catch (error) {\n console.log('error', error);\n message.error(t('获取数据失败, 请刷新页面'));\n }\n }\n };\n // 查询视图、刷新count\n const viewRefresh = () => {\n getViewSettingsAndPageConfig({\n org_id: current_org.id,\n user_id: userid,\n app_flag: props.app_flag,\n modalType: props.modalType,\n sort_fields: ['sort', 'create_time'],\n is_cache: false,\n })\n .then((res: any) => {\n mergedConfig = getPageConfig(\n props.app_flag,\n props.modalType,\n res.defaultAndServerConfig,\n t,\n {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n },\n );\n defaultAndServerConfig = res.defaultAndServerConfig;\n if (mergedConfig?.isView === false) {\n window.location.hash = '';\n emit('change', defaultAndServerConfig, {}, true, true);\n return;\n }\n requiredConditionStore.set_required_condition(\n props.modalType,\n mergedConfig.required_condition,\n );\n viewData.value.length = 0;\n let list: any = [];\n const count_search_list: any = [];\n if (res && res.system_user_datas && res.system_user_datas.length > 0) {\n list = list.concat(res.system_user_datas);\n }\n if (res && res.system_public_datas && res.system_public_datas.length > 0) {\n list = list.concat(res.system_public_datas);\n }\n if (res && res.public_datas && res.public_datas.length > 0) {\n list = list.concat(res.public_datas);\n }\n if (res && res.user_datas && res.user_datas.length > 0) {\n list = list.concat(res.user_datas);\n }\n list.forEach((item: any) => {\n let search_model: any = null;\n let filter_map: any = null;\n let group_condition: any = null;\n let conditions: any = null;\n if (item.data.isShowGeneralFilter) {\n search_model = {};\n filter_map = {};\n group_condition = item.data.group_condition;\n conditions = item.data.conditions;\n } else {\n search_model = item.data.search_model;\n filter_map = item.data.filter_map;\n group_condition = {};\n conditions = [];\n }\n viewData.value.push({\n ...item,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition: group_condition,\n conditions: conditions,\n });\n count_search_list.push({\n id: item.id,\n isShowGeneralFilter: item.data.isShowGeneralFilter,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition,\n conditions,\n });\n });\n if (count_search_list.length > 0) {\n setCount(count_search_list);\n }\n handleHashChange(null);\n })\n .catch(err => {\n console.log('err', err);\n message.error(t('获取视图失败, 请刷新页面'));\n });\n };\n // 根据hash选定当前视图数据 event返回(视图数据,是否刷新页面,是否可自我保存)\n const handleHashChange = (uid: any) => {\n let hash = null;\n if (uid) {\n hash = uid;\n } else if (window.location.hash) {\n hash = window.location.hash.substring(1); // 去掉 # 符号\n }\n if (hash) {\n // 分享的视图链接打开\n const list = viewData.value.filter((item: any) => item.uid == hash);\n if (list && list.length > 0) {\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n } else {\n query_view_settings_list({\n org_id: current_org.id,\n conditions: [\n [\n {\n field_name: 'is_active',\n operator: 'in',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n {\n field_name: 'view_menu__flag',\n operator: 'eq',\n value: [props.menu_flag],\n format: 'input',\n class_name: 'str',\n },\n {\n field_name: 'uid',\n operator: 'eq',\n value: [hash],\n format: 'input',\n class_name: 'str',\n },\n ],\n ],\n }).then((res: any) => {\n if (res && res.data && res.data.length > 0) {\n emit(\n 'change',\n defaultAndServerConfig,\n {\n ...res.data[0],\n ...res.data[0].data,\n },\n true,\n false,\n );\n } else {\n const list = viewData.value.filter((item: any) => !item.user_id && item.is_default);\n if (list && list.length > 0) {\n window.location.hash = list[0].uid;\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n return;\n }\n let obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => !item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n const obj = {\n uid: null,\n view_menu__flag: props.menu_flag,\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n };\n emit('change', defaultAndServerConfig, obj, true, false);\n window.location.hash = '';\n }\n }\n }\n });\n }\n } else {\n let current_uid = '';\n if (sourceStore().get(CUSTOM_VIEW_DATA_USER)) {\n current_uid = sourceStore().get(CUSTOM_VIEW_DATA_USER)?.[props.menu_flag]; // 菜单当前视图uid\n }\n if (current_uid) {\n window.location.hash = current_uid;\n handleHashChange(current_uid);\n } else {\n // 优先选择非系统视图的默认视图\n const list = viewData.value.filter(\n (item: any) => !item.user_id && item.is_default && !item.is_system,\n );\n if (list && list.length > 0) {\n window.location.hash = list[0].uid;\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n return;\n }\n // 其次选择系统视图默认视图(多个默认选择第一个)\n const list_is_system = viewData.value.filter(\n (item: any) => !item.user_id && item.is_default && item.is_system,\n );\n if (list_is_system && list_is_system.length > 0) {\n window.location.hash = list_is_system[0].uid;\n emit(\n 'change',\n defaultAndServerConfig,\n { ...list_is_system[0], ...list_is_system[0].data },\n true,\n true,\n );\n return;\n }\n let obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => !item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n window.location.hash = '';\n const obj = {\n uid: null,\n view_menu__flag: props.menu_flag,\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n };\n emit('change', defaultAndServerConfig, obj, true, false);\n }\n }\n }\n }\n };\n viewRefresh();\n const viewKey = ref(['1', '2']); // 视图数据展开控制key\n const customStyle =\n 'background: #ffffff;border-radius: 4px;margin-bottom: 2px;border: 0;overflow: hidden;';\n const customRow = (record: any) => {\n return props.currentViewObj && record && record.id === props.currentViewObj.id\n ? { style: { backgroundColor: '#ddf1ff' } }\n : { style: {} };\n };\n // 切换视图\n const changeView = (record: any) => {\n window.location.hash = record.uid;\n handleHashChange(record.uid);\n refreshCount([record]);\n };\n // 保存修改视图\n const viewSubmit = ({ updateView, record }) => {\n if (record.name != updateView.name && viewNameList.value.includes(updateView.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n if (record?.id) {\n const list = viewData.value.filter((item: any) => record?.id == item.id);\n if (updateView.is_submit?.[0]) {\n const view = {\n ...list[0].data,\n search_model: { ...props.currentViewObj.search_model, current: 1 },\n filter_map: props.currentViewObj.filter_map,\n sort_fields: props.currentViewObj.sort_fields,\n filtered_value: props.currentViewObj.filtered_value,\n sort_orders: props.currentViewObj.sort_orders,\n column: props.currentViewObj.column,\n isShowGeneralFilter: props.currentViewObj.isShowGeneralFilter,\n conditions: props.currentViewObj.conditions,\n group_condition: props.currentViewObj.group_condition,\n group_record: props.currentViewObj.group_record,\n default_search_condition_config_list:\n props.currentViewObj.default_search_condition_config_list,\n };\n delete view.is_system; // 存储时不记录is_system,防止后端直接修改,前端不起效\n update_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n is_system: updateView.is_system?.[0],\n name: updateView.name,\n data: JSON.stringify(view),\n }).then((res: any) => {\n if (updateView.is_default?.[0]) {\n set_view_settings_default({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n });\n } else {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n }\n });\n } else {\n update_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n is_system: updateView.is_system?.[0],\n name: updateView.name,\n }).then((res: any) => {\n if (updateView.is_default?.[0]) {\n set_view_settings_default({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n });\n } else {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n }\n });\n }\n } else {\n let view: any = {};\n if (updateView.is_submit?.[0]) {\n view = {\n search_model: { ...props.currentViewObj.search_model, current: 1 },\n filter_map: props.currentViewObj.filter_map,\n sort_fields: props.currentViewObj.sort_fields,\n filtered_value: props.currentViewObj.filtered_value,\n sort_orders: props.currentViewObj.sort_orders,\n column: props.currentViewObj.column,\n isShowGeneralFilter: props.currentViewObj.isShowGeneralFilter,\n conditions: props.currentViewObj.conditions,\n group_condition: props.currentViewObj.group_condition,\n group_record: props.currentViewObj.group_record,\n default_search_condition_config_list:\n props.currentViewObj.default_search_condition_config_list,\n };\n delete view.is_system; // 存储时不记录is_system,防止后端直接修改,前端不起效\n } else {\n view = {\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n isShowGeneralFilter: null,\n conditions: [],\n group_condition: {},\n group_record: {},\n };\n }\n create_view_settings({\n org_id: current_org.id,\n user_id: updateView.view_type == 'personal' ? userid : null,\n name: updateView.name,\n view_project__flag: env.VITE_APP_VIEW_PROJECT_FLAG,\n view_menu__flag: props.menu_flag,\n view_menu__name: props.menu_name,\n is_system: false,\n data: JSON.stringify(view),\n }).then((res: any) => {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, true, true);\n if (res.id) {\n viewData.value = viewData.value.concat([\n {\n ...res,\n },\n ]);\n setCount([\n {\n id: res.id,\n search_model: view.search_model,\n filter_map: view.filter_map,\n sort_fields: view.sort_fields,\n group_condition: view.group_condition,\n conditions: view.conditions,\n isShowGeneralFilter: view.isShowGeneralFilter,\n },\n ]);\n window.location.hash = res.uid;\n handleHashChange(res.uid);\n }\n });\n }\n };\n // 视图编辑按钮\n const handleSubmit = (record: any, view_type: string) => {\n let is_submit: any = [false];\n if (props.currentViewObj.id == record.id) {\n is_submit = [true];\n }\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('编辑视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'checkbox',\n name: 'is_submit',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: record.name,\n is_submit: is_submit,\n is_default: [record?.is_default ? record?.is_default : false],\n is_system: [record?.is_system ? record?.is_system : false],\n }),\n },\n options: {\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n is_default: [\n {\n name: t('设为默认视图'),\n value: true,\n },\n ],\n is_system: [\n {\n name: t('设为系统视图'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n viewSubmit({ updateView: data, record: record });\n resolve(null);\n });\n },\n });\n if (view_type == 'public') {\n tempModal.form.fields.push({\n type: 'checkbox',\n name: 'is_default',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n });\n if (is_auth.value) {\n tempModal.form.fields.push({\n type: 'checkbox',\n name: 'is_system',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n });\n }\n }\n modalBox(tempModal);\n };\n // 添加视图\n const addView = (view_type: any) => {\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('新建视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'radio',\n name: 'view_type',\n label: t('视图可见范围'),\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '',\n },\n {\n type: 'checkbox',\n name: 'is_submit',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: null,\n view_type: view_type,\n is_submit: [true],\n }),\n },\n options: {\n view_type: [\n { name: t('个人视图(仅自己可见)'), value: 'personal' },\n { name: t('公共视图(项目成员均可见)'), value: 'public' },\n ],\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n if (viewNameList.value.includes(data.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n viewSubmit({ updateView: data, record: data });\n resolve(null);\n });\n },\n });\n modalBox(tempModal);\n };\n // 管理视图\n const editView = (view_type: any) => {\n const tempModal = reactive({\n open: true,\n component: 'ViewEditModal',\n compObj: {\n title: view_type == 'personal' ? t('个人视图管理') : t('公共视图管理'),\n data: view_type == 'personal' ? personData.value : publicData.value,\n },\n ok: (ids: any) => {\n if (ids && ids.length > 0) {\n change_view_settings_sort({\n org_id: current_org.id,\n view_settings_ids: ids,\n }).then(() => {\n message.success(t('保存成功'));\n viewRefresh();\n });\n } else {\n message.success(t('保存成功'));\n viewRefresh();\n }\n },\n cancel: (isEdit: any) => {\n if (isEdit) {\n viewRefresh();\n }\n },\n });\n modalBox(tempModal);\n };\n // 分享视图\n const handleShare = (record: any) => {\n let url = '';\n const index = window.location.href.indexOf('#');\n if (index !== -1) {\n // 如果找到了 #,则截取它之前的部分\n url = window.location.href.substring(0, index) + '#' + record.uid;\n } else {\n // 如果没有找到 #,则返回原始字符串\n url = window.location.href + '#' + record.uid;\n }\n copyValue({ val: url, message: t('复制成功') });\n };\n // 删除视图\n const handleDelet = (record: any) => {\n Modal.confirm({\n title: () =>\n `${t('确认删除此')}【${record.name}】${record?.user_id ? t('个人视图') : t('公共视图')}?`,\n content: t('视图删除后不可恢复,视图下工作项不受影响,是否确认删除?'),\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: t('确定'),\n onOk() {\n return new Promise(resolve => {\n delete_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n })\n .then(() => {\n viewData.value = viewData.value.filter((item: any) => item.id != record.id);\n handleHashChange(null);\n message.success(t('删除成功'));\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onCancel() {},\n });\n };\n const getRequiredConditionObj = () => {\n const page_config = getPageConfig(props.app_flag, props.modalType, null, t, {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n });\n const required_condition = page_config.required_condition;\n const required_condition_obj = {};\n if (required_condition) {\n required_condition.forEach((item: any) => {\n const value = requiredConditionStore.value_map[item.key];\n if (value !== undefined && value !== null) {\n required_condition_obj[item.field_name] = value;\n }\n });\n }\n return required_condition_obj;\n };\n // 刷新Count (视图record,uid) => {}\n const refreshCount = (list: any) => {\n const count_search_list = [];\n list.forEach((item: any) => {\n let search_model: any = null;\n let filter_map: any = null;\n let group_condition: any = null;\n let conditions: any = null;\n if (item.data.isShowGeneralFilter) {\n search_model = {};\n filter_map = {};\n group_condition = item.data.group_condition;\n conditions = item.data.conditions;\n } else {\n search_model = item.data.search_model;\n filter_map = item.data.filter_map;\n group_condition = {};\n conditions = [];\n }\n count_search_list.push({\n id: item.id,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition,\n conditions,\n isShowGeneralFilter: item.data.isShowGeneralFilter,\n });\n });\n setCount(count_search_list);\n };\n watch(\n () => props.current_num, // 监听保存当前视图\n () => {\n Modal.confirm({\n title: () => t('确定覆盖视图吗?'),\n content: t('当前视图原有的数据会被覆盖'),\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: t('确定'),\n onOk() {\n return new Promise(resolve => {\n viewSubmit({\n updateView: {\n is_submit: [true],\n is_system: [props.currentViewObj.is_system],\n name: props.currentViewObj.name,\n },\n record: props.currentViewObj,\n });\n resolve(null);\n }).catch(() => console.log('Oops errors!'));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onCancel() {},\n });\n },\n );\n watch(\n () => props.create_num, // 监听另存为\n () => {\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('新建视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'radio',\n name: 'view_type',\n label: t('视图可见范围'),\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: null,\n view_type: 'personal',\n is_submit: [true],\n }),\n },\n options: {\n view_type: [\n { name: t('个人视图(仅自己可见)'), value: 'personal' },\n { name: t('公共视图(项目成员均可见)'), value: 'public' },\n ],\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n const viewNameList = viewData.value.map((item: any) => item.name);\n if (viewNameList.includes(data.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n viewSubmit({ updateView: data, record: data });\n resolve(null);\n });\n },\n });\n modalBox(tempModal);\n },\n );\n\n watch(\n () => props.count_num, // 监听刷新当前视图count\n () => {\n refreshCount(viewData.value);\n },\n );\n const handleRequiredConditionChange = (key: string) => {\n const page_config = getPageConfig(props.currentViewObj.app_flag, props.modalType, null, t, {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n });\n if (page_config.required_condition) {\n const item = page_config.required_condition.find((item: any) => item.key === key);\n if (item) {\n viewRefresh();\n }\n }\n };\n onMounted(() => {\n required_condition_event_obj().on('change', handleRequiredConditionChange);\n });\n onUnmounted(() => {\n required_condition_event_obj().off('change', handleRequiredConditionChange);\n });\n // 页面重新进入刷新count\n onActivated(() => {\n refreshCount(viewData.value);\n });\n return {\n props,\n viewKey,\n customStyle,\n columns,\n personData,\n publicData,\n is_auth,\n addView,\n editView,\n customRow,\n changeView,\n handleSubmit,\n handleShare,\n handleDelet,\n appStore,\n };\n },\n});\n</script>\n<style lang=\"less\">\n.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box {\n padding: 0;\n}\n\n.num {\n display: inline-block;\n}\n\n.dropdown {\n display: none;\n}\n\n.table:hover .dropdown {\n display: inline-block;\n}\n\n.table:hover .num {\n display: none;\n}\n</style>\n","<template>\n <a-card :body-style=\"{ padding: 0, height: selectObj.height + 96 + 'px', overflowY: 'auto' }\">\n <view-manage\n :select-obj=\"selectObj\"\n @change=\"change\"\n />\n </a-card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue';\n// import SideFieldRender from 'liyu-pc-base/components/SideSearchRender/SideFieldRender.vue';\n// import { ReloadOutlined } from '@ant-design/icons-vue';\nimport ViewManage from 'liyu-pc-base/components/SideSearchRender/viewManage.vue';\n\nexport default defineComponent({\n name: 'SideSearchRender',\n components: {\n ViewManage,\n },\n props: {\n selectObj: {\n type: Object,\n required: true,\n },\n },\n emits: ['change'],\n setup(props, { emit }) {\n const change = (data: any, is_refresh: any, is_ownView: any) => {\n emit('change', data, is_refresh, is_ownView);\n };\n return {\n props,\n change,\n };\n },\n});\n</script>\n<style lang=\"less\">\n.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box {\n padding: 0;\n}\n</style>\n"],"names":["_sfc_main$8","defineComponent","props","emit","activeKey","ref","tab_list","item_list","index","base_search_list","i","k","handleSubmit","e","list","item","selected_group_list","temp","operator_list_selected","get_operator_list_selected","first","condition","_resolveComponent","_openBlock","_createBlock","_component_a_modal","_ctx","_cache","_withCtx","_createVNode","_component_a_tabs","$event","_createElementBlock","_Fragment","_renderList","_component_a_tab_pane","base_search_item","_createElementVNode","_hoisted_1","_toDisplayString","_component_a_space","obj","_component_a_checkbox","_sfc_main$7","_a","_b","new_search_list","new_group","new_i","message","_hoisted_3","get_options_eq","t","_sfc_main$6","FieldRender2","CloseOutlined","LeftOutlined","RightOutlined","FieldRender","AddConditionGroupModal","AddConditionModal","CloseCircleOutlined","isShowForm","labelModel","useI18n","options_eq","condition_model_dict","validateInfos","source_default_search_condition_config_list","is_or_not_blank_or_null_options","operator_type_count_map","is2DArray","arr","subArray","old_operator","onChangeOperator","operator","value","isNotEmpty","seconds","addConditionModal","reactive","handleAddConditions","handleAddConditionOk","data","item1","index1","item2","item3","handleAddConditionCancel","addConditionGroupModal","handleAddGroupCondition","handleAddGroupConditionOK","handleAddGroupConditionCancel","handleSearch","refreshCondition","update_all","deleteBtnDict","group_item","onFilterChanged","handleMouseEnter","form_item","handleMouseLeave","handleDeleteFormItem","new_list","index_","handleDelSearch","filed_name","onChangeSearchItem","group_index","condition_index","selected_field_name","new_condition","searchItemOptionsDict","computed","dict","filter_field_name_list","filter_list","o","isShowSearchTag","transferValueFunc","str_list","get_operator_type_map","transfer_value","moment","handleShowSearchRender","watch","onMounted","onUnmounted","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_4","_createCommentVNode","_component_a_button","_withDirectives","_component_a_tag","_createTextVNode","_component_close_outlined","_vShow","_hoisted_2","_component_a_space_compact","_component_a_input_group","_component_a_tooltip","_component_a_cascader","_component_a_select","_component_a_select_option","_component_field_render_2","_component_a_flex","_hoisted_5","_hoisted_6","_component_close_circle_outlined","_component_a_divider","_hoisted_7","_component_add_condition_modal","_component_add_condition_group_modal","_sfc_main$5","params","_component_a_form","row","_component_a_card","_createSlots","_component_a_row","field_item","_component_a_col","_sfc_main$4","name","a","col","field","_component_field_render","_sfc_main$3","field2","isValidDate","dateString","format","isValidDateTime","isValidTime","_sfc_main$2","isArray","newModel","rangeDate","v","convertValueByClassName","class_name","new_value","is_show_field","is_edit","handleToggleEdit","handleAdd","check_visible_field_fun","debounce","old_is_show_field","condition_result_list","group_list","group_results","j","second","isEmpty","x","con_list","find_false_list","find_true_list","model","newValue","oldValue","isEqual","label","condition_list","IconSelect","RichTextEditor","Upload","RemoteCascaderPro","RemoteTreeSelectPro","RemoteSelectPro","RemoteComplete","AttributeTable","AttributeNomTable","RemoteFilterSelect","RemoteModal","RemoteSelect","RemoteCascader","RemoteTreeSelect","RemoteTable","JsonStr","JsonObj","RemoteText","RemoteTablePro","PlusOutlined","MonthPicker","MonthRangePicker","CodeEditor","TinymceEditor","_renderSlot","_normalizeStyle","_component_a_rate","_component_a_input","_c","_resolveDynamicComponent","_e","_g","_i","_component_a_input_number","_k","_m","_o","_q","option","_component_remote_cascader","_component_remote_cascader_pro","_component_month_picker","_component_a_date_picker","_component_a_range_picker","_component_month_range_picker","_component_a_time_picker","_component_a_time_range_picker","_component_a_radio_group","_component_a_radio","_component_a_checkbox_group","_component_a_tree_select","_component_remote_filter_select","_component_remote_select","_component_remote_select_pro","_component_remote_complete","_component_remote_tree_select","_component_remote_tree_select_pro","_component_remote_modal","_component_remote_table","_component_remote_text","create_view_settings","useRequest","update_view_settings","refresh_view_settings_cache","set_view_settings_default","delete_view_settings","change_view_settings_sort","query_view_settings_list","CUSTOM_VIEW_DATA_USER","VIEW_SYSTEM_EDIT","columns","_sfc_main$1","CaretRightOutlined","SettingOutlined","env","useEnv","requiredConditionStore","useRequiredConditionStore","userStore","useUserStore","appStore","useAppStore","current_org","userid","is_auth","viewData","mergedConfig","defaultAndServerConfig","personData","b","list1","publicData","viewNameList","fetchData","id","search_model","filter_map","sort_fields","group_condition","conditions","isShowGeneralFilter","resolve","getRequiredConditionObj","getApiData","res","error","setCount","viewRefresh","getViewSettingsAndPageConfig","getPageConfig","count_search_list","handleHashChange","err","uid","hash","current_uid","sourceStore","list_is_system","viewKey","customStyle","customRow","record","changeView","refreshCount","viewSubmit","updateView","view","_d","view_type","is_submit","tempModal","modalBox","addView","editView","ids","isEdit","handleShare","url","copyValue","handleDelet","Modal","createVNode","ExclamationCircleOutlined","required_condition","required_condition_obj","handleRequiredConditionChange","key","page_config","required_condition_event_obj","onActivated","_component_a_collapse","isActive","_component_caret_right_outlined","_component_a_collapse_panel","_component_setting_outlined","_component_plus_outlined","_component_a_table","column","_component_a_dropdown","_component_a_menu","_component_a_menu_item","_withModifiers","_sfc_main","ViewManage","is_refresh","is_ownView","_component_view_manage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmDA,MAAAA,KAAeC,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,sCAAsC;AAAA,MACpC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,mCAAmC;AAAA,MACjC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,OAAO,CAAC,MAAM,QAAQ;AAAA,EACtB,MAAMC,GAAO,EAAE,MAAAC,KAAQ;AACf,UAAAC,IAAYC,GAAI,iBAAiB,GACjCC,IAAWD,GAAI,CAAA,CAAE;AACvB,IAAAH,EAAM,qCAAqC,QAAQ,CAACK,GAAgBC,MAAkB;AACpF,YAAMC,IAAwB,KAAK;AAAA,QACjC,KAAK,UAAUP,EAAM,iCAAiC;AAAA,MAAA;AAExD,MAAIO,KACeA,EAAA,QAAQ,CAACA,MAA0B;AAClDA,QAAAA,EAAiB,MAAM,QAAQ,CAAKC,MAAA;AACxB,UAAAH,EAAA,QAAQ,CAACI,MAAW;AACxB,YAAAD,EAAE,cAAcC,EAAE,eACpBD,EAAE,WAAWC,EAAE,UACfD,EAAE,UAAU;AAAA,UACd,CACD;AAAA,QAAA,CACF;AAAA,MAAA,CACF,GAEHJ,EAAS,MAAM,KAAK;AAAA,QAClB,UAAU,MAAME,IAAQ;AAAA,QACxB,KAAK,iBAAiBA;AAAA,QACtB,kBAAAC;AAAA,MAAA,CACD;AAAA,IAAA,CACF;AACK,UAAAG,IAAe,CAACC,MAAa;AACjC,MAAAA,EAAE,eAAe;AACjB,YAAMC,IAAO,CAAA;AACJ,MAAAR,EAAA,MAAM,QAAQ,CAAQS,MAAA;AAC7B,cAAMC,IAA2B,CAAA;AAC5B,QAAAD,EAAA,iBAAiB,QAAQ,CAAKL,MAAA;AAC/B,UAAAA,EAAA,MAAM,QAAQ,CAACO,MAAc;AAC7B,gBAAIA,EAAK,SAAS;AACZ,kBAAA,CAACA,EAAK,UAAU;AACZ,sBAAAC,IAAyBC,EAA2BF,CAAI;AAC1D,oBAAAC,EAAuB,SAAS,GAAG;AAC/B,wBAAA,CAACE,CAAK,IAAIF;AAChB,kBAAAD,EAAK,WAAWG;AAAA;AAAA;AAGpB,cAAAJ,EAAoB,KAAKC,CAAI;AAAA;AAAA,UAC/B,CACD;AAAA,QAAA,CACF,GACDH,EAAK,KAAKE,CAAmB;AAAA,MAAA,CAC9B,GACDb,EAAK,MAAM,EAAE,UAAUW,EAAM,CAAA;AAAA,IAAA,GAEzBK,IAA6B,CAACE,MAC9BA,EAAU,yBACLA,EAAU,yBAEVA,EAAU,gBACVA,EAAU,gBAGV;AAIJ,WAAA;AAAA,MACL,OAAAnB;AAAA,MACA,WAAAE;AAAA,MACA,UAAAE;AAAA,MACA,cAAAM;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;;yFA1ICU,EA4CU,SAAA;SA1CHC,EAAQ,GAAAC,EAAAC,GAAA;AAAA,IACZ,OAAM;AAAA,IACP,OAAA;AAAA,IACA,MAAAC,EAAA;AAAA,IACC,gBAAgB;AAAA,IAChB,oBAAgB;AAAA,IACjB,gBAAQ;AAAA,IACP,gBAAIA,EAAA;AAAA,IACJ,UAAM;AAAA,IAAA,MAAAA,EAAA;AAAA,cAAyBC,EAAK,CAAA,MAAAA,EAAA,CAAA,IAAA,MAAA;;;;aAMrBC,EAAW,MAAA;AAAA,MAAAC,EAAAC,GAAA;AAAA;QAGC,sBAAAH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAI,MAAAL,EAAA,YAAAK;AAAA,MAAA,GAAA;AAAA;aADlB,EAAS,GAAAC,EAAAC,GAAA,MAAAC,EAAAR,EAAA,UAAA,CAAAX,OAETQ,EAAQ,GAAAC,EAAAW,GAAA;AAAA,YACb,OAAK;AAAA,YAAA,KAAApB,EAAA;AAAA;;;iBAIE,EAAqB,GAAAiB,EAAAC,GAAA,MAAAC,EAAAnB,EAAA,kBAAA,CAAAqB;gBAE3B,KAA8DA,EAAA;AAAA,cAAA,GAC9D;AAAA,gBACMC,EAAA,OAAAC,IAAAC,EAAAH,EAAA,IAAA,GAAA,CAAA;AAAA,gBACJP,EAAAW,GAAA;AAAA,kBAAA,MAAA;AAAA,kBAGuC,OAAA,EAAA,gBAAA,QAAA,iBAAA,IAAA;AAAA,gBAAA,GAAA;AAAA;qBAC5BjB,EAAA,EAAC,GAAUS,EAAAC,GAAA,MAAAC,EAAAE,EAAA,OAAA,CAAAK;sBAEpB,KAAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,sBAA6BZ,EAAAa,GAAA;AAAA,wBAAA,SAAAD,EAAA;AAAA,wBACwB,oBAAA,CAAAV,MAAAU,EAAA,UAAAV;AAAA,sBAAA,GAAA;AAAA;;;;;;;;;;;;;;;;;;;;uFCenEY,KAAe1C,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,sCAAsC;AAAA,MACpC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,mCAAmC;AAAA,MACjC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,OAAO,CAAC,MAAM,QAAQ;AAAA,EACtB,MAAMC,GAAO,EAAE,MAAAC,KAAQ;;AACf,UAAAG,IAAWD,GAAI,CAAA,CAAE,GACjBc,IAA6B,CAACE,MAC9BA,EAAU,yBACLA,EAAU,yBAEVA,EAAU,gBACVA,EAAU,gBAGV;AAGX,KAAAuB,IAAA1C,EAAM,yCAAN,QAAA0C,EAA4C,QAAQ,CAACrC,GAAeC,MAAe;AACjF,YAAMC,IAAuB,KAAK,MAAM,KAAK,UAAUP,EAAM,iCAAiC,CAAC;AAC/F,MAAGO,KACgBA,EAAA,QAAQ,CAACA,MAAuB;AAC/CA,QAAAA,EAAiB,MAAM,QAAQ,CAAGC,MAAA;AACtB,UAAAH,EAAA,QAAQ,CAACI,MAAQ;AACtB,YAAAD,EAAE,cAAcC,EAAE,eACnBD,EAAE,UAAU;AAAA,UACd,CACD;AAAA,QAAA,CACF;AAAA,MAAA,CACF,GAEHJ,EAAS,MAAM,KAAK;AAAA,QAClB,UAAS,MAAME,IAAM;AAAA,QACrB,KAAI,iBAAiBA;AAAAA,QACrB,kBAAAC;AAAA,MAAA,CACD;AAAA,IAAA;AAEG,UAAAD,MAAQqC,IAAA3C,EAAM,yCAAN,gBAAA2C,EAA4C,WAAU,GAC9DC,IAAkB,CAAA;AAClB,IAAA5C,EAAA,kCAAkC,QAAQ,CAACa,MAAW;AAC1D,YAAMgC,IAAY,CAAA;AACb,MAAAhC,EAAA,MAAM,QAAQ,CAAGL,MAAA;AACd,cAAAQ,IAAyBC,EAA2BT,CAAC;AAO3D,YANGA,EAAE,qBACHA,EAAE,WAAWA,EAAE,mBAEbQ,EAAuB,SAASR,EAAE,QAAQ,MAC5CA,EAAE,WAAW,OAEZ,CAACA,EAAE,YAAYQ,EAAuB,SAAO,GAAE;AAC1C,gBAAA,CAACE,CAAK,IAAIF;AAChB,UAAAR,EAAE,WAAWU;AAAA;AAEf,cAAM4B,IAAQ,EAAE,GAAGtC,GAAG,SAAQ,GAAM;AACpC,QAAAqC,EAAU,KAAKC,CAAK;AAAA,MAAA,CACrB,GACDF,EAAgB,KAAK;AAAA,QACnB,MAAK/B,EAAK;AAAA,QACV,OAAMgC;AAAA,MAAA,CACP;AAAA,IAAA,CACF,GACDzC,EAAS,MAAM,KAAK;AAAA,MAClB,UAAS,MAAME,IAAM;AAAA,MACrB,KAAI,iBAAiBA;AAAA,MACrB,kBAAkBsC;AAAA,IAAA,CACnB;AACK,UAAA1C,IAAYC,GAAI,iBAAiBG,GAAO;AA0BvC,WAAA;AAAA,MACL,OAAAN;AAAA,MACA,WAAAE;AAAA,MACA,UAAAE;AAAA,MACA,cA5BmB,CAACO,MAAa;AACjC,QAAAA,EAAE,eAAe;AACjB,cAAMC,IAAO,CAAA;AACJ,QAAAR,EAAA,MAAM,QAAQ,CAAMS,MAAA;AAC3B,gBAAMC,IAA0B,CAAA;AAC3B,UAAAD,EAAA,iBAAiB,QAAQ,CAAGL,MAAA;AAC7B,YAAAA,EAAA,MAAM,QAAQ,CAACO,MAAW;AAC1B,cAAGA,EAAK,WACND,EAAoB,KAAKC,CAAI;AAAA,YAC/B,CACD;AAAA,UAAA,CACF,GACED,EAAoB,SAAO,KAC5BF,EAAK,KAAKE,CAAmB;AAAA,QAC/B,CACD,GACEF,EAAK,UAAQ,KACdmC,GAAQ,MAAM,mBAAmB,GACjC9C,EAAK,QAAQ,KAEbA,EAAK,MAAM,EAAE,UAAUW,EAAM,CAAA;AAAA,MAC/B;AAAA,MAQA,4BAAAK;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;aArIc,OAAwB,EAAA,aAAA,OAAA,EAAA,UAIjB,OAAqB,EAAA,OAAA,UAAA,EAAA;;yFAvCzCG,EA8CU,SAAA;SA5CHC,EAAQ,GAAAC,EAAAC,GAAA;AAAA,IACZ,OAAM;AAAA,IACP,OAAA;AAAA,IACA,MAAAC,EAAA;AAAA,IACC,gBAAgB;AAAA,IAChB,oBAAgB;AAAA,IACjB,gBAAQ;AAAA,IACP,gBAAIA,EAAA;AAAA,IACJ,UAAM;AAAA,IAAA,MAAAA,EAAA;AAAA,cAAyBC,EAAK,CAAA,MAAAA,EAAA,CAAA,IAAA,MAAA;;;;;SAOnB,EAAS,GAAAK,EAAAC,GAAA,MAAAC,EAAAR,EAAA,UAAA,CAAAX,OACTQ,EAAQ,GAAAC,EAAAW,GAAA;AAAA,QAAG,OAAK;AAAA,QAAA,KAAApB,EAAA;AAAA;;;aAC6B,EAAqB,GAAAiB,EAAAC,GAAA,MAAAC,EAAAnB,EAAA,kBAAA,CAAAqB;YAChF,KAA6DA,EAAA;AAAA,UAAA,GAC7D;AAAA,YAAAC,EACQ,OAAqCC,IAAAC,EAAAH,EAAA,IAAA,GAAA,CAAA;AAAA,YAAAP,EAAAW,GAA3C,EAIM,MAAA,GAAA,GAAA;AAAA,cAAA,SAAAZ,EAAA,MAAA;AAAA,iBAJ+CL,EAAA,EAAC,GAAUS,EAAAC,GAAA,MAAAC,EAAAE,EAAA,OAAA,CAAAK;kBAC9D,KAAAA,EAAA;AAAA,gBAAA,GAAA;AAAA,kBAA6BZ,EAAAa,GAAA;AAAA,oBAAA,SAAAD,EAAA;AAAA,oBACuB,oBAAA,CAAAV,MAAAU,EAAA,UAAAV;AAAA,kBAAA,GAAA;AAAA;;;;;;;;;;;;SAqBnD,MAAA,CAAA,KAAA,CAAA,EAdO,GAAA,GAAA;AAAA,MAAAF,EAAAC,GAAA;AAAA;QACsC,sBAAAH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAI,MAAAL,EAAA,YAAAK;AAAA,MAAA,GAAA;AAAA;aAAlC,EAAS,GAAAC,EAAAC,GAAA,MAAAC,EAAAR,EAAA,UAAA,CAAAX,OACTQ,EAAQ,GAAAC,EAAAW,GAAA;AAAA,YAAG,OAAK;AAAA,YAAA,KAAApB,EAAA;AAAA;;;iBAC6B,EAAqB,GAAAiB,EAAAC,GAAA,MAAAC,EAAAnB,EAAA,kBAAA,CAAAqB;gBAChF,KAA6DA,EAAA;AAAA,cAAA,GAC7D;AAAA,gBAAaC,EAAA,OAAAa,IAAAX,EAAAH,EAAA,IAAA,GAAA,CAAA;AAAA,gBAACP,EAAAW,GAAA;AAAA,kBAAA,MAAA;AAAA,kBAC+B,OAAA,EAAA,gBAAA,QAAA,iBAAA,IAAA;AAAA,gBAAA,GAAA;AAAA;qBAAUjB,EAAA,EAAC,GAAUS,EAAAC,GAAA,MAAAC,EAAAE,EAAA,OAAA,CAAAK;sBAC9D,KAAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,sBAA6BZ,EAAAa,GAAA;AAAA,wBAAA,SAAAD,EAAA;AAAA,wBACuB,oBAAA,CAAAV,MAAAU,EAAA,UAAAV;AAAA,sBAAA,GAAA;AAAA;;;;;;;;;;;;;;;;;;;;uFCxCrDoB,KAAiB,CAAKC,OAQ1B;AAAA,EACL,YARiB;AAAA,IACjB,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,IAC3B,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,IAC3B,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,IAC3B,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,IAC3B,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,EAAA;AAG3B,IC6VJC,KAAepD,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,mCAAmC;AAAA,MACjC,MAAM;AAAA,IACR;AAAA,IACA,sCAAsC;AAAA,MACpC,MAAM;AAAA,IACR;AAAA,IACA,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,IACjB;AAAA,IACA,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,IACjB;AAAA,IACA,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,IACjB;AAAA,IACA,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,IACjB;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,cAAAqD;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,qBAAAC;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM3D,GAAO,EAAE,MAAAC,KAAQ;AACf,UAAA2D,IAAazD,GAAIH,EAAM,kBAAkB,GACzC6D,IAAa1D,GAAI,CAAA,CAAE,GACnB,EAAE,GAAA+C,MAAMY,MACR,EAAE,YAAAC,EAAA,IAAed,GAAgB,GAEjCe,IAAuB7D,GAAI,CAAA,CAAE,GAC7B8D,IAAgB,CAAA,GAChBC,IAA8C/D,GAAI,IAAI,GACtDgE,IAAkChE,GAAI;AAAA,MAC1C,EAAE,OAAO,OAAO,OAAO+C,EAAE,6BAA6B,EAAE;AAAA,MACxD,EAAE,OAAO,MAAM,OAAOA,EAAE,4BAA4B,EAAE;AAAA,IAAA,CACvD;AACG,IAACgB,EAA4C,UAC/CA,EAA4C,QAAQ,KAAK;AAAA,MACvD,KAAK,UAAUlE,EAAM,oCAAoC;AAAA,IAAA;AAI7D,UAAMoE,IAA0B;AAAA,MAC9B,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,oBAAoB;AAAA,MACpB,8BAA8B;AAAA,MAC9B,4BAA4B;AAAA,MAC5B,yBAAyB;AAAA,MACzB,gBAAgB;AAAA,IAAA,GAEZC,IAAY,CAAOC,MAAA;AACvB,YAAM,CAACpD,CAAK,IAAI,CAACoD,CAAG;AACb,aAAA,MAAM,QAAQpD,CAAK,KAAKoD,EAAI,MAAM,CAAYC,MAAA,MAAM,QAAQA,CAAQ,CAAC;AAAA,IAAA;AAE9E,QAAIC,IAAe;AACnB,UAAMC,IAAmB,CAACC,GAAUpE,GAAOa,MAAc;AAKvD,YAAMwD,IAAQX,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU;AACpE,UAAIF,EAA2BE,CAAS,EAAE,SAAS,KAAK;AACtD,YAAIuD,KAAY,OAAO;AACrB,UAAAV,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,MAC3CqD,IAAAE,GACfzE,EAAK,iBAAiB,EAAE,OAAO+D,EAAqB,MAAO,CAAA;AAC3D;AAAA,mBACSQ,KAAgB,OAAO;AAChC,UAAAR,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,MAC3CqD,IAAAE,GACfzE,EAAK,iBAAiB,EAAE,OAAO+D,EAAqB,MAAO,CAAA;AAC3D;AAAA;AAAA;AAGJ,UAAI/C,EAA2BE,CAAS,EAAE,SAAS,oBAAoB;AACrE,YAAIuD,KAAY,sBAAsB;AACpC,UAAAV,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,KAC3CqD,IAAAE,GACfzE,EAAK,iBAAiB,EAAE,OAAO+D,EAAqB,MAAO,CAAA;AAC3D;AAAA,mBACSQ,KAAgB,sBAAsB;AAC/C,UAAAR,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,MAC3CqD,IAAAE,GACfzE,EAAK,iBAAiB,EAAE,OAAO+D,EAAqB,MAAO,CAAA;AAC3D;AAAA;AAAA;AAIF,UAAA/C,EAA2BE,CAAS,EAAE,SAAS,yBAAyB,KACxEF,EAA2BE,CAAS,EAAE,SAAS,gBAAgB;AAE3D,YAAAuD,KAAY,6BAA6BA,KAAY,kBAAkB;AACzE,UAAAV,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,MAC3CqD,IAAAE,GACfzE,EAAK,iBAAiB,EAAE,OAAO+D,EAAqB,MAAO,CAAA;AAC3D;AAAA,mBACSQ,KAAgB,6BAA6BA,KAAgB,kBAAkB;AACxF,UAAAR,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,MAC3CqD,IAAAE,GACfzE,EAAK,iBAAiB,EAAE,OAAO+D,EAAqB,MAAO,CAAA;AAC3D;AAAA;AAAA;AAGJ,UAAIW,aAAiB,SAASN,EAAUM,CAAK;AAE3C,QAAAX,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI;AAAA,eACjDiD,EAAwBM,CAAQ,KAAK,GAAG;AACjD,YAAIC,aAAiB,OAAO;AACpB,gBAAA,CAACzD,CAAK,IAAI8C,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU;AAClE,UAAAyD,EAAW1D,CAAK,IAClB8C,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAID,IAE1D8C,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI;AAAA;AAG5D,UAAA6C,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAIwD,KAAgB;AAK5E,QAHWZ,EAAW;AAAA,UACpB,CAAAxB,MAAOA,EAAI,UAAUyB,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU;AAAA,QAAA,MAG3E6C,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI;AAAA,iBAEnDiD,EAAwBM,CAAQ,KAAK,GAAG;AACjD,YAAIV,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,aAAa,OAAO;AACtE,gBAAA,CAACD,GAAO2D,CAAO,IAAIb,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU;AAC1D,UAAA6C,EAAA,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,CAACD,GAAO2D,CAAO;AAAA,mBAChEb,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,GAAG;AAClE,gBAAMD,IAAQ8C,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU;AAC/C,UAAA6C,EAAA,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,CAACD,GAAO,IAAI;AAAA;AAEjD,UAAA8C,EAAA,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,CAAC,MAAM,IAAI;AAKvE,QAHW4C,EAAW;AAAA,UACpB,CAAAxB,MAAOA,EAAI,UAAUyB,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU,EAAE,CAAC;AAAA,QAAA,MAGzD6C,EAAA,MAAM1D,CAAK,EAAEa,EAAU,UAAU,IAAI,CAAC,MAAM,IAAI;AAAA;AAG1D,MAAAqD,IAAAE,GACfzE,EAAK,iBAAiB,EAAE,OAAO+D,EAAqB,MAAO,CAAA;AAAA,IAAA,GAIvDc,IAAoBC,GAAS;AAAA,MACjC,MAAM;AAAA,IAAA,CACP,GACKC,IAAsB,MAAM;AAChC,MAAAF,EAAkB,OAAO;AAAA,IAAA,GAErBG,IAAuB,CAACC,MAAc;AAC1C,MAAAlF,EAAM,qCAAqC,QAAQ,CAACa,GAAWP,MAAe;AAC5E,QAAA4E,EAAK,SAAS,QAAQ,CAACC,GAAYC,MAAgB;AACjD,UAAI9E,KAAS8E,KACNvE,EAAA,QAAQ,CAACwE,MAAe;AACrB,YAAAF,EAAA,QAAQ,CAACG,MAAe;AACxB,cAAAD,EAAM,cAAcC,EAAM,eAC5BA,EAAM,QAAQD,EAAM,OACpBC,EAAM,WAAWD,EAAM;AAAA,YACzB,CACD;AAAA,UAAA,CACF;AAAA,QACH,CACD;AAAA,MAAA,CACF,GAEDpF,EAAK,+CAA+C,EAAE,UAAUiF,EAAK,SAAU,CAAA,GAE/EJ,EAAkB,OAAO;AAAA,IAAA,GAErBS,IAA2B,MAAM;AACrC,MAAAT,EAAkB,OAAO;AAAA,IAAA,GAGrBU,IAAyBT,GAAS;AAAA,MACtC,MAAM;AAAA,IAAA,CACP,GACKU,IAA0B,MAAM;AACpC,MAAAD,EAAuB,OAAO;AAAA,IAAA,GAE1BE,KAA4B,CAACR,MAAc;AAC/C,MAAAlF,EAAM,qCAAqC,QAAQ,CAACa,GAAWP,MAAe;AAC5E,QAAA4E,EAAK,SAAS,QAAQ,CAACC,GAAYC,MAAgB;AACjD,UAAI9E,KAAS8E,KACNvE,EAAA,QAAQ,CAACwE,MAAe;AACrB,YAAAF,EAAA,QAAQ,CAACG,MAAe;AACxB,cAAAD,EAAM,cAAcC,EAAM,eAC5BA,EAAM,QAAQD,EAAM,OACpBC,EAAM,WAAWD,EAAM;AAAA,YACzB,CACD;AAAA,UAAA,CACF;AAAA,QACH,CACD;AAAA,MAAA,CACF,GACDpF,EAAK,+CAA+C,EAAE,UAAUiF,EAAK,SAAU,CAAA,GAE/EM,EAAuB,OAAO;AAAA,IAAA,GAE1BG,IAAgC,MAAM;AAC1C,MAAAH,EAAuB,OAAO;AAAA,IAAA,GAE1BI,KAAe,MAAM;AACzB,MAAAhC,EAAW,QAAQ,IACX,QAAA,IAAI,8BAA8BI,EAAqB,KAAK,GACpE/D,EAAK,UAAU,EAAE,OAAO+D,EAAqB,MAAO,CAAA;AAAA,IAAA,GAEhD6B,IAAmB,CAACC,IAAa,OAAU;;AAC3C,MAAA9F,EAAM,kCAAkC,UAAU,OAGtD0C,IAAA1C,EAAM,yCAAN,QAAA0C,EAA4C,QAAQ,CAACrC,GAAgBC,MAAkB;AACvE,QAAAyF,EAAAzF,CAAK,IAAI,IAClB0D,EAAqB,MAAM1D,CAAK,MACd0D,EAAA,MAAM1D,CAAK,IAAI,KAEhCN,EAAA,kCAAkC,QAAQ,CAACQ,MAAW;;AACxD,WAAAkC,IAAAlC,EAAA,UAAA,QAAAkC,EAAO,QAAQ,CAACsD,MAAoB;AAC1B,YAAA3F,EAAA,QAAQ,CAACI,MAAW;AACxB,cAAAuF,EAAW,cAAcvF,EAAE,gBACfuD,EAAqB,MAAM1D,CAAK,EAAEG,EAAE,UAAU,KAC/C,QAAaqF,OACpB1B,EAAwB3D,EAAE,QAAQ,KAAK,IACrCA,EAAE,UAAU,SACduD,EAAqB,MAAM1D,CAAK,EAAEG,EAAE,UAAU,IAAIA,EAAE,QAEpDuD,EAAqB,MAAM1D,CAAK,EAAEG,EAAE,UAAU,IAAI,OAE3C2D,EAAwB3D,EAAE,QAAQ,KAAK,IAC5CA,EAAE,UAAU,SACduD,EAAqB,MAAM1D,CAAK,EAAEG,EAAE,UAAU,IAAIA,EAAE,QAE/BuD,EAAA,MAAM1D,CAAK,EAAEG,EAAE,UAAU,IAAI,CAAC,MAAM,IAAI,IAEtD2D,EAAwB3D,EAAE,QAAQ,KAAK,MAC5CA,EAAE,UAAU,SACduD,EAAqB,MAAM1D,CAAK,EAAEG,EAAE,UAAU,IAAIA,EAAE,QAEpDuD,EAAqB,MAAM1D,CAAK,EAAEG,EAAE,UAAU,IAAI,MAIjD,OAAA,OAAOA,GAAG,EAAE,GAAGuF,GAAY,UAAUvF,EAAE,UAAU,GACpDA,EAAE,YAAY,QAAQA,EAAE,QAAQ,aAClCuF,EAAW,OAAO,WAClB,OAAO,OAAOvF,GAAG,EAAE,OAAO,UAAW,CAAA,KAC5B,CAAC,MAAM,OAAO,EAAE,SAASA,EAAE,QAAQ,KAAKA,EAAE,QAAQ,eAC3DuF,EAAW,OAAO,YAClB,OAAO,OAAOvF,GAAG,EAAE,OAAO,WAAY,CAAA;AAAA,YAE1C,CACD;AAAA,UAAA;AAAA,QACF,CACF;AAAA,MAAA;AAAA,IACF,GAEGwF,IAAkB,MAAM;AAC5B,MAAAJ,EAAiB,EAAI;AAAA,IAAA,GAGjBE,IAAgBhB,GAAS,CAAA,CAAE,GAC3BmB,IAAmB,CAAC5F,GAAY6F,MAAmB;AACvD,MAAAJ,EAAczF,CAAK,EAAE6F,EAAU,UAAU,IAAI;AAAA,IAAA,GAEzCC,KAAmB,CAAC9F,GAAY6F,MAAmB;AACvD,MAAAJ,EAAczF,CAAK,EAAE6F,EAAU,UAAU,IAAI;AAAA,IAAA,GAEzCE,KAAuB,CAAC/F,GAAYa,MAAmB;AAE3D,YAAMmF,IAAW,CAAA;AACjB,MAAAtG,EAAM,qCAAqC,QAAQ,CAACK,GAAgBkG,MAAmB;AACrF,YAAIA,MAAWjG;AACb,UAAAgG,EAAS,KAAKjG,CAAS;AAAA,aAClB;AACL,gBAAMO,IAAO,CAAA;AACH,UAAAP,EAAA,QAAQ,CAACI,MAAW;AACxB,YAAAA,EAAE,eAAeU,EAAU,cAC7BP,EAAK,KAAKH,CAAC;AAAA,UACb,CACD,GACGG,EAAK,SAAS,KAChB0F,EAAS,KAAK1F,CAAI;AAAA;AAAA,MAEtB,CACD,GACIX,EAAA,+CAA+C,EAAE,UAAAqG,EAAA,CAAoB;AAAA,IAAA,GAGtEE,KAAkB,CAAClG,GAAOmG,MAAe;AAC7C,MAAIzC,EAAqB,MAAM1D,CAAK,EAAEmG,CAAU,aAAa,QAC3DzC,EAAqB,MAAM1D,CAAK,EAAEmG,CAAU,EAAE,SAAS,IAEvDzC,EAAqB,MAAM1D,CAAK,EAAEmG,CAAU,IAAI,MAElDxG,EAAK,iBAAiB,EAAE,OAAO+D,EAAqB,MAAO,CAAA,GACtD/D,EAAA,aAAa,EAAE,OAAO,KAAK,MAAM,KAAK,UAAU+D,EAAqB,KAAK,CAAC,EAAG,CAAA;AAAA,IAAA,GAG/E0C,KAAqB,CAAC/B,GAAYgC,GAAaxF,GAAgByF,MAAoB;AACvF,UAAIjC,aAAiB,SAASA,EAAM,SAAS,GAAG;AAC9C,cAAMkC,IAAsBlC,EAAMA,EAAM,SAAS,CAAC;AAClD,YAAImC,IAAgB;AAepB,YAdM9G,EAAA,kCAAkC,QAAQ,CAAaK,MAAA;AACjD,UAAAA,EAAA,MAAM,QAAQ,CAAKG,MAAA;AACvB,gBAAAA,EAAE,eAAeqG;AAEnB,kBADAC,IAAgB,KAAK,MAAM,KAAK,UAAUtG,CAAC,CAAC,GACxCsG,EAAc;AAChB,gBAAAA,EAAc,WAAWA,EAAc;AAAA,uBAC9B7F,EAA2B6F,CAAa,EAAE,SAAS,GAAG;AAC/D,sBAAM,CAAC5F,EAAK,IAAID,EAA2B6F,CAAa;AACxD,gBAAAA,EAAc,WAAW5F;AAAA;AAAA;AAAA,UAE7B,CACD;AAAA,QAAA,CACF,GAEG4F,GAAe;AACjB,gBAAMR,IAAW,KAAK,MAAM,KAAK,UAAUtG,EAAM,oCAAoC,CAAC;AAC7E,UAAAsG,EAAA,QAAQ,CAACjG,GAAWG,OAAM;AACjC,YAAIA,OAAMmG,KACEtG,EAAA,QAAQ,CAACQ,IAAMJ,OAAM;AAC7B,cAAII,GAAK,cAAcM,EAAU,cAAcV,MAAKmG,MACxCvG,EAAA,OAAOI,IAAG,GAAGqG,CAAa,GACpC,OAAO9C,EAAqB,MAAM2C,CAAW,EAAE9F,GAAK,UAAU;AAAA,YAChE,CACD;AAAA,UACH,CACD,GACDZ,EAAK,+CAA+C;AAAA,YAClD,UAAAqG;AAAA,UAAA,CACD;AAAA;AAEc,QAAAT;;IACnB,GAGIkB,KAA6BC,GAAS,MAAM;AAChD,YAAMC,IAAO,CAAA;AACb,aAAAjH,EAAM,qCAAqC,QAAQ,CAACgG,GAAY1F,MAAU;AACnE,QAAA2G,EAAA3G,CAAK,IAAI;AACd,cAAM4G,IAAyBlB,EAAW,IAAI,CAAAnF,MAAQA,EAAK,UAAU;AAC/D,QAAAb,EAAA,kCAAkC,QAAQ,CAAQa,MAAA;AAChD,gBAAAsG,IAActG,EAAK,MAAM;AAAA,YAC7B,CAAKL,MAAA,CAAC0G,EAAuB,SAAS1G,EAAE,UAAU;AAAA,UAAA,GAE9C4G,IAAI;AAAA,YACR,OAAOvG,EAAK;AAAA,YACZ,OAAOA,EAAK;AAAA,YACZ,UAAUsG,EAAY,IAAI,CAAK3G,OACtB;AAAA,cACL,OAAOA,EAAE;AAAA,cACT,OAAOA,EAAE;AAAA,YAAA,EAEZ;AAAA,UAAA;AAEE,UAAAyG,EAAA3G,CAAK,EAAE,KAAK8G,CAAC;AAAA,QAAA,CACnB;AAAA,MAAA,CACF,GACMH;AAAA,IAAA,CACR,GAEKI,KAAkB,CAAC/G,GAAOa,MAAc;AAC5C,YAAMwD,IAAQX,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU;AACpE,UAAIwD,aAAiB,OAAO;AACpB,cAAA,CAACzD,CAAK,IAAIyD;AACZ,YAAAC,EAAW1D,CAAK;AACX,iBAAA;AAAA,iBAEA0D,EAAWD,CAAK;AAClB,eAAA;AAEF,aAAA;AAAA,IAAA,GAGH2C,IAAoB,CAAChH,GAAOa,MAAc;AAC9C,YAAMoG,IAAgB,CAAA,GAChB5C,IAAQX,EAAqB,MAAM1D,CAAK,EAAEa,EAAU,UAAU;AACpE,UACEA,EAAU,aAAa,6BACvBA,EAAU,aAAa;AAEvB,eACS+B,EADLyB,MAAU,QACH,gCAEA,4BAF6B;AAI1C,UAAWxD,EAAU,aAAa;AAC5B,YAAA,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,SAASwD,CAAK;AAC/C,iBAAOzB,EAAEyB,CAAK;AAAA;YAEPd,EAAW,MAAM1C,EAAU,UAAU,KAAK;AAC5C,iBAAA,GAAGqG,GAAsBrG,EAAU,QAAQA,EAAU,QAAQ,KAClE0C,EAAW,MAAM1C,EAAU,UAAU;AAE9B,YAAAwD,aAAiB,SAASxD,EAAU,2BAA2B,OAAO;AAC3E,cAAAsG;AACJ,iBAAItG,EAAU,oBACRwD,aAAiB,QACF8C,IAAA9C,EAAM,KAAK,GAAG,IAEd8C,IAAA9C,IAGd,GAAG6C,GAAsBrG,EAAU,QAAQA,EAAU,QAAQ,KAAKsG;AAAA,eAChE;AAAA,cAAA9C,aAAiB,SAASxD,EAAU,mBAAmB;AAChE,mBAAAwD,EAAM,QAAQ,CAAQ9D,MAAA;AACV,cAAAM,EAAA,QAAQ,QAAQ,CAAKX,MAAA;AACzB,gBAAAK,KAAQL,EAAE,SACH+G,EAAA,KAAK/G,EAAE,KAAK;AAAA,cACvB,CACD;AAAA,YAAA,CACF,GACM,GAAGgH,GAAsBrG,EAAU,QAAQA,EAAU,QAAQ,KAAKoG,EAAS;AAAA,cAChF;AAAA,YACF;AACK;AACD,gBAAAE;AACJ,gBAAItG,EAAU;AACF,cAAAA,EAAA,QAAQ,QAAQ,CAAKX,MAAA;AACzB,gBAAAmE,KAASnE,EAAE,UACbiH,IAAiBjH,EAAE;AAAA,cACrB,CACD;AAAA,qBACQW,EAAU,QAAQ,iBAAiBA,EAAU;AACtD,kBAAIwD,aAAiB,OAAO;AAC1B,sBAAM4C,IAAW,CAAA;AACjB,gBAAA5C,EAAM,QAAQ,CAAKnE,MAAA;AACjB,kBAAIA,IACF+G,EAAS,KAAKG,EAAOlH,CAAC,EAAE,OAAOW,EAAU,UAAU,CAAC,IAEpDoG,EAAS,KAAK/G,CAAC;AAAA,gBACjB,CACD,GACgB+G,IAAAA,EAAS,KAAK,GAAG;AAAA;AAElC,gBAAAE,IAAiBC,EAAO/C,CAAK,EAAE,OAAOxD,EAAU,UAAU;AAAA;AAG3C,cAAAsG,IAAA9C;AAEnB,mBAAO,GAAG6C,GAAsBrG,EAAU,QAAQA,EAAU,QAAQ,KAAKsG;AAAA;AAAA;AAAA;AAAA,IAC3E,GAGIE,IAAyB,MAAM;AACnC,MAAA1H,EAAK,oBAAoB;AAAA,IAAA,GAGrBgB,IAA6B,CAAaE,MAC1CA,EAAU,yBACLA,EAAU,yBACRA,EAAU,gBACZA,EAAU,gBAEV;AAIX,WAAAyG;AAAA,MACE,MAAM5D,EAAqB;AAAA,MAC3B,MAAM;AACJ,QAAA/D,EAAK,iBAAiB,EAAE,OAAO+D,EAAqB,MAAO,CAAA;AAAA,MAE7D;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,GAEf4D;AAAA,MACE,MAAM5H,EAAM;AAAA,MACZ,MAAM;;AACA,cAAA0C,IAAA1C,EAAM,yCAAN,gBAAA0C,EAA4C,WAAU,GAAG;AAC3D,UAAAzC,EAAK,+CAA+C;AAAA,YAClD,UAAUiE,EAA4C;AAAA,UAAA,CACvD;AACD;AAAA;AAEe,QAAA2B;MACnB;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,GAEf+B;AAAA,MACE,MAAM5H,EAAM;AAAA,MACZ,MAAM;AACa,QAAA6F;MACnB;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,GAGf+B;AAAA,MACE,MAAM5H,EAAM;AAAA,MACZ,MAAM;AACJ,QAAIA,EAAM,mBACRgE,EAAqB,QAAQ,IACZ6B,KACjB5F,EAAK,yBAAyB,EAAK;AAAA,MAEvC;AAAA,IAAA,GAEF4H,GAAU,MAAM;AACG,MAAAhC,KACb7F,EAAM,YACFA,EAAA,SAAS,GAAG,gBAAgBiG,CAAe;AAAA,IACnD,CACD,GACD6B,GAAY,MAAM;AAChB,MAAI9H,EAAM,YACFA,EAAA,SAAS,IAAI,gBAAgBiG,CAAe;AAAA,IACpD,CACD,GACM;AAAA,MACL,OAAAjG;AAAA,MACA,GAAAkD;AAAA,MACA,YAAAU;AAAA,MACA,YAAAC;AAAA,MACA,uBAAA2D;AAAA,MACA,sBAAAxD;AAAA,MACA,mBAAAc;AAAA,MACA,qBAAAE;AAAA,MACA,sBAAAC;AAAA,MACA,0BAAAM;AAAA,MACA,kBAAAd;AAAA,MACA,yBAAAgB;AAAA,MACA,cAAAG;AAAA,MAEA,wBAAAJ;AAAA,MACA,2BAAAE;AAAA,MACA,+BAAAC;AAAA,MACA,eAAA1B;AAAA,MAEA,eAAA8B;AAAA,MACA,kBAAAG;AAAA,MACA,kBAAAE;AAAA,MACA,sBAAAC;AAAA,MACA,iBAAAG;AAAA,MAEA,uBAAAO;AAAA,MACA,oBAAAL;AAAA,MACA,mBAAAY;AAAA,MACA,iBAAAD;AAAA,MACA,wBAAAM;AAAA,MACA,YAAA5D;AAAA,MACA,4BAAA9C;AAAA,MACA,iCAAAkD;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;AAr3BG,MAAA4D,KAAA,CAAAC,OAAKC,GAAO,iBAAA,GAAAD,IAAAA,KAAAE,MAAAF,0DAQRhF,KAAM;AAAA,EAAA,KAAA;AAAA;GA6LImF,KAAA,EAAA,OAAM,EAAY,OAAA,SAAA,QAAA,OAAA,UA6Bd,gBAAAJ,GAAA,MAAA5F,gBAAAA,EAAA,OAAA,EAAA,OAAA,WAAA,KAAA,EAAA,CAAA;;;cA3RpBL,EAgCUC,GAAA,MAAA;AAAA,IAAAP,EAAA,qBAER4G,EAAA,IAAA,EAAA,KAFQ/G,EA7BqB,GAAAC,EAAAgB,GAAA,EAAA,KAAA,KAAA;AAAA,MAF7B,SAAAZ,EAAA,MAAA;AAAA,QAAAF,EAAA,yBAAAH,KACaC,EAAA+G,GAAA;AAAA,UAEV,KAAA;AAAA,UAAA,MAAA;AAAA;;;;;;QAKM,GAAA,GAAA,CAAA,SAAU,QADnB,IAWW,EAAA;AAAA,QAAA7G,EAAA,mBAGEF,EAAA+G,GAAA;AAAA,UACV,KAAA;AAAA,UAAA,MAAA;AAAA,UAAkC,SAAU5G,EAAoB,CAAA,MAAAA,EAAA,CAAA,IAAA,MAAA;;;;;;;;eAJxDJ,EAAA,GATEC,EAAA+G,GAAA;AAAA,UACV,KAAA;AAAA,UAAA,MAAA;AAAA,UAAkC,SAAU5G,EAAmB,CAAA,MAAAA,EAAA,CAAA,IAAA,MAAA;;;;;;;;;;;IAuBlE,CAAA;AAAA,IAoBO6G,GAAAnG,EAAA,QAAA,MAAA;AAAA,OAAAd,EAhBL,EAA8C,GAAAS,EAAAC,GAAA,MAAAC,EAAAR,EAAA,sCAAA,CAAAX,IAAAP,YAAvCwB,EAAe,QAAA,EAAA,KAAAxB,KAAA;AAAA,QAAAqB,EAAA4G,GAAA,MAAA;AAAA;;;;;SAGdlH,EAAA,EAAA,GAAUS,EAAUC,GAAA,MAAAC,EAAAnB,IAAA,CAAAM;;;UAMZmH,GAAA3G,EAAA4G,GAAA,EAAC,OAAK,QAAK,GAAA;AAAA,YAAA,SACvB7G,EAGE,MAAA;AAAA,cAAA8G,EAFAnG,EAAyClB,EAAA,KAAA,IAAA,OAAAkB,EAAAb,EAAA,kBAAAlB,GAAAa,CAAA,CAAA,IAAA,KAAA,CAAA;AAAA,cAAAQ,EACnC8G,GAAE;AAAA,gBAAA,OAAA,EAAA,QAAA,WAAA,eAAA,MAAA;AAAA;;;;;;;;;;MAMlB,CAAAC,IAAA,CAAAlH,EAAA,UAAA;AAAA,IAAA,CAAA;AAAA,SAIE,OAEGmH,IAAA;AAAA,OAAAtH,EAIO,UAAqC,MAAMW,EAAAR,EAAA,sCAAA,CAAAwE,IAAAW,OAFnDtF,EAAA,GAAAS,EAKM,OALN,EAKM,KAAA6E,KAAA;AAAA,QACNnF,EAAA,qCAAA,SAAA,KAAAH,EAAA,uDACG+G,EAAU,IAAA,EAAA;AAAA,QAAAzG,EACLW,GAAQ;AAAA,UACb,MAAM;AAAA,UAAA,OAAA;AAAA;;;eAGL,EAAK,GAAAR,EAAAC,GAAA,MAAAC,EAAAgE,IAAA,CAAA7E,GAAAV,OAECY,EAAA,GAAoBC,EAAAsH,GAAA;AAAA,cAC1B,OAAK;AAAA,cACJ,KAAUzH,EAAA;AAAA,cACV,MAAA;AAAA,cAAA,cAAA,CAAAU,MAAAL,EAAA,iBAAAmF,GAAAxF,CAAA;AAAA,cA0Le,cAAA,CAAAU,MAAAL,EAAA,iBAAAmF,GAAAxF,CAAA;AAAA,YAAA,GAAA;AAAA,cA7KF,SAAAO,EAAA,MAAA;AAAA,gBAAAC,EAVZkH,GAUY,EAAA,SAAA,GAAA,GAAA;AAAA,kBAAA,SAVKnH,EAAE,MAAU;AAAA,oBAAAC,EAAAmH,GAAA;AAAA;;sBAEnB,SAAApH,EAAE,MAAU;AAAA,wBAAAC,EAClBoH,GAAoB;AAAA,0BACnB,OAAO5H,EAAE;AAAA,0BACV,OAAU,EAAA,OAAA,QAAA;AAAA,0BACT,WAAY,sBAAKwF,CAAA;AAAA,0BACjB,YAAW;AAAA,0BACX,YAAQ;AAAA,0BAAA,aAAAnF,EAAA,GAAA,QAAA;AAAA;;;sBAGb,GAAA;AAAA,oBAAA,GAAY,MAAO,CAAA,OAAA,CAAA;AAAA,oBAAAG,EAAAmH,GAAA;AAAA,sBAeN,OAAAtH,EAAA,sBAAAL,EAAA,QAAAA,EAAA,QAAA;AAAA,oBAAA,GAAA;AAAA,sBAdX,SAAAO,EAAA,MAAA;AAAA,wBAAAF,EAAA,2BAAAL,CAAA,EAAA,SAAA,KAAAE,EAAA,KAE6B2H,GAAK;AAAA,0BACxB,KAAK;AAAA,0BAAA,0BAAA;AAAA,0BACZ,OAAa7H,EAAA;AAAA,0BACd,kBAAoB,CAAAU,MAAAV,EAAA,WAAAU;AAAA,0BAAA,UAAA,CAAA8C,MAAAnD,EAAA,iBAAAmD,GAAAgC,GAAAxF,CAAA;AAAA,0BAGmC,OAAA,EAAA,OAAA,QAAA;AAAA,wBAAA,GAAA;AAAA;+BAC7C,EAAI,GAAAW,EAAAC,GAAA,MAAAC,EAAAR,EAAA,2BAAAL,CAAA,GAAA,CAAAN,OACNQ,EAAI,GAAAC,EAAA2H,GAAA;AAAA,8BAAA,OAAApI;AAAA;;;;;;;;;;;sBAMhB,GAAA;AAAA,oBAAA,GAAA,MAAA,CAAA,OAAA,CAAA;AAAA,8BAIIsH,IAeE;AAAA,sBAAA,CAAA,2BAAA,gBAAA,EAAA,SAAAhH,EAAA,QAAA,KAAAE,EAAA,GAdcC,EAAO4H,GAAA;AAAA,wBACb,KAAK;AAAA,wBAAA,eAAA;AAAA,wBACL,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,wBAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,wBAChD,OAAKL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA;AAAA,wBAAoC,kBAAA,CAAAU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,IAAAU;AAAA,wBAAA,OAAA;AAAA;;;;;0BAQzC,aAAA;AAAA,wBAAA;AAAA,wBAEA,WAAAL,EAAe,qBAAamF,CAAA;AAAA,wBAAA,SAAAnF,EAAA;AAAA,uCAGFA,EAAS;AAAA,sBAAA,GAAA,MAAA,GAAA,CAAA,SAAxC,kBA+FW,SAAA,kBAAA,SAAA,aAAA,WAAA,eAAA,CAAA,KAAA,CAAA,OA7FD,EAAU,SAAAL,EAAQ,kBAD1BY,GAmDW,EAAA,KAAA,EAAA,GAAA;AAAA,wBAAAZ,EAhDO,aAAc,aAS1BA,EAAA,aAAA,gBAAAE,EAAA,GAAAS,EAAAC,GAAA,EAAA,KAAA,EAAA,GAAA;AAAA,0BAAAZ,EAAA,SAAA,gBAAAE,EAAA,GAPcC,EAAO4H,GAAA;AAAA,4BACb,KAAK;AAAA,4BAAA,eAAA;AAAA,4BACL,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,4BAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,4BAChD,OAAKL,EAAO,qBAASmF,CAAA,EAAAxF,EAA+B,UAAU;AAAA,4BAC9D,kBAAW,CAAgCU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,IAAAU;AAAA,4BAC3C,OAAO,EAAE,GAAAV,GAAU,MAAO,eAAA,QAAAA,EAAA,WAAA;AAAA,4BAC1B,aAAe,qBAAawF,CAAA;AAAA,4BAAA,SAAAxF,EAAA;AAAA,4BAGZ,eAAcK,EAAA;AAAA,0BAAA,GACjC,MAAA,GAAA,CAAA,SAAA,kBAWE,SAVC,kBAAA,SAAA,aAAA,WAAA,eAAA,CAAA,KAAAL,EAAA,SAAA,iBAAAE,EAAA,GAAaC,EAAO4H,GAAA;AAAA,4BACb,KAAK;AAAA,4BAAA,eAAA;AAAA,4BACL,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,4BAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,4BAChD,OAAKL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA;AAAA,4BAAwC,kBAAA,CAAAU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,IAAAU;AAAA,4BAAA,OAAA;AAAA;;;4BAM7C,WAAAL,EAAe,qBAAamF,CAAA;AAAA,4BAAA,SAAAxF,EAAA;AAAA,4BAI/B,eAAAK,EAAA;AAAA,0BAAA,GAAA,MAAA,GAAA,CAAA,SASI,yGAAAF,EAAA6H,GAAA,EAAA,KAAA,KAAA;AAAA,4BAAA,SAPCzH,EAAa,MAAO;AAAA,8BAAAC,EACNuH,GAAqB;AAAA,gCAAA,eAAA;AAAA,gCAC5B,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,gCAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,gCAChD,OAAOL,EAAS,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,EAAA,CAAA;AAAA,gCAChB,kBAAW,CAAgCU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,EAAA,CAAA,IAAAU;AAAA,gCAC3C,OAAOV;AAAA,gCACP,aAAe,qBAAawF,CAAA;AAAA,gCAAA,SAAAxF,EAAA;AAAA,gCAE/B,eAA0BK,EAAA;AAAA,8BASxB,GAAA,MAAA,GAAA,CAAA,SAAA,kBAAA,SAAA,kBAAA,SAAA,aAAA,WAAA,eAAA,CAAA;AAAA,8BAAA4H;AAAAA,gCANeF,GAAqB;AAAA,gCAAA,eAAA;AAAA,gCAC5B,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,gCAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,gCAChD,OAAOL,EAAS,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,EAAA,CAAA;AAAA,gCAChB,kBAAW,CAAgCU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,EAAA,CAAA,IAAAU;AAAA,gCAC3C,OAAOV;AAAA,gCACP,aAAe,qBAAawF,CAAA;AAAA,gCAAA,SAAAxF,EAAA;AAAA;;;;0BAKN,GAAA,IAAA;AAAA,wBAAA,GAAA,EAAA,KAAAA,EAAA,aAAA,SAAAE,KAEbC,EAAO4H,GAAA;AAAA,0BACb,KAAK;AAAA,0BAAA,eAAA;AAAA,0BACL,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,0BAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,0BAChD,OAAKL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA;AAAA,0BAAsC,kBAAA,CAAAU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,IAAAU;AAAA,0BAAA,OAAA;AAAA;;;;;;;0BAU3C,WAAAL,EAAe,qBAAamF,CAAA;AAAA,0BAAA,SAAAnF,EAAA;AAAA,0BAIpB,eAAcA,EAAA;AAAA,wBAAA,GAEzB,MAAA,GAAA,CAAA,SAAA,kBAQE,SAPC,kBAAA,SAAA,aAAA,WAAA,eAAA,CAAA,KAAAL,EAAA,SAAA,gBAAAA,EAAA,SAAA,iBAAAE,EAAA,GAAaC,EAAO4H,GAAA;AAAA,0BACb,KAAK;AAAA,0BAAA,eAAA;AAAA,0BACL,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,0BAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,0BAChD,OAAKL,EAAO,qBAAmBmF,CAAU,EAAUxF,EAAA,UAAA;AAAA,0BACnD,kBAAW,CAAgCU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,IAAAU;AAAA,0BAC3C,OAAO,EAAE,GAAAV,GAAU,QAAOA,EAAA,WAAA;AAAA,0BAC1B,aAAe,qBAAawF,CAAA;AAAA,0BAAA,SAAAxF,EAAA;AAAA,0BAI/B,eAAAK,EAAA;AAAA,wBAAA,GAAA,MAAA,GAAA,CAAA,SAAA,kBAAA,SAAA,kBAAA,SAAA,aAAA,WAAA,eAAA,CAAA,MAAAH,KACgBC,EAAO4H,GAAA;AAAA,0BACb,KAAK;AAAA,0BAAA,eAAA;AAAA,0BACL,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,0BAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,0BAChD,OAAOL,EAAS,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA;AAAA,0BAChB,kBAAW,CAAgCU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,IAAAU;AAAA,0BAC3C,OAAOV;AAAA,0BACP,aAAe,qBAAawF,CAAA;AAAA,0BAAA,SAAAxF,EAAA;AAAA;wBAIQ,GAAA,MAAA,GAAA,CAAA,SAAS,kBAAgB,SAAA,kBAAA,SAAA,aAAA,WAAA,eAAA,CAAA;AAAA,sBAAA,GAAA,EAAA,KAAA,CAAA,WAClD,QAAgB,EAS5B,SAAAA,EAAA,MAAA,KAAAE,EAAA,GAAAS,EAAAC,GAAA,EAAA,KAAA,KAAA;AAAA,wBAAAZ,EAAA,WAAA,aAAAE,EAAA,GAPcC,EAAO4H,GAAA;AAAA,0BACb,KAAK;AAAA,0BAAA,eAAA;AAAA,0BACL,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,0BAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,0BAChD,OAAOL,EAAS,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA;AAAA,0BAChB,kBAAW,CAAgCU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,IAAAU;AAAA,0BAC3C,OAAOV;AAAA,0BACP,aAAe,qBAAawF,CAAA;AAAA,0BAAA,SAAAxF,EAAA;AAAA,0BAGZ,eAAgBK,EAAA;AAAA,wBAAA,GACnC,MAAA,GAAA,CAAA,SAAA,kBAQE,SAPC,kBAAA,SAAA,aAAA,WAAA,eAAA,CAAA,KAAAL,EAAA,WAAA,YAAAE,EAAA,GAAaC,EAAO4H,GAAA;AAAA,0BACb,KAAK;AAAA,0BAAA,eAAA;AAAA,0BACL,OAAO1H,EAAqB,WAAAL,EAAA,UAAA;AAAA,0BAAA,kBAAA,CAAAU,MAArBL,eAAqB,UAAa,IAAAK;AAAA,0BAChD,OAAKL,EAAO,qBAAiBmF,CAAW,EAAUxF,EAAA,UAAA;AAAA,0BAClD,kBAAW,CAAgCU,MAAAL,EAAA,qBAAAmF,CAAA,EAAAxF,EAAA,UAAA,IAAAU;AAAA,0BAC3C,OAAO,EAAE,GAAAV,GAAU,MAAOA,KAAA,gBAAAA,EAAA,WAAA;AAAA,0BAC1B,aAAe,qBAAawF,CAAA;AAAA,0BAAA,SAAAxF,EAAA;AAAA;;gCAKrCiH,EAYO,IAAA,EAAA;AAAA,oBAAA,CAAA;AAAA,oBATsBjG,EAAc,QAAakH,IAAU;AAAA,sBAAA7H,EAA4G,cAA2CmF,CAAA,EAAAxF,EAAA,UAAA,MAA4BK,EAAkB,qCAAA,CAAA,EAAA,SAAA,KAAAA,EAAA,qCAAA,SAAA,MAAA,CAAAA,EAAA,sBAAAH,EAAA,GADtPC,EAAAwH,GAAA;AAAA,wBAAA,KAAA;AAAA;;wBAQW,SAAApH,EAAK,MAAE;AAAA,0BAAAC,EAAA2H,GAAA;AAAA;;;;;;;;;;;;;;QAStB,GAAA,IAAA;AAAA,QAHnB9H,EAAA,qCAAA,SAAA,KAAAmF,KAAAnF,EAAA,qCASY,mBARKF,EAAAiI,GAAA;AAAA,UACf,KAAiB;AAAA,UAAA,OAAA;AAAA,UAOnB,OAAA,EAAA,QAAA,IAAA;AAAA,QAAA,GAAA;AAAA;;;;;;;MAGJ,CAAAb,IAAAlH,EAAA,UAAA;AAAA,IAAA,CAAA;AAAA,IAWe8G,GAAAnG,EAAA,OAAAqH,IAAA;AAAA,MAAA7H,EANXW,GAMW,MAAA;AAAA,QAAA,SALLZ,EAAQ,MAAA;AAAA,UAAAC,EACP0G,GAAS;AAAA,YACb,MAAA;AAAA,YAAA,MAAA;AAAA;;;;;YAIH,GAAA;AAAA,UAAA,GACE,GAAI,CAAQ,SAAA,CAAA;AAAA,UAAA1G,EACP0G,GAAS;AAAA,YACb,MAAA;AAAA,YAAA,MAAA;AAAA;;;;;YAIH,GAAA;AAAA,UAAA,GACE,GAAI,CAAQ,SAAA,CAAA;AAAA,UAAA1G,EACP0G,GAAS;AAAA,YACb,MAAA;AAAA,YAAA,MAAA;AAAA;;;;;;;;;;;MAQC,CAAsBK,IAAAlH,EAAA,cAAA,CAAAA,EAAA,kBAAA;AAAA,IAAA,CAAA;AAAA,qCACCF,EAAAmI,IAAA;AAAA,MAC5B,KAAA;AAAA,MACA,MAAAjI,EAAA,kBAAA;AAAA,MACA,sCAAwBA,EAAA;AAAA,MACxB,mCAAQA,EAAwB;AAAA,MAAA,MAAAA,EAAA;AAAA;IAI3B,GAAA,MAAA,GAAA,CAAA,QAAA,wCAA2B,+DADnC,IAOE,EAAA;AAAA,IAAAA,EAAA,uBAAA,QAAAH,EAAA,GALkCC,EAAAoI,GAAA;AAAA,MACjC,KAAA;AAAA,MACA,MAAiClI,EAAA,uBAAA;AAAA,MACjC,sCAA6BA,EAAA;AAAA,MAC7B,mCAAQA,EAAA;AAAA,MAAA,MAAAA,EAAA;AAAA;;;;uFC7ObmI,KAAe5J,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,cAAAqD;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,OAAO,CAAC,gBAAgB,cAAc;AAAA,EACtC,MAAMpD,GAAO,EAAE,MAAAC,KAAQ;AACjB,QAAAD,EAAM,KAAK;AACJ,eAAAS,KAAKT,EAAM,KAAK;AACvB,QAAA4H;AAAA,UACE,MAAM5H,EAAM,MAAMS,CAAC;AAAA,UACnB,MAAM;AACJ,YAAAT,EAAM,KAAK,MAAMS,CAAC,EAAET,EAAM,OAAOA,EAAM,IAAI;AAAA,UAC7C;AAAA,QAAA;AAcC,WAAA;AAAA,MACL,UAVe,MACPA,EAAM,KAAa;MAU3B,eARoB,CAAU4J,MAAA;AAC9B,QAAA3J,EAAK,gBAAgB2J,CAAM;AAAA,MAAA;AAAA,MAQ3B,eANoB,CAAUA,MAAA;AAC9B,QAAA3J,EAAK,gBAAgB2J,CAAM;AAAA,MAAA;AAAA,IAK3B;AAAA,EAEJ;AACF,CAAC;;sFArJCxI,EAmFS,QAAA;AAjFP,SAAAC,EAAA,GAAkBC,EAAAuI,GAAA;AAAA,IACjB,KAAK;AAAA,IACL,cAAO;AAAA,IACP,OAAMrI,EAAE;AAAA,IACT,OAAAA,EAAA,KAAA;AAAA,IACA,QAAMA,EAAO,KAAA,SAAA;AAAA,IACZ,oBAAiB;AAAA,IAAA,OAAA;AAAA;;;SAIV,EAAK,GAAAM,EAAAC,GAAA,MAAAC,EAAAR,EAAA,KAAA,kBAAA,CAAAsI,GAAAxJ,OAGRe,EAAA,GAAsCC,EAAAyI,GAAA;AAAA,QACvC,KAA0BzJ;AAAA,QAAA,cAAA,EAAA,SAAA,cAAA;AAAA,QAmClB,OAAA,EAAA,iBAAA,MAAA;AAAA,MA3BR,GAAA0J,GAAA;AAAA,QAAA,SACGtI,EAAS,MAAA;AAAA,UAAAC,EACLsI,GAAM;AAAA,YAAA,QAAA;AAAA;;;eAIF5I,EAAA,EAAA,GAAAS,EAAAC,GAAA,MAAAC,EAAA8H,KAAA,gBAAAA,EAAA,UAAA,CAAAI,GAAA1J,OACFa,EAAA,GAAAC,EAAA6I,GAAA;AAAA,gBAAiB,KAAW3J;AAAA,gBAAA,MAAA0J,EAGhC,gBAAmBA,EAAM,SAAA,SAAAA,EAAA,OAAA,KAAA;AAAA,gBAEzB,QAAMA,EAAW;AAAA,gBAAA,MAAAA,EAAA;AAAA;;gBAGH,SAAAxI,EAAE,MAAM;AAAA,mBAAWL,EAAA,GAAAC,EAAA4H,GAAA;AAAA,oBACxB,eAAegB,EAAU,IAAA;AAAA,oBAAA,kBAAA,CAAArI,MAAAL,EAAA,MAAV0I,EAAU,IAAA,IAAArI;AAAA,oBAChC,eAAOqI,EAAU;AAAA,oBACjB,0BAAgB,CAAArI,MAAAqI,EAAA,gBAAArI;AAAA,oBAChB,OAAAqI;AAAA,oBACA,WAAK1I,EAAW;AAAA,oBAChB,UAAeA,EAAA;AAAA,oBACf,KAAS0I,EAAA;AAAA,oBACT,eAAY1I,EAAE;AAAA,oBACd,SAAAA,EAAY,QAAE0I,EAAa,aAAAA,EAAA,aAAAA,EAAA,IAAA;AAAA,oBAAA,gBAAA1I,EAAA;AAAA;;;;;;;;;QA7B1B,GAAA;AAAA,MAAA,GAAA;AAAA,QACAsI,EAAA,eAAAtI,EAAA,KAAA,iBAAA,SAAA,KAAAA,EAAA,mBAAA;AAAA;;;;;;;;;;;uFCoEhB4I,KAAerK,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY,CAAC;AAAA,EACb,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAMC,GAAO;AACP,QAAAA,EAAM,KAAK;AACF,iBAAAS,KAAKT,EAAM,KAAK;AACzB,QAAA4H;AAAA,UACE,MAAM5H,EAAM,MAAMS,CAAC;AAAA,UACnB,MAAM;AACJ,YAAAT,EAAM,KAAK,MAAMS,CAAC,EAAET,EAAM,OAAOA,EAAM,IAAI;AAAA,UAC7C;AAAA,QAAA;AAAA,EAIR;AAAA,EAEA,OAAO;AACE,WAAA;AAAA,MACL,WAAW,CAAC;AAAA,IAAA;AAAA,EAEhB;AAAA,EACA,SAAS;AAAA,IACP,WAAW;AACD,aAAA,KAAK,MAAM,KAAa,SAAS;AAAA,IAC3C;AAAA,IACA,QAAQ;AACL,WAAK,MAAM,KAAa;IAC3B;AAAA,IACA,QAAQqK,GAAuB;AAE7B,WAAK,KAAK,OAAOA,CAAI,EAAE,WAAW;AAAA,IACpC;AAAA,IACA,aAAa;AACX,WAAK,KAAK,OAAO,QAAQ,CAACxJ,MAAc;AACtC,QAAAA,EAAK,WAAW;AAAA,MAAA,CACjB;AAAA,IACH;AAAA,EACF;AAAA,EACA,UAAU;AACR,QAAIyJ,IAAI;AACJ,IAAA,KAAK,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,IAAI,SAAS,KAC5D,KAAK,KAAK,SAAS,IAAI,QAAQ,CAACzJ,GAAcL,MAAc;AAC1D,MAAA8J,IAAIA,IAAIzJ,GACJL,MAAM,IACR,KAAK,UAAU,KAAK,CAAC,GAAG8J,CAAC,CAAC,IAE1B,KAAK,UAAU,KAAK,CAACA,IAAIzJ,GAAMyJ,CAAC,CAAC;AAAA,IACnC,CACD;AAAA,EAEL;AACF,CAAC;;mEA7JClJ,EAmFS,QAAA;AAjFP,SAAAC,EAAA,GAAkBC,EAAAuI,GAAA;AAAA,IACjB,KAAK;AAAA,IACL,cAAO;AAAA,IACP,OAAMrI,EAAE;AAAA,IACR,OAAiBA,EAAA,KAAA;AAAA,IACjB,QAASA,EAAA,KAAA,SAAA;AAAA,IAAc,iBAAA;AAAA,IAAA,aAAAA,EAA4D,cAAK,UAAS,aAAmB,SAAiCA,EAAK,KAAA,SAAS,4GASnK,EAAW,MAAA,EAAA;AAAA,IAAA,eAAAA,EAA0E,cAAK,UAAS,aAAqB,SAAmCA,EAAK,KAAA,SAAS,iHASzK,EAAY,MAAA,GAAA;AAAA,IAAA,YAAAA,EAAA,KAAA,SAAA;AAAA,IAyDL,oBAAA;AAAA,EAAA,GAAA;AAAA,aArDLE,EAAU,MAAA;AAAA,MAAAC,EACXsI,GAAiB;AAAA,QAAA,QAAA;AAAA,QAqBN,OAAA,EAAA,QAAA,IAAA;AAAA,MAAA,GAAA;AAAA;mCAlBT,KAiBQ,SAAA,IAAA,SAAA,KAAA5I,EAfH,EAAO,GAAgBS,EAAAC,GAAA,EAAA,KAAA,KAAAC,EAAAR,EAAA,WAAA,CAAA+I,OACnBlJ,EAAA,GAAAC,EAAA6I,GAAA;AAAA,YACN,IAAI,KAAE3I,EAAA,UAAA;AAAA,YACN,IAAI;AAAA,YACJ,IAAI;AAAA,YAAA,IAAA;AAAA;;;iBAIY,EAAgB,GAAAM,EAAAC,GAAA,MAAAC,EAAAR,EAAA,KAAA,OAAA,MAAA+I,EAAA,CAAA,GAAAA,EAAA,CAAA,CAAA,GAAA,CAAAC,cAAhBC,GAAgB;AAAA,gBAC9B,OAAOjJ,EAAK,MAAAgJ,EAAA,IAAA;AAAA,gBACZ,kBAAW,CAAK3I,MAAAL,EAAA,MAAAgJ,EAAA,IAAA,IAAA3I;AAAA,gBAChB,OAAA2I;AAAA,gBACA,WAAehJ,EAAA;AAAA,gBACf,KAASgJ,EAAA;AAAA,gBAAA,eAAAhJ,EAAA;AAAA;;;;2BAKP,GAAA,GAAI,OADb,IA6BQ,EAAA;AAAA,UA3BC,CAAAA,EAAA,KAAA,SAAA,OAAAA,EAAA,KAAA,SAAA,IAAA,WAAA,KAAAH,EAAA,GAAAC,EAAA6I,GAAA;AAAA,YACN,KAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YAAA,IAAA;AAAA;;;iBAMW,EAAK,GAAArI,EAAAC,GAAA,MAAAC,EAAAR,EAAA,KAAA,QAAA,CAAAgJ,YAHnB1I,EASEC,GAAA,MAAA;AAAA,gBAAAyI,EARQ,SAAuBnJ,KAAAC,EAAAmJ,GAAA;AAAA,kBACvB,OAAOjJ,QAAMgJ,EAAM,IAAA;AAAA,kBAAZ,kBAAA,CAAA3I,MAAAL,EAAA,MAAMgJ,EAAM,IAAK,IAAA3I;AAAA,kBAE/B,OAAOL,EAAK,MAAAgJ,EAAA,KAAA;AAAA,kBACZ,kBAAW,CAAK3I,MAAAL,EAAA,MAAAgJ,EAAA,KAAA,IAAA3I;AAAA,kBAChB,OAAA2I;AAAA,kBACA,WAAehJ,EAAA;AAAA,kBACf,KAASgJ,EAAA;AAAA,kBAAA,eAAAhJ,EAAA;AAAA,6BAEZ,QAQEgJ,EAAA,aAAAA,EAAA,aAAAA,EAAA,IAAA;AAAA,gBAAA,GAPQ,MAAO,aAAM,kBAAU,SAAA,kBAAA,SAAA,aAAA,iBAAA,SAAA,CAAA,MAAAnJ,EAAA,GAAAC,EAAAmJ,GAAA;AAAA,kBAE9B,OAAOjJ,EAAK,MAAAgJ,EAAA,IAAA;AAAA,kBACZ,kBAAW,CAAK3I,MAAAL,EAAA,MAAAgJ,EAAA,IAAA,IAAA3I;AAAA,kBAChB,OAAA2I;AAAA,kBACA,WAAehJ,EAAA;AAAA,kBACf,KAASgJ,EAAA;AAAA,kBAAA,eAAAhJ,EAAA;AAAA;;;;;;;;;;;;;qDClCtBkJ,KAAe3K,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY,CAAC;AAAA,EACb,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAMC,GAAO;AACP,QAAAA,EAAM,KAAK;AACF,iBAAAS,KAAKT,EAAM,KAAK;AACzB,QAAA4H;AAAA,UACE,MAAM5H,EAAM,MAAMS,CAAC;AAAA,UACnB,MAAM;AACJ,YAAAT,EAAM,KAAK,MAAMS,CAAC,EAAET,EAAM,OAAOA,EAAM,IAAI;AAAA,UAC7C;AAAA,QAAA;AAAA,EAIR;AAAA,EAEA,OAAO;AACL,WAAO;EACT;AAAA,EACA,SAAS;AAAA,IACP,WAAW;AACD,aAAA,KAAK,MAAM,KAAa,SAAS;AAAA,IAC3C;AAAA,IACA,QAAQ;AACL,WAAK,MAAM,KAAa;IAC3B;AAAA,IACA,QAAQqK,GAAuB;AAE7B,WAAK,KAAK,OAAOA,CAAI,EAAE,WAAW;AAAA,IACpC;AAAA,IACA,aAAa;AACX,WAAK,KAAK,OAAO,QAAQ,CAACxJ,MAAc;AACtC,QAAAA,EAAK,WAAW;AAAA,MAAA,CACjB;AAAA,IACH;AAAA,EACF;AAAA,EACA,UAAU;AAAA,EAAC;AACb,CAAC;;mEAnGCO,EAuCS,QAAA;AArCP,SAAAC,EAAA,GAAkBC,EAAAuI,GAAA;AAAA,IACjB,KAAK;AAAA,IACL,cAAO;AAAA,IACR,OAAArI,EAAA;AAAA,IAAA,OAAAA,EAAA,KAAA;AAAA,IAI+B,oBAAA;AAAA,EAAA,GAAA;AAAA;SADtB,EAAG,GAAAM,EAAAC,GAAA,MAAAC,EAAAR,EAAA,KAAA,WAAA,CAAAsI,OAELzI,EAAM,GAAAC,EAAA2I,GAAA;AAAA,QAAA,QAAA;AAAA;;;WAIF5I,EAAA,EAAM,GAAIS,EAAAC,GAAA,MAAAC,EAAA8H,GAAA,CAAAU;;;;eAMDnJ,EAAA,EAAK,gCAAAmJ,YAHnB1I,EASEC,GAAA,MAAA;AAAA,gBAAA4I,EARQ,SAAuBtJ,KAAAC,EAAAmJ,GAAA;AAAA,kBACvB,OAAOjJ,QAAMgJ,EAAM,IAAA;AAAA,kBAAZ,kBAAA,CAAA3I,MAAAL,EAAA,MAAMgJ,EAAM,IAAK,IAAA3I;AAAA,kBAE/B,OAAOL,EAAK,MAAAgJ,EAAA,KAAA;AAAA,kBACZ,kBAAW,CAAK3I,MAAAL,EAAA,MAAAgJ,EAAA,KAAA,IAAA3I;AAAA,kBAChB,OAAK2I;AAAAA,kBACL,WAAehJ,EAAA;AAAA,kBACf,KAAAgJ,EAAS;AAAA,kBAAA,eAAAhJ,EAAA;AAAA,kBAEZ,SAAAA,EAAA,QAAAgJ,EAQE,aAAAA,EAAA,aAAAA,EAAA,IAAA;AAAA,gBAAA,GAPQ,MAAO,aAAM,kBAAU,SAAA,kBAAA,SAAA,aAAA,iBAAA,SAAA,CAAA,MAAAnJ,EAAA,GAAAC,EAAAmJ,GAAA;AAAA,kBAE9B,OAAOjJ,EAAK,MAAAgJ,EAAA,IAAA;AAAA,kBACZ,kBAAW,CAAK3I,MAAAL,EAAA,MAAAgJ,EAAA,IAAA,IAAA3I;AAAA,kBAChB,OAAK2I;AAAAA,kBACL,WAAehJ,EAAA;AAAA,kBACf,KAAAgJ,EAAS;AAAA,kBAAA,eAAAhJ,EAAA;AAAA;;;;;;;;;;;;;qDCwqBhBoJ,KAAc,CAACC,GAAYC,IAAS,iBAC3BpD,EAAOmD,GAAYC,GAAQ,EAAI,EAChC,WAERC,KAAkB,CAACF,GAAYC,IAAS,0BAC/BpD,EAAOmD,GAAYC,GAAQ,EAAI,EAChC,WAERE,KAAc,CAACH,GAAYC,IAAS,eAC3BpD,EAAOmD,GAAYC,GAAQ,EAAI,EAChC,WAEdG,KAAelL,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS,EAAE,SAAAmL,GAAQ;AAAA,EACnB,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,OAAO;AAAA,MACL,UAAU;AAAA,IACZ;AAAA,IACA,OAAO;AAAA,MACL,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,IACA,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAMlL,GAAO,EAAE,MAAAC,KAAQ;AACrB,UAAMkL,IAAWhL,GAAI,EAAE,GAAGH,EAAM,UAAW,CAAA,GACrCoL,IAAY,CAACC,MACb,OAAOA,KAAK,YAAYA,EAAE,QAAQ,GAAG,KAAK,IACrCA,EAAE,MAAM,GAAG,IAEbA,GAEHC,IAA0B,CAAC3G,GAAO4G,MAAe;AAEjD,UAAAC;AACJ,aAAID,KAAc,QACZ3G,EAAWD,CAAK,KAAKA,aAAiB,SACxC6G,IAAY,CAAA,GACZ7G,EAAM,QAAQ,CAAQ9D,MAAA;AACpB,QAAI+D,EAAW/D,CAAI,KAAK,OAAOA,KAAS,WAC5B2K,EAAA,KAAK,OAAO3K,CAAI,CAAC,IAE3B2K,EAAU,KAAK3K,CAAI;AAAA,MACrB,CACD,KACQ+D,EAAWD,CAAK,KAAK,OAAOA,KAAU,WAC/C6G,IAAY,OAAO7G,CAAK,IAEZ6G,IAAA7G,IAEL4G,KAAc,QACnB3G,EAAWD,CAAK,KAAKA,aAAiB,SACxC6G,IAAY,CAAA,GACZ7G,EAAM,QAAQ,CAAQ9D,MAAA;AACpB,QAAI+D,EAAW/D,CAAI,KAAK,OAAOA,KAAS,WAC5B2K,EAAA,KAAK3K,EAAK,SAAU,CAAA,IAE9B2K,EAAU,KAAK3K,CAAI;AAAA,MACrB,CACD,KACQ+D,EAAWD,CAAK,KAAK,OAAOA,KAAU,WAC/C6G,IAAY7G,EAAM,aAEN6G,IAAA7G,IAEL4G,KAAc,SACnB3G,EAAWD,CAAK,KAAKA,aAAiB,SACxC6G,IAAY,CAAA,GACZ7G,EAAM,QAAQ,CAAQ9D,MAAA;AACpB,QAAI+J,GAAY/J,CAAI,KAAK,OAAOA,KAAS,WACvC2K,EAAU,KAAK9D,EAAO7G,GAAM,YAAY,CAAC,IAEzC2K,EAAU,KAAK3K,CAAI;AAAA,MACrB,CACD,KACQ+J,GAAYjG,CAAK,KAAK,OAAOA,KAAU,WAChD6G,IAAY7G,EAAM,aAEN6G,IAAA7G,IAEL4G,KAAc,aACnB3G,EAAWD,CAAK,KAAKA,aAAiB,SACxC6G,IAAY,CAAA,GACZ7G,EAAM,QAAQ,CAAQ9D,MAAA;AACpB,QAAIkK,GAAgBlK,CAAI,KAAK,OAAOA,KAAS,WAC3C2K,EAAU,KAAK9D,EAAO7G,GAAM,qBAAqB,CAAC,IAElD2K,EAAU,KAAK3K,CAAI;AAAA,MACrB,CACD,KACQkK,GAAgBpG,CAAK,KAAK,OAAOA,KAAU,WACxC6G,IAAA9D,EAAO/C,GAAO,qBAAqB,IAEnC6G,IAAA7G,IAEL4G,KAAc,SACnB3G,EAAWD,CAAK,KAAKA,aAAiB,SACxC6G,IAAY,CAAA,GACZ7G,EAAM,QAAQ,CAAQ9D,MAAA;AACpB,QAAImK,GAAYnK,CAAI,KAAK,OAAOA,KAAS,WACvC2K,EAAU,KAAK9D,EAAO7G,GAAM,UAAU,CAAC,IAEvC2K,EAAU,KAAK3K,CAAI;AAAA,MACrB,CACD,KACQmK,GAAYrG,CAAK,KAAK,OAAOA,KAAU,WACpC6G,IAAA9D,EAAO/C,GAAO,UAAU,IAExB6G,IAAA7G,IAEL4G,KAAc,UACnB3G,EAAWD,CAAK,KAAKA,aAAiB,SACxC6G,IAAY,CAAA,GACZ7G,EAAM,QAAQ,CAAQ9D,MAAA;AACpB,QAAI+D,EAAW/D,CAAI,KAAK,OAAOA,KAAS,WAC5B2K,EAAA,KAAK,OAAO3K,CAAI,CAAC,IAE3B2K,EAAU,KAAK3K,CAAI;AAAA,MACrB,CACD,KACQ+D,EAAWD,CAAK,KAAK,OAAOA,KAAU,WAC/C6G,IAAY,OAAO7G,CAAK,IAEZ6G,IAAA7G,IAEL4G,KAAc,WACnB3G,EAAWD,CAAK,KAAKA,aAAiB,SACxC6G,IAAY,CAAA,GACZ7G,EAAM,QAAQ,CAAQ9D,MAAA;AACpB,QAAI+D,EAAW/D,CAAI,KAAK,OAAOA,KAAS,WAC5B2K,EAAA,KAAK,EAAQ3K,CAAK,IAE5B2K,EAAU,KAAK3K,CAAI;AAAA,MACrB,CACD,KACQ+D,EAAWD,CAAK,KAAK,OAAOA,KAAU,WAC/C6G,IAAY,EAAQ7G,IAER6G,IAAA7G,IAGT6G;AAAA,IAAA,GAEHC,IAAgBtL,GAAIH,EAAM,aAAa,GACvC0L,IAAUvL,GAAI,EAAK,GACnBwL,IAAmB,MAAM;AACxB,MAAA1L,EAAA,kBAAkByL,EAAQ,KAAK;AAAA,IAAA,GAEhCE,IAAY,MAAM;AACtB,MAAA3L,EAAK,KAAK;AAAA,IAAA,GAEN4L,IAA0BC,GAAS,MAAM;;AAC7C,YAAMC,IAAoBN,EAAc,OAClCO,IAA6B,CAAA;AACxB,iBAAAxL,MAAKkC,IAAA1C,EAAM,UAAN,gBAAA0C,EAAa,YAAY;AACvC,cAAMuJ,MAAatJ,IAAA3C,EAAM,UAAN,gBAAA2C,EAAa,WAAWnC,IACrC0L,IAAgB,CAAA;AACtB,mBAAWC,MAAKF,IAAY;AACpB,gBAAApL,IAAOoL,GAAWE,EAAC,GACnBxH,IAAQ3E,EAAM,UAAUa,EAAK,QAAQ;AACvC,cAAA2K;AACJ,UAAI3K,EAAK,aACP2K,IAAYF,EAAwBzK,EAAK,OAAOA,EAAK,UAAU,IAE/D2K,IAAY3K,EAAK;AAEnB,cAAIK,GAAOkL;AACX,UAAIZ,aAAqB,UACtB,CAAAtK,GAAOkL,EAAM,IAAIZ,IAEhB3K,EAAK,YAAY,OACf,OAAOK,KAAU,WACfmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IACfvH,IAAQzD,IACjBgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBtB,GAAY1J,CAAK,MACtBmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IACfxE,EAAO/C,CAAK,EAAE,SAAS+C,EAAOxG,CAAK,CAAC,IAC7CgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,KAGnBrL,EAAK,YAAY,QACtB,OAAOK,KAAU,WACfmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IACfvH,KAASzD,IAClBgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBtB,GAAY1J,CAAK,MACtBmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IAExBxE,EAAO/C,CAAK,EAAE,SAAS+C,EAAOxG,CAAK,CAAC,KACpCwG,EAAO/C,CAAK,EAAE,OAAO+C,EAAOxG,CAAK,CAAC,IAElCgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,KAGnBrL,EAAK,YAAY,OACtB,OAAOK,KAAU,WACfmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IACfvH,IAAQzD,IACjBgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBtB,GAAY1J,CAAK,MACtBmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IACfxE,EAAO/C,CAAK,EAAE,QAAQ+C,EAAOxG,CAAK,CAAC,IAC5CgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,KAGnBrL,EAAK,YAAY,QACtB,OAAOK,KAAU,WACfmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IACfvH,KAASzD,IAClBgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBtB,GAAY1J,CAAK,MACtBmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IAExBxE,EAAO/C,CAAK,EAAE,QAAQ+C,EAAOxG,CAAK,CAAC,KACnCwG,EAAO/C,CAAK,EAAE,OAAO+C,EAAOxG,CAAK,CAAC,IAElCgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,KAGnBrL,EAAK,YAAY,YACtB,OAAOK,KAAU,YAAY,OAAOkL,MAAW,YAAYlL,KAASkL,KAClEC,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IACfvH,KAASzD,KAASyD,KAASyH,KACpCF,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBtB,GAAY1J,CAAK,MACtBmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,KAEvBxE,EAAO/C,CAAK,EAAE,QAAQ+C,EAAOxG,CAAK,CAAC,KAAKwG,EAAO/C,CAAK,EAAE,OAAO+C,EAAOxG,CAAK,CAAC,OAC1EwG,EAAO/C,CAAK,EAAE,SAAS+C,EAAO0E,EAAM,CAAC,KAAK1E,EAAO/C,CAAK,EAAE,OAAO+C,EAAO0E,EAAM,CAAC,KAE9EF,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,KAGnBrL,EAAK,YAAY,eACtB,OAAOK,KAAU,YAAY,OAAOkL,MAAW,YAAYlL,KAASkL,KAClEC,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IACfvH,IAAQzD,KAASyD,IAAQyH,KAClCF,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBtB,GAAY1J,CAAK,MACtBmL,GAAQ1H,CAAK,IACfuH,EAAc,KAAK,EAAK,IAExBxE,EAAO/C,CAAK,EAAE,SAAS+C,EAAOxG,CAAK,CAAC,KACpCwG,EAAO/C,CAAK,EAAE,QAAQ+C,EAAO0E,EAAM,CAAC,IAEpCF,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,KAGnBrL,EAAK,YAAY,OACtB8D,aAAiB,QACJ6G,EAAU,OAAO,CAAKc,OAC5B3H,EAAM,SAAS2H,EAAC,CACxB,EACU,SAAS,IAClBJ,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,KAEjB,OAAOvH,KAAS,YAAY,OAAOA,KAAS,YAAY0H,GAAQ1H,CAAK,OAEpE6G,EAAU,KAAK,CAAKc,OACrB3H,KAAS2H,EACjB,IAECJ,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,KAGnBrL,EAAK,YAAY,OACtB8D,MAAUzD,IACZgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBrL,EAAK,YAAY,aACtB8D,EAAM,SAAS,EAAE,QAAQzD,CAAK,IAAI,KACpCgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBrL,EAAK,YAAY,eACtB8D,EAAM,SAAA,EAAW,WAAWzD,CAAK,IACnCgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBrL,EAAK,YAAY,UACtB8D,aAAiB,QACJ6G,EAAU,OAAO,CAAKc,OAC5B3H,EAAM,SAAS2H,EAAC,CACxB,EACU,SAAS,IAClBJ,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,KAEjB,OAAOvH,KAAS,YAAY,OAAOA,KAAS,YAAY0H,GAAQ1H,CAAK,OAEpE6G,EAAU,KAAK,CAAKc,OACrB3H,KAAS2H,EACjB,IAICJ,EAAc,KAAK,EAAK,IAFxBA,EAAc,KAAK,EAAI,KAKlBrL,EAAK,YAAY,gBACtB8D,EAAM,SAAS,EAAE,QAAQzD,CAAK,KAAK,KACrCgL,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBrL,EAAK,YAAY,UAEjBA,EAAK,YAAY,iCAEtB8D,IACFuH,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK,IAEjBrL,EAAK,YAAY,gCAOjBA,EAAK,YAAY,WALrB8D,IAGHuH,EAAc,KAAK,EAAK,IAFxBA,EAAc,KAAK,EAAI,IAWhBrL,EAAK,YAAY,yBAEtB8D,IACFuH,EAAc,KAAK,EAAI,IAEvBA,EAAc,KAAK,EAAK;AAAA;AAI9B,QAAAF,EAAsB,KAAKE,CAAa;AAAA;AAE1C,YAAMK,IAAW,CAAA;AACjB,MAAAP,EAAsB,QAAQ,CAAQnL,MAAA;AACpC,cAAM2L,KAAkB3L,EAAK,OAAO,CAAAyL,MAAKA,MAAM,EAAK;AAChD,QAAAE,MAAmBA,GAAgB,SAAS,IAC9CD,EAAS,KAAK,EAAK,IAEnBA,EAAS,KAAK,EAAI;AAAA,MACpB,CACD;AAED,YAAME,IAAiBF,EAAS,OAAO,CAAAD,MAAKA,MAAM,EAAI;AAClD,MAAAG,KAAkBA,EAAe,SAAS,KAC5ChB,EAAc,QAAQ,IACjBxL,EAAA,wBAAwBwL,EAAc,KAAK,MAEhDA,EAAc,QAAQ,IACjBxL,EAAA,wBAAwBwL,EAAc,KAAK,IAE9CA,EAAc,UAAUM,MACtBN,EAAc,SAChBN,EAAS,MAAMnL,EAAM,MAAM,IAAI,IAAI,MACnCC,EAAK,gBAAgB;AAAA,QACnB,SAASD,EAAM,MAAM;AAAA,QACrB,OAAO;AAAA,MAAA,CACR,MAED,OAAOmL,EAAS,MAAMnL,EAAM,MAAM,IAAI,GACtCC,EAAK,gBAAgB;AAAA,QACnB,YAAYD,EAAM,MAAM;AAAA,MAAA,CACzB;AAAA,OAGJ,GAAG,GACA0M,IAAQvM,GAAS,EAAE,GACnB0D,IAAa1D,GAAIH,EAAM,KAAK;AAClC,IAAA4H;AAAA,MACE,MAAM8E,EAAM;AAAA,MACZ,CAACC,GAAUC,MAAa;AAClB,YAAA,CAAAC,GAAQF,GAAUC,CAAQ,MAG9B3M,EAAK,gBAAgB0M,CAAQ,GACzB3M,EAAM,MAAM,QAAO;AACjB,cAAA8M;AACA,cAAA9M,EAAM,MAAM,SAAS,SAAS;AAC1B,kBAAAuC,IAAMvC,EAAM,QAAQ;AAAA,cACxB,CAACa,MACCA,EAAKb,EAAM,MAAM,WAAWA,EAAM,MAAM,WAAW,OAAO,KAAK2M;AAAA,YAAA;AAEnE,YAAAG,IAAQvK,KAAA,gBAAAA,EAAMvC,EAAM,MAAM,WAAWA,EAAM,MAAM,WAAW;AAAA,qBACnDA,EAAM,MAAM,SAAS,cAAc2M,KAAYA,EAAS,UAAU,GAAG;AAC9E,kBAAM/L,IAAO,CAAA;AACP,YAAAZ,EAAA,QAAQ,QAAQ,CAACa,MAAc;AAC1B,cAAA8L,EAAA,QAAQ,CAACxH,MAAe;AAC3B,gBAAAA,MAAStE,KAAA,gBAAAA,EAAOb,EAAM,MAAM,WAAWA,EAAM,MAAM,WAAW,aAC3DY,EAAA,KAAKC,KAAA,gBAAAA,EAAOb,EAAM,MAAM,WAAWA,EAAM,MAAM,WAAW,QAAQ;AAAA,cACzE,CACD;AAAA,YAAA,CACF,GACD8M,IAAQlM,EAAK;qBACJZ,EAAM,MAAM,SAAS;AAC1B,gBAAAkL,GAAQyB,CAAQ,GAAG;AACrB,oBAAM/L,IAAO,CAAA;AACP,cAAAZ,EAAA,QAAQ,QAAQ,CAACa,MAAc;AAC1B,gBAAA8L,EAAA,QAAQ,CAACxH,MAAe;AAC3B,kBAAAA,MAAStE,KAAA,gBAAAA,EAAOb,EAAM,MAAM,WAAWA,EAAM,MAAM,WAAW,aAC3DY,EAAA,KAAKC,KAAA,gBAAAA,EAAOb,EAAM,MAAM,WAAWA,EAAM,MAAM,WAAW,QAAQ;AAAA,gBACzE,CACD;AAAA,cAAA,CACF,GACD8M,IAAQlM,EAAK;mBACR;AACC,oBAAA2B,IAAMvC,EAAM,QAAQ;AAAA,gBACxB,CAACa,MACCA,EAAKb,EAAM,MAAM,WAAWA,EAAM,MAAM,WAAW,OAAO,KAAK2M;AAAA,cAAA;AAEnE,cAAAG,IAAQvK,KAAA,gBAAAA,EAAMvC,EAAM,MAAM,WAAWA,EAAM,MAAM,WAAW;AAAA;AAGhE,UAAAC,EAAK,gBAAgB;AAAA,YACnB,KAAKD,EAAM,MAAM;AAAA,YACjB,OAAO8M;AAAA,UAAA,CACR;AAAA;AAAA,MAEL;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,GAEflF;AAAA,MACE,MAAM5H,EAAM;AAAA,MACZ,CAAY2M,MAAA;AACV,YAAIhI,IAAQgI;AACZ,QAAI3M,EAAM,MAAM,SAAS,iBAAiB2E,IACxCA,IAAQyG,EAAUzG,CAAK,IACd3E,EAAM,MAAM,SAAS,WAAW2E,MACzCA,IAAQA,EAAM,SAAA,EAAW,QAAQ,kBAAkB,EAAE,IAEnD8G,EAAc,UAEhBiB,EAAM,QAAQ/H;AAAA,MAElB;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IAAA,GAEpBiD;AAAA,MACE,MAAM/D,EAAW;AAAA,MACjB,CAAY8I,MAAA;AACV,QAAA1M,EAAK,gBAAgB0M,CAAQ,GACzB,WAAW3M,EAAM,SACdC,EAAA,gBAAgB,EAAE,KAAKD,EAAM,MAAM,OAAO,OAAO2M,EAAS,SAAS,EAAG,CAAA;AAAA,MAE/E;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,GAEf/E;AAAA,MACE,MAAM5H,EAAM;AAAA,MACZ,CAAY2M,MAAA;AACV,QAAA9I,EAAW,QAAQ8I;AAAA,MACrB;AAAA,IAAA,GAEF/E;AAAA,MACE,MAAM5H,EAAM;AAAA,MACZ,CAAY2M,MAAA;AACD,QAAAxB,EAAA,QAAQ,EAAE,GAAGwB;MACxB;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,GAEf/E;AAAA,MACE,MAAMuD,EAAS;AAAA,MACf,CAACwB,GAAUC,MAAa;;AAClB,SAAAlK,IAAA1C,EAAM,UAAN,QAAA0C,EAAa,gBACTC,IAAA3C,EAAA,UAAA,QAAA2C,EAAO,WAAW,QAAQ,CAAkBoK,MAAA;AAChD,UAAAA,EAAe,QAAQ,CAAQlM,MAAA;AAC7B,YAAI+L,EAAS/L,EAAK,QAAQ,KAAK8L,EAAS9L,EAAK,QAAQ,KAC3BgL;UAC1B,CACD;AAAA,QAAA;AAAA,MAGP;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,GAEfjE;AAAA,MACE,MAAM,CAAC5H,EAAM,sBAAsBA,EAAM,eAAe;AAAA,MACxD,MAAM;;AACA,SAAA0C,IAAA1C,EAAM,UAAN,QAAA0C,EAAa,cACX1C,EAAM,kBACgB6L,OAM1BJ,EAAc,QAAQ,IACjBxL,EAAA,wBAAwBwL,EAAc,KAAK;AAAA,MAEpD;AAAA,IAAA,GAEF5D,GAAU,MAAM;;AACV,QAAAnF,IAAA1C,EAAM,UAAN,gBAAA0C,EAAa,uBAAsB,WAASC,IAAA3C,EAAM,UAAN,gBAAA2C,EAAa,WAAW,UAAS,IACvDkJ,OAExBJ,EAAc,QAAQ,IACjBxL,EAAA,wBAAwBwL,EAAc,KAAK,IAE7CA,EAAc,UAEjB,OAAON,EAAS,MAAMnL,EAAM,MAAM,IAAI,GACtCC,EAAK,gBAAgB;AAAA,QACnB,YAAYD,EAAM,MAAM;AAAA,MAAA,CACzB;AAAA,IACH,CACD;AACK,UAAA,EAAE,GAAAkD,MAAMY;AACP,WAAA;AAAA,MACL,GAAAZ;AAAA,MACA,eAAAuI;AAAA,MACA,SAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,WAAAP;AAAA,MACA,WAAAQ;AAAA,MACA,OAAAc;AAAA,MACA,YAAA7I;AAAA,IAAA;AAAA,EAEJ;AAAA,EACA,YAAY;AAAA,IACV,YAAAmJ;AAAA,IACA,gBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,aAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,EACF;AACF,CAAC;AAx1CK,MAAAnM,KAAA;AAAA,EAAA,KAAA;AAAA;sDAyBAgH,KAAA;AAAA,EAAA,KAAA;AAAA,2BAUG,UAPD,WAAA;;;;;cAlCNtH,EAkqBWC,GAAA,MAAA;AAAA,IA/pBTP,EAAA,MAAA,SAAQ,gBAEAkB,IAAAlB,EAAA,UAAA,gBAAAkB,EAAA,oBAAA,MAAAlB,EAAA,sBAAAH,KAAMS,EAAIC,GAAA,EAAA,KAAA,KAAA;AAAA,MAAAyM,GAAAhN,EAAA,QADlB,eAGO,QAHP,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,UAKWH,EAAX,GAAAS,EAAA,OAAAM,EAAA,KAAAgG,EAAA,IAAA,EAAA;AAAA,MAAA5G,EAAA,MAIW,SAAM,SAOPH,EAAA,GAAAS,EAAA,OAAA6G,IAAA;AAAA,QAAAnH,EAAA,MAAA,WAAAA,EAAA,MAAA,QAAAA,EAAA,OAAAA,EAAA,KAAA,KAAAA,EAAA,SAAAH,OATgBkH,GAAY;AAAA,UACjC,KAAK;AAAA,UAEL,OAAK/G,EAAE,MAAA,QAAAA,EAAA,MAAA,MAAAA,EAAA,OAAAA,EAAQ,KAAG,IAAA;AAAA,UAAA,OAAAiN,EAAAjN,EAAA,MAAA,KAAA;AAAA,UAIZ,SAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAI,MAAAL,EAAA,MAAA,KAAAA,EAAA,MAAA,GAAAA,EAAA,OAAAA,EAAA,KAAA,IAAA;AAAA,QAAA,GAAA;AAAA,UAFP,SAAAE,EAAA,MAAA;AAAA,YAAAF,EAAA,MAAA,WAAAH,EAAA,GAAAS,EAAA,QAAAkB,IAAAX,EAAAb,EAAA,MAAA,QAAAA,EAAA,OAAAA,EAAA,KAAA,CAAA,GAAA,CAAA,MAAAH,EAAA,GAAAS,EAAA,QAAAqG,IAAA9F,EAAAb,EAAA,KAAA,GAAA,CAAA;AAAA;;;OASJ,KAAA4G,EAAA,IAAA,EAAA;AAAA,MAAA5G,EAAA,MAAA,SAAA,gBAAAH,EAEuB,GAAAS,EAAA,OAAA;AAAA,QAAA,KAAA;AAAA;MAGf,GAAA,MAAM,CADd,KAAAsG,EAAA,IAAA,EAAA;AAAA,MAIE5G,EAAA,MAAA,SAAA,WAAAH,EAAA,GAAAS,EAAA,OAAAsH,IAAA;AAAA;MAcM,CAAA,KAAAhB,EADR,IAME,EAAA;AAAA,MAAA5G,EAAA,MAAA,SAAA,UAAAH,EAJoB,GAAAC,EAAAoN,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAUlN,EAAA;AAAA,QACX,kBAAUC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACT,UAAKL,EAAA,MAAA;AAAA,QAAA,cAAA;AAAA;SAGM,MAAA,GAAI,qCADlB,IAqDU,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,WAAAH,EAnDY,GAAAC,EAAAqN,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAAnN,EAAA;AAAA,QACA,kBAAcC,EAAM,CAAY,MAAAA,EAAA,CAAA,IAAI,OAASD,EAAW,QAAAK;AAAA,QACxD,eAAaL,EAAE,MAAkB,cAAA,OAAA,KAAAA,EAAA,MAAA;AAAA,QACjC,cAAUA,QAAM,gBAAQ,OAAA,QAAAA,EAAA,MAAA;AAAA,QACxB,iBAAWA,EAAM,MAAA;AAAA,QACjB,UAAaA,EAAA,MAAA;AAAA,QACb,WAAMA,EAAK,MAAC;AAAA,QACb,aAAYA,EAAA,MAAA,cAAAA,EAAA,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,QACX,MAAKA,sBAAY,MAAW,YAAA;AAAA,QAAA,MAAA;AAAA,eAGrBiN,EAAiB,UAAKjN,EAAE,eAAU;AAAA,MAAA,GAAAwI,GAAA,EAAA,GAAA,KAAA;AAAA,mCACvC,WAAM4E,IAAApN,EAAA,UAAA,QAAAoN,EAAA,aAAA;AAAA,UAEK,MAAA;AAAA,UAAA,IAAAlN,EAAA,MAAA;;AAAA;AAAA,mDAEJL,EAAO,GAAAS,EAAU,uCADzB,IAGE,EAAA;AAAA,eAAAa,IAAAnB,EAAA,UAAA,QAAAmB,EAAA,cAAAtB,EAAA,GAAAC,EAAAuN,IAAAD,IAAApN,EAAA,UAAA,gBAAAoN,EAAA,UAAA,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAxG,EAAA,IAAA,EAAA;AAAA;;;QAGI,IAAA;AAAA,mCACL,WAAM0G,IAAAtN,EAAA,UAAA,QAAAsN,EAAA,aAAA;AAAA,UAEK,MAAA;AAAA,UAAA,IAAApN,EAAA,MAAA;;AAAA;AAAA,mDAEJL,EAAO,GAAAS,EAAU,uCADzB,IAGE,EAAA;AAAA,eAAAa,IAAAnB,EAAA,UAAA,QAAAmB,EAAA,cAAAtB,EAAA,GAAAC,EAAAuN,IAAAD,IAAApN,EAAA,UAAA,gBAAAoN,EAAA,UAAA,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAxG,EAAA,IAAA,EAAA;AAAA;;;QAGI,IAAA;AAAA,mCACL,gBAAW2G,IAAAvN,EAAA,UAAA,QAAAuN,EAAA,kBAAA;AAAA,UAEA,MAAA;AAAA,UAAA,IAAArN,EAAA,MAAA;;AAAA;AAAA,wDAEJL,EAAO,GAAAS,EAAe,4CAD9B,IAGE,EAAA;AAAA,eAAAa,IAAAnB,EAAA,UAAA,QAAAmB,EAAA,mBAAAtB,EAAA,GAAAC,EAAAuN,IAAAD,IAAApN,EAAA,UAAA,gBAAAoN,EAAA,eAAA,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAxG,EAAA,IAAA,EAAA;AAAA;;;QAGI,IAAA;AAAA,mCACL,eAAU4G,KAAAxN,EAAA,UAAA,QAAAwN,GAAA,iBAAA;AAAA,UAEC,MAAA;AAAA,UAAA,IAAAtN,EAAA,MAAA;;AAAA;AAAA,uDAEJL,EAAO,GAAAS,EAAc,2CAD7B,IAGE,EAAA;AAAA,eAAAa,IAAAnB,EAAA,UAAA,QAAAmB,EAAA,kBAAAtB,EAAA,GAAAC,EAAAuN,IAAAD,IAAApN,EAAA,UAAA,gBAAAoN,EAAA,cAAA,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAxG,EAAA,IAAA,EAAA;AAAA;;;;OAKQ,GAAA,MAAA,CAAA,SAAI,+GADlB,IAgBE,EAAA;AAAA,MAAA5G,EAAA,MAAA,SAAA,WAAAH,EAdY,GAAAC,EAAA2N,GAAA;AAAA,QACJ,KAAK;AAAA,QAAA,MAAA;AAAA,QACZ,OAAYzN,EAAA;AAAA,QACZ,kBAAUC,EAAM,CAAQ,MAAAA,EAAA,CAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACxB,gBAAe,MAAkB,gBAAA,OAAA,QAAAL,EAAA,MAAA;AAAA,QACjC,UAAKA,EAAK,MAAI;AAAA,QACd,iBAAWA,EAAG,MAAA;AAAA,QACd,OAAS,MAAO;AAAA,QAChB,OAAS,MAAE;AAAA,QACX,WAAM,OAAM,GAAImD,IAAA,QAAA,yBAAA,GAAA;AAAA,QAChB,WAAWnD,EAAA,MAAA;AAAA,QAAW,MAAMA,EAAA,MAAA;AAAA,QAG5B,aAAAA,EAAA,MAAA,oBAAK,OAAYA,EAAW,MAAA,cAAAA,EAAA,EAAAA,EAAA,MAAA,gBAAA;AAAA,QAAA,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,SAGjB,MAAA,GAAI,qIADlB,IAuDiB,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,YAAAH,EArDK,GAAAC,EAAA2N,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAYzN,EAAA;AAAA,QACZ,kBAAeC,SAAMA,EAAY,CAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,cAAUL,QAAM,gBAAQ,OAAA,QAAAA,EAAA,MAAA;AAAA,QACxB,iBAAWA,EAAM,MAAA;AAAA,QACjB,UAAKA,EAAK,MAAI;AAAA,QACd,WAAKA,EAAM,MAAG;AAAA,QACd,KAAaA,EAAA,MAAA;AAAA,QACb,OAAS,MAAE;AAAA,QACX,aAAMA,EAAM,MAAI,cAAAA,EAAA,MAAA,cAAA,QAAAA,EAAA,MAAA;AAAA,QACjB,WAAKA,EAAO,MAAA;AAAA,QACX,MAAKA,EAAA,MAAA;AAAA,QAAA,MAAA;AAAA,eAGEiN,EAAiB,UAAKjN,EAAE,eAAU;AAAA,MAAA,GAAAwI,GAAA,EAAA,GAAA,KAAA;AAAA,qCACvC,WAAMkF,KAAA1N,EAAA,UAAA,QAAA0N,GAAA,aAAA;AAAA,UAEK,MAAA;AAAA,UAAA,IAAAxN,EAAA,MAAA;;AAAA;AAAA,mDAEJL,EAAO,GAAAS,EAAU,uCADzB,IAGE,EAAA;AAAA,eAAAa,IAAAnB,EAAA,UAAA,QAAAmB,EAAA,cAAAtB,EAAA,GAAAC,EAAAuN,IAAAD,IAAApN,EAAA,UAAA,gBAAAoN,EAAA,UAAA,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAxG,EAAA,IAAA,EAAA;AAAA;;;QAGI,IAAA;AAAA,qCACL,WAAM+G,KAAA3N,EAAA,UAAA,QAAA2N,GAAA,aAAA;AAAA,UAEK,MAAA;AAAA,UAAA,IAAAzN,EAAA,MAAA;;AAAA;AAAA,mDAEJL,EAAO,GAAAS,EAAU,uCADzB,IAGE,EAAA;AAAA,eAAAa,IAAAnB,EAAA,UAAA,QAAAmB,EAAA,cAAAtB,EAAA,GAAAC,EAAAuN,IAAAD,IAAApN,EAAA,UAAA,gBAAAoN,EAAA,UAAA,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAxG,EAAA,IAAA,EAAA;AAAA;;;QAGI,IAAA;AAAA,qCACL,gBAAWgH,KAAA5N,EAAA,UAAA,QAAA4N,GAAA,kBAAA;AAAA,UAEA,MAAA;AAAA,UAAA,IAAA1N,EAAA,MAAA;;AAAA;AAAA,wDAEJL,EAAO,GAAAS,EAAe,4CAD9B,IAGE,EAAA;AAAA,eAAAa,IAAAnB,EAAA,UAAA,QAAAmB,EAAA,mBAAAtB,EAAA,GAAAC,EAAAuN,IAAAD,IAAApN,EAAA,UAAA,gBAAAoN,EAAA,eAAA,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAxG,EAAA,IAAA,EAAA;AAAA;;;QAGI,IAAA;AAAA,qCACL,eAAUiH,KAAA7N,EAAA,UAAA,QAAA6N,GAAA,iBAAA;AAAA,UAEC,MAAA;AAAA,UAAA,IAAA3N,EAAA,MAAA;;AAAA;AAAA,uDAEJL,EAAO,GAAAS,EAAc,2CAD7B,IAGE,EAAA;AAAA,eAAAa,IAAAnB,EAAA,UAAA,QAAAmB,EAAA,kBAAAtB,EAAA,GAAAC,EAAAuN,IAAAD,IAAApN,EAAA,UAAA,gBAAAoN,EAAA,cAAA,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAxG,EAAA,IAAA,EAAA;AAAA;;;;MAIU,CAAA,GAAA,MAAM,UAAI,gBAA1B,iBAAA,YAAA,aAAA,OAAA,OAAA,eAAA,aAAA,QAAA,OAAA,CAAA,KAAAA,EAAA,IAAA,EAAA;AAAA,MAAA5G,EAAA,MAEU,SAAM,YAoBHH,EAAA,GAAAS,EAAAC,GAAA,EAAA,KAAA,KAAA;AAAA,QAAAP,EAAA,MAAA,SAAA,aAAAH,EAnBW,GAAAC,EAAA0H,GAAA;AAAA,UAAA,KAAA;AAAA,UACnB,OAAAxH,EAAA;AAAA,UACA,kBAAcC,EAAM,CAAY,MAAAA,EAAA,CAAA,IAAI,OAASD,EAAW,QAAAK;AAAA,UACxD,eAAaL,EAAE,MAAA;AAAA,UACf,cAAUA,QAAM,gBAAQ,OAAA,QAAAA,EAAA,MAAA;AAAA,UACxB,iBAA0BA,EAAA,MAAA;AAAA,UAC1B,UAAaA,EAAA,MAAA;AAAA,UACb,0BAAmB;AAAA,UACnB,aAAWA,EAAI,MAAA,cAAMA,EAAW,MAAA,cAAA;AAAA,UACjC,aAAYA,EAAA,MAAA,cAAAA,EAAA,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,UACX,eAAK,CAAA,CAAAA,EAAA,MAAA;AAAA,UAAA,MAAA;AAAA,UAGqB,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,QAAA,GAAA;AAAA;eACnB,EAAO,GAAAM,EAAiBC,GAAM,MAAQC,EAAAR,EAAA,SAAA,CAAA8N,OACtCjO,EAAA,KAAuB4H,GAAiB;AAAA,cAAA,KAAAqG,EAAA9N,EAAA,MAAA,WAAAA,EAAA,MAAA,WAAA,OAAA;AAAA,cAES,OAAA8N,EAAA9N,EAAA,MAAA,WAAAA,EAAA,MAAA,WAAA,OAAA;AAAA,YAAA,GAAA;AAAA;;;;;;;iJAKrC,GAAAF,EAAA0H,GAAA;AAAA,UAAA,KAAA;AAAA,UACnB,OAAAxH,EAAA;AAAA,UACA,kBAAeC,SAAMA,EAAY,CAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,UACjC,eAAUL,EAAK,MAAC;AAAA,UAChB,iBAA0BA,EAAA,MAAA;AAAA,UAC1B,UAAaA,EAAA,MAAA;AAAA,UACb,0BAAgB;AAAA,UAChB,aAAaA,EAAA,MAAM,cAAcA,EAAA,MAAM,cAAc;AAAA,UACrD,MAAeA,EAAA,MAAA;AAAA,UAChB,aAAYA,EAAA,MAAA,cAAAA,EAAA,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,UACX,eAAK,CAAA,CAAAA,EAAA,MAAA;AAAA,UAAA,MAAA;AAAA,UAG8B,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,QAAA,GAAA;AAAA;eAC5B,EAAK,GAAAM,EAAAC,GAAA,MAAAC,EAAAR,EAAA,SAAA,CAAA8N,GAAAhP,OACLe,EAAA,KAAuB4H,GAAiB;AAAA,cAAA,KAAA3I;AAAA,cAES,OAAAgP,EAAA9N,EAAA,MAAA,WAAAA,EAAA,MAAA,WAAA,OAAA;AAAA,YAAA,GAAA;AAAA;;;;;;;;MAI7D,GAAA,EAAA,KAAA4G,EAAA,IAAA,EAAA;AAAA,MAAA5G,EAAA,MAEU,SAAM,iBAeFH,EAAA,GAAAS,EAAAC,GAAA,EAAA,KAAA,KAAA;AAAA,QAAAP,EAAA,MAAA,SAAA,aAAAH,EAdU,GAAAC,EAAA0H,GAAA;AAAA,UAAA,KAAA;AAAA,UACnB,OAAAxH,EAAA;AAAA,UACA,kBAAcC,EAAM,CAAY,MAAAA,EAAA,CAAA,IAAI,OAASD,EAAW,QAAAK;AAAA,UACxD,eAAaL,EAAE,MAAA;AAAA,UACf,cAAUA,QAAM,gBAAQ,OAAA,QAAAA,EAAA,MAAA;AAAA,UACxB,iBAA0BA,EAAA,MAAA;AAAA,UAC1B,UAAmBA,EAAA,MAAA;AAAA,UACnB,0BAAoB;AAAA,UACpB,mBAAaA,EAAM,MAAA,qBAAoB,OAAW,OAAAA,EAAA,MAAA;AAAA,UAClD,cAASA,EAAO,MAAA,iBAAA;AAAA,UAChB,aAAaA,EAAA,MAAM,cAAcA,EAAA,MAAM,cAAc;AAAA,UACrD,SAAWA,EAAA;AAAA,UACZ,aAAYA,EAAA,MAAA,cAAAA,EAAA,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,UACX,eAAK,CAAA,CAAAA,EAAA,MAAA;AAAA,UAAA,MAAA;AAAA,mBAER,UAgBYA,EAAA,eAAA;AAAA,QAAA,GAAA,MAAA,GAAA,CAAA,SAAA,eAAA,gBAAA,iBAAA,YAAA,qBAAA,gBAAA,eAAA,WAAA,eAAA,eAAA,OAAA,CAAA,MAAAH,EAAA,GAdUC,EAAA0H,GAAA;AAAA,UAAA,KAAA;AAAA,UACnB,OAAAxH,EAAA;AAAA,UACA,kBAAeC,SAAMA,EAAY,CAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,UACjC,eAAUL,EAAK,MAAC;AAAA,UAChB,iBAA0BA,EAAA,MAAA;AAAA,UAC1B,UAAmBA,EAAA,MAAA;AAAA,UACnB,0BAAoB;AAAA,UACpB,mBAAaA,EAAM,MAAA,qBAAoB,OAAW,OAAAA,EAAA,MAAA;AAAA,UAClD,cAAMA,EAAM,MAAI,iBAAA;AAAA,UAChB,aAASA,EAAO,MAAA,cAAAA,EAAA,MAAA,cAAA;AAAA,UAChB,QAAW,MAAE;AAAA,UACb,SAAWA,EAAA;AAAA,UACZ,aAAYA,EAAA,MAAA,cAAAA,EAAA,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,UACX,eAAK,CAAA,CAAAA,EAAA,MAAA;AAAA,UAAA,MAAA;AAAA;;MAKF,GAAA,EAAA,KAAA4G,EADR,IAaE,EAAA;AAAA,MAAA5G,EAAA,MAAA,SAAA,cAAAH,EAXoB,GAAAC,EAAAyH,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAAvH,EAAA;AAAA,QACA,kBAAeC,SAAMA,EAAY,CAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,eAAUL,EAAK,MAAC;AAAA,QAChB,iBAAUA,EAAM,MAAA;AAAA,QAChB,UAAaA,EAAA,MAAA;AAAA,QACb,YAAc,MAAE;AAAA,QAChB,eAASA,EAAM,MAAA;AAAA,QACf,gBAAaA,EAAA,MAAM,iBAAcA,EAAM,MAAgB,iBAAA;AAAA,QACxD,SAAKA,EAAO,MAAA,iBAAAA,EAAA,MAAA,eAAAA,EAAA,SAAAA,EAAA,KAAA,IAAAA,EAAA;AAAA,QACX,aAAKA,sBAAYA,EAAW,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,QAAA,MAAA;AAAA;SAIjB,MAAA,GAAI,4IADlB,IAaE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,oBAAAH,EAXoB,GAAAC,EAAAiO,GAAA;AAAA,QAAA,KAAA;AAAA,QACZ,OAAO/N,EAAA;AAAA,QAAA,kBAAAC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACd,OAAOL,EAAA;AAAA,QACP,kBAAWC,EAAS,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,aAAAK;AAAA,QACpB,OAAUL,EAAA;AAAA,QACV,WAASA,EAAE;AAAA,QACX,cAAc,MAAE;AAAA,QAChB,aAAWA,EAAE,MAAA;AAAA,QACb,kBAAeA,EAAM,MAAA;AAAA,QACrB,eAAWA,EAAM,MAAA;AAAA,QACjB,eAAKA,EAAA,MAAA;AAAA,QAAA,aAAAA,EAAA,MAAA;AAAA;SAGM,MAAA,GAAI,gJADlB,IA8BE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,uBAAAH,EA5ByB,GAAAC,EAAAkO,GAAA;AAAA,QAAA,KAAA;AAAA,QACjB,OAAOhO,EAAA;AAAA,QAAK,kBAAAC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,aAAAK;AAAA,QACnB,OAAAL,EAAA;AAAA,QACA,kBAAeC,EAAK,EAAA,MAACA,EAAY,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,eAAUL,EAAK,MAAC;AAAA,QAChB,iBAAYA,EAAA,MAAA;AAAA,QACZ,UAASA,EAAE,MAAA;AAAA,QACX,OAAUA,EAAA;AAAA,QACV,WAAQA,EAAE;AAAA,QACV,UAAUA,EAAA;AAAA,QACV,YAAWA,EAAE,MAAK;AAAA,QAClB,UAAaA,EAAA,MAAA;AAAA,QACb,aAAAA,EAAgB,oBAAMA,EAAY,MAAA,cAAA;AAAA,QAClC,aAAgBA,EAAA,MAAA;AAAA,QAChB,kBAAaA,EAAM,MAAA;AAAA,QACnB,kBAAWA,EAAK,MAAC;AAAA,QACjB,eAAWA,EAAM,MAAA;AAAA,QACjB,aAAYA,EAAM,MAAA;AAAA,QAClB,aAAYA,EAAM,MAAA;AAAA,QAClB,YAAgBA,EAAA,MAAA;AAAA,QAChB,YAAWA,EAAA,MAAA;AAAA,QAAW,gBAAMA,EAAgB;AAAA,QAA0B,qBAAgC,oBAAiB,OAAAA,EAAe,MAAC,cAAkCA,EAAE,mDAO3K,EAAKA,EAAA,MAAA,gBAAA;AAAA,QAAA,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,MAIM,GAAA,MAAA,GAAI,gTADlB,IAeE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,iBAAAH,EAboB,GAAAC,EAAAmO,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAAjO,EAAA;AAAA,QACA,kBAAcC,EAAM,EAAA,MAAAA,EAAY,EAAI,IAAA,CAAAI,MAASL,EAAW,QAAMK;AAAA,QAC9D,eAAaL,EAAE,MAAA;AAAA,QACf,cAAUA,QAAM,gBAAQ,OAAA,QAAAA,EAAA,MAAA;AAAA,QACxB,iBAAaA,EAAM,MAAA;AAAA,QACpB,UAAKA,EAAO,MAAA;AAAA,QACX,aAAUA,QAAM,cAAQA,EAAA,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,QACxB,MAAA;AAAA,QACA,UAAkBA,EAAA,MAAA;AAAA,QAClB,gBAAgBA,EAAM,MAAA;AAAA,QACtB,kBAASA,EAAM,MAAO;AAAA,QACtB,gBAAKA,EAAA,MAAA;AAAA,QAAA,SAAAA,EAAA,MAAA;AAAA;SAGM,MAAA,GAAI,mLADlB,IAcE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,gBAAAH,EAZoB,GAAAC,EAAAoO,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAAlO,EAAA;AAAA,QACA,kBAAcC,EAAM,EAAA,MAAAA,EAAY,EAAI,IAAA,CAAAI,MAASL,EAAW,QAAMK;AAAA,QAC9D,eAAaL,EAAE,MAAA;AAAA,QACf,cAAUA,QAAM,gBAAQ,OAAA,QAAAA,EAAA,MAAA;AAAA,QACxB,iBAAQA,EAAM,MAAM;AAAA,QACpB,UAAQA,EAAM,MAAA;AAAA,QACd,QAAaA,EAAA,MAAA;AAAA,QACb,QAAWA,EAAA,MAAA;AAAA,QACX,eAAc,MAAiB,cAAAA,EAAA,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,QAChC,aAAYA,EAAA,MAAA;AAAA,QACX,gBAAKA,EAAA,MAAA;AAAA,QAAA,MAAA;AAAA;SAIM,MAAA,GAAI,qJADlB,IAiBE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,iBAAAH,EAfoB,GAAAC,EAAAqO,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAAnO,EAAA;AAAA,QACA,kBAAeC,EAAK,EAAA,MAACA,EAAY,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,eAAUL,EAAK,MAAC;AAAA,QAChB,iBAAQA,EAAM,MAAM,gBAAA,CAAA;AAAA,QACpB,UAAWA,EAAA,MAAA;AAAA,QAAW,QAAMA,EAAe,MAAA;AAAA,QAAuE,eAA+B,MAAY,eAAAA,EAAE,QAK/JA,EAAA,MAAA,WAAA,KAAAA,EAAA,MAAA,YAAA,SAAA,IAAAA,EAAA,MAAA,cAAA,CAAAA,EAAA,GAAA,MAAS,GAAEA,EAAM,GAAA,MAAA,CAAA;AAAA,QAEjB,aAAQA,EAAK,MAAC;AAAA,QACf,gBAAYA,EAAA,MAAA;AAAA,QACX,QAAKA,EAAY,MAAA,SAAAA,EAAA,MAAA,SAAA;AAAA,QAAA,MAAA;AAAA;SAIN,MAAA,GAAI,qIADlB,IAcE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,sBAAAH,EAZoB,GAAAC,EAAAsO,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAApO,EAAA;AAAA,QACA,kBAAeC,EAAK,EAAA,MAACA,EAAY,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,eAAUL,EAAK,MAAC;AAAA,QAChB,iBAAaA,QAAM,gBAAW,CAAA;AAAA,QAC/B,UAAKA,EAAO,MAAA;AAAA,QACX,aAAUA,EAAM,MAAA;AAAA,QAChB,MAAA;AAAA,QACA,UAAkBA,EAAA,MAAA;AAAA,QAClB,gBAAgBA,EAAM,MAAA;AAAA,QACtB,kBAASA,EAAM,MAAO;AAAA,QACtB,gBAAKA,EAAA,MAAA;AAAA,QAAA,SAAAA,EAAA,MAAA;AAAA;SAIM,MAAA,GAAI,mKADlB,IAWE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,gBAAAH,EAToB,GAAAC,EAAAuO,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAArO,EAAA;AAAA,QACA,kBAAeC,EAAK,EAAA,MAACA,EAAY,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,eAAUL,EAAK,MAAC;AAAA,QAChB,iBAAQA,EAAM,MAAS;AAAA,QACvB,UAAaA,EAAA,MAAA;AAAA,QACb,QAAAA,EAAA,MAAc,SAAMA,EAAA,MAAW,SAAG;AAAA,QACnC,aAAYA,EAAA,MAAA,cAAAA,EAAA,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,QACX,gBAAKA,sBAAYA,EAAW,MAAA,cAAA;AAAA,QAAA,MAAA;AAAA;SAGjB,MAAA,GAAI,8GADlB,IAeE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,qBAAAH,EAboB,GAAAC,EAAAwO,IAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAAtO,EAAA;AAAA,QACA,kBAAeC,EAAK,EAAA,MAACA,EAAY,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,eAAUL,EAAK,MAAC;AAAA,QAChB,iBAAQA,EAAM,MAAS;AAAA,QACvB,UAAWA,EAAA,MAAA;AAAA,QAAW,QAAMA,EAAe,MAAA,SAAAA,EAAQ,MAAM,SAAA;AAAA,QAAyD,eAA+B,MAAY,eAAAA,EAAE,QAK/JA,EAAA,MAAA,WAAA,KAAAA,EAAA,MAAA,YAAA,SAAA,IAAAA,EAAA,MAAA,cAAA,CAAAA,EAAA,GAAA,MAAA,GAAYA,EAAE,GAAM,MAAA,CAAA;AAAA,QAEpB,gBAAKA,sBAAYA,EAAW,MAAA,cAAA;AAAA,QAAA,MAAA;AAAA;SAGjB,MAAA,GAAI,8GADlB,IAgBgB,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,WAAAH,EAdM,GAAAC,EAAAyO,IAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAAvO,EAAA;AAAA,QACA,kBAAUC,EAAM,EAAQ,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACzB,iBAAYL,EAAA,MAAA;AAAA,QACX,UAAKA,EAAA,MAAA;AAAA,QAAA,MAAA;AAAA,QAGqB,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,MAAA,GAAA;AAAA;aACnB,EAAO,GAAAM,EAAiBC,GAAM,MAAQC,EAAAR,EAAA,SAAA,CAAA8N,OAC3CjO,EAAA,GAAyBC,EAAA0O,GAAA;AAAA,YACzB,KAAKV,EAAE9N,EAAO,MAAA,WAAcA,EAAG,MAAc,WAAA,OAAA;AAAA,YAAA,UAAA8N,EAAA;AAAA,YAES,OAAAA,EAAA9N,EAAA,MAAA,WAAAA,EAAA,MAAA,WAAA,OAAA;AAAA,UAAA,GAAA;AAAA;;;;;;;SAK9C,GAAA,CAAA,SAAK,4CADlB,IAgBmB,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,cAAAH,EAdG,GAAAC,EAAA2O,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAAzO,EAAA;AAAA,QACA,kBAAUC,EAAM,EAAQ,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACzB,iBAAYL,EAAA,MAAA;AAAA,QACX,UAAKA,EAAA,MAAA;AAAA,QAAA,MAAA;AAAA,QAGqB,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,MAAA,GAAA;AAAA;aACnB,EAAO,GAAAM,EAAiBC,GAAM,MAAQC,EAAAR,EAAA,SAAA,CAAA8N,OAC3CjO,EAAA,GAAyBC,EAAAkB,GAAA;AAAA,YACzB,KAAK8M,EAAE9N,EAAO,MAAA,WAAcA,EAAG,MAAc,WAAA,OAAA;AAAA,YAAA,UAAA8N,EAAA;AAAA,YAES,OAAAA,EAAA9N,EAAA,MAAA,WAAAA,EAAA,MAAA,WAAA,OAAA;AAAA,UAAA,GAAA;AAAA;;;;;;;SAK9C,GAAA,CAAA,SAAK,4CADlB,IAeE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,gBAAAH,EAboB,GAAAC,EAAA4O,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAA1O,EAAA;AAAA,QACA,kBAAeC,EAAK,EAAA,MAACA,EAAY,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,eAAUL,EAAK,MAAC;AAAA,QAChB,iBAA0BA,EAAA,MAAA;AAAA,QAC1B,UAAaA,EAAA,MAAA;AAAA,QACb,0BAAgB;AAAA,QAChB,aAAAA,EAAgB,oBAAMA,EAAa,MAAA,cAAAA,EAAA,GAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,QACnC,UAAWA,EAAA,MAAA;AAAA,QACX,kBAAeA,EAAE,MAAK;AAAA,QACtB,aAAAA,EAAA;AAAA,QACD,mBAAYA,EAAA,MAAA;AAAA,QACX,yBAAKA,EAAY,MAAA;AAAA,QAAA,MAAA;AAAA;SAGN,MAAA,GAAI,2KADlB,IAcE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,wBAAAH,EAZyB,GAAAC,EAAA6O,GAAA;AAAA,QAAA,KAAA;AAAA,QACjB,OAAO3O,EAAA;AAAA,QAAK,kBAAAC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,aAAAK;AAAA,QACnB,OAAOL,EAAA;AAAA,QACP,kBAAWC,EAAS,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACpB,OAAUL,EAAA;AAAA,QACV,WAAUA,EAAE;AAAA,QACZ,YAASA,EAAE,MAAK;AAAA,QAChB,cAAc,MAAE;AAAA,QAChB,aAAWA,EAAE,MAAA;AAAA,QACb,kBAAeA,EAAM,MAAA;AAAA,QACrB,eAAWA,EAAM,MAAA;AAAA,QACjB,eAAKA,EAAA,MAAA;AAAA,QAAA,aAAAA,EAAA,MAAA;AAAA;SAGM,MAAA,GAAI,8JADlB,IAcE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,kBAAAH,EAZyB,GAAAC,EAAA8O,IAAA;AAAA,QAAA,KAAA;AAAA,QACjB,OAAO5O,EAAA;AAAA,QAAK,kBAAAC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,aAAAK;AAAA,QACnB,OAAOL,EAAA;AAAA,QACP,kBAAWC,EAAS,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACpB,OAAUL,EAAA;AAAA,QACV,WAAUA,EAAE;AAAA,QACZ,YAASA,EAAE,MAAK;AAAA,QAChB,cAAc,MAAE;AAAA,QAChB,aAAWA,EAAE,MAAA;AAAA,QACb,kBAAeA,EAAM,MAAA;AAAA,QACrB,eAAWA,EAAM,MAAA;AAAA,QACjB,eAAKA,EAAA,MAAA;AAAA,QAAA,aAAAA,EAAA,MAAA;AAAA;SAGM,MAAA,GAAI,8JADlB,IA0BE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,qBAAAH,EAxByB,GAAAC,EAAA+O,IAAA;AAAA,QAAA,KAAA;AAAA,QACjB,OAAO7O,EAAA;AAAA,QAAK,kBAAAC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,aAAAK;AAAA,QACnB,OAAOL,EAAA;AAAA,QACP,kBAAWC,EAAS,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACpB,OAAUL,EAAA;AAAA,QACV,WAAQA,EAAE;AAAA,QACV,UAAUA,EAAE;AAAA,QACZ,YAAYA,EAAM,MAAA;AAAA,QAClB,YAASA,EAAE,MAAK;AAAA,QAChB,cAAc,MAAE;AAAA,QAChB,aAAgBA,EAAA,MAAA;AAAA,QAChB,kBAAaA,EAAM,MAAA;AAAA,QACnB,kBAAeA,EAAM,MAAA;AAAA,QACrB,eAAWA,EAAM,MAAA;AAAA,QACjB,eAAUA,EAAK,MAAC;AAAA,QAChB,aAAgBA,EAAA,MAAA;AAAA,QAChB,UAAWA,EAAA,MAAA;AAAA,QAAW,gBAAMA,EAAgB;AAAA,QAA0B,qBAAgC,oBAAiB,OAAAA,EAAe,MAAE,cAAkCA,EAAE,oDAO5K,EAAKA,EAAA,MAAA,gBAAA;AAAA,QAAA,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,MAGM,GAAA,MAAA,GAAI,uPADlB,IA0BE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,oBAAAH,EAxBoB,GAAAC,EAAAgP,IAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAO9O,EAAA;AAAA,QACP,kBAAWC,EAAS,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACpB,OAAUL,EAAA;AAAA,QACV,WAAQA,EAAE;AAAA,QACV,UAAUA,EAAE;AAAA,QACZ,YAAYA,EAAM,MAAA;AAAA,QAClB,YAASA,EAAE,MAAK;AAAA,QAChB,cAAc,MAAE;AAAA,QAChB,aAAgBA,EAAA,MAAA;AAAA,QAChB,kBAAaA,EAAM,MAAA;AAAA,QACnB,kBAAeA,EAAM,MAAA;AAAA,QACrB,eAAWA,EAAM,MAAA;AAAA,QACjB,eAAWA,EAAM,MAAA;AAAA,QACjB,aAAUA,EAAM,MAAA;AAAA,QAChB,WAAgBA,EAAA,MAAA;AAAA,QAChB,UAAWA,EAAA,MAAA;AAAA,QAAW,gBAAMA,EAAgB;AAAA,QAA0B,qBAAgC,oBAAiB,OAAAA,EAAe,MAAE,cAAkCA,EAAE,oDAO5K,EAAKA,EAAA,MAAA,gBAAA;AAAA,QAAA,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,MAGM,GAAA,MAAA,GAAI,2PADlB,IAcE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,sBAAAH,EAZyB,GAAAC,EAAAiP,IAAA;AAAA,QAAA,KAAA;AAAA,QACjB,OAAO/O,EAAA;AAAA,QAAK,kBAAAC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,aAAAK;AAAA,QACnB,OAAAL,EAAA;AAAA,QACA,kBAAeC,EAAK,EAAA,MAACA,EAAY,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,eAAUL,EAAK,MAAC;AAAA,QAChB,iBAAYA,EAAA,MAAA;AAAA,QACZ,UAASA,EAAE,MAAA;AAAA,QACX,OAAUA,EAAA;AAAA,QACV,WAASA,EAAE;AAAA,QACX,YAAeA,EAAA,MAAA;AAAA,QACf,aAAWA,EAAM,MAAA;AAAA,QACjB,eAAKA,EAAA,MAAA;AAAA,QAAA,aAAAA,EAAA,MAAA;AAAA;SAGM,MAAA,GAAI,2JADlB,IA6BE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,yBAAAH,EA3ByB,GAAAC,EAAAkP,IAAA;AAAA,QAAA,KAAA;AAAA,QACjB,OAAOhP,EAAA;AAAA,QAAK,kBAAAC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,aAAAK;AAAA,QACnB,OAAAL,EAAA;AAAA,QACA,kBAAeC,EAAK,EAAA,MAACA,EAAY,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACjC,eAAUL,EAAK,MAAC;AAAA,QAChB,iBAAYA,EAAA,MAAA;AAAA,QACZ,UAASA,EAAE,MAAA;AAAA,QACX,OAAUA,EAAA;AAAA,QACV,WAAQA,EAAE;AAAA,QACV,UAAUA,EAAA;AAAA,QACV,YAAeA,EAAA,MAAA;AAAA,QACf,UAAgBA,EAAA,MAAA;AAAA,QAChB,eAAgBA,EAAA,MAAA;AAAA,QAChB,kBAAaA,EAAM,MAAA;AAAA,QACnB,kBAAWA,EAAK,MAAC;AAAA,QACjB,eAAWA,EAAM,MAAA;AAAA,QACjB,aAAYA,EAAM,MAAA;AAAA,QAClB,aAAYA,EAAM,MAAA;AAAA,QAClB,YAAgBA,EAAA,MAAA;AAAA,QAChB,YAAWA,EAAA,MAAA;AAAA,QAAW,gBAAMA,EAAgB;AAAA,QAA0B,qBAAgC,oBAAiB,OAAAA,EAAe,MAAE,cAAkCA,EAAE,oDAO5K,EAAKA,EAAA,MAAA,gBAAA;AAAA,QAAA,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,MAGM,GAAA,MAAA,GAAI,mSADlB,IAaE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,iBAAAH,EAXyB,GAAAC,EAAAmP,IAAA;AAAA,QAAA,KAAA;AAAA,QACjB,OAAOjP,EAAA;AAAA,QAAK,kBAAAC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,aAAAK;AAAA,QACnB,OAAOL,EAAE;AAAA,QACT,kBAAYC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACZ,SAAcL,EAAA,MAAA;AAAA,QACd,OAAUA,EAAA;AAAA,QACV,cAAYA,EAAM,MAAA;AAAA,QAClB,YAAWA,EAAM,MAAA;AAAA,QACjB,YAAeA,EAAA,MAAA;AAAA,QACf,WAAOA,EAAM,MAAA;AAAA,QACb,eAAKA,EAAA,MAAA;AAAA,QAAA,OAAAA,EAAA,MAAA;AAAA;SAGM,MAAA,GAAI,uIADlB,IAaE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,iBAAAH,EAXoB,GAAAC,EAAAoP,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAOlP,EAAE;AAAA,QACT,kBAAWC,EAAS,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACpB,SAAOL,EAAK,MAAA;AAAA,QACZ,WAAcA,EAAA;AAAA,QACd,OAAUA,EAAA;AAAA,QACV,cAAYA,EAAM,MAAA;AAAA,QAClB,YAAWA,EAAM,MAAA;AAAA,QACjB,YAAeA,EAAA,MAAA;AAAA,QACf,WAAOA,EAAM,MAAA;AAAA,QACb,eAAKA,EAAA,MAAA;AAAA,QAAA,OAAAA,EAAA,MAAA;AAAA;SAIM,MAAA,GAAI,2IADlB,IAWE,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,gBAAAH,EAToB,GAAAC,EAAAqP,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAOnP,EAAE;AAAA,QACT,kBAAWC,EAAS,EAAA,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACpB,SAAOL,EAAK,MAAA;AAAA,QACZ,WAAQA,EAAE;AAAA,QACV,OAAYA,EAAA;AAAA,QACZ,YAAWA,EAAM,MAAA;AAAA,QACjB,YAAeA,EAAA,MAAA;AAAA,QACf,WAAOA,EAAM,MAAA;AAAA,QAAA,eAAAA,EAAA,MAAA;AAAA;SAIF,MAAA,GAAI,kHADlB,IAME,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,UAAAH,EAJoB,GAAAC,EAAAoN,GAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAOlN,EAAA;AAAA,QACP,kBAAYC,EAAM,EAAS,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QAC3B,OAAKL,EAAY,MAAA,QAAAA,EAAA,MAAA,QAAA;AAAA,QAAA,cAAAA,EAAA,MAAA;AAAA;MAGN,GAAA,MAAA,GAAI,gDADlB,IAsBgB,EAAA;AAAA,MAAAA,EAAA,MAAA,SAAA,iBAAAH,EApBM,GAAAC,EAAAyO,IAAA;AAAA,QAAA,KAAA;AAAA,QACnB,OAAAvO,EAAA;AAAA,QACA,kBAAUC,EAAM,EAAQ,MAAAA,EAAA,EAAA,IAAA,CAAAI,MAAAL,EAAA,QAAAK;AAAA,QACzB,iBAAYL,EAAA,MAAA;AAAA,QACX,UAAKA,EAAA,MAAA;AAAA,QAAA,MAAA;AAAA,QAGqB,OAAAiN,EAAA,UAAAjN,EAAA,eAAA;AAAA,MAAA,GAAA;AAAA;aACnB,EAAO,GAAAM,EAAiBC,GAAM,MAAQC,EAAAR,EAAA,SAAA,CAAA8N,OAC3CjO,EAAA,GAAyBC,EAAA0O,GAAA;AAAA,YACzB,KAAKV,EAAE9N,EAAO,MAAA,WAAcA,EAAG,MAAc,WAAA,OAAA;AAAA,YAAA,UAAA8N,EAAA;AAAA,YAQvC,OAAAA,EAAA9N,EAAA,MAAA,WAAAA,EAAA,MAAA,WAAA,OAAA;AAAA,UAAA,GAAA;AAAA,YALC,SAAAE,EAAA,MAAA;AAAA,cAAAS,EAAA,OAAA;AAAA;;;;;;;;;;;;IAWN,GAAA,EAAA,KAAAiG,EADR,IAKY,EAAA;AAAA,IAHT5G,EAAA,MAAA,SAAA,aAAAH,EAAA,GAAaC,EAAMiI,GAAW;AAAA,MAAA,KAAA;AAAA,qBAE/B,MAAiB;AAAA,IAAA,GAAA;AAAA;;;;;;;;ACtqBrB,eAAsBqH,GAAqBhH,GAA6B;AACtE,SAAOiH,GAAW,EAAE,KAAK,8BAA8BjH,CAAM;AAC/D;AAEA,eAAsBkH,GAAqBlH,GAA6B;AACtE,SAAOiH,GAAW,EAAE,KAAK,8BAA8BjH,CAAM;AAC/D;AAEA,eAAsBmH,GAA4BnH,GAA6B;AAC7E,SAAOiH,GAAW,EAAE,KAAK,qCAAqCjH,CAAM;AACtE;AAEA,eAAsBoH,GAA0BpH,GAA6B;AAC3E,SAAOiH,GAAW,EAAE,KAAK,mCAAmCjH,CAAM;AACpE;AAEA,eAAsBqH,GAAqBrH,GAA6B;AACtE,SAAOiH,GAAW,EAAE,KAAK,8BAA8BjH,CAAM;AAC/D;AAkCA,eAAsBsH,GAA0BtH,GAA6B;AAC3E,SAAOiH,GAAW,EAAE,KAAK,mCAAmCjH,CAAM;AACpE;AAEA,eAAsBuH,GAAyBvH,GAEvB;AACtB,SAAOiH,GAAW,EAAE,KAAK,kCAAkCjH,CAAM;AACnE;AC/DO,MAAMwH,KAAwB,sBC2P/BC,KAAmB,oBACnBC,KAAU;AAAA,EACd;AAAA,IACE,OAAO;AAAA,IACP,WAAW;AAAA,IACX,KAAK;AAAA,EACP;AACF,GACAC,KAAexR,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,oBAAAyR;AAAA,IACA,cAAArD;AAAA,IACA,iBAAAsD;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,IACR;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,OAAO,CAAC,QAAQ;AAAA,EAChB,MAAMzR,GAAO,EAAE,MAAAC,KAAQ;AACrB,UAAMyR,IAAMC,MACNC,IAAyBC,MACzBC,IAAYC,MACZC,IAAWC,MACXC,IAAcJ,EAAU,YACxBK,IAASL,EAAU,QACnBM,IAAUjS,GAAI2R,EAAU,WAAWT,EAAgB,CAAC,GACpDgB,IAAWlS,GAAI,CAAA,CAAE,GACjB,EAAE,GAAA+C,MAAMY;AACV,QAAAwO,GACAC;AACE,UAAAC,IAAaxL,GAAS,MAAM;AAChC,YAAMpG,IAAOyR,EAAS,MACnB,OAAO,CAACxR,MAAc,CAAC,CAACA,EAAK,WAAWA,EAAK,SAAS,EACtD,IAAI,CAACA,MACGA,CACR,EACA,KAAK,CAACyJ,GAAGmI,MAAOnI,EAAE,QAAQmI,EAAE,OAAOnI,EAAE,KAAKmI,EAAE,KAAKnI,EAAE,OAAOmI,EAAE,IAAK,GAC9DC,IAAQL,EAAS,MACpB,OAAO,CAACxR,MAAc,CAAC,CAACA,EAAK,WAAW,CAACA,EAAK,SAAS,EACvD,IAAI,CAACA,MACGA,CACR,EACA,KAAK,CAACyJ,GAAGmI,MAAOnI,EAAE,QAAQmI,EAAE,OAAOnI,EAAE,KAAKmI,EAAE,KAAKnI,EAAE,OAAOmI,EAAE,IAAK;AAC7D,aAAA7R,EAAK,OAAO8R,CAAK;AAAA,IAAA,CACzB,GACKC,IAAa3L,GAAS,MAAM;AAChC,YAAMpG,IAAOyR,EAAS,MACnB,OAAO,CAACxR,MAAc,CAACA,EAAK,WAAWA,EAAK,SAAS,EACrD,IAAI,CAACA,MACGA,CACR,EACA,KAAK,CAACyJ,GAAGmI,MAAOnI,EAAE,QAAQmI,EAAE,OAAOnI,EAAE,KAAKmI,EAAE,KAAKnI,EAAE,OAAOmI,EAAE,IAAK,GAC9DC,IAAQL,EAAS,MACpB,OAAO,CAACxR,MAAc,CAACA,EAAK,WAAW,CAACA,EAAK,SAAS,EACtD,IAAI,CAACA,MACGA,CACR,EACA,KAAK,CAACyJ,GAAGmI,MAAOnI,EAAE,QAAQmI,EAAE,OAAOnI,EAAE,KAAKmI,EAAE,KAAKnI,EAAE,OAAOmI,EAAE,IAAK;AAC7D,aAAA7R,EAAK,OAAO8R,CAAK;AAAA,IAAA,CACzB,GACKE,IAAe5L,GAAS,MACrBqL,EAAS,MAAM,IAAI,CAACxR,MAClBA,EAAK,IACb,CACF,GAEKgS,IAAY,OAAO;AAAA,MACvB,IAAAC;AAAA,MACA,cAAAC;AAAA,MACA,YAAAC;AAAA,MACA,aAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,YAAAC;AAAA,MACA,qBAAAC;AAAA,IAAA,MAEO,IAAI,QAAQ,CAAWC,MAAA;AAC5B,MAAI,CAACrT,EAAM,aAAa,EAACsS,KAAA,QAAAA,EAAc,eACrC,QAAQ,MAAM,UAAU,GACxBe,EAAQ,IAAI;AAEd,YAAM9Q,IAAW;AAAA,QACf,QAAQ2P,EAAY;AAAA,QACpB,GAAGa;AAAA,QACH,GAAGC;AAAA,QACH,aAAAC;AAAA,MAAA;AAEF,MAAIG,MACF7Q,EAAI,kBAAkB2Q,GACtB3Q,EAAI,aAAa4Q,IAEnB5Q,EAAI,qBAAqB+Q,MACdC,GAAAhR,GAAK+P,KAAA,QAAAA,EAAc,YAAYA,EAAa,YAAYtS,EAAM,SAAS,EAC/E,KAAK,CAACwT,MAAa;AACT,QAAAnB,EAAA,MAAM,QAAQ,CAACxR,MAAc;AAChC,UAAAA,EAAK,MAAMiS,MACbjS,EAAK,MAAM2S;AAAA,QACb,CACD,GACDH,EAAQ,IAAI;AAAA,MAAA,CACb,EACA,MAAM,CAASI,MAAA;AACN,gBAAA,IAAI,SAASA,CAAK,GAClB1Q,GAAA,MAAMG,EAAE,eAAe,CAAC;AAAA,MAAA,CACjC;AAAA,IAAA,CACJ,GAEGwQ,IAAW,OAAO9S,MAAc;AACpC,iBAAWC,KAAQD;AACb,YAAA;AACF,gBAAMiS,EAAUhS,CAAI;AAAA,iBACb4S;AACC,kBAAA,IAAI,SAASA,CAAK,GAClB1Q,GAAA,MAAMG,EAAE,eAAe,CAAC;AAAA,QAClC;AAAA,IACF,GAGIyQ,IAAc,MAAM;AACK,MAAAC,GAAA;AAAA,QAC3B,QAAQ1B,EAAY;AAAA,QACpB,SAASC;AAAA,QACT,UAAUnS,EAAM;AAAA,QAChB,WAAWA,EAAM;AAAA,QACjB,aAAa,CAAC,QAAQ,aAAa;AAAA,QACnC,UAAU;AAAA,MAAA,CACX,EACE,KAAK,CAACwT,MAAa;AAad,YAZWlB,IAAAuB;AAAA,UACb7T,EAAM;AAAA,UACNA,EAAM;AAAA,UACNwT,EAAI;AAAA,UACJtQ;AAAA,UACA;AAAA,YACE,WAAW;AAAA,YACX,SAAS;AAAA,YACT,YAAY;AAAA,UACd;AAAA,QAAA,GAEFqP,IAAyBiB,EAAI,yBACzBlB,KAAA,gBAAAA,EAAc,YAAW,IAAO;AAClC,iBAAO,SAAS,OAAO,IACvBrS,EAAK,UAAUsS,GAAwB,CAAC,GAAG,IAAM,EAAI;AACrD;AAAA;AAEqB,QAAAX,EAAA;AAAA,UACrB5R,EAAM;AAAA,UACNsS,EAAa;AAAA,QAAA,GAEfD,EAAS,MAAM,SAAS;AACxB,YAAIzR,IAAY,CAAA;AAChB,cAAMkT,IAAyB,CAAA;AAC/B,QAAIN,KAAOA,EAAI,qBAAqBA,EAAI,kBAAkB,SAAS,MAC1D5S,IAAAA,EAAK,OAAO4S,EAAI,iBAAiB,IAEtCA,KAAOA,EAAI,uBAAuBA,EAAI,oBAAoB,SAAS,MAC9D5S,IAAAA,EAAK,OAAO4S,EAAI,mBAAmB,IAExCA,KAAOA,EAAI,gBAAgBA,EAAI,aAAa,SAAS,MAChD5S,IAAAA,EAAK,OAAO4S,EAAI,YAAY,IAEjCA,KAAOA,EAAI,cAAcA,EAAI,WAAW,SAAS,MAC5C5S,IAAAA,EAAK,OAAO4S,EAAI,UAAU,IAE9B5S,EAAA,QAAQ,CAACC,MAAc;AAC1B,cAAIkS,IAAoB,MACpBC,IAAkB,MAClBE,IAAuB,MACvBC,IAAkB;AAClB,UAAAtS,EAAK,KAAK,uBACZkS,IAAe,CAAA,GACfC,IAAa,CAAA,GACbE,IAAkBrS,EAAK,KAAK,iBAC5BsS,IAAatS,EAAK,KAAK,eAEvBkS,IAAelS,EAAK,KAAK,cACzBmS,IAAanS,EAAK,KAAK,YACvBqS,IAAkB,CAAA,GAClBC,IAAa,CAAA,IAEfd,EAAS,MAAM,KAAK;AAAA,YAClB,GAAGxR;AAAA,YACH,cAAAkS;AAAA,YACA,YAAAC;AAAA,YACA,aAAanS,EAAK,KAAK;AAAA,YACvB,iBAAAqS;AAAA,YACA,YAAAC;AAAA,UAAA,CACD,GACDW,EAAkB,KAAK;AAAA,YACrB,IAAIjT,EAAK;AAAA,YACT,qBAAqBA,EAAK,KAAK;AAAA,YAC/B,cAAAkS;AAAA,YACA,YAAAC;AAAA,YACA,aAAanS,EAAK,KAAK;AAAA,YACvB,iBAAAqS;AAAA,YACA,YAAAC;AAAA,UAAA,CACD;AAAA,QAAA,CACF,GACGW,EAAkB,SAAS,KAC7BJ,EAASI,CAAiB,GAE5BC,EAAiB,IAAI;AAAA,MAAA,CACtB,EACA,MAAM,CAAOC,MAAA;AACJ,gBAAA,IAAI,OAAOA,CAAG,GACdjR,GAAA,MAAMG,EAAE,eAAe,CAAC;AAAA,MAAA,CACjC;AAAA,IAAA,GAGC6Q,IAAmB,CAACE,MAAa;;AACrC,UAAIC,IAAO;AAMX,UALID,IACKC,IAAAD,IACE,OAAO,SAAS,SACzBC,IAAO,OAAO,SAAS,KAAK,UAAU,CAAC,IAErCA,GAAM;AAEF,cAAAtT,IAAOyR,EAAS,MAAM,OAAO,CAACxR,MAAcA,EAAK,OAAOqT,CAAI;AAC9D,QAAAtT,KAAQA,EAAK,SAAS,IACxBX,EAAK,UAAUsS,GAAwB,EAAE,GAAG3R,EAAK,CAAC,GAAG,GAAGA,EAAK,CAAC,EAAE,KAAK,GAAG,IAAM,EAAI,IAEzDuQ,GAAA;AAAA,UACvB,QAAQe,EAAY;AAAA,UACpB,YAAY;AAAA,YACV;AAAA,cACE;AAAA,gBACE,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,OAAO,CAAC,EAAI;AAAA,gBACZ,QAAQ;AAAA,gBACR,YAAY;AAAA,cACd;AAAA,cACA;AAAA,gBACE,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,OAAO,CAAClS,EAAM,SAAS;AAAA,gBACvB,QAAQ;AAAA,gBACR,YAAY;AAAA,cACd;AAAA,cACA;AAAA,gBACE,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,OAAO,CAACkU,CAAI;AAAA,gBACZ,QAAQ;AAAA,gBACR,YAAY;AAAA,cACd;AAAA,YACF;AAAA,UACF;AAAA,QAAA,CACD,EAAE,KAAK,CAACV,MAAa;AACpB,cAAIA,KAAOA,EAAI,QAAQA,EAAI,KAAK,SAAS;AACvC,YAAAvT;AAAA,cACE;AAAA,cACAsS;AAAA,cACA;AAAA,gBACE,GAAGiB,EAAI,KAAK,CAAC;AAAA,gBACb,GAAGA,EAAI,KAAK,CAAC,EAAE;AAAA,cACjB;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,eAEG;AACC5S,kBAAAA,IAAOyR,EAAS,MAAM,OAAO,CAACxR,MAAc,CAACA,EAAK,WAAWA,EAAK,UAAU;AAC9ED,gBAAAA,KAAQA,EAAK,SAAS,GAAG;AAC3B,qBAAO,SAAS,OAAOA,EAAK,CAAC,EAAE,KAC/BX,EAAK,UAAUsS,GAAwB,EAAE,GAAG3R,EAAK,CAAC,GAAG,GAAGA,EAAK,CAAC,EAAE,KAAK,GAAG,IAAM,EAAI;AAClF;AAAA;AAEE,gBAAA2B,IAAM8P,EAAS,MAChB,KAAK,CAAC/H,GAAG,MAAOA,EAAE,QAAQ,EAAE,OAAOA,EAAE,KAAK,EAAE,KAAKA,EAAE,OAAO,EAAE,IAAK,EACjE,KAAK,CAACzJ,MAAc,CAACA,EAAK,OAAO;AAChC,gBAAA0B,KAAOA,EAAI;AACN,qBAAA,SAAS,OAAOA,EAAI,KACtBtC,EAAA,UAAUsS,GAAwB,EAAE,GAAGhQ,GAAK,GAAGA,EAAI,KAAQ,GAAA,IAAM,EAAI;AAAA,qBAEpEA,IAAA8P,EAAS,MACZ,KAAK,CAAC/H,GAAG,MAAOA,EAAE,QAAQ,EAAE,OAAOA,EAAE,KAAK,EAAE,KAAKA,EAAE,OAAO,EAAE,IAAK,EACjE,KAAK,CAACzJ,MAAcA,EAAK,OAAO,GAC/B0B,KAAOA,EAAI;AACN,qBAAA,SAAS,OAAOA,EAAI,KACtBtC,EAAA,UAAUsS,GAAwB,EAAE,GAAGhQ,GAAK,GAAGA,EAAI,KAAQ,GAAA,IAAM,EAAI;AAAA,iBACrE;AACL,oBAAMA,IAAM;AAAA,gBACV,KAAK;AAAA,gBACL,iBAAiBvC,EAAM;AAAA,gBACvB,QAAQ,CAAC;AAAA,gBACT,cAAc,CAAC;AAAA,gBACf,YAAY,CAAC;AAAA,gBACb,aAAa,CAAC;AAAA,gBACd,gBAAgB,CAAC;AAAA,gBACjB,aAAa,CAAC;AAAA,cAAA;AAEhB,cAAAC,EAAK,UAAUsS,GAAwBhQ,GAAK,IAAM,EAAK,GACvD,OAAO,SAAS,OAAO;AAAA;AAAA;AAAA,QAG7B,CACD;AAAA,aAEE;AACL,YAAI4R,IAAc;AAIlB,YAHIC,GAAY,EAAE,IAAIhD,EAAqB,MACzC+C,KAAczR,IAAA0R,KAAc,IAAIhD,EAAqB,MAAvC,gBAAA1O,EAA2C1C,EAAM,aAE7DmU;AACF,iBAAO,SAAS,OAAOA,GACvBJ,EAAiBI,CAAW;AAAA,aACvB;AAEC,gBAAAvT,IAAOyR,EAAS,MAAM;AAAA,YAC1B,CAACxR,MAAc,CAACA,EAAK,WAAWA,EAAK,cAAc,CAACA,EAAK;AAAA,UAAA;AAEvD,cAAAD,KAAQA,EAAK,SAAS,GAAG;AAC3B,mBAAO,SAAS,OAAOA,EAAK,CAAC,EAAE,KAC/BX,EAAK,UAAUsS,GAAwB,EAAE,GAAG3R,EAAK,CAAC,GAAG,GAAGA,EAAK,CAAC,EAAE,KAAK,GAAG,IAAM,EAAI;AAClF;AAAA;AAGI,gBAAAyT,IAAiBhC,EAAS,MAAM;AAAA,YACpC,CAACxR,MAAc,CAACA,EAAK,WAAWA,EAAK,cAAcA,EAAK;AAAA,UAAA;AAEtD,cAAAwT,KAAkBA,EAAe,SAAS,GAAG;AAC/C,mBAAO,SAAS,OAAOA,EAAe,CAAC,EAAE,KACzCpU;AAAA,cACE;AAAA,cACAsS;AAAA,cACA,EAAE,GAAG8B,EAAe,CAAC,GAAG,GAAGA,EAAe,CAAC,EAAE,KAAK;AAAA,cAClD;AAAA,cACA;AAAA,YAAA;AAEF;AAAA;AAEE,cAAA9R,IAAM8P,EAAS,MAChB,KAAK,CAAC/H,GAAG,MAAOA,EAAE,QAAQ,EAAE,OAAOA,EAAE,KAAK,EAAE,KAAKA,EAAE,OAAO,EAAE,IAAK,EACjE,KAAK,CAACzJ,MAAc,CAACA,EAAK,OAAO;AAChC,cAAA0B,KAAOA,EAAI;AACN,mBAAA,SAAS,OAAOA,EAAI,KACtBtC,EAAA,UAAUsS,GAAwB,EAAE,GAAGhQ,GAAK,GAAGA,EAAI,KAAQ,GAAA,IAAM,EAAI;AAAA,mBAEpEA,IAAA8P,EAAS,MACZ,KAAK,CAAC/H,GAAG,MAAOA,EAAE,QAAQ,EAAE,OAAOA,EAAE,KAAK,EAAE,KAAKA,EAAE,OAAO,EAAE,IAAK,EACjE,KAAK,CAACzJ,MAAcA,EAAK,OAAO,GAC/B0B,KAAOA,EAAI;AACN,mBAAA,SAAS,OAAOA,EAAI,KACtBtC,EAAA,UAAUsS,GAAwB,EAAE,GAAGhQ,GAAK,GAAGA,EAAI,KAAQ,GAAA,IAAM,EAAI;AAAA,eACrE;AACL,mBAAO,SAAS,OAAO;AACvB,kBAAMA,IAAM;AAAA,cACV,KAAK;AAAA,cACL,iBAAiBvC,EAAM;AAAA,cACvB,QAAQ,CAAC;AAAA,cACT,cAAc,CAAC;AAAA,cACf,YAAY,CAAC;AAAA,cACb,aAAa,CAAC;AAAA,cACd,gBAAgB,CAAC;AAAA,cACjB,aAAa,CAAC;AAAA,YAAA;AAEhB,YAAAC,EAAK,UAAUsS,GAAwBhQ,GAAK,IAAM,EAAK;AAAA;AAAA;AAAA;AAAA,IAI/D;AAEU,IAAAoR;AACZ,UAAMW,KAAUnU,GAAI,CAAC,KAAK,GAAG,CAAC,GACxBoU,IACJ,yFACIC,KAAY,CAACC,MACVzU,EAAM,kBAAkByU,KAAUA,EAAO,OAAOzU,EAAM,eAAe,KACxE,EAAE,OAAO,EAAE,iBAAiB,UAAU,MACtC,EAAE,OAAO,CAAA,KAGT0U,IAAa,CAACD,MAAgB;AAC3B,aAAA,SAAS,OAAOA,EAAO,KAC9BV,EAAiBU,EAAO,GAAG,GACdE,GAAA,CAACF,CAAM,CAAC;AAAA,IAAA,GAGjBG,IAAa,CAAC,EAAE,YAAAC,GAAY,QAAAJ,QAAa;;AACzC,UAAAA,EAAO,QAAQI,EAAW,QAAQjC,EAAa,MAAM,SAASiC,EAAW,IAAI,GAAG;AAC1E,QAAA9R,GAAA,MAAMG,EAAE,SAAS,CAAC;AAC1B;AAAA;AAEF,UAAIuR,KAAA,QAAAA,EAAQ,IAAI;AACR,cAAA7T,IAAOyR,EAAS,MAAM,OAAO,CAACxR,OAAc4T,KAAA,gBAAAA,EAAQ,OAAM5T,EAAK,EAAE;AACnE,aAAA6B,IAAAmS,EAAW,cAAX,QAAAnS,EAAuB,IAAI;AAC7B,gBAAMoS,IAAO;AAAA,YACX,GAAGlU,EAAK,CAAC,EAAE;AAAA,YACX,cAAc,EAAE,GAAGZ,EAAM,eAAe,cAAc,SAAS,EAAE;AAAA,YACjE,YAAYA,EAAM,eAAe;AAAA,YACjC,aAAaA,EAAM,eAAe;AAAA,YAClC,gBAAgBA,EAAM,eAAe;AAAA,YACrC,aAAaA,EAAM,eAAe;AAAA,YAClC,QAAQA,EAAM,eAAe;AAAA,YAC7B,qBAAqBA,EAAM,eAAe;AAAA,YAC1C,YAAYA,EAAM,eAAe;AAAA,YACjC,iBAAiBA,EAAM,eAAe;AAAA,YACtC,cAAcA,EAAM,eAAe;AAAA,YACnC,sCACEA,EAAM,eAAe;AAAA,UAAA;AAEzB,iBAAO8U,EAAK,WACShE,GAAA;AAAA,YACnB,QAAQoB,EAAY;AAAA,YACpB,kBAAkBuC,KAAA,gBAAAA,EAAQ;AAAA,YAC1B,YAAW9R,IAAAkS,EAAW,cAAX,gBAAAlS,EAAuB;AAAA,YAClC,MAAMkS,EAAW;AAAA,YACjB,MAAM,KAAK,UAAUC,CAAI;AAAA,UAAA,CAC1B,EAAE,KAAK,CAACtB,MAAa;;AAChB,aAAA9Q,IAAAmS,EAAW,eAAX,QAAAnS,EAAwB,KACAsO,GAAA;AAAA,cACxB,QAAQkB,EAAY;AAAA,cACpB,kBAAkBuC,KAAA,gBAAAA,EAAQ;AAAA,YAAA,CAC3B,EAAE,KAAK,MAAM;AACgB,cAAA1D,GAAA;AAAA,gBAC1B,QAAQmB,EAAY;AAAA,gBACpB,kBAAkBuC,KAAA,gBAAAA,EAAQ;AAAA,cAAA,CAC3B,EAAE,KAAK,MAAM;;AACJ,gBAAA1R,GAAA,QAAQG,EAAE,MAAM,CAAC,GACrBsQ,EAAI,QAAM9Q,IAAA1C,EAAM,mBAAN,gBAAA0C,EAAsB,MAC7BzC,EAAA,UAAUsS,GAAwB,EAAE,GAAGiB,GAAK,GAAGA,EAAI,KAAQ,GAAA,IAAO,EAAI,IAElEnB,EAAA,MAAM,QAAQ,CAACxR,OAAc;AAChC,kBAAAA,GAAK,MAAM2S,EAAI,MACV,OAAA,OAAO3S,IAAM,EAAE,GAAG2S,GAAK,GAAGA,EAAI,MAAM;AAAA,gBAC7C,CACD,GAESG;cAAA,CACb;AAAA,YAAA,CACF,IAE2B5C,GAAA;AAAA,cAC1B,QAAQmB,EAAY;AAAA,cACpB,kBAAkBuC,KAAA,gBAAAA,EAAQ;AAAA,YAAA,CAC3B,EAAE,KAAK,MAAM;;AACJ,cAAA1R,GAAA,QAAQG,EAAE,MAAM,CAAC,GACrBsQ,EAAI,QAAM9Q,IAAA1C,EAAM,mBAAN,gBAAA0C,EAAsB,MAC7BzC,EAAA,UAAUsS,GAAwB,EAAE,GAAGiB,GAAK,GAAGA,EAAI,KAAQ,GAAA,IAAO,EAAI,IAElEnB,EAAA,MAAM,QAAQ,CAACxR,OAAc;AAChC,gBAAAA,GAAK,MAAM2S,EAAI,MACV,OAAA,OAAO3S,IAAM,EAAE,GAAG2S,GAAK,GAAGA,EAAI,MAAM;AAAA,cAC7C,CACD,GAESG;YAAA,CACb;AAAA,UACH,CACD;AAAA;AAEoB,UAAA7C,GAAA;AAAA,YACnB,QAAQoB,EAAY;AAAA,YACpB,kBAAkBuC,KAAA,gBAAAA,EAAQ;AAAA,YAC1B,YAAW7F,IAAAiG,EAAW,cAAX,gBAAAjG,EAAuB;AAAA,YAClC,MAAMiG,EAAW;AAAA,UAAA,CAClB,EAAE,KAAK,CAACrB,MAAa;;AAChB,aAAA9Q,IAAAmS,EAAW,eAAX,QAAAnS,EAAwB,KACAsO,GAAA;AAAA,cACxB,QAAQkB,EAAY;AAAA,cACpB,kBAAkBuC,KAAA,gBAAAA,EAAQ;AAAA,YAAA,CAC3B,EAAE,KAAK,MAAM;AACgB,cAAA1D,GAAA;AAAA,gBAC1B,QAAQmB,EAAY;AAAA,gBACpB,kBAAkBuC,KAAA,gBAAAA,EAAQ;AAAA,cAAA,CAC3B,EAAE,KAAK,MAAM;;AACJ,gBAAA1R,GAAA,QAAQG,EAAE,MAAM,CAAC,GACrBsQ,EAAI,QAAM9Q,IAAA1C,EAAM,mBAAN,gBAAA0C,EAAsB,MAC7BzC,EAAA,UAAUsS,GAAwB,EAAE,GAAGiB,GAAK,GAAGA,EAAI,KAAQ,GAAA,IAAO,EAAI,IAElEnB,EAAA,MAAM,QAAQ,CAACxR,MAAc;AAChC,kBAAAA,EAAK,MAAM2S,EAAI,MACV,OAAA,OAAO3S,GAAM,EAAE,GAAG2S,GAAK,GAAGA,EAAI,MAAM;AAAA,gBAC7C,CACD,GAESG;cAAA,CACb;AAAA,YAAA,CACF,IAE2B5C,GAAA;AAAA,cAC1B,QAAQmB,EAAY;AAAA,cACpB,kBAAkBuC,KAAA,gBAAAA,EAAQ;AAAA,YAAA,CAC3B,EAAE,KAAK,MAAM;;AACJ,cAAA1R,GAAA,QAAQG,EAAE,MAAM,CAAC,GACrBsQ,EAAI,QAAM9Q,IAAA1C,EAAM,mBAAN,gBAAA0C,EAAsB,MAC7BzC,EAAA,UAAUsS,GAAwB,EAAE,GAAGiB,GAAK,GAAGA,EAAI,KAAQ,GAAA,IAAO,EAAI,IAElEnB,EAAA,MAAM,QAAQ,CAACxR,MAAc;AAChC,gBAAAA,EAAK,MAAM2S,EAAI,MACV,OAAA,OAAO3S,GAAM,EAAE,GAAG2S,GAAK,GAAGA,EAAI,MAAM;AAAA,cAC7C,CACD,GAESG;YAAA,CACb;AAAA,UACH,CACD;AAAA,aAEE;AACL,YAAImB,IAAY,CAAA;AACZ,SAAAC,IAAAF,EAAW,cAAX,QAAAE,EAAuB,MAClBD,IAAA;AAAA,UACL,cAAc,EAAE,GAAG9U,EAAM,eAAe,cAAc,SAAS,EAAE;AAAA,UACjE,YAAYA,EAAM,eAAe;AAAA,UACjC,aAAaA,EAAM,eAAe;AAAA,UAClC,gBAAgBA,EAAM,eAAe;AAAA,UACrC,aAAaA,EAAM,eAAe;AAAA,UAClC,QAAQA,EAAM,eAAe;AAAA,UAC7B,qBAAqBA,EAAM,eAAe;AAAA,UAC1C,YAAYA,EAAM,eAAe;AAAA,UACjC,iBAAiBA,EAAM,eAAe;AAAA,UACtC,cAAcA,EAAM,eAAe;AAAA,UACnC,sCACEA,EAAM,eAAe;AAAA,QAAA,GAEzB,OAAO8U,EAAK,aAELA,IAAA;AAAA,UACL,QAAQ,CAAC;AAAA,UACT,cAAc,CAAC;AAAA,UACf,YAAY,CAAC;AAAA,UACb,aAAa,CAAC;AAAA,UACd,gBAAgB,CAAC;AAAA,UACjB,aAAa,CAAC;AAAA,UACd,qBAAqB;AAAA,UACrB,YAAY,CAAC;AAAA,UACb,iBAAiB,CAAC;AAAA,UAClB,cAAc,CAAC;AAAA,QAAA,GAGElE,GAAA;AAAA,UACnB,QAAQsB,EAAY;AAAA,UACpB,SAAS2C,EAAW,aAAa,aAAa1C,IAAS;AAAA,UACvD,MAAM0C,EAAW;AAAA,UACjB,oBAAoBnD,EAAI;AAAA,UACxB,iBAAiB1R,EAAM;AAAA,UACvB,iBAAiBA,EAAM;AAAA,UACvB,WAAW;AAAA,UACX,MAAM,KAAK,UAAU8U,CAAI;AAAA,QAAA,CAC1B,EAAE,KAAK,CAACtB,MAAa;AACf,UAAAvT,EAAA,UAAUsS,GAAwB,EAAE,GAAGiB,GAAK,GAAGA,EAAI,KAAQ,GAAA,IAAM,EAAI,GACtEA,EAAI,OACGnB,EAAA,QAAQA,EAAS,MAAM,OAAO;AAAA,YACrC;AAAA,cACE,GAAGmB;AAAA,YACL;AAAA,UAAA,CACD,GACQE,EAAA;AAAA,YACP;AAAA,cACE,IAAIF,EAAI;AAAA,cACR,cAAcsB,EAAK;AAAA,cACnB,YAAYA,EAAK;AAAA,cACjB,aAAaA,EAAK;AAAA,cAClB,iBAAiBA,EAAK;AAAA,cACtB,YAAYA,EAAK;AAAA,cACjB,qBAAqBA,EAAK;AAAA,YAC5B;AAAA,UAAA,CACD,GACM,OAAA,SAAS,OAAOtB,EAAI,KAC3BO,EAAiBP,EAAI,GAAG;AAAA,QAC1B,CACD;AAAA;AAAA,IACH,GAGI9S,IAAe,CAAC+T,GAAaO,MAAsB;AACnD,UAAAC,IAAiB,CAAC,EAAK;AAC3B,MAAIjV,EAAM,eAAe,MAAMyU,EAAO,OACpCQ,IAAY,CAAC,EAAI;AAEnB,YAAMC,IAAYnQ,GAAS;AAAA,QACzB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO7B,EAAE,MAAM;AAAA,QACf,MAAM;AAAA,UACJ,UAAU;AAAA,YACR,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,KAAK,CAAC;AAAA,UACR;AAAA,UACA,QAAQ;AAAA,YACN;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,cACN,OAAOA,EAAE,MAAM;AAAA,cACf,UAAU;AAAA,cACV,YAAY;AAAA,cACZ,WAAW;AAAA,cACX,cAAc;AAAA,cACd,aAAaA,EAAE,SAAS;AAAA,YAC1B;AAAA,YACA;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,cACN,OAAO;AAAA,cACP,UAAU;AAAA,cACV,YAAY;AAAA,cACZ,UAAU;AAAA,cACV,UAAU;AAAA,cACV,cAAc,CAAC,EAAK;AAAA,cACpB,aAAa;AAAA,YACf;AAAA,UACF;AAAA,UACA,OAAO6B,GAAS;AAAA,YACd,MAAM;AAAA,cACJ;AAAA,gBACE,UAAU;AAAA,gBACV,SAAS7B,EAAE,SAAS;AAAA,cACtB;AAAA,YACF;AAAA,UAAA,CACD;AAAA,UACD,OAAO6B,GAAS;AAAA,YACd,MAAM0P,EAAO;AAAA,YACb,WAAAQ;AAAA,YACA,YAAY,CAACR,KAAA,QAAAA,EAAQ,aAAaA,KAAA,gBAAAA,EAAQ,aAAa,EAAK;AAAA,YAC5D,WAAW,CAACA,KAAA,QAAAA,EAAQ,YAAYA,KAAA,gBAAAA,EAAQ,YAAY,EAAK;AAAA,UAAA,CAC1D;AAAA,QACH;AAAA,QACA,SAAS;AAAA,UACP,WAAW;AAAA,YACT;AAAA,cACE,MAAMvR,EAAE,iCAAiC;AAAA,cACzC,OAAO;AAAA,YACT;AAAA,UACF;AAAA,UACA,YAAY;AAAA,YACV;AAAA,cACE,MAAMA,EAAE,QAAQ;AAAA,cAChB,OAAO;AAAA,YACT;AAAA,UACF;AAAA,UACA,WAAW;AAAA,YACT;AAAA,cACE,MAAMA,EAAE,QAAQ;AAAA,cAChB,OAAO;AAAA,YACT;AAAA,UACF;AAAA,QACF;AAAA,QACA,IAAI,CAACgC,MACI,IAAI,QAAQ,SAAUmO,GAAS;AACpC,UAAAuB,EAAW,EAAE,YAAY1P,GAAM,QAAAuP,EAAgB,CAAA,GAC/CpB,EAAQ,IAAI;AAAA,QAAA,CACb;AAAA,MACH,CACD;AACD,MAAI2B,KAAa,aACLE,EAAA,KAAK,OAAO,KAAK;AAAA,QACzB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,UAAU;AAAA,QACV,cAAc,CAAC,EAAK;AAAA,QACpB,aAAa;AAAA,MAAA,CACd,GACG9C,EAAQ,SACA8C,EAAA,KAAK,OAAO,KAAK;AAAA,QACzB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,UAAU;AAAA,QACV,cAAc,CAAC,EAAK;AAAA,QACpB,aAAa;AAAA,MAAA,CACd,IAGLC,GAASD,CAAS;AAAA,IAAA,GAGdE,IAAU,CAACJ,MAAmB;AAClC,YAAME,IAAYnQ,GAAS;AAAA,QACzB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO7B,EAAE,MAAM;AAAA,QACf,MAAM;AAAA,UACJ,UAAU;AAAA,YACR,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,KAAK,CAAC;AAAA,UACR;AAAA,UACA,QAAQ;AAAA,YACN;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,cACN,OAAOA,EAAE,MAAM;AAAA,cACf,UAAU;AAAA,cACV,YAAY;AAAA,cACZ,WAAW;AAAA,cACX,cAAc;AAAA,cACd,aAAaA,EAAE,SAAS;AAAA,YAC1B;AAAA,YACA;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,cACN,OAAOA,EAAE,QAAQ;AAAA,cACjB,UAAU;AAAA,cACV,YAAY;AAAA,cACZ,UAAU;AAAA,cACV,UAAU;AAAA,cACV,cAAc;AAAA,cACd,aAAa;AAAA,YACf;AAAA,YACA;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,cACN,OAAO;AAAA,cACP,UAAU;AAAA,cACV,YAAY;AAAA,cACZ,UAAU;AAAA,cACV,UAAU;AAAA,cACV,cAAc,CAAC,EAAK;AAAA,cACpB,aAAa;AAAA,YACf;AAAA,UACF;AAAA,UACA,OAAO6B,GAAS;AAAA,YACd,MAAM;AAAA,cACJ;AAAA,gBACE,UAAU;AAAA,gBACV,SAAS7B,EAAE,SAAS;AAAA,cACtB;AAAA,YACF;AAAA,UAAA,CACD;AAAA,UACD,OAAO6B,GAAS;AAAA,YACd,MAAM;AAAA,YACN,WAAAiQ;AAAA,YACA,WAAW,CAAC,EAAI;AAAA,UAAA,CACjB;AAAA,QACH;AAAA,QACA,SAAS;AAAA,UACP,WAAW;AAAA,YACT,EAAE,MAAM9R,EAAE,aAAa,GAAG,OAAO,WAAW;AAAA,YAC5C,EAAE,MAAMA,EAAE,eAAe,GAAG,OAAO,SAAS;AAAA,UAC9C;AAAA,UACA,WAAW;AAAA,YACT;AAAA,cACE,MAAMA,EAAE,iCAAiC;AAAA,cACzC,OAAO;AAAA,YACT;AAAA,UACF;AAAA,QACF;AAAA,QACA,IAAI,CAACgC,MACI,IAAI,QAAQ,SAAUmO,GAAS;AACpC,cAAIT,EAAa,MAAM,SAAS1N,EAAK,IAAI,GAAG;AAClC,YAAAnC,GAAA,MAAMG,EAAE,SAAS,CAAC;AAC1B;AAAA;AAEF,UAAA0R,EAAW,EAAE,YAAY1P,GAAM,QAAQA,EAAM,CAAA,GAC7CmO,EAAQ,IAAI;AAAA,QAAA,CACb;AAAA,MACH,CACD;AACD,MAAA8B,GAASD,CAAS;AAAA,IAAA,GAGdG,KAAW,CAACL,MAAmB;AACnC,YAAME,IAAYnQ,GAAS;AAAA,QACzB,MAAM;AAAA,QACN,WAAW;AAAA,QACX,SAAS;AAAA,UACP,OAAOiQ,KAAa,aAAa9R,EAAE,QAAQ,IAAIA,EAAE,QAAQ;AAAA,UACzD,MAAM8R,KAAa,aAAaxC,EAAW,QAAQG,EAAW;AAAA,QAChE;AAAA,QACA,IAAI,CAAC2C,MAAa;AACZ,UAAAA,KAAOA,EAAI,SAAS,IACIpE,GAAA;AAAA,YACxB,QAAQgB,EAAY;AAAA,YACpB,mBAAmBoD;AAAA,UAAA,CACpB,EAAE,KAAK,MAAM;AACJ,YAAAvS,GAAA,QAAQG,EAAE,MAAM,CAAC,GACbyQ;UAAA,CACb,KAEO5Q,GAAA,QAAQG,EAAE,MAAM,CAAC,GACbyQ;QAEhB;AAAA,QACA,QAAQ,CAAC4B,MAAgB;AACvB,UAAIA,KACU5B;QAEhB;AAAA,MAAA,CACD;AACD,MAAAwB,GAASD,CAAS;AAAA,IAAA,GAGdM,KAAc,CAACf,MAAgB;AACnC,UAAIgB,IAAM;AACV,YAAMnV,IAAQ,OAAO,SAAS,KAAK,QAAQ,GAAG;AAC9C,MAAIA,MAAU,KAENmV,IAAA,OAAO,SAAS,KAAK,UAAU,GAAGnV,CAAK,IAAI,MAAMmU,EAAO,MAG9DgB,IAAM,OAAO,SAAS,OAAO,MAAMhB,EAAO,KAE5CiB,GAAU,EAAE,KAAKD,GAAK,SAASvS,EAAE,MAAM,GAAG;AAAA,IAAA,GAGtCyS,KAAc,CAAClB,MAAgB;AACnC,MAAAmB,GAAM,QAAQ;AAAA,QACZ,OAAO,MACL,GAAG1S,EAAE,OAAO,KAAKuR,EAAO,QAAQA,KAAA,QAAAA,EAAQ,UAAUvR,EAAE,MAAM,IAAIA,EAAE,MAAM;AAAA,QACxE,SAASA,EAAE,8BAA8B;AAAA,QACzC,MAAM,MAAM2S,EAAYC,EAAyB;AAAA,QACjD,QAAQ5S,EAAE,IAAI;AAAA,QACd,OAAO;AACE,iBAAA,IAAI,QAAQ,CAAWmQ,MAAA;AACP,YAAApC,GAAA;AAAA,cACnB,QAAQiB,EAAY;AAAA,cACpB,kBAAkBuC,KAAA,gBAAAA,EAAQ;AAAA,YAAA,CAC3B,EACE,KAAK,MAAM;AACD,cAAApC,EAAA,QAAQA,EAAS,MAAM,OAAO,CAACxR,MAAcA,EAAK,MAAM4T,EAAO,EAAE,GAC1EV,EAAiB,IAAI,GACbhR,GAAA,QAAQG,EAAE,MAAM,CAAC;AAAA,YAAA,CAC1B,EACA,QAAQ,MAAM;AACb,cAAAmQ,EAAQ,IAAI;AAAA,YAAA,CACb;AAAA,UAAA,CACJ,EAAE,MAAM,MAAM,QAAQ,IAAI,cAAc,CAAC;AAAA,QAC5C;AAAA;AAAA,QAEA,WAAW;AAAA,QAAC;AAAA,MAAA,CACb;AAAA,IAAA,GAEGC,KAA0B,MAAM;AAMpC,YAAMyC,IALclC,GAAc7T,EAAM,UAAUA,EAAM,WAAW,MAAMkD,GAAG;AAAA,QAC1E,WAAW;AAAA,QACX,SAAS;AAAA,QACT,YAAY;AAAA,MAAA,CACb,EACsC,oBACjC8S,IAAyB,CAAA;AAC/B,aAAID,KACiBA,EAAA,QAAQ,CAAClV,MAAc;AACxC,cAAM8D,IAAQiN,EAAuB,UAAU/Q,EAAK,GAAG;AACnD,QAAuB8D,KAAU,SACZqR,EAAAnV,EAAK,UAAU,IAAI8D;AAAA,MAC5C,CACD,GAEIqR;AAAA,IAAA,GAGHrB,KAAe,CAAC/T,MAAc;AAClC,YAAMkT,IAAoB,CAAA;AACrB,MAAAlT,EAAA,QAAQ,CAACC,MAAc;AAC1B,YAAIkS,IAAoB,MACpBC,IAAkB,MAClBE,IAAuB,MACvBC,IAAkB;AAClB,QAAAtS,EAAK,KAAK,uBACZkS,IAAe,CAAA,GACfC,IAAa,CAAA,GACbE,IAAkBrS,EAAK,KAAK,iBAC5BsS,IAAatS,EAAK,KAAK,eAEvBkS,IAAelS,EAAK,KAAK,cACzBmS,IAAanS,EAAK,KAAK,YACvBqS,IAAkB,CAAA,GAClBC,IAAa,CAAA,IAEfW,EAAkB,KAAK;AAAA,UACrB,IAAIjT,EAAK;AAAA,UACT,cAAAkS;AAAA,UACA,YAAAC;AAAA,UACA,aAAanS,EAAK,KAAK;AAAA,UACvB,iBAAAqS;AAAA,UACA,YAAAC;AAAA,UACA,qBAAqBtS,EAAK,KAAK;AAAA,QAAA,CAChC;AAAA,MAAA,CACF,GACD6S,EAASI,CAAiB;AAAA,IAAA;AAE5B,IAAAlM;AAAA,MACE,MAAM5H,EAAM;AAAA;AAAA,MACZ,MAAM;AACJ,QAAA4V,GAAM,QAAQ;AAAA,UACZ,OAAO,MAAM1S,EAAE,UAAU;AAAA,UACzB,SAASA,EAAE,eAAe;AAAA,UAC1B,MAAM,MAAM2S,EAAYC,EAAyB;AAAA,UACjD,QAAQ5S,EAAE,IAAI;AAAA,UACd,OAAO;AACE,mBAAA,IAAI,QAAQ,CAAWmQ,MAAA;AACjB,cAAAuB,EAAA;AAAA,gBACT,YAAY;AAAA,kBACV,WAAW,CAAC,EAAI;AAAA,kBAChB,WAAW,CAAC5U,EAAM,eAAe,SAAS;AAAA,kBAC1C,MAAMA,EAAM,eAAe;AAAA,gBAC7B;AAAA,gBACA,QAAQA,EAAM;AAAA,cAAA,CACf,GACDqT,EAAQ,IAAI;AAAA,YAAA,CACb,EAAE,MAAM,MAAM,QAAQ,IAAI,cAAc,CAAC;AAAA,UAC5C;AAAA;AAAA,UAEA,WAAW;AAAA,UAAC;AAAA,QAAA,CACb;AAAA,MACH;AAAA,IAAA,GAEFzL;AAAA,MACE,MAAM5H,EAAM;AAAA;AAAA,MACZ,MAAM;AACJ,cAAMkV,IAAYnQ,GAAS;AAAA,UACzB,MAAM;AAAA,UACN,SAAS;AAAA,UACT,OAAO7B,EAAE,MAAM;AAAA,UACf,MAAM;AAAA,YACJ,UAAU;AAAA,cACR,YAAY;AAAA,cACZ,QAAQ;AAAA,cACR,KAAK,CAAC;AAAA,YACR;AAAA,YACA,QAAQ;AAAA,cACN;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM;AAAA,gBACN,OAAOA,EAAE,MAAM;AAAA,gBACf,UAAU;AAAA,gBACV,YAAY;AAAA,gBACZ,WAAW;AAAA,gBACX,cAAc;AAAA,gBACd,aAAaA,EAAE,SAAS;AAAA,cAC1B;AAAA,cACA;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM;AAAA,gBACN,OAAOA,EAAE,QAAQ;AAAA,gBACjB,UAAU;AAAA,gBACV,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,UAAU;AAAA,gBACV,cAAc;AAAA,gBACd,aAAa;AAAA,cACf;AAAA,YACF;AAAA,YACA,OAAO6B,GAAS;AAAA,cACd,MAAM;AAAA,gBACJ;AAAA,kBACE,UAAU;AAAA,kBACV,SAAS7B,EAAE,SAAS;AAAA,gBACtB;AAAA,cACF;AAAA,YAAA,CACD;AAAA,YACD,OAAO6B,GAAS;AAAA,cACd,MAAM;AAAA,cACN,WAAW;AAAA,cACX,WAAW,CAAC,EAAI;AAAA,YAAA,CACjB;AAAA,UACH;AAAA,UACA,SAAS;AAAA,YACP,WAAW;AAAA,cACT,EAAE,MAAM7B,EAAE,aAAa,GAAG,OAAO,WAAW;AAAA,cAC5C,EAAE,MAAMA,EAAE,eAAe,GAAG,OAAO,SAAS;AAAA,YAC9C;AAAA,YACA,WAAW;AAAA,cACT;AAAA,gBACE,MAAMA,EAAE,iCAAiC;AAAA,gBACzC,OAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AAAA,UACA,IAAI,CAACgC,MACI,IAAI,QAAQ,SAAUmO,GAAS;AAEpC,gBADqBhB,EAAS,MAAM,IAAI,CAACxR,MAAcA,EAAK,IAAI,EAC/C,SAASqE,EAAK,IAAI,GAAG;AAC5B,cAAAnC,GAAA,MAAMG,EAAE,SAAS,CAAC;AAC1B;AAAA;AAEF,YAAA0R,EAAW,EAAE,YAAY1P,GAAM,QAAQA,EAAM,CAAA,GAC7CmO,EAAQ,IAAI;AAAA,UAAA,CACb;AAAA,QACH,CACD;AACD,QAAA8B,GAASD,CAAS;AAAA,MACpB;AAAA,IAAA,GAGFtN;AAAA,MACE,MAAM5H,EAAM;AAAA;AAAA,MACZ,MAAM;AACJ,QAAA2U,GAAatC,EAAS,KAAK;AAAA,MAC7B;AAAA,IAAA;AAEI,UAAA4D,KAAgC,CAACC,MAAgB;AAC/C,YAAAC,IAActC,GAAc7T,EAAM,eAAe,UAAUA,EAAM,WAAW,MAAMkD,GAAG;AAAA,QACzF,WAAW;AAAA,QACX,SAAS;AAAA,QACT,YAAY;AAAA,MAAA,CACb;AACD,MAAIiT,EAAY,sBACDA,EAAY,mBAAmB,KAAK,CAACtV,MAAcA,EAAK,QAAQqV,CAAG,KAElEvC;IAEhB;AAEF,WAAA9L,GAAU,MAAM;AACe,MAAAuO,KAAE,GAAG,UAAUH,EAA6B;AAAA,IAAA,CAC1E,GACDnO,GAAY,MAAM;AACa,MAAAsO,KAAE,IAAI,UAAUH,EAA6B;AAAA,IAAA,CAC3E,GAEDI,GAAY,MAAM;AAChB,MAAA1B,GAAatC,EAAS,KAAK;AAAA,IAAA,CAC5B,GACM;AAAA,MACL,OAAArS;AAAA,MACA,SAAAsU;AAAA,MACA,aAAAC;AAAA,MACA,SAAAjD;AAAA,MACA,YAAAkB;AAAA,MACA,YAAAG;AAAA,MACA,SAAAP;AAAA,MACA,SAAAgD;AAAA,MACA,UAAAC;AAAA,MACA,WAAAb;AAAA,MACA,YAAAE;AAAA,MACA,cAAAhU;AAAA,MACA,aAAA8U;AAAA,MACA,aAAAG;AAAA,MACA,UAAA3D;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;AAlvCoB,MAAA5P,KAAA,EAAA,OAAA,EAAA,eAAA,MAAA,EAAA,6IA0DLgH,KAAA,CAAA,SAAA,qBAsCKI,KAAA,EAAA,OAAA,EAAA,eAAA,MAAA,EAAA;;gPArJnBpI,EA2MS,QAAA;;IADM,cAAA,EAAA,SAAA,GAAA,QAAAI,EAAA,SAAA,KAAA,MAAA,WAAA,OAAA;AAAA,EAAA,GAAA;AAAA,aAxMHE,EAAW,MAAA;AAAA,MAAAC,EAAA2U,GAAA;AAAA,QAClB,WAAU9U,EAAK;AAAA,QAChB,sBAAiBC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAI,MAAAL,EAAA,UAAAK;AAAA,QACjB,UAAA;AAAA,QAAA,OAAA;AAAA,QAEW,OAAA,EAAA,YACT,qBAD+B;AAAA,MAAA,GAAA;AAAA,oBACAH,EAAQ,CAAA,EAAA,UAAA6U,QAAA;AAAA,UAAA5U,EAAA6U,GAAA;AAAA;UAiGtB,GAAA,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA,CAAA;AAAA,iBA9FX9U,EAAG,MAAA;AAAA,WAAAL,OACDoV,GAAW;AAAA,YAAA,KAAA;AAAA,YAER,OAAMhI,EACuCjN,EAAA,WAAA;AAAA,UAAA,GAAA;AAAA;cAE7CW,EAOG,QAAAC,IAAAC,EAAAb,EAAA,GAAA,MAAA,CAAA,GAAA,CAAA;AAAA,YAAA,CAAA;AAAA,YALC,OAAAE,EAAK,MAAmB;AAAA,cAAfC,EAAAmH,GAAA,MAAA;AAAA,gBAAA,OAAApH,EAAA,MAAA;AAAA,kBAIlB8G,EAAAnG,EAAAb,EAAA,GAAA,QAAA,CAAA,GAAA,CAAA;AAAA,gBAAA,CAAA;AAAA,yBAF0BE,EAA1B,MAAA;AAAA,kBACMC,EAAA+U,GAAA;AAAA,oBAAA,OAAA,EAAA,gBAAA,OAAA;AAAA;;;gBAGV,GAAA;AAAA,cAAA,CAAA;AAAA,cACsB/U,EAAAmH,GAAA,MAAA;AAAA,gBAAA,OAAApH,EAAA,MAAA;AAAA,kBAC+B8G,EAAAnG,EAAAb,EAAA,GAAA,QAAA,CAAA,GAAA,CAAA;AAAA,gBAAA,CAAA;AAAA,yBAAnCE,EAAK,MAAA;AAAA,kBAAAC,EAAAgV,GAAA;AAAA;;;;;;YAGzB,SAAAjV,EAAA,MAAA;AAAA,cAAAF,EAAA,WAAA,SAAA,KAAAH,EAEmB,GAAAC,EAAAsV,GAAA;AAAA,gBAChB,KAAA;AAAA,gBACA,SAAYpV,EAAA;AAAA,gBACZ,WAAUA,EAAE;AAAA,gBACZ,YAAYA,EAAK;AAAA,gBACjB,YAAM;AAAA,gBAAA,YAAA;AAAA,gBAEI,MAAA;AAAA,cAAA,GAAA;AAAA,+BACT,QAAAqV,GA8DM,QAAApC,EAAA,MAAA;AAAA,kBAAAoC,EAAA,cAAA,UAAAxV,EAAA,GA7DSS,EAAA,OAAA;AAAA,oBAEb,KAAoC;AAAA,oBACnC,OAAK;AAAA,oBAAA,OAAA,EAAA,OAAA,QAAA,QAAA,UAAA;AAAA,oBAEN,SAUY,CAAAD,MAAAL,EAAA,WAAAiT,CAAA;AAAA,kBAAA,GAAA;AAAA,sBARF3L,GAAqB;AAAA,sBAC7B,OAAU2L,EAAA;AAAA,sBACT,OAAoBjT,EAAA,SAAA;AAAA,sBACpB,WAAA;AAAA,sBAAA,sBAAA;AAAA,sBAIK,cAAA,EAAA,UAAA,QAAA;AAAA,oBAAA,GAAA;AAAA;;;sBAER,GAAA;AAAA,oBAAA,GACE,MAAM,CAAK,SAAA,OAAA,CAAA;AAAA,oBAAAW,EACS,QAApB;AAAA,sBAC2B,OAAc;AAAA,sBAAA,OAAAsM,EAAA;AAAA;wBAItCjN,EAAA,eAAA,OAAAiT,EAAA,KAAO,EAAG,OAAA,WAAA,YAAA,OAAA,IAAA,CAAA;AAAA,sBAAA,CAAA;AAAA,oBASF,GAAApS,EACToS,EAyBS,GAAA,GAAA,CAAA;AAAA,oBAAA9S,EAzBTmV,GAyBS,EAAA,OAAA,WAAA,GAAA;AAAA,sBAjBO,SAAApV,EAAA,MAAA;AAAA,wBAAAC,EAPaoV,GAAa,MAAO;AAAA,0BAA/C,SAAArV,EAAA,MAAA;AAAA,4BAAA,CAAA+S,EAAA,aAAAjT,EAMM,gBAAAF,EAAA0V,GAAA,EAAA,KAAA,EAAA,GAAA;AAAA,8BAAA,SAJEtV,EAAC,MAAc;AAAA,gCAAAS,EACb,KAAE;AAAA,kCAAA,MAAA;AAAA;;;;4BAWN,GAAA,IAAA,KAAAiG,EAAA,IAAA,EAAA;AAAA,4BAAAzG,EALJqV,GAKI,MAAA;AAAA,8BAAA,SAJEtV,EAAC,MAAc;AAAA,gCAAAS,EACb,KAAE;AAAA,kCAAA,MAAA;AAAA;;;8BAKQ,GAAA;AAAA,4BAAA,GAAA,IAAA;AAAA,4BAMd,CAAAsS,EAAA,aAAAjT,EAAA,WAAAH,KAAAC,EAAA0V,GAAA,EAAA,KAAA,EAAA,GAAA;AAAA,8BAAA,SAJEtV,EAAC,MAAc;AAAA,gCAAAS,EACb,KAAE;AAAA,kCAAA,MAAA;AAAA;;;;;;;;;+BA1BwBT,EAAtC,MAAA;AAAA,wBACMS,EAAA,QAAA;AAAA,0BAAA,OACP,EAED,OAAA,SAAA,eAAA,MAAA;AAAA,0BAAA,SAAAV,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAwV,GAAA,MAAA;AAAA;;;;;;;;;;;UAmCP,GAAA,GAAG,CAAE,OAAG,CAAA;AAAA,WAAA5V,OACDoV,GAAW;AAAA,YAAA,KAAA;AAAA,YAER,OAAMhI,EACuCjN,EAAA,WAAA;AAAA,UAAA,GAAA;AAAA;cAE7CW,EAOG,QAAAqH,IAAAnH,EAAAb,EAAA,GAAA,MAAA,CAAA,GAAA,CAAA;AAAA,YAAA,CAAA;AAAA,YALC,OAAAE,EAAK,MAAmB;AAAA,cAAfC,EAAAmH,GAAA,MAAA;AAAA,gBAAA,OAAApH,EAAA,MAAA;AAAA,kBAIlB8G,EAAAnG,EAAAb,EAAA,GAAA,QAAA,CAAA,GAAA,CAAA;AAAA,gBAAA,CAAA;AAAA,yBAF0BE,EAA1B,MAAA;AAAA,kBACMC,EAAA+U,GAAA;AAAA,oBAAA,OAAA,EAAA,gBAAA,OAAA;AAAA;;;gBAGV,GAAA;AAAA,cAAA,CAAA;AAAA,cACsB/U,EAAAmH,GAAA,MAAA;AAAA,gBAAA,OAAApH,EAAA,MAAA;AAAA,kBAC6B8G,EAAAnG,EAAAb,EAAA,GAAA,QAAA,CAAA,GAAA,CAAA;AAAA,gBAAA,CAAA;AAAA,yBAAjCE,EAAK,MAAA;AAAA,kBAAAC,EAAAgV,GAAA;AAAA;;;;;;YAGzB,SAAAjV,EAAA,MAAA;AAAA,cAAAF,EAAA,WAAA,SAAA,KAAAH,EAEmB,GAAAC,EAAAsV,GAAA;AAAA,gBAChB,KAAA;AAAA,gBACA,SAAYpV,EAAA;AAAA,gBACZ,WAAUA,EAAE;AAAA,gBACZ,YAAYA,EAAK;AAAA,gBACjB,YAAM;AAAA,gBAAA,YAAA;AAAA,gBAEI,MAAA;AAAA,cAAA,GAAA;AAAA,+BACT,QAAAqV,GA8DM,QAAApC,EAAA,MAAA;AAAA,kBAAAoC,EAAA,cAAA,UAAAxV,EAAA,GA7DSS,EAAA,OAAA;AAAA,oBAEb,KAAoC;AAAA,oBACnC,OAAK;AAAA,oBAAA,OAAA,EAAA,OAAA,QAAA,QAAA,UAAA;AAAA,oBAEN,SAUY,CAAAD,MAAAL,EAAA,WAAAiT,CAAA;AAAA,kBAAA,GAAA;AAAA,sBARF3L,GAAqB;AAAA,sBAC7B,OAAU2L,EAAA;AAAA,sBACT,OAAoBjT,EAAA,SAAA;AAAA,sBACpB,WAAA;AAAA,sBAAA,sBAAA;AAAA,sBAIK,cAAA,EAAA,UAAA,QAAA;AAAA,oBAAA,GAAA;AAAA;;;sBAER,GAAA;AAAA,oBAAA,GACE,MAAM,CAAK,SAAA,OAAA,CAAA;AAAA,oBAAAW,EACS,QAApB;AAAA,sBAC2B,OAAc;AAAA,sBAAA,OAAAsM,EAAA;AAAA;wBAItCjN,EAAA,eAAA,OAAAiT,EAAA,KAAO,EAAG,OAAA,WAAA,YAAA,OAAA,IAAA,CAAA;AAAA,sBAAA,CAAA;AAAA,oBASF,GAAApS,EACToS,EAyBS,GAAA,GAAA,CAAA;AAAA,oBAAA9S,EAzBTmV,GAyBS,EAAA,OAAA,WAAA,GAAA;AAAA,sBAjBO,SAAApV,EAAA,MAAA;AAAA,wBAAAC,EAPaoV,GAAa,MAAO;AAAA,0BAA/C,SAAArV,EAAA,MAAA;AAAA,4BAAA,CAAA+S,EAAA,aAAAjT,EAMM,gBAAAF,EAAA0V,GAAA,EAAA,KAAA,EAAA,GAAA;AAAA,8BAAA,SAJEtV,EAAC,MAAc;AAAA,gCAAAS,EACb,KAAE;AAAA,kCAAA,MAAA;AAAA;;;;4BAWN,GAAA,IAAA,KAAAiG,EAAA,IAAA,EAAA;AAAA,4BAAAzG,EALJqV,GAKI,MAAA;AAAA,8BAAA,SAJEtV,EAAC,MAAc;AAAA,gCAAAS,EACb,KAAE;AAAA,kCAAA,MAAA;AAAA;;;8BAKQ,GAAA;AAAA,4BAAA,GAAA,IAAA;AAAA,4BAMd,CAAAsS,EAAA,aAAAjT,EAAA,WAAAH,KAAAC,EAAA0V,GAAA,EAAA,KAAA,EAAA,GAAA;AAAA,8BAAA,SAJEtV,EAAC,MAAc;AAAA,gCAAAS,EACb,KAAE;AAAA,kCAAA,MAAA;AAAA;;;;;;;;;+BA1BwBT,EAAtC,MAAA;AAAA,wBACMS,EAAA,QAAA;AAAA,0BAAA,OACP,EAED,OAAA,SAAA,eAAA,MAAA;AAAA,0BAAA,SAAAV,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAwV,GAAA,MAAA;AAAA;;;;;;;;;;;;;;;;;;;qDC1JhBC,KAAenX,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,YAAAoX;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,OAAO,CAAC,QAAQ;AAAA,EAChB,MAAMnX,GAAO,EAAE,MAAAC,KAAQ;AAId,WAAA;AAAA,MACL,OAAAD;AAAA,MACA,QALa,CAACkF,GAAWkS,GAAiBC,MAAoB;AACzD,QAAApX,EAAA,UAAUiF,GAAMkS,GAAYC,CAAU;AAAA,MAAA;AAAA,IAI3C;AAAA,EAEJ;AACF,CAAC;;kCAnCCjW,EAKS,QAAA;;IADL,cAAA,EAAA,SAAA,GAAA,QAAAI,EAAA,UAAA,SAAA,KAAA,MAAA,WAAA,OAAA;AAAA,EAAA,GAAA;AAAA,aAFCE,EAAY,MAAA;AAAA,MAAAC,EACJ2V,GAAM;AAAA,QAAA,cAAA9V,EAAA;AAAA;;;;;;;"}
|