amis 1.9.1-beta.18 → 1.9.1-beta.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. package/lib/components/Radios.d.ts +10 -10
  2. package/lib/components/ResultBox.d.ts +44 -40
  3. package/lib/components/ResultBox.js +43 -7
  4. package/lib/components/ResultBox.js.map +2 -2
  5. package/lib/components/ResultTableList.js +16 -17
  6. package/lib/components/ResultTableList.js.map +2 -2
  7. package/lib/components/Select.d.ts +498 -294
  8. package/lib/components/Select.js +64 -12
  9. package/lib/components/Select.js.map +2 -2
  10. package/lib/components/TableSelection.d.ts +42 -40
  11. package/lib/components/TableSelection.js +7 -2
  12. package/lib/components/TableSelection.js.map +2 -2
  13. package/lib/components/TooltipWrapper.d.ts +1 -1
  14. package/lib/components/TooltipWrapper.js.map +2 -2
  15. package/lib/components/TransferDropDown.d.ts +43 -40
  16. package/lib/components/TransferDropDown.js +2 -2
  17. package/lib/components/TransferDropDown.js.map +2 -2
  18. package/lib/index.js +1 -1
  19. package/lib/locale/de-DE.js +1 -1
  20. package/lib/locale/de-DE.js.map +2 -2
  21. package/lib/locale/en-US.js +1 -1
  22. package/lib/locale/en-US.js.map +2 -2
  23. package/lib/renderers/Form/DiffEditor.d.ts +66 -20
  24. package/lib/renderers/Form/Editor.d.ts +66 -20
  25. package/lib/renderers/Form/Group.js +1 -1
  26. package/lib/renderers/Form/Group.js.map +2 -2
  27. package/lib/renderers/Form/InputImage.js.map +2 -2
  28. package/lib/renderers/Form/InputTag.d.ts +8 -0
  29. package/lib/renderers/Form/InputTag.js +2 -2
  30. package/lib/renderers/Form/InputTag.js.map +2 -2
  31. package/lib/renderers/Form/Options.js +7 -7
  32. package/lib/renderers/Form/Options.js.map +2 -2
  33. package/lib/renderers/Form/Select.d.ts +24 -0
  34. package/lib/renderers/Form/Select.js +5 -3
  35. package/lib/renderers/Form/Select.js.map +2 -2
  36. package/lib/renderers/Form/Transfer.d.ts +1 -0
  37. package/lib/renderers/Form/Transfer.js +4 -0
  38. package/lib/renderers/Form/Transfer.js.map +2 -2
  39. package/lib/renderers/Form/TreeSelect.d.ts +0 -1
  40. package/lib/renderers/Form/TreeSelect.js +1 -9
  41. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  42. package/lib/renderers/Form/index.js +8 -4
  43. package/lib/renderers/Form/index.js.map +2 -2
  44. package/lib/renderers/QRCode.d.ts +16 -0
  45. package/lib/renderers/QRCode.js +25 -1
  46. package/lib/renderers/QRCode.js.map +2 -2
  47. package/lib/renderers/Table/exportExcel.js +50 -36
  48. package/lib/renderers/Table/exportExcel.js.map +2 -2
  49. package/lib/renderers/Table/index.d.ts +2 -0
  50. package/lib/renderers/Table/index.js +37 -5
  51. package/lib/renderers/Table/index.js.map +2 -2
  52. package/lib/renderers/Tpl.d.ts +4 -0
  53. package/lib/renderers/Tpl.js +6 -3
  54. package/lib/renderers/Tpl.js.map +2 -2
  55. package/lib/store/combo.d.ts +72 -22
  56. package/lib/store/form.d.ts +30 -9
  57. package/lib/store/form.js +28 -10
  58. package/lib/store/form.js.map +2 -2
  59. package/lib/store/formItem.d.ts +3 -1
  60. package/lib/store/formItem.js +3 -5
  61. package/lib/store/formItem.js.map +2 -2
  62. package/lib/store/table.d.ts +60 -18
  63. package/lib/themes/ang-ie11.css +87 -6
  64. package/lib/themes/ang.css +92 -6
  65. package/lib/themes/ang.css.map +1 -1
  66. package/lib/themes/antd-ie11.css +87 -6
  67. package/lib/themes/antd.css +92 -6
  68. package/lib/themes/antd.css.map +1 -1
  69. package/lib/themes/cxd-ie11.css +87 -6
  70. package/lib/themes/cxd.css +94 -6
  71. package/lib/themes/cxd.css.map +1 -1
  72. package/lib/themes/dark-ie11.css +87 -6
  73. package/lib/themes/dark.css +92 -6
  74. package/lib/themes/dark.css.map +1 -1
  75. package/lib/themes/default-ie11.css +87 -6
  76. package/lib/themes/default.css +94 -6
  77. package/lib/themes/default.css.map +1 -1
  78. package/lib/utils/helper.d.ts +1 -0
  79. package/lib/utils/helper.js +11 -1
  80. package/lib/utils/helper.js.map +2 -2
  81. package/package.json +1 -1
  82. package/schema.json +94 -28
  83. package/scss/_properties.scss +11 -6
  84. package/scss/components/_result-box.scss +34 -2
  85. package/scss/components/form/_select.scss +88 -32
  86. package/scss/components/form/_selection.scss +9 -6
  87. package/scss/themes/_cxd-variables.scss +2 -0
  88. package/scss/themes/cxd.scss +0 -2
  89. package/sdk/ang-ie11.css +101 -6
  90. package/sdk/ang.css +106 -6
  91. package/sdk/antd-ie11.css +101 -6
  92. package/sdk/antd.css +106 -6
  93. package/sdk/barcode.js +51 -51
  94. package/sdk/charts.js +14 -14
  95. package/sdk/codemirror.js +7 -7
  96. package/sdk/color-picker.js +65 -65
  97. package/sdk/cropperjs.js +2 -2
  98. package/sdk/cxd-ie11.css +101 -6
  99. package/sdk/cxd.css +108 -6
  100. package/sdk/dark-ie11.css +101 -6
  101. package/sdk/dark.css +106 -6
  102. package/sdk/exceljs.js +1 -1
  103. package/sdk/locale/de-DE.js +2 -2
  104. package/sdk/markdown.js +69 -69
  105. package/sdk/papaparse.js +1 -1
  106. package/sdk/renderers/Form/CityDB.js +1 -1
  107. package/sdk/rest.js +16 -16
  108. package/sdk/rich-text.js +62 -62
  109. package/sdk/sdk-ie11.css +101 -6
  110. package/sdk/sdk.css +108 -6
  111. package/sdk/sdk.js +1648 -1647
  112. package/sdk/thirds/hls.js/hls.js +1 -1
  113. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  114. package/sdk/tinymce.js +57 -57
  115. package/src/components/ResultBox.tsx +98 -12
  116. package/src/components/ResultTableList.tsx +32 -33
  117. package/src/components/Select.tsx +149 -17
  118. package/src/components/TableSelection.tsx +15 -8
  119. package/src/components/TooltipWrapper.tsx +20 -14
  120. package/src/components/TransferDropDown.tsx +9 -1
  121. package/src/locale/de-DE.ts +2 -2
  122. package/src/locale/en-US.ts +2 -2
  123. package/src/renderers/Form/Group.tsx +1 -1
  124. package/src/renderers/Form/InputImage.tsx +4 -2
  125. package/src/renderers/Form/InputTag.tsx +14 -0
  126. package/src/renderers/Form/Options.tsx +7 -9
  127. package/src/renderers/Form/Select.tsx +41 -2
  128. package/src/renderers/Form/Transfer.tsx +6 -0
  129. package/src/renderers/Form/TreeSelect.tsx +14 -16
  130. package/src/renderers/Form/index.tsx +11 -2
  131. package/src/renderers/QRCode.tsx +50 -1
  132. package/src/renderers/Table/exportExcel.ts +29 -12
  133. package/src/renderers/Table/index.tsx +42 -6
  134. package/src/renderers/Tpl.tsx +11 -1
  135. package/src/store/form.ts +31 -24
  136. package/src/store/formItem.ts +65 -52
  137. package/src/utils/helper.ts +11 -1
@@ -6,8 +6,8 @@
6
6
  "/src/store/form.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import {\n types,\n getEnv,\n flow,\n getRoot,\n detach,\n destroy,\n isAlive,\n Instance\n} from 'mobx-state-tree';\nimport debounce from 'lodash/debounce';\nimport {ServiceStore} from './service';\nimport {FormItemStore, IFormItemStore, SFormItemStore} from './formItem';\nimport {Api, ApiObject, fetchOptions, Payload} from '../types';\nimport {ServerError} from '../utils/errors';\nimport {\n getVariable,\n setVariable,\n deleteVariable,\n cloneObject,\n createObject,\n difference,\n guid,\n isEmpty,\n mapObject,\n keyToPath\n} from '../utils/helper';\nimport isEqual from 'lodash/isEqual';\nimport flatten from 'lodash/flatten';\nimport {getStoreById, removeStore} from './manager';\nimport {filter} from '../utils/tpl';\nimport {normalizeApiResponseData} from '../utils/api';\n\nexport const FormStore = ServiceStore.named('FormStore')\n .props({\n inited: false,\n validated: false,\n submited: false,\n submiting: false,\n savedData: types.frozen(),\n // items: types.optional(types.array(types.late(() => FormItemStore)), []),\n canAccessSuperData: true,\n persistData: types.optional(types.union(types.string, types.boolean), ''),\n restError: types.optional(types.array(types.string), []) // 没有映射到表达项上的 errors\n })\n .views(self => {\n function getItems() {\n const formItems: Array<IFormItemStore> = [];\n\n // 查找孩子节点中是 formItem 的表单项\n const pool = self.children.concat();\n while (pool.length) {\n const current = pool.shift()!;\n\n if (current.storeType === FormItemStore.name) {\n formItems.push(current);\n } else {\n pool.push(...current.children);\n }\n }\n\n return formItems;\n }\n\n return {\n get loading() {\n return self.saving || self.fetching;\n },\n\n get items() {\n return getItems();\n },\n\n get errors() {\n let errors: {\n [propName: string]: Array<string>;\n } = {};\n\n getItems().forEach(item => {\n if (!item.valid) {\n errors[item.name] = Array.isArray(errors[item.name])\n ? errors[item.name].concat(item.errors)\n : item.errors.concat();\n }\n });\n\n return errors;\n },\n\n getValueByName(\n name: string,\n canAccessSuperData = self.canAccessSuperData\n ) {\n return getVariable(self.data, name, canAccessSuperData);\n },\n\n getPristineValueByName(name: string) {\n return getVariable(self.pristine, name);\n },\n\n getItemById(id: string) {\n return getItems().find(item => item.itemId === id);\n },\n\n getItemByName(name: string) {\n return getItems().find(item => item.name === name);\n },\n\n getItemsByName(name: string) {\n return getItems().filter(item => item.name === name);\n },\n\n get valid() {\n return (\n getItems().every(item => item.valid) &&\n (!self.restError || !self.restError.length)\n );\n },\n\n get validating() {\n return getItems().some(item => item.validating);\n },\n\n get isPristine() {\n return isEqual(self.pristine, self.data);\n },\n\n get modified() {\n if (self.savedData) {\n return self.savedData !== self.data;\n }\n\n return !this.isPristine;\n },\n\n get persistKey() {\n return `${location.pathname}/${self.path}/${\n typeof self.persistData === 'string'\n ? filter(self.persistData, self.data)\n : self.persistData\n }`;\n }\n };\n })\n .actions(self => {\n function setValues(values: object, tag?: object, replace?: boolean) {\n self.updateData(values, tag, replace);\n\n // 如果数据域中有数据变化,就都reset一下,去掉之前残留的验证消息\n self.items.forEach(item => item.reset());\n\n // 同步 options\n syncOptions();\n }\n\n function setValueByName(\n name: string,\n value: any,\n isPristine: boolean = false,\n force: boolean = false\n ) {\n // 没有变化就不跑了。\n const origin = getVariable(self.data, name, false);\n\n const prev = self.data;\n const data = cloneObject(self.data);\n\n if (value !== origin) {\n if (prev.__prev) {\n // 基于之前的 __prev 改\n const prevData = cloneObject(prev.__prev);\n setVariable(prevData, name, origin);\n Object.defineProperty(data, '__prev', {\n value: prevData,\n enumerable: false,\n configurable: false,\n writable: false\n });\n } else {\n Object.defineProperty(data, '__prev', {\n value: {...prev},\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n } else if (!force) {\n return;\n }\n\n setVariable(data, name, value);\n\n if (isPristine) {\n const pristine = cloneObject(self.pristine);\n setVariable(pristine, name, value);\n self.pristine = pristine;\n }\n\n if (!data.__pristine) {\n Object.defineProperty(data, '__pristine', {\n value: self.pristine,\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n\n self.data = data;\n\n // 同步 options\n syncOptions();\n }\n\n function deleteValueByName(name: string) {\n const prev = self.data;\n const data = cloneObject(self.data);\n\n if (prev.__prev) {\n // 基于之前的 __prev 改\n const prevData = cloneObject(prev.__prev);\n setVariable(prevData, name, getVariable(prev, name));\n Object.defineProperty(data, '__prev', {\n value: prevData,\n enumerable: false,\n configurable: false,\n writable: false\n });\n } else {\n Object.defineProperty(data, '__prev', {\n value: {...prev},\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n\n deleteVariable(data, name);\n self.data = data;\n }\n\n function trimValues() {\n let data = mapObject(self.data, (item: any) =>\n typeof item === 'string' ? item.trim() : item\n );\n self.updateData(data);\n }\n\n const syncOptions = debounce(\n () => self.items.forEach(item => item.syncOptions(undefined, self.data)),\n 250,\n {\n trailing: true,\n leading: false\n }\n );\n\n function setRestError(errors: string[]) {\n self.restError.replace(errors);\n }\n\n function addRestError(msg: string, name?: string | Array<string>) {\n const names = name\n ? Array.isArray(name)\n ? name.concat()\n : [name]\n : null;\n\n if (Array.isArray(names)) {\n const errors: any = {};\n names.forEach(name => (errors[name] = msg));\n setFormItemErrors(errors, 'rules');\n } else {\n self.restError.push(msg);\n }\n }\n\n function clearRestError() {\n setRestError([]);\n }\n\n const saveRemote: (\n api: Api,\n data?: object,\n options?: fetchOptions\n ) => Promise<any> = flow(function* saveRemote(\n api: Api,\n data: object,\n options: fetchOptions = {}\n ) {\n clearRestError();\n\n try {\n options = {\n method: 'post', // 默认走 post\n ...options\n };\n\n if (options && options.beforeSend) {\n let ret = options.beforeSend(data);\n\n if (ret && ret.then) {\n ret = yield ret;\n }\n\n if (ret === false) {\n return;\n }\n }\n\n self.markSaving(true);\n const json: Payload = yield getEnv(self).fetcher(api, data, options);\n\n // 失败也同样修改数据,如果有数据的话。\n if (!isEmpty(json.data) || json.ok) {\n self.updatedAt = Date.now();\n\n setValues(\n normalizeApiResponseData(json.data),\n json.ok\n ? {\n __saved: Date.now()\n }\n : undefined,\n !!(api as ApiObject).replaceData\n );\n }\n\n if (!json.ok) {\n\n if (json.status === 422 && json.errors) {\n setFormItemErrors(json.errors);\n\n self.updateMessage(\n json.msg ??\n self.__(options && options.errorMessage) ??\n self.__('Form.validateFailed'),\n true\n );\n } else {\n self.updateMessage(\n json.msg ?? self.__(options && options.errorMessage),\n true\n );\n }\n\n throw new ServerError(self.msg, json);\n } else {\n updateSavedData();\n let ret = options && options.onSuccess && options.onSuccess(json);\n if (ret?.then) {\n ret = yield ret;\n }\n if (ret?.cbResult?.then) {\n yield ret.cbResult;\n }\n self.markSaving(false);\n self.updateMessage(\n json.msg ?? self.__(options && options.successMessage)\n );\n if (!ret?.dispatcher?.prevented) {\n self.msg &&\n getEnv(self).notify(\n 'success',\n self.msg,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n }\n return json.data;\n }\n } catch (e) {\n self.markSaving(false);\n let ret = options && options.onFailed && options.onFailed(e.response || {});\n if (ret?.then) {\n ret = yield ret;\n }\n if (!isAlive(self) || self.disposed) {\n return;\n }\n if (ret?.dispatcher?.prevented) {\n return;\n }\n if (e.type === 'ServerError') {\n const result = (e as ServerError).response;\n getEnv(self).notify(\n 'error',\n e.message,\n result.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: result.msgTimeout\n }\n : undefined\n );\n } else {\n getEnv(self).notify('error', e.message);\n }\n throw e;\n }\n });\n\n function setFormItemErrors(\n errors: {[propName: string]: string},\n tag = 'remote'\n ) {\n Object.keys(errors).forEach((key: string) => {\n const item = self.getItemById(key);\n const items = self.getItemsByName(key);\n\n if (item) {\n item.setError(errors[key], tag);\n delete errors[key];\n } else if (items.length) {\n // 通过 name 直接找到的\n items.forEach(item => item.setError(errors[key], tag));\n delete errors[key];\n } else {\n // 尝试通过path寻找\n const items = getItemsByPath(key);\n\n if (Array.isArray(items) && items.length) {\n items.forEach(item => item.setError(`${errors[key]}`, tag));\n delete errors[key];\n }\n }\n });\n\n // 没有映射上的error信息加在msg后显示出来\n !isEmpty(errors) &&\n setRestError(Object.keys(errors).map(key => String(errors[key])));\n }\n\n const getItemsByPath = (key: string) => {\n const paths = keyToPath(key);\n const len = paths.length;\n\n return paths.reduce(\n (stores: any[], path, idx) => {\n if (Array.isArray(stores) && stores.every(s => s.getItemsByName)) {\n const items = flatten(\n stores.map(s => s.getItemsByName(path))\n ).filter(i => i);\n const subStores = items\n .map(item => item?.getSubStore?.())\n .filter(i => i);\n return subStores.length && idx < len - 1 ? subStores : items;\n }\n return null;\n },\n [self]\n );\n };\n\n const submit: (\n fn?: (values: object) => Promise<any>,\n hooks?: Array<() => Promise<any>>,\n failedMessage?: string,\n validateErrCb?: () => void\n ) => Promise<any> = flow(function* submit(\n fn: any,\n hooks?: Array<() => Promise<any>>,\n failedMessage?: string,\n validateErrCb?: () => void\n ) {\n self.submited = true;\n self.submiting = true;\n\n try {\n let valid = yield validate(hooks);\n\n // 如果不是valid,而且有包含不是remote的报错的表单项时,不可提交\n if (\n (!valid &&\n self.items.some(item =>\n item.errorData.some(e => e.tag !== 'remote')\n )) ||\n self.restError.length\n ) {\n let msg = failedMessage ?? self.__('Form.validateFailed');\n const env = getEnv(self);\n let dispatcher: any = validateErrCb && validateErrCb();\n if (dispatcher?.then) {\n dispatcher = yield dispatcher;\n }\n if (!dispatcher?.prevented){\n msg && env.notify('error', msg);\n }\n throw new Error(msg);\n }\n\n if (fn) {\n const diff = difference(self.data, self.pristine);\n const result = yield fn(\n createObject(\n createObject(self.data.__super, {\n diff: diff,\n __diff: diff,\n pristine: self.pristine\n }),\n self.data\n )\n );\n return result ?? self.data;\n }\n\n return self.data;\n } finally {\n self.submiting = false;\n }\n });\n\n const validate: (\n hooks?: Array<() => Promise<any>>,\n forceValidate?: boolean\n ) => Promise<boolean> = flow(function* validate(\n hooks?: Array<() => Promise<any>>,\n forceValidate?: boolean\n ) {\n self.validated = true;\n const items = self.items.concat();\n for (let i = 0, len = items.length; i < len; i++) {\n let item = items[i] as IFormItemStore;\n\n // 先清除组合校验的错误\n item.clearError('rules');\n\n // 验证过,或者是 unique 的表单项,或者强制验证,或者有远端校验api\n if (\n !item.validated ||\n item.unique ||\n forceValidate ||\n !!item.validateApi\n ) {\n yield item.validate(self.data);\n }\n }\n\n if (hooks && hooks.length) {\n for (let i = 0, len = hooks.length; i < len; i++) {\n yield hooks[i]();\n }\n }\n\n return self.valid;\n });\n\n const validateFields: (fields: Array<string>) => Promise<boolean> = flow(\n function* validateFields(fields: Array<string>) {\n const items = self.items.concat();\n let result: Array<boolean> = [];\n for (let i = 0, len = items.length; i < len; i++) {\n let item = items[i] as IFormItemStore;\n\n if (~fields.indexOf(item.name)) {\n result.push(yield item.validate(self.data));\n }\n }\n return result.every(item => item);\n }\n );\n\n function clearErrors() {\n const items = self.items.concat();\n items.forEach(item => item.reset());\n }\n\n function reset(cb?: (data: any) => void, resetData: boolean = true) {\n if (resetData) {\n self.data = self.pristine;\n }\n\n // 值可能变了,重新验证一次。\n self.validated = false;\n self.submited = false;\n self.items.forEach(item => item.reset());\n cb && cb(self.data);\n }\n\n function clear(cb?: (data: any) => void) {\n const toClear: any = {};\n self.items.forEach(item => {\n if (item.name && item.type !== 'hidden') {\n setVariable(toClear, item.name, item.resetValue);\n }\n });\n setValues(toClear);\n self.validated = false;\n self.submited = false;\n self.items.forEach(item => item.reset());\n cb && cb(self.data);\n }\n\n function setCanAccessSuperData(value: boolean = true) {\n self.canAccessSuperData = value;\n }\n\n function setInited(value: boolean) {\n self.inited = value;\n }\n\n function setPersistData(value = '') {\n self.persistData = value;\n }\n\n const setLocalPersistData = () => {\n localStorage.setItem(self.persistKey, JSON.stringify(self.data));\n };\n\n function getLocalPersistData() {\n let data = localStorage.getItem(self.persistKey);\n if (data) {\n self.updateData(JSON.parse(data));\n }\n }\n\n function clearLocalPersistData() {\n localStorage.removeItem(self.persistKey);\n }\n\n function updateSavedData() {\n self.savedData = self.data;\n }\n\n return {\n setInited,\n setValues,\n setValueByName,\n trimValues,\n submit,\n validate,\n validateFields,\n clearErrors,\n saveRemote,\n reset,\n syncOptions,\n setCanAccessSuperData,\n deleteValueByName,\n getLocalPersistData,\n setLocalPersistData,\n clearLocalPersistData,\n setPersistData,\n clear,\n updateSavedData,\n setFormItemErrors,\n getItemsByPath,\n setRestError,\n addRestError,\n clearRestError,\n beforeDestroy() {\n syncOptions.cancel();\n }\n };\n });\n\nexport type IFormStore = Instance<typeof FormStore>;\nexport {IFormItemStore};\n"
11
+ "import {\n types,\n getEnv,\n flow,\n getRoot,\n detach,\n destroy,\n isAlive,\n Instance\n} from 'mobx-state-tree';\nimport debounce from 'lodash/debounce';\nimport find from 'lodash/find';\nimport {ServiceStore} from './service';\nimport {FormItemStore, IFormItemStore, SFormItemStore} from './formItem';\nimport {Api, ApiObject, fetchOptions, Payload} from '../types';\nimport {ServerError} from '../utils/errors';\nimport {\n getVariable,\n setVariable,\n deleteVariable,\n cloneObject,\n createObject,\n difference,\n guid,\n isEmpty,\n mapObject,\n keyToPath\n} from '../utils/helper';\nimport isEqual from 'lodash/isEqual';\nimport flatten from 'lodash/flatten';\nimport {getStoreById, removeStore} from './manager';\nimport {filter} from '../utils/tpl';\nimport {normalizeApiResponseData} from '../utils/api';\n\nexport const FormStore = ServiceStore.named('FormStore')\n .props({\n inited: false,\n validated: false,\n submited: false,\n submiting: false,\n savedData: types.frozen(),\n // items: types.optional(types.array(types.late(() => FormItemStore)), []),\n canAccessSuperData: true,\n persistData: types.optional(types.union(types.string, types.boolean), ''),\n restError: types.optional(types.array(types.string), []) // 没有映射到表达项上的 errors\n })\n .views(self => {\n function getItems() {\n const formItems: Array<IFormItemStore> = [];\n\n // 查找孩子节点中是 formItem 的表单项\n const pool = self.children.concat();\n while (pool.length) {\n const current = pool.shift()!;\n\n if (current.storeType === FormItemStore.name) {\n formItems.push(current);\n } else {\n pool.push(...current.children);\n }\n }\n\n return formItems;\n }\n\n return {\n get loading() {\n return self.saving || self.fetching;\n },\n\n get items() {\n return getItems();\n },\n\n get errors() {\n let errors: {\n [propName: string]: Array<string>;\n } = {};\n\n getItems().forEach(item => {\n if (!item.valid) {\n errors[item.name] = Array.isArray(errors[item.name])\n ? errors[item.name].concat(item.errors)\n : item.errors.concat();\n }\n });\n\n return errors;\n },\n\n getValueByName(\n name: string,\n canAccessSuperData = self.canAccessSuperData\n ) {\n return getVariable(self.data, name, canAccessSuperData);\n },\n\n getPristineValueByName(name: string) {\n return getVariable(self.pristine, name);\n },\n\n getItemById(id: string) {\n return getItems().find(item => item.itemId === id);\n },\n\n getItemByName(name: string) {\n return getItems().find(item => item.name === name);\n },\n\n getItemsByName(name: string) {\n return getItems().filter(item => item.name === name);\n },\n\n get valid() {\n return (\n getItems().every(item => item.valid) &&\n (!self.restError || !self.restError.length)\n );\n },\n\n get validating() {\n return getItems().some(item => item.validating);\n },\n\n get isPristine() {\n return isEqual(self.pristine, self.data);\n },\n\n get modified() {\n if (self.savedData) {\n return self.savedData !== self.data;\n }\n\n return !this.isPristine;\n },\n\n get persistKey() {\n return `${location.pathname}/${self.path}/${\n typeof self.persistData === 'string'\n ? filter(self.persistData, self.data)\n : self.persistData\n }`;\n }\n };\n })\n .actions(self => {\n function setValues(values: object, tag?: object, replace?: boolean) {\n self.updateData(values, tag, replace);\n\n // 如果数据域中有数据变化,就都reset一下,去掉之前残留的验证消息\n self.items.forEach(item => item.reset());\n\n // 同步 options\n syncOptions();\n }\n\n function setValueByName(\n name: string,\n value: any,\n isPristine: boolean = false,\n force: boolean = false\n ) {\n // 没有变化就不跑了。\n const origin = getVariable(self.data, name, false);\n\n const prev = self.data;\n const data = cloneObject(self.data);\n\n if (value !== origin) {\n if (prev.__prev) {\n // 基于之前的 __prev 改\n const prevData = cloneObject(prev.__prev);\n setVariable(prevData, name, origin);\n Object.defineProperty(data, '__prev', {\n value: prevData,\n enumerable: false,\n configurable: false,\n writable: false\n });\n } else {\n Object.defineProperty(data, '__prev', {\n value: {...prev},\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n } else if (!force) {\n return;\n }\n\n setVariable(data, name, value);\n\n if (isPristine) {\n const pristine = cloneObject(self.pristine);\n setVariable(pristine, name, value);\n self.pristine = pristine;\n }\n\n if (!data.__pristine) {\n Object.defineProperty(data, '__pristine', {\n value: self.pristine,\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n\n self.data = data;\n\n // 同步 options\n syncOptions();\n }\n\n function deleteValueByName(name: string) {\n const prev = self.data;\n const data = cloneObject(self.data);\n\n if (prev.__prev) {\n // 基于之前的 __prev 改\n const prevData = cloneObject(prev.__prev);\n setVariable(prevData, name, getVariable(prev, name));\n Object.defineProperty(data, '__prev', {\n value: prevData,\n enumerable: false,\n configurable: false,\n writable: false\n });\n } else {\n Object.defineProperty(data, '__prev', {\n value: {...prev},\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n\n deleteVariable(data, name);\n self.data = data;\n }\n\n function trimValues() {\n let data = mapObject(self.data, (item: any) =>\n typeof item === 'string' ? item.trim() : item\n );\n self.updateData(data);\n }\n\n const syncOptions = debounce(\n () => self.items.forEach(item => item.syncOptions(undefined, self.data)),\n 250,\n {\n trailing: true,\n leading: false\n }\n );\n\n function setRestError(errors: string[]) {\n self.restError.replace(errors);\n }\n\n function addRestError(msg: string, name?: string | Array<string>) {\n const names = name\n ? Array.isArray(name)\n ? name.concat()\n : [name]\n : null;\n\n if (Array.isArray(names)) {\n const errors: any = {};\n names.forEach(name => (errors[name] = msg));\n setFormItemErrors(errors, 'rules');\n } else {\n self.restError.push(msg);\n }\n }\n\n function clearRestError() {\n setRestError([]);\n }\n\n const saveRemote: (\n api: Api,\n data?: object,\n options?: fetchOptions\n ) => Promise<any> = flow(function* saveRemote(\n api: Api,\n data: object,\n options: fetchOptions = {}\n ) {\n clearRestError();\n\n try {\n options = {\n method: 'post', // 默认走 post\n ...options\n };\n\n if (options && options.beforeSend) {\n let ret = options.beforeSend(data);\n\n if (ret && ret.then) {\n ret = yield ret;\n }\n\n if (ret === false) {\n return;\n }\n }\n\n self.markSaving(true);\n const json: Payload = yield getEnv(self).fetcher(api, data, options);\n\n // 失败也同样修改数据,如果有数据的话。\n if (!isEmpty(json.data) || json.ok) {\n self.updatedAt = Date.now();\n\n setValues(\n normalizeApiResponseData(json.data),\n json.ok\n ? {\n __saved: Date.now()\n }\n : undefined,\n !!(api as ApiObject).replaceData\n );\n }\n\n if (!json.ok) {\n if (json.status === 422 && json.errors) {\n setFormItemErrors(json.errors);\n\n self.updateMessage(\n json.msg ??\n self.__(options && options.errorMessage) ??\n self.__('Form.validateFailed'),\n true\n );\n } else {\n self.updateMessage(\n json.msg ?? self.__(options && options.errorMessage),\n true\n );\n }\n\n throw new ServerError(self.msg, json);\n } else {\n updateSavedData();\n let ret = options && options.onSuccess && options.onSuccess(json);\n if (ret?.then) {\n ret = yield ret;\n }\n if (ret?.cbResult?.then) {\n yield ret.cbResult;\n }\n self.markSaving(false);\n self.updateMessage(\n json.msg ?? self.__(options && options.successMessage)\n );\n if (!ret?.dispatcher?.prevented) {\n self.msg &&\n getEnv(self).notify(\n 'success',\n self.msg,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n }\n return json.data;\n }\n } catch (e) {\n self.markSaving(false);\n let ret =\n options && options.onFailed && options.onFailed(e.response || {});\n if (ret?.then) {\n ret = yield ret;\n }\n if (!isAlive(self) || self.disposed) {\n return;\n }\n if (ret?.dispatcher?.prevented) {\n return;\n }\n if (e.type === 'ServerError') {\n const result = (e as ServerError).response;\n getEnv(self).notify(\n 'error',\n e.message,\n result.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: result.msgTimeout\n }\n : undefined\n );\n } else {\n getEnv(self).notify('error', e.message);\n }\n throw e;\n }\n });\n\n function setFormItemErrors(\n errors: {[propName: string]: string},\n tag = 'remote'\n ) {\n Object.keys(errors).forEach((key: string) => {\n const item = self.getItemById(key);\n const items = self.getItemsByName(key);\n\n if (item) {\n item.setError(errors[key], tag);\n delete errors[key];\n } else if (items.length) {\n // 通过 name 直接找到的\n items.forEach(item => item.setError(errors[key], tag));\n delete errors[key];\n } else {\n // 尝试通过path寻找\n const items = getItemsByPath(key);\n\n if (Array.isArray(items) && items.length) {\n items.forEach(item => item.setError(`${errors[key]}`, tag));\n delete errors[key];\n }\n }\n });\n\n // 没有映射上的error信息加在msg后显示出来\n !isEmpty(errors) &&\n setRestError(Object.keys(errors).map(key => String(errors[key])));\n }\n\n const getItemsByPath = (key: string) => {\n const paths = keyToPath(key);\n const len = paths.length;\n\n return paths.reduce(\n (stores: any[], path, idx) => {\n if (Array.isArray(stores) && stores.every(s => s.getItemsByName)) {\n const items = flatten(\n stores.map(s => s.getItemsByName(path))\n ).filter(i => i);\n const subStores = items\n .map(item => item?.getSubStore?.())\n .filter(i => i);\n return subStores.length && idx < len - 1 ? subStores : items;\n }\n return null;\n },\n [self]\n );\n };\n\n const submit: (\n fn?: (values: object) => Promise<any>,\n hooks?: Array<() => Promise<any>>,\n failedMessage?: string,\n validateErrCb?: () => void\n ) => Promise<any> = flow(function* submit(\n fn: any,\n hooks?: Array<() => Promise<any>>,\n failedMessage?: string,\n validateErrCb?: () => void\n ) {\n self.submited = true;\n self.submiting = true;\n\n try {\n let valid = yield validate(hooks);\n\n // 如果不是valid,而且有包含不是remote的报错的表单项时,不可提交\n if (\n (!valid &&\n self.items.some(item =>\n item.errorData.some(e => e.tag !== 'remote')\n )) ||\n self.restError.length\n ) {\n let msg = failedMessage ?? self.__('Form.validateFailed');\n const env = getEnv(self);\n let dispatcher: any = validateErrCb && validateErrCb();\n if (dispatcher?.then) {\n dispatcher = yield dispatcher;\n }\n if (!dispatcher?.prevented) {\n msg && env.notify('error', msg);\n }\n throw new Error(msg);\n }\n\n if (fn) {\n const diff = difference(self.data, self.pristine);\n const result = yield fn(\n createObject(\n createObject(self.data.__super, {\n diff: diff,\n __diff: diff,\n pristine: self.pristine\n }),\n self.data\n )\n );\n return result ?? self.data;\n }\n\n return self.data;\n } finally {\n self.submiting = false;\n }\n });\n\n const validate: (\n hooks?: Array<() => Promise<any>>,\n forceValidate?: boolean\n ) => Promise<boolean> = flow(function* validate(\n hooks?: Array<() => Promise<any>>,\n forceValidate?: boolean\n ) {\n self.validated = true;\n const items = self.items.concat();\n for (let i = 0, len = items.length; i < len; i++) {\n let item = items[i] as IFormItemStore;\n\n // 先清除组合校验的错误\n item.clearError('rules');\n\n // 验证过,或者是 unique 的表单项,或者强制验证,或者有远端校验api\n if (\n !item.validated ||\n item.unique ||\n forceValidate ||\n !!item.validateApi\n ) {\n yield item.validate(self.data);\n }\n }\n\n if (hooks && hooks.length) {\n for (let i = 0, len = hooks.length; i < len; i++) {\n yield hooks[i]();\n }\n }\n\n return self.valid;\n });\n\n const validateFields: (\n fields: Array<string | {name: string; rules: {[propName: string]: any}}>\n ) => Promise<boolean> = flow(function* validateFields(\n fields: Array<string | {name: string; rules: {[propName: string]: any}}>\n ) {\n const items = self.items.concat();\n const normalizedfields = fields.map(field =>\n typeof field === 'string' ? {name: field, rules: {}} : field\n );\n let result: Array<boolean> = [];\n for (let i = 0, len = items.length; i < len; i++) {\n let item = items[i] as IFormItemStore;\n const field = find(normalizedfields, field => field.name === item.name);\n\n if (field) {\n result.push(yield item.validate(self.data, undefined, field.rules));\n }\n }\n return result.every(item => item);\n });\n\n function clearErrors() {\n const items = self.items.concat();\n items.forEach(item => item.reset());\n }\n\n function reset(cb?: (data: any) => void, resetData: boolean = true) {\n if (resetData) {\n self.data = self.pristine;\n }\n\n // 值可能变了,重新验证一次。\n self.validated = false;\n self.submited = false;\n self.items.forEach(item => item.reset());\n cb && cb(self.data);\n }\n\n function clear(cb?: (data: any) => void) {\n const toClear: any = {};\n self.items.forEach(item => {\n if (item.name && item.type !== 'hidden') {\n setVariable(toClear, item.name, item.resetValue);\n }\n });\n setValues(toClear);\n self.validated = false;\n self.submited = false;\n self.items.forEach(item => item.reset());\n cb && cb(self.data);\n }\n\n function setCanAccessSuperData(value: boolean = true) {\n self.canAccessSuperData = value;\n }\n\n function setInited(value: boolean) {\n self.inited = value;\n }\n\n function setPersistData(value = '') {\n self.persistData = value;\n }\n\n const setLocalPersistData = () => {\n localStorage.setItem(self.persistKey, JSON.stringify(self.data));\n };\n\n function getLocalPersistData() {\n let data = localStorage.getItem(self.persistKey);\n if (data) {\n self.updateData(JSON.parse(data));\n }\n }\n\n function clearLocalPersistData() {\n localStorage.removeItem(self.persistKey);\n }\n\n function updateSavedData() {\n self.savedData = self.data;\n }\n\n return {\n setInited,\n setValues,\n setValueByName,\n trimValues,\n submit,\n validate,\n validateFields,\n clearErrors,\n saveRemote,\n reset,\n syncOptions,\n setCanAccessSuperData,\n deleteValueByName,\n getLocalPersistData,\n setLocalPersistData,\n clearLocalPersistData,\n setPersistData,\n clear,\n updateSavedData,\n setFormItemErrors,\n getItemsByPath,\n setRestError,\n addRestError,\n clearRestError,\n beforeDestroy() {\n syncOptions.cancel();\n }\n };\n });\n\nexport type IFormStore = Instance<typeof FormStore>;\nexport {IFormItemStore};\n"
12
12
  ]
13
13
  }
@@ -99,7 +99,9 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
99
99
  validateOnChange?: boolean | undefined;
100
100
  label?: string | undefined;
101
101
  }) => void;
102
- validate: (data: Object, hook?: any) => Promise<boolean>;
102
+ validate: (data: Object, hook?: any, customRules?: {
103
+ [propName: string]: any;
104
+ } | undefined) => Promise<boolean>;
103
105
  setError: (msg: string | Array<string>, tag?: string) => void;
104
106
  addError: (msg: string | (string | {
105
107
  msg: string;
@@ -216,7 +216,7 @@ exports.FormItemStore = node_1.StoreNode.named('FormItemStore')
216
216
  self.isFocused = false;
217
217
  }
218
218
  var validateCancel = null;
219
- var validate = (0, mobx_state_tree_1.flow)(function validate(data, hook) {
219
+ var validate = (0, mobx_state_tree_1.flow)(function validate(data, hook, customRules) {
220
220
  var json, combo, group;
221
221
  var _a;
222
222
  var _b, _c;
@@ -234,7 +234,7 @@ exports.FormItemStore = node_1.StoreNode.named('FormItemStore')
234
234
  _d.sent();
235
235
  _d.label = 2;
236
236
  case 2:
237
- addError((0, validations_1.validate)(self.tmpValue, data, self.rules, self.messages, self.__));
237
+ addError((0, validations_1.validate)(self.tmpValue, data, customRules ? (0, validations_1.str2rules)(customRules) : self.rules, self.messages, self.__));
238
238
  if (!(!self.errors.length && (0, api_1.isEffectiveApi)(self.validateApi, data))) return [3 /*break*/, 4];
239
239
  if (validateCancel) {
240
240
  validateCancel();
@@ -243,9 +243,7 @@ exports.FormItemStore = node_1.StoreNode.named('FormItemStore')
243
243
  return [4 /*yield*/, (0, mobx_state_tree_1.getEnv)(self).fetcher(self.validateApi,
244
244
  /** 如果配置validateApi,需要将用户最新输入同步到数据域内 */
245
245
  (0, helper_1.createObject)(data, (_a = {}, _a[self.name] = self.tmpValue, _a)), {
246
- cancelExecutor: function (executor) {
247
- return (validateCancel = executor);
248
- }
246
+ cancelExecutor: function (executor) { return (validateCancel = executor); }
249
247
  })];
250
248
  case 3:
251
249
  json = _d.sent();
@@ -6,8 +6,8 @@
6
6
  "/src/store/formItem.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;;AAAA,mDAUyB;AACzB,gFAA6C;AAC7C,+BAA6C;AAC7C,oDAAuE;AAEvE,iCAA8D;AAC9D,oCAA4C;AAC5C,oCAA4C;AAC5C,4EAAyC;AACzC,0CAWyB;AACzB,0CAA4C;AAE5C,+CAA0E;AAC1E,kEAA+B;AAC/B,oFAAiD;AACjD,gDAA6C;AAG7C,+BAAiC;AACjC,qCAAuC;AACvC,4CAAoC;AAWpC,IAAM,WAAW,GAAG,uBAAK,CAAC,KAAK,CAAC,aAAa,EAAE;IAC7C,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;CACT,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,gBAAS,CAAC,KAAK,CAAC,eAAe,CAAC;KAC1D,KAAK,CAAC;IACL,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,uBAAK,CAAC,MAAM,EAAE;IACxB,WAAW,EAAE,uBAAK,CAAC,MAAM,EAAE;IAC3B,KAAK,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;IACzC,QAAQ,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;IAC5C,SAAS,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;IACvD,IAAI,EAAE,uBAAK,CAAC,MAAM;IAClB,MAAM,EAAE,EAAE;IACV,qBAAqB,EAAE,KAAK;IAC5B,QAAQ,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,KAAK,CAAC,uBAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACvD,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,GAAG;IACd,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAc,EAAE,EAAE,CAAC;IACvD,oBAAoB,EAAE,KAAK;IAC3B,WAAW,EAAE,KAAK;IAClB,QAAQ,EAAE,uBAAK,CAAC,MAAM,EAAE;IACxB,kBAAkB,EAAE,KAAK;IACzB,WAAW,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;IAC/C,eAAe,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;IACnD,eAAe,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;IACnD,YAAY,EAAE,uBAAK,CAAC,MAAM,EAAE;IAC5B,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,uBAAK,CAAC,MAAM,EAAE;IAC1B,UAAU,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;IAC9C,gBAAgB,EAAE,KAAK;CACxB,CAAC;KACD,KAAK,CAAC,UAAA,IAAI;IACT,SAAS,OAAO;QACd,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,MAAK,gBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAED,SAAS,QAAQ;;QACf,OAAO,MAAA,OAAO,EAAE,0CAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,kBAAkB;QACzB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;SACpE;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,SAAS,SAAS;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,GAAG,EAAR,CAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,IAAI,YAAY;YACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAA,sBAAY,EAAC,IAAI,CAAC,EAAlB,CAAkB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,IAAI;YACN,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,KAAK;YACP,OAAO,QAAQ,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,SAAS;;YACX,OAAO,MAAC,OAAO,EAAiB,0CAAE,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,MAAM;YACR,OAAO,SAAS,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,KAAK;YACP,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,aAAa;YACf,OAAO,IAAI,CAAC,SAAS;iBAClB,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC;iBACtB,MAAM,CAAC,UAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAK,OAAA,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,EAAnC,CAAmC,CAAC;iBACjE,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,qBAAc,IAAI,CAAE,EAApB,CAAoB,CAAC;iBACjC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QAED,IAAI,eAAe;YACjB,OAAO,kBAAkB,EAAE,CAAC;QAC9B,CAAC;QAED,kBAAkB,EAAE,UAClB,KAA0B,EAC1B,cAAkC;YADlC,sBAAA,EAAA,QAAa,IAAI,CAAC,QAAQ;YAG1B,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;gBAChC,OAAO,EAAE,CAAC;aACX;YAED,IAAM,UAAU,GAAG,cAAc;gBAC/B,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACtB,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;wBAC3B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;wBACpC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACZ,IAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,IAAI;gBAClC,OAAA,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;oBACrD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;oBAClC,CAAC,CAAC,IAAI;YAFR,CAEQ,CACT,CAAC;YAEF,IAAM,eAAe,GAAe,EAAE,CAAC;YAEvC,QAAQ,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;;gBAC3B,IAAM,OAAO,GAAG,IAAA,iBAAQ,EACtB,IAAI,CAAC,eAAe,EACpB,IAAA,2BAAkB,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CACrD,CAAC;gBAEF,IAAI,OAAO,EAAE;oBACX,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC/B;qBAAM;oBACL,IAAI,SAAS,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;oBAE1D,IACE,SAAS;wBACT,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAC,EAChE;wBACA,SAAS;4BACP,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,IAAI;4BAClC,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,IAAI;4BAClC,cAAW,GAAE,IAAI;+BAClB,CAAC;qBACH;yBAAM,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;wBACzC,SAAS;4BACP,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,IAAI;4BAClC,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,SAAS;4BACvC,cAAW,GAAE,IAAI;+BAClB,CAAC;qBACH;oBAED,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC9C;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,eAAe,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;KAED,OAAO,CAAC,UAAA,IAAI;IACX,IAAM,IAAI,GAAG,IAAI,CAAC,IAAkB,CAAC;IACrC,IAAM,eAAe,GAAG,IAAI,qBAAS,EAA0B,CAAC;IAChE,IAAI,oBAAoB,GAAoB,IAAI,CAAC;IAEjD,SAAS,MAAM,CAAC,EA4Cf;YA3CC,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,KAAK,WAAA,EACL,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,IAAI,UAAA,EACJ,EAAE,QAAA,EACF,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,kBAAkB,wBAAA,EAClB,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,SAAS,eAAA,EACT,gBAAgB,sBAAA,EAChB,KAAK,WAAA;QAwBL,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;SAC1B;QAED,OAAO,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAClD,OAAO,EAAE,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAChD,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;QAC9D,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChE,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChE,OAAO,WAAW,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QACzE,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;QAC9D,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QACtE,OAAO,YAAY,KAAK,WAAW;YACjC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;QACvC,OAAO,SAAS,KAAK,WAAW;YAC9B,CAAC,IAAI,CAAC,SAAS,GAAI,SAAoB,IAAI,GAAG,CAAC,CAAC;QAClD,OAAO,UAAU,KAAK,WAAW;YAC/B,CAAC,IAAI,CAAC,UAAU,GAAI,UAAqB,IAAI,OAAO,CAAC,CAAC;QACxD,OAAO,UAAU,KAAK,WAAW;YAC/B,CAAC,IAAI,CAAC,UAAU,GAAI,UAAqB,IAAI,OAAO,CAAC,CAAC;QACxD,OAAO,kBAAkB,KAAK,WAAW;YACvC,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACnD,OAAO,WAAW,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;QACvE,OAAO,gBAAgB,KAAK,WAAW;YACrC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC/C,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QAElD,KAAK,mDACA,KAAK,KACR,UAAU,EAAE,IAAI,CAAC,QAAQ,GAC1B,CAAC;QAEF,uBAAuB;QACvB,QAAQ;QACR,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAClD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBACjC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;aAC7B;YAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBACjC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;aAC7B;SACF;QAED,IAAI,IAAA,gCAAuB,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,UAAU,CAAC,SAAS,CAAC,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;IACH,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,SAAS,IAAI;QACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,cAAc,GAAoB,IAAI,CAAC;IAC3C,IAAM,QAAQ,GAAmD,IAAA,sBAAI,EACnE,SAAU,QAAQ,CAAC,IAAY,EAAE,IAAU;;;;;;;oBACzC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAA,oBAAc,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE;wBAC9D,sBAAO,IAAI,CAAC,KAAK,EAAC;qBACnB;oBAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,UAAU,EAAE,CAAC;yBACT,IAAI,EAAJ,wBAAI;oBACN,qBAAM,IAAI,EAAE,EAAA;;oBAAZ,SAAY,CAAC;;;oBAGf,QAAQ,CACN,IAAA,sBAAU,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CACpE,CAAC;yBAEE,CAAA,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAA,oBAAc,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,EAA7D,wBAA6D;oBAC/D,IAAI,cAAc,EAAE;wBAClB,cAAc,EAAE,CAAC;wBACjB,cAAc,GAAG,IAAI,CAAC;qBACvB;oBAEqB,qBAAM,IAAA,wBAAM,EAAC,IAAI,CAAC,CAAC,OAAO,CAC9C,IAAI,CAAC,WAAW;wBAChB,uCAAuC;wBACvC,IAAA,qBAAY,EAAC,IAAI,YAAG,GAAC,IAAI,CAAC,IAAI,IAAG,IAAI,CAAC,QAAQ,MAAE,EAChD;4BACE,cAAc,EAAE,UAAC,QAAkB;gCACjC,OAAA,CAAC,cAAc,GAAG,QAAQ,CAAC;4BAA3B,CAA2B;yBAC9B,CACF,EAAA;;oBARK,IAAI,GAAY,SAQrB;oBACD,cAAc,GAAG,IAAI,CAAC;oBAEtB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;wBAClD,QAAQ,CACN,MAAM,CACJ,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,kCAAO,IAAI,CAAC,IAAI,mCAAO,CACnD,CACF,CAAC;qBACH;;;oBAGH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBAEtB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,0CAAE,SAAS,MAAK,YAAY,EAAE;wBAC/D,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAA0B,CAAC;wBAC7C,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAC;wBAE3D,IACE,KAAK,CAAC,KAAK,CAAC,IAAI,CACd,UAAA,IAAI;4BACF,OAAA,IAAI,KAAK,IAAI;gCACb,IAAI,CAAC,QAAQ,KAAK,SAAS;gCAC3B,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ;wBAF5B,CAE4B,CAC/B,EACD;4BACA,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;yBAClC;qBACF;oBAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACxB,sBAAO,IAAI,CAAC,KAAK,EAAC;;;KACnB,CACF,CAAC;IAEF,SAAS,QAAQ,CAAC,GAA2B,EAAE,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QACpE,UAAU,EAAE,CAAC;QACb,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,QAAQ,CACf,GAQK,EACL,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QAEvB,IAAM,IAAI,GAMN,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,UAAA,IAAI;YACf,OAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAClB,GAAG,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;gBAC/C,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACtD,GAAG,EAAE,GAAG;aACT,CAAC;QAJF,CAIE,CACH,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,CAAC,GAAY;QAC9B,IAAI,GAAG,EAAE;YACP,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,GAAG,KAAK,GAAG,EAAhB,CAAgB,CAAC,CAAC;YACjE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxB;IACH,CAAC;IAED,SAAS,qBAAqB,CAAC,OAAmB;QAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO;SACR;QAED,KAAmB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;YAAvB,IAAI,MAAM,gBAAA;YACb,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAClC,IAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1D,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC5B,OAAO,UAAU,CAAC;iBACnB;aACF;iBAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACjE,OAAO,MAAM,CAAC;aACf;SACF;IACH,CAAC;IAED,SAAS,UAAU,CACjB,OAAsB,EACtB,QAA+B,EAC/B,IAAa;QAEb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO;SACR;QACD,OAAO,GAAG,IAAA,mBAAU,EAAC,OAAO,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,EAAJ,CAAI,CAAC,CAAC;QAC5C,IAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,eAAe,CAAC;QAEpB,IACE,QAAQ;YACR,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,eAAe,CAAC,MAAM;YAC3B,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC,eAAe,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,CAAC,WAAW,EAAjB,CAAiB,CAAC,CAAC,MAAM,EACzD;YACA,IAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO;aACR;YAED,IAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,IAAS;gBACtC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;oBACxC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;iBACzC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,IAAM,KAAK,GACT,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ;gBAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,QAAQ;oBACf,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEd,QAAQ,CAAC,KAAK,CAAC,CAAC;SACjB;IACH,CAAC;IAED,IAAI,UAAU,GAAoB,IAAI,CAAC;IACvC,IAAM,YAAY,GAKa,IAAA,sBAAI,EAAC,SAAU,WAAW,CACvD,GAAW,EACX,IAAY,EACZ,MAAqB,EACrB,YAAsB;;;;;;;oBAGpB,IAAI,UAAU,EAAE;wBACd,UAAU,EAAE,CAAC;wBACb,UAAU,GAAG,IAAI,CAAC;wBAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;qBACtB;oBAED,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;wBACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;qBACrB;oBAEqB,qBAAM,IAAA,wBAAM,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,0BACxD,UAAU,EAAE,KAAK,EACjB,cAAc,EAAE,UAAC,QAAkB,IAAK,OAAA,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAvB,CAAuB,IAC5D,MAAM,EACT,EAAA;;oBAJI,IAAI,GAAY,SAIpB;oBACF,UAAU,GAAG,IAAI,CAAC;oBACd,MAAM,GAAQ,IAAI,CAAC;oBAEvB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;wBACZ,YAAY,KAAK,KAAK;4BACpB,QAAQ,CACN,IAAI,CAAC,EAAE,CAAC,wBAAwB,EAAE;gCAChC,MAAM,EAAE,MAAA,IAAI,CAAC,GAAG,mCAAI,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC;6BACpD,CAAC,CACH,CAAC;wBACJ,IAAA,wBAAM,EAAC,IAAI,CAAC,CAAC,MAAM,CACjB,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,UAAG,GAAG,mBAAI,IAAI,CAAC,GAAG,CAAE,EAC5C,IAAI,CAAC,UAAU,KAAK,SAAS;4BAC3B,CAAC,CAAC;gCACE,WAAW,EAAE,IAAI;gCACjB,OAAO,EAAE,IAAI,CAAC,UAAU;6BACzB;4BACH,CAAC,CAAC,SAAS,CACd,CAAC;qBACH;yBAAM;wBACL,MAAM,GAAG,IAAI,CAAC;qBACf;oBAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,sBAAO,MAAM,EAAC;;;oBAER,GAAG,GAAG,IAAA,wBAAM,EAAC,IAAI,CAAC,CAAC;oBAEzB,IAAI,CAAC,IAAA,yBAAO,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACnC,sBAAO;qBACR;oBAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAC,CAAC,EAAE;wBACnB,sBAAO;qBACR;oBAED,OAAO,CAAC,KAAK,CAAC,GAAC,CAAC,KAAK,CAAC,CAAC;oBACvB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAC,CAAC,OAAO,CAAC,CAAC;oBAC/B,sBAAO;;;;KAEH,CAAC,CAAC;IAEV,IAAM,WAAW,GASc,IAAA,sBAAI,EAAC,SAAU,WAAW,CACvD,GAAW,EACX,IAAY,EACZ,MAAqB,EACrB,UAAgB,EAChB,QAIS,EACT,YAAsB;;;;;wBAEX,qBAAM,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAA;;oBAA1D,IAAI,GAAG,SAAmD;oBAC9D,IAAI,CAAC,IAAI,EAAE;wBACT,sBAAO;qBACR;oBAED,UAAU,EAAE,CAAC;oBACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,gBAAgB;oBAEpC,OAAO,GACT,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO;yBAClB,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,CAAA;yBAChB,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,CAAA;wBACf,IAAI,CAAC,IAAI;wBACT,EAAE,CAAC;oBAEL,OAAO,GAAG,IAAA,yBAAgB,EAAC,OAAc,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAEvE,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,KAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7D,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAC,IAAS;4BACrC,IAAM,MAAM,GAAG,IAAA,iBAAQ,EACrB,OAAc,EACd,IAAA,2BAAkB,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CACrD,CAAC;4BAEF,IAAI,CAAC,MAAM,EAAE;gCACX,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BACpB;wBACH,CAAC,CAAC,CAAC;qBACJ;oBAED,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAEpC,IAAI,IAAI,CAAC,IAAI,IAAI,OAAQ,IAAI,CAAC,IAAY,CAAC,KAAK,KAAK,WAAW,EAAE;wBAChE,QAAQ,IAAI,QAAQ,CAAE,IAAI,CAAC,IAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;qBAC7D;yBAAM,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;wBAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,WAAW,EAAhB,CAAgB,CAAC;4BACxD,QAAQ;4BACR,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;qBAC7B;oBAED,sBAAO,IAAI,EAAC;;;KACb,CAAC,CAAC;IAEH,IAAM,kBAAkB,GAIA,IAAA,sBAAI,EAAC,SAAU,iBAAiB,CACtD,GAAW,EACX,IAAY,EACZ,MAAsB;;;QAAtB,uBAAA,EAAA,aAAsB;;;;oBAEtB,IAAI,oBAAoB,EAAE;wBACxB,oBAAoB,EAAE,CAAC;wBACvB,oBAAoB,GAAG,IAAI,CAAC;qBAC7B;oBAEqB,qBAAM,IAAA,wBAAM,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE;4BAC1D,cAAc,EAAE,UAAC,QAAkB;gCACjC,OAAA,CAAC,oBAAoB,GAAG,QAAQ,CAAC;4BAAjC,CAAiC;yBACpC,CAAC,EAAA;;oBAHI,IAAI,GAAY,SAGpB;oBACF,oBAAoB,GAAG,IAAI,CAAC;oBAE5B,IAAI,CAAC,IAAI,EAAE;wBACT,sBAAO;qBACR;oBAEK,MAAM,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,MAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,CAAA,CAAC;oBACnD,eAAe;oBACf,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,MAAK,CAAC,EAAE;wBACxB,sBAAO,MAAM,CAAC,CAAC,CAAC,EAAC;qBAClB;yBAAM,IAAI,IAAA,uBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACnC,sBAAO,IAAI,CAAC,IAAI,EAAC;qBAClB;oBAED,CAAC,MAAM,IAAI,kBAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;oBAE/D,sBAAO;;;KACR,CAAC,CAAC;IAEH,IAAM,uBAAuB,GAME,IAAA,sBAAI,EAAC,UAClC,MAAW,EACX,WAAgB,EAChB,GAAW,EACX,IAAY,EACZ,MAAqB;;;;;;oBAErB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;wBAC/B,sBAAO;qBACR;oBAEK,OAAO,GAAG,IAAA,sBAAa,EAC3B,IAAI,CAAC,OAAO,EACZ,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,WAAW,KAAK,WAAW,EAAhC,CAAgC,CACzC,CAAC;oBACI,WAAW,GAAG,IAAA,sBAAa,EAAC,WAAW,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,MAAM,EAAf,CAAe,CAAC,CAAC;oBAClE,SAAS,GAAG,IAAA,iBAAQ,EACxB,IAAI,CAAC,OAAO,EACZ,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,WAAW,KAAK,WAAW,EAAhC,CAAgC,CACzC,CAAC;oBAEF,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE;wBAC1C,sBAAO;qBACR;oBAED,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,kDAC9B,SAAS,KACZ,OAAO,EAAE,IAAI,EACb,WAAW,EAAE,IAAA,mBAAU,EAAC,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,kDACxD,MAAM,KACT,OAAO,EAAE,IAAI,IACb,IACF,EACF,SAAS,EACT,IAAI,CACL,CAAC;oBAES,qBAAM,YAAY,CAC3B,GAAG,EACH,IAAI,kDAEC,MAAM,KACT,MAAM,EAAE,IAAI,KAEd,KAAK,CACN,EAAA;;oBARG,IAAI,GAAG,SAQV;oBAED,IAAI,CAAC,IAAI,EAAE;wBACT,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,kDAC9B,SAAS,KACZ,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,IAAI,EACX,WAAW,EAAE,IAAA,mBAAU,EAAC,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,kDACxD,MAAM,KACT,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,IAAI,IACX,IACF,EACF,SAAS,EACT,IAAI,CACL,CAAC;wBACF,sBAAO;qBACR;oBAEK,OAAO,GACX,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO;wBAClB,IAAI,CAAC,IAAI,CAAC,KAAK;wBACf,IAAI,CAAC,IAAI,CAAC,IAAI;wBACd,IAAI,CAAC,IAAI;wBACT,EAAE,CAAC;oBACC,cAAc,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,kDAClE,MAAM,KACT,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,OAAO,IACjB,CAAC;oBAEH,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,kDAC9B,SAAS,KACZ,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,cAAc,IAC3B,EACF,SAAS,EACT,IAAI,CACL,CAAC;oBAEF,8CAA8C;oBAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;wBAC/B,aAAW,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAC7C,IAAA,oBAAW,EAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI;4BACtC,IAAI,CAAC,IAAA,iBAAQ,EAAC,SAAS,CAAC,QAAQ,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,EAAvB,CAAuB,CAAC,EAAE;gCAClE,UAAQ,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;6BAC/C;wBACH,CAAC,CAAC,CAAC;wBAEH,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,kDAC9B,SAAS,KACZ,WAAW,EAAE,cAAc,EAC3B,QAAQ,YAAA,IACR,EACF,SAAS,EACT,IAAI,CACL,CAAC;qBACH;oBAED,sBAAO,IAAI,EAAC;;;KACb,CAAC,CAAC;IAEH,IAAM,oBAAoB,GAMK,IAAA,sBAAI,EAAC,UAClC,MAAW,EACX,WAAgB,EAChB,GAAW,EACX,IAAY,EACZ,MAAqB;;;wBAEd,qBAAM,uBAAuB,CAClC,MAAM,EACN,WAAW,EACX,GAAG,EACH,IAAI,EACJ,MAAM,CACP,EAAA;wBAND,sBAAO,SAMN,EAAC;;;KACH,CAAC,CAAC;IAEH,IAAM,gBAAgB,GAKS,IAAA,sBAAI,EAAC,UAClC,MAAW,EACX,GAAW,EACX,IAAY,EACZ,MAAqB;;;;;;oBAEf,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;oBACxC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;oBACxC,OAAO,GAAG,IAAA,sBAAa,EAC3B,IAAI,CAAC,OAAO,EACZ,UAAA,IAAI;wBACF,OAAA,IAAI,KAAK,MAAM;4BACf,sEAAsE;4BACtE,IAAA,qBAAW,EACT,IAAI,EACJ,MAAM,EACN,UAAC,MAAM,EAAE,MAAM;gCACb,OAAA,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,UAAU,CAAC,KAAI,IAAI;oCAC5B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,UAAU,CAAC,KAAI,IAAI;oCAC5B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,UAAU,CAAC,OAAK,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,UAAU,CAAC,CAAA;oCAC7C,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,UAAU,CAAC,OAAK,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,UAAU,CAAC,CAAA;4BAH7C,CAG6C,CAChD;oBAVD,CAUC,CACJ,CAAC;yBACE,CAAC,OAAO,EAAR,wBAAQ;oBACJ,WAAW,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,WAAW,CAAC;oBAC1C,qBAAM,uBAAuB,CAClC,MAAM,EACN,WAAW,EACX,GAAG,EACH,IAAI,EACJ,MAAM,CACP,EAAA;wBAND,sBAAO,SAMN,EAAC;;oBAGJ,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,kDAC9B,MAAM,KACT,OAAO,EAAE,IAAI,IACb,EACF,SAAS,EACT,IAAI,CACL,CAAC;oBAES,qBAAM,YAAY,CAC3B,GAAG,EACH,IAAI,kDAEC,MAAM,KACT,MAAM,EAAE,IAAI,KAEd,KAAK,CACN,EAAA;;oBARG,IAAI,GAAG,SAQV;oBACD,IAAI,CAAC,IAAI,EAAE;wBACT,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,kDAC9B,MAAM,KACT,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,IAAI,IACX,EACF,SAAS,EACT,IAAI,CACL,CAAC;wBACF,sBAAO;qBACR;oBAEG,OAAO,GACT,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO;wBAClB,IAAI,CAAC,IAAI,CAAC,KAAK;wBACf,IAAI,CAAC,IAAI,CAAC,IAAI;wBACd,IAAI,CAAC,IAAI;wBACT,EAAE,CAAC;oBAEL,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,kDAC9B,MAAM,KACT,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,OAAO,IACjB,EACF,SAAS,EACT,IAAI,CACL,CAAC;oBAEF,sBAAO,IAAI,EAAC;;;KACb,CAAC,CAAC;IAEH;;OAEG;IACH,IAAM,iBAAiB,GAKe,IAAA,sBAAI,EAAC,SAAU,WAAW,CAC9D,WAAkB,EAClB,GAAW,EACX,IAAY,EACZ,MAAqB;;;;;;oBAGf,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;0BAEA,EAAX,2BAAW;;;yBAAX,CAAA,yBAAW,CAAA;oBAAvB,QAAQ;oBACf,iBAAiB;oBACjB,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;wBACxB,wBAAS;qBACV;wCAGQ,KAAK;;;;;oCACR,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oCAC7B,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;oCAEhC,IAAI,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;;qCAEjC;oCAEG,IAAI,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,UAAC,IAAI,EAAE,GAAG,EAAE,SAAiB;wCACrD,OAAO,CACL,SAAS,KAAK,KAAK,GAAG,CAAC;4CACvB,IAAA,2BAAkB,EAAC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAChE,CAAC;oCACJ,CAAC,CAAC,CAAC;oCAEH,WAAW;oCACX,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;;qCAEzB;oCACK,OAAO,GAAG,IAAA,sBAAa,EAC3B,IAAI,EACJ,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,IAAI,EAAb,CAAa,CACV,CAAC;oCAEd,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,EAAE,OAAO,EAAE,CAAC,kDACtB,IAAI,KACP,OAAO,EAAE,IAAI,IACb,EACF,SAAS,EACT,IAAI,CACL,CAAC;oCAES,qBAAM,YAAY,CAC3B,GAAG,EACH,IAAI,kDACA,MAAM,KAAE,MAAM,EAAE,IAAI,KACxB,KAAK,CACN,EAAA;;oCALG,IAAI,GAAG,SAKV;oCAED,IAAI,CAAC,IAAI,EAAE;wCACT,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,EAAE,OAAO,EAAE,CAAC,kDACtB,IAAI,KACP,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,IAAI,IACX,EACF,SAAS,EACT,IAAI,CACL,CAAC;qCACH;oCAED,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oCAE/B,eAAe,GACjB,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO;wCAClB,IAAI,CAAC,IAAI,CAAC,KAAK;wCACf,IAAI,CAAC,IAAI,CAAC,IAAI;wCACd,IAAI,CAAC,IAAI;wCACT,EAAE,CAAC;oCAEL,UAAU,CACR,IAAA,mBAAU,EAAC,IAAI,EAAE,OAAO,EAAE,CAAC,kDACtB,IAAI,KACP,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,eAAe,IACzB,EACF,SAAS,EACT,IAAI,CACL,CAAC;;;;;oBAtEK,KAAK,GAAG,CAAC;;;yBAAE,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;kDAAtC,KAAK;;;;;oBAAmC,KAAK,EAAE,CAAA;;;oBAPrC,IAAW,CAAA;;;;;KAgFjC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,SAAS,WAAW,CAAC,aAA0B,EAAE,IAAa;;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE;YAC7D,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,OAAO;SACR;QAED,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE5B,IAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACnC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;gBACZ,OAAA,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;oBACrD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;oBAClC,CAAC,CAAC,IAAI;YAFR,CAEQ,CACT;YACH,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;gBAC3B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;gBACpC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;oBAClB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;4BACvD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;4BACnC,CAAC,CAAC,KAAK;qBACV,CAAC;QAEN,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,EAAE;YAC7D,QAAQ,CAAC,CAAC,CAAC;gBACT,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;gBAC/D,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;mBAChE,CAAC;SACH;QAED,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,eAAe,GAAG,IAAI,CAAC,OAAO;aAC/B,MAAM,CAAC,UAAC,IAAS;YAChB,IACE,CAAC,oBAAoB;gBACrB,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,EACpD;gBACA,oBAAoB,GAAG,IAAI,CAAC;aAC7B;YAED,OAAO,IAAI,CAAC,SAAS;gBACnB,CAAC,CAAC,IAAA,oBAAc,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,KAAK;gBAChD,CAAC,CAAC,IAAI,CAAC,QAAQ;oBACf,CAAC,CAAC,IAAA,oBAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI;oBAC9C,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;QACrD,CAAC,CAAC;aACD,GAAG,CAAC,UAAC,IAAS,EAAE,KAAK;YACpB,IAAM,QAAQ,GAAG,IAAA,oBAAc,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACvD,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU;gBAC7B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK;oBACnC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,QAAQ;oBACjD,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;oBAC7B,CAAC,iDACM,IAAI,KACP,QAAQ,EAAE,QAAQ,GACnB;gBACL,CAAC,CAAC,IAAI,CAAC;YAET,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAM,SAAS,GAAe,IAAA,oBAAW,EAAC,eAAe,CAAC,CAAC;QAC3D,IAAM,eAAe,GAAe,EAAE,CAAC;QAEvC,QAAQ,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;;YAC3B,IAAI,GAAG,GAAG,IAAA,mBAAS,EACjB,SAAS,EACT,IAAA,2BAAkB,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CACrD,CAAC;YAEF,IAAI,CAAC,GAAG,EAAE;gBACR,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;aACtC;iBAAM;gBACL,IAAI,SAAS,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;gBAEhD,IACE,SAAS;oBACT,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAC,EAChE;oBACA,SAAS;wBACP,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,IAAI;wBAClC,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,IAAI;wBAClC,cAAW,GAAE,IAAI;2BAClB,CAAC;oBAEF,IAAM,KAAK,GACT,aAAa;wBACb,IAAA,cAAI,EACF,aAAa,EACb,IAAA,2BAAkB,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CACrD,CAAC;oBAEJ,IAAI,KAAK,EAAE;wBACT,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;4BACnC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;qBACrC;iBACF;qBAAM,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;oBACzC,SAAS;wBACP,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,IAAI;wBAClC,GAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAG,SAAS;wBACvC,cAAW,GAAE,IAAI;2BAClB,CAAC;iBACH;gBAED,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;QAEH,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,IAAI,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;QACpC,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,MAAK,kBAAU,CAAC,IAAI,EAAE;YAC9C,IAAI,KAAK,GAAG,WAA0B,CAAC;YACvC,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAC;YACzD,IAAI,SAAO,GAAe,EAAE,CAAC;YAC7B,KAAK;gBACH,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI;oBACtB,IAAI,IAAI,KAAK,IAAI,EAAE;wBACjB,SAAO,CAAC,IAAI,OAAZ,SAAO,EACF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,IAAI,IAAI,CAAC,KAAK,EAAlB,CAAkB,CAAC,EAC9D;qBACH;gBACH,CAAC,CAAC,CAAC;YAEL,IAAI,eAAe,CAAC,MAAM,EAAE;gBAC1B,eAAe,GAAG,eAAe,CAAC,MAAM,CACtC,UAAA,MAAM,IAAI,OAAA,CAAC,CAAC,SAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAA/B,CAA+B,CAC1C,CAAC;aACH;SACF;QACD,IAAA,gCAAuB,EAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC;YAC5D,CAAC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,CAAC;QAC3C,IAAA,gCAAuB,EAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC;YAC5D,CAAC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,UAAU,CAAC,KAAc;QAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,QAAa,CAAC;IAClB,SAAS,WAAW;QAClB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,SAAS,WAAW,CAAC,KAAU;QAC7B,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,SAAS,KAAK,CAAC,UAA2B;QAA3B,2BAAA,EAAA,kBAA2B;QACxC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,YAAY,EAAE;YACnD,IAAM,KAAK,GAAG,QAAuB,CAAC;YACtC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;SAC3C;QAED,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,SAAS,UAAU,CACjB,MAAW,EACX,IAAS,EACT,QAA8B;QAE9B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS,WAAW,CAAC,MAAY;QAC/B,IAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,QAAQ,EAAE;YACZ,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,UAAU,CAAC,cAAM,OAAA,QAAQ,CAAC,MAAM,CAAC,EAAhB,CAAgB,EAAE,GAAG,CAAC,CAAC;SACzC;IACH,CAAC;IAED,SAAS,cAAc,CAAC,KAAU;QAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,SAAS,iBAAiB,CAAC,KAAU;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,SAAS,cAAc,CAAC,IAAoB;QAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAoB;QAC7C,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,IAAI,CAAC,EAAE,EAAb,CAAa,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,EAAE;YACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,OAAO;QACL,KAAK,OAAA;QACL,IAAI,MAAA;QACJ,MAAM,QAAA;QACN,QAAQ,UAAA;QACR,QAAQ,UAAA;QACR,QAAQ,UAAA;QACR,UAAU,YAAA;QACV,UAAU,YAAA;QACV,WAAW,aAAA;QACX,gBAAgB,kBAAA;QAChB,oBAAoB,sBAAA;QACpB,iBAAiB,mBAAA;QACjB,WAAW,aAAA;QACX,UAAU,YAAA;QACV,WAAW,aAAA;QACX,WAAW,aAAA;QACX,KAAK,OAAA;QACL,UAAU,YAAA;QACV,WAAW,aAAA;QACX,cAAc,gBAAA;QACd,iBAAiB,mBAAA;QACjB,cAAc,gBAAA;QACd,iBAAiB,mBAAA;QACjB,kBAAkB,oBAAA;KACnB,CAAC;AACJ,CAAC,CAAC,CAAC",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import {\n types,\n getParent,\n SnapshotIn,\n flow,\n getRoot,\n hasParent,\n isAlive,\n getEnv,\n Instance\n} from 'mobx-state-tree';\nimport isEqualWith from 'lodash/isEqualWith';\nimport {FormStore, IFormStore} from './form';\nimport {str2rules, validate as doValidate} from '../utils/validations';\nimport {Api, Payload, fetchOptions} from '../types';\nimport {ComboStore, IComboStore, IUniqueGroup} from './combo';\nimport {evalExpression} from '../utils/tpl';\nimport {isEffectiveApi} from '../utils/api';\nimport findIndex from 'lodash/findIndex';\nimport {\n isArrayChildrenModified,\n isObject,\n createObject,\n isObjectShallowModified,\n findTree,\n findTreeIndex,\n spliceTree,\n isEmpty,\n getTreeAncestors,\n filterTree\n} from '../utils/helper';\nimport {flattenTree} from '../utils/helper';\nimport {IRendererStore} from '.';\nimport {normalizeOptions, optionValueCompare} from '../components/Select';\nimport find from 'lodash/find';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {SimpleMap} from '../utils/SimpleMap';\nimport memoize from 'lodash/memoize';\nimport {TranslateFn} from '../locale';\nimport {StoreNode} from './node';\nimport {getStoreById} from './manager';\nimport {toast} from '../components';\n\ninterface IOption {\n value?: string | number | null;\n label?: string | null;\n children?: IOption[] | null;\n disabled?: boolean | null;\n visible?: boolean | null;\n hidden?: boolean | null;\n}\n\nconst ErrorDetail = types.model('ErrorDetail', {\n msg: '',\n tag: '',\n rule: ''\n});\n\nexport const FormItemStore = StoreNode.named('FormItemStore')\n .props({\n isFocused: false,\n type: '',\n label: '',\n unique: false,\n loading: false,\n required: false,\n tmpValue: types.frozen(),\n emitedValue: types.frozen(),\n rules: types.optional(types.frozen(), {}),\n messages: types.optional(types.frozen(), {}),\n errorData: types.optional(types.array(ErrorDetail), []),\n name: types.string,\n itemId: '', // 因为 name 可能会重名,所以加个 id 进来,如果有需要用来定位具体某一个\n unsetValueOnInvisible: false,\n itemsRef: types.optional(types.array(types.string), []),\n validated: false,\n validating: false,\n multiple: false,\n delimiter: ',',\n valueField: 'value',\n labelField: 'label',\n joinValues: true,\n extractValue: false,\n options: types.optional(types.frozen<Array<any>>(), []),\n expressionsInOptions: false,\n selectFirst: false,\n autoFill: types.frozen(),\n clearValueOnHidden: false,\n validateApi: types.optional(types.frozen(), ''),\n selectedOptions: types.optional(types.frozen(), []),\n filteredOptions: types.optional(types.frozen(), []),\n dialogSchema: types.frozen(),\n dialogOpen: false,\n dialogData: types.frozen(),\n resetValue: types.optional(types.frozen(), ''),\n validateOnChange: false\n })\n .views(self => {\n function getForm(): any {\n const form = self.parentStore;\n return form?.storeType === FormStore.name ? form : undefined;\n }\n\n function getValue(): any {\n return getForm()?.getValueByName(self.name);\n }\n\n function getLastOptionValue(): any {\n if (self.selectedOptions.length) {\n return self.selectedOptions[self.selectedOptions.length - 1].value;\n }\n\n return '';\n }\n\n function getErrors(): Array<string> {\n return self.errorData.map(item => item.msg);\n }\n\n return {\n get subFormItems(): any {\n return self.itemsRef.map(item => getStoreById(item));\n },\n\n get form(): any {\n return getForm();\n },\n\n get value(): any {\n return getValue();\n },\n\n get prinstine(): any {\n return (getForm() as IFormStore)?.getPristineValueByName(self.name);\n },\n\n get errors() {\n return getErrors();\n },\n\n get valid() {\n const errors = getErrors();\n return !!(!errors || !errors.length);\n },\n\n get errClassNames() {\n return self.errorData\n .map(item => item.rule)\n .filter((item, index, arr) => item && arr.indexOf(item) === index)\n .map(item => `has-error--${item}`)\n .join(' ');\n },\n\n get lastSelectValue(): string {\n return getLastOptionValue();\n },\n\n getSelectedOptions: (\n value: any = self.tmpValue,\n nodeValueArray?: any[] | undefined\n ) => {\n if (typeof value === 'undefined') {\n return [];\n }\n\n const valueArray = nodeValueArray\n ? nodeValueArray\n : Array.isArray(value)\n ? value\n : typeof value === 'string'\n ? value.split(self.delimiter || ',')\n : [value];\n const selected = valueArray.map(item =>\n item && item.hasOwnProperty(self.valueField || 'value')\n ? item[self.valueField || 'value']\n : item\n );\n\n const selectedOptions: Array<any> = [];\n\n selected.forEach((item, index) => {\n const matched = findTree(\n self.filteredOptions,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (matched) {\n selectedOptions.push(matched);\n } else {\n let unMatched = (valueArray && valueArray[index]) || item;\n\n if (\n unMatched &&\n (typeof unMatched === 'string' || typeof unMatched === 'number')\n ) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: item,\n __unmatched: true\n };\n } else if (unMatched && self.extractValue) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: 'UnKnown',\n __unmatched: true\n };\n }\n\n unMatched && selectedOptions.push(unMatched);\n }\n });\n\n return selectedOptions;\n }\n };\n })\n\n .actions(self => {\n const form = self.form as IFormStore;\n const dialogCallbacks = new SimpleMap<(result?: any) => void>();\n let loadAutoUpdateCancel: Function | null = null;\n\n function config({\n required,\n unique,\n value,\n rules,\n messages,\n delimiter,\n multiple,\n valueField,\n labelField,\n joinValues,\n extractValue,\n type,\n id,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n maxLength,\n minLength,\n validateOnChange,\n label\n }: {\n required?: boolean;\n unique?: boolean;\n value?: any;\n rules?: string | {[propName: string]: any};\n messages?: {[propName: string]: string};\n multiple?: boolean;\n delimiter?: string;\n valueField?: string;\n labelField?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n type?: string;\n id?: string;\n selectFirst?: boolean;\n autoFill?: any;\n clearValueOnHidden?: boolean;\n validateApi?: boolean;\n minLength?: number;\n maxLength?: number;\n validateOnChange?: boolean;\n label?: string;\n }) {\n if (typeof rules === 'string') {\n rules = str2rules(rules);\n }\n\n typeof type !== 'undefined' && (self.type = type);\n typeof id !== 'undefined' && (self.itemId = id);\n typeof messages !== 'undefined' && (self.messages = messages);\n typeof required !== 'undefined' && (self.required = !!required);\n typeof unique !== 'undefined' && (self.unique = !!unique);\n typeof multiple !== 'undefined' && (self.multiple = !!multiple);\n typeof selectFirst !== 'undefined' && (self.selectFirst = !!selectFirst);\n typeof autoFill !== 'undefined' && (self.autoFill = autoFill);\n typeof joinValues !== 'undefined' && (self.joinValues = !!joinValues);\n typeof extractValue !== 'undefined' &&\n (self.extractValue = !!extractValue);\n typeof delimiter !== 'undefined' &&\n (self.delimiter = (delimiter as string) || ',');\n typeof valueField !== 'undefined' &&\n (self.valueField = (valueField as string) || 'value');\n typeof labelField !== 'undefined' &&\n (self.labelField = (labelField as string) || 'label');\n typeof clearValueOnHidden !== 'undefined' &&\n (self.clearValueOnHidden = !!clearValueOnHidden);\n typeof validateApi !== 'undefined' && (self.validateApi = validateApi);\n typeof validateOnChange !== 'undefined' &&\n (self.validateOnChange = !!validateOnChange);\n typeof label === 'string' && (self.label = label);\n\n rules = {\n ...rules,\n isRequired: self.required\n };\n\n // todo 这个弄个配置由渲染器自己来决定\n // 暂时先这样\n if (~['input-text', 'textarea'].indexOf(self.type)) {\n if (typeof minLength === 'number') {\n rules.minLength = minLength;\n }\n\n if (typeof maxLength === 'number') {\n rules.maxLength = maxLength;\n }\n }\n\n if (isObjectShallowModified(rules, self.rules)) {\n self.rules = rules;\n clearError('builtin');\n self.validated = false;\n }\n }\n\n function focus() {\n self.isFocused = true;\n }\n\n function blur() {\n self.isFocused = false;\n }\n\n let validateCancel: Function | null = null;\n const validate: (data: Object, hook?: any) => Promise<boolean> = flow(\n function* validate(data: Object, hook?: any) {\n if (self.validating && !isEffectiveApi(self.validateApi, data)) {\n return self.valid;\n }\n\n self.validating = true;\n clearError();\n if (hook) {\n yield hook();\n }\n\n addError(\n doValidate(self.tmpValue, data, self.rules, self.messages, self.__)\n );\n\n if (!self.errors.length && isEffectiveApi(self.validateApi, data)) {\n if (validateCancel) {\n validateCancel();\n validateCancel = null;\n }\n\n const json: Payload = yield getEnv(self).fetcher(\n self.validateApi,\n /** 如果配置validateApi,需要将用户最新输入同步到数据域内 */\n createObject(data, {[self.name]: self.tmpValue}),\n {\n cancelExecutor: (executor: Function) =>\n (validateCancel = executor)\n }\n );\n validateCancel = null;\n\n if (!json.ok && json.status === 422 && json.errors) {\n addError(\n String(\n json.errors || json.msg || `表单项「${self.name}」校验失败`\n )\n );\n }\n }\n\n self.validated = true;\n\n if (self.unique && self.form?.parentStore?.storeType === 'ComboStore') {\n const combo = self.form.parentStore as IComboStore;\n const group = combo.uniques.get(self.name) as IUniqueGroup;\n\n if (\n group.items.some(\n item =>\n item !== self &&\n self.tmpValue !== undefined &&\n item.value === self.tmpValue\n )\n ) {\n addError(self.__('Form.unique'));\n }\n }\n\n self.validating = false;\n return self.valid;\n }\n );\n\n function setError(msg: string | Array<string>, tag: string = 'builtin') {\n clearError();\n addError(msg, tag);\n }\n\n function addError(\n msg:\n | string\n | Array<\n | string\n | {\n msg: string;\n rule: string;\n }\n >,\n tag: string = 'builtin'\n ) {\n const msgs: Array<\n | string\n | {\n msg: string;\n rule: string;\n }\n > = Array.isArray(msg) ? msg : [msg];\n msgs.forEach(item =>\n self.errorData.push({\n msg: typeof item === 'string' ? item : item.msg,\n rule: typeof item !== 'string' ? item.rule : undefined,\n tag: tag\n })\n );\n }\n\n function clearError(tag?: string) {\n if (tag) {\n const filtered = self.errorData.filter(item => item.tag !== tag);\n self.errorData.replace(filtered);\n } else {\n self.errorData.clear();\n }\n }\n\n function getFirstAvaibleOption(options: Array<any>): any {\n if (!Array.isArray(options)) {\n return;\n }\n\n for (let option of options) {\n if (Array.isArray(option.children)) {\n const childFirst = getFirstAvaibleOption(option.children);\n if (childFirst !== undefined) {\n return childFirst;\n }\n } else if (option[self.valueField || 'value'] && !option.disabled) {\n return option;\n }\n }\n }\n\n function setOptions(\n options: Array<object>,\n onChange?: (value: any) => void,\n data?: Object\n ) {\n if (!Array.isArray(options)) {\n return;\n }\n options = filterTree(options, item => item);\n const originOptions = self.options.concat();\n self.options = options;\n syncOptions(originOptions, data);\n let selectedOptions;\n\n if (\n onChange &&\n self.selectFirst &&\n self.filteredOptions.length &&\n (selectedOptions = self.getSelectedOptions(self.value)) &&\n !selectedOptions.filter(item => !item.__unmatched).length\n ) {\n const fistOption = getFirstAvaibleOption(self.filteredOptions);\n if (!fistOption) {\n return;\n }\n\n const list = [fistOption].map((item: any) => {\n if (self.extractValue || self.joinValues) {\n return item[self.valueField || 'value'];\n }\n\n return item;\n });\n\n const value =\n self.joinValues && self.multiple\n ? list.join(self.delimiter)\n : self.multiple\n ? list\n : list[0];\n\n onChange(value);\n }\n }\n\n let loadCancel: Function | null = null;\n const fetchOptions: (\n api: Api,\n data?: object,\n config?: fetchOptions,\n setErrorFlag?: boolean\n ) => Promise<Payload | null> = flow(function* getInitData(\n api: string,\n data: object,\n config?: fetchOptions,\n setErrorFlag?: boolean\n ) {\n try {\n if (loadCancel) {\n loadCancel();\n loadCancel = null;\n self.loading = false;\n }\n\n if (!config?.silent) {\n self.loading = true;\n }\n\n const json: Payload = yield getEnv(self).fetcher(api, data, {\n autoAppend: false,\n cancelExecutor: (executor: Function) => (loadCancel = executor),\n ...config\n });\n loadCancel = null;\n let result: any = null;\n\n if (!json.ok) {\n setErrorFlag !== false &&\n setError(\n self.__('Form.loadOptionsFailed', {\n reason: json.msg ?? (config && config.errorMessage)\n })\n );\n getEnv(self).notify(\n 'error',\n self.errors.join('') || `${api}:${json.msg}`,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n } else {\n result = json;\n }\n\n self.loading = false;\n return result;\n } catch (e) {\n const env = getEnv(self);\n\n if (!isAlive(self) || self.disposed) {\n return;\n }\n\n self.loading = false;\n if (env.isCancel(e)) {\n return;\n }\n\n console.error(e.stack);\n env.notify('error', e.message);\n return;\n }\n } as any);\n\n const loadOptions: (\n api: Api,\n data?: object,\n config?: fetchOptions & {\n extendsOptions?: boolean;\n },\n clearValue?: boolean,\n onChange?: (value: any) => void,\n setErrorFlag?: boolean\n ) => Promise<Payload | null> = flow(function* getInitData(\n api: string,\n data: object,\n config?: fetchOptions,\n clearValue?: any,\n onChange?: (\n value: any,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) => void,\n setErrorFlag?: boolean\n ) {\n let json = yield fetchOptions(api, data, config, setErrorFlag);\n if (!json) {\n return;\n }\n\n clearError();\n self.validated = false; // 拉完数据应该需要再校验一下\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data?.items ||\n json.data?.rows ||\n json.data ||\n [];\n\n options = normalizeOptions(options as any, undefined, self.valueField);\n\n if (config?.extendsOptions && self.selectedOptions.length > 0) {\n self.selectedOptions.forEach((item: any) => {\n const exited = findTree(\n options as any,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (!exited) {\n options.push(item);\n }\n });\n }\n\n setOptions(options, onChange, data);\n\n if (json.data && typeof (json.data as any).value !== 'undefined') {\n onChange && onChange((json.data as any).value, false, true);\n } else if (clearValue && !self.selectFirst) {\n self.selectedOptions.some((item: any) => item.__unmatched) &&\n onChange &&\n onChange('', false, true);\n }\n\n return json;\n });\n\n const loadAutoUpdateData: (\n api: Api,\n data?: object,\n silent?: boolean\n ) => Promise<Payload> = flow(function* getAutoUpdateData(\n api: string,\n data: object,\n silent: boolean = true\n ) {\n if (loadAutoUpdateCancel) {\n loadAutoUpdateCancel();\n loadAutoUpdateCancel = null;\n }\n\n const json: Payload = yield getEnv(self).fetcher(api, data, {\n cancelExecutor: (executor: Function) =>\n (loadAutoUpdateCancel = executor)\n });\n loadAutoUpdateCancel = null;\n\n if (!json) {\n return;\n }\n\n const result = json.data?.items || json.data?.rows;\n // 只处理仅有一个结果的数据\n if (result?.length === 1) {\n return result[0];\n } else if (isPlainObject(json.data)) {\n return json.data;\n }\n\n !silent && toast.info(self.__('FormItem.autoUpdateloadFaild'));\n\n return;\n });\n\n const tryDeferLoadLeftOptions: (\n option: any,\n leftOptions: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n leftOptions: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n if (!Array.isArray(leftOptions)) {\n return;\n }\n\n const indexes = findTreeIndex(\n self.options,\n item => item.leftOptions === leftOptions\n );\n const leftIndexes = findTreeIndex(leftOptions, item => item === option);\n const topOption = findTree(\n self.options,\n item => item.leftOptions === leftOptions\n );\n\n if (!indexes || !leftIndexes || !topOption) {\n return;\n }\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...topOption,\n loading: true,\n leftOptions: spliceTree(topOption.leftOptions, leftIndexes, 1, {\n ...option,\n loading: true\n })\n }),\n undefined,\n data\n );\n\n let json = yield fetchOptions(\n api,\n data,\n {\n ...config,\n silent: true\n },\n false\n );\n\n if (!json) {\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...topOption,\n loading: false,\n error: true,\n leftOptions: spliceTree(topOption.leftOptions, leftIndexes, 1, {\n ...option,\n loading: false,\n error: true\n })\n }),\n undefined,\n data\n );\n return;\n }\n\n const options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n const newLeftOptions = spliceTree(topOption.leftOptions, leftIndexes, 1, {\n ...option,\n loading: false,\n loaded: true,\n children: options\n });\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...topOption,\n loading: false,\n loaded: true,\n children: options,\n leftOptions: newLeftOptions\n }),\n undefined,\n data\n );\n\n // 插入新的子节点,用于之后BaseSelection.resolveSelected查找\n if (Array.isArray(topOption.children)) {\n const children = topOption.children.concat();\n flattenTree(newLeftOptions).forEach(item => {\n if (!findTree(topOption.children, node => node.ref === item.value)) {\n children.push({ref: item.value, defer: true});\n }\n });\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...topOption,\n leftOptions: newLeftOptions,\n children\n }),\n undefined,\n data\n );\n }\n\n return json;\n });\n\n const deferLoadLeftOptions: (\n option: any,\n leftOptions: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n leftOptions: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n return yield tryDeferLoadLeftOptions(\n option,\n leftOptions,\n api,\n data,\n config\n );\n });\n\n const deferLoadOptions: (\n option: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n const labelField = self.labelField || 'label';\n const valueField = self.valueField || 'value';\n const indexes = findTreeIndex(\n self.options,\n item =>\n item === option ||\n /** tree-select中会对option添加collapsed, visible属性,导致item === option不通过 */\n isEqualWith(\n item,\n option,\n (source, target) =>\n source?.[valueField] != null &&\n target?.[valueField] != null &&\n source?.[labelField] === target?.[labelField] &&\n source?.[valueField] === target?.[valueField]\n )\n );\n if (!indexes) {\n const leftOptions = self.options[0]?.leftOptions;\n return yield tryDeferLoadLeftOptions(\n option,\n leftOptions,\n api,\n data,\n config\n );\n }\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: true\n }),\n undefined,\n data\n );\n\n let json = yield fetchOptions(\n api,\n data,\n {\n ...config,\n silent: true\n },\n false\n );\n if (!json) {\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: false,\n error: true\n }),\n undefined,\n data\n );\n return;\n }\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: false,\n loaded: true,\n children: options\n }),\n undefined,\n data\n );\n\n return json;\n });\n\n /**\n * 根据当前节点路径展开树形组件父节点\n */\n const expandTreeOptions: (\n nodePathArr: any[],\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null | void> = flow(function* getInitData(\n nodePathArr: any[],\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n // 多选模式下需要记录遍历过的Node,避免发送相同的请求\n const traversedNode = new Map();\n\n for (let nodePath of nodePathArr) {\n // 根节点已经展开了,不需要加载\n if (nodePath.length <= 1) {\n continue;\n }\n\n // 叶节点不需要展开\n for (let level = 0; level < nodePath.length - 1; level++) {\n let tree = self.options.concat();\n let nodeValue = nodePath[level];\n\n if (traversedNode.has(nodeValue)) {\n continue;\n }\n // 节点value认为是唯一的\n let node = findTree(tree, (item, key, treeLevel: number) => {\n return (\n treeLevel === level + 1 &&\n optionValueCompare(nodeValue, self.valueField || 'value')(item)\n );\n });\n\n // 只处理懒加载节点\n if (!node || !node.defer) {\n continue;\n }\n const indexes = findTreeIndex(\n tree,\n item => item === node\n ) as number[];\n\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: true\n }),\n undefined,\n node\n );\n\n let json = yield fetchOptions(\n api,\n node,\n {...config, silent: true},\n false\n );\n\n if (!json) {\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: false,\n error: true\n }),\n undefined,\n node\n );\n }\n\n traversedNode.set(nodeValue, true);\n\n let childrenOptions: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: false,\n loaded: true,\n children: childrenOptions\n }),\n undefined,\n node\n );\n }\n }\n });\n\n // @issue 强依赖form,需要改造暂且放过。\n function syncOptions(originOptions?: Array<any>, data?: Object) {\n if (!self.options.length && typeof self.value === 'undefined') {\n self.selectedOptions = [];\n self.filteredOptions = [];\n return;\n }\n\n const value = self.tmpValue;\n\n const selected = Array.isArray(value)\n ? value.map(item =>\n item && item.hasOwnProperty(self.valueField || 'value')\n ? item[self.valueField || 'value']\n : item\n )\n : typeof value === 'string'\n ? value.split(self.delimiter || ',')\n : value === void 0\n ? []\n : [\n value && value.hasOwnProperty(self.valueField || 'value')\n ? value[self.valueField || 'value']\n : value\n ];\n\n if (value && value.hasOwnProperty(self.labelField || 'label')) {\n selected[0] = {\n [self.labelField || 'label']: value[self.labelField || 'label'],\n [self.valueField || 'value']: value[self.valueField || 'value']\n };\n }\n\n let expressionsInOptions = false;\n let filteredOptions = self.options\n .filter((item: any) => {\n if (\n !expressionsInOptions &&\n (item.visibleOn || item.hiddenOn || item.disabledOn)\n ) {\n expressionsInOptions = true;\n }\n\n return item.visibleOn\n ? evalExpression(item.visibleOn, data) !== false\n : item.hiddenOn\n ? evalExpression(item.hiddenOn, data) !== true\n : item.visible !== false || item.hidden !== true;\n })\n .map((item: any, index) => {\n const disabled = evalExpression(item.disabledOn, data);\n const newItem = item.disabledOn\n ? self.filteredOptions.length > index &&\n self.filteredOptions[index].disabled === disabled\n ? self.filteredOptions[index]\n : {\n ...item,\n disabled: disabled\n }\n : item;\n\n return newItem;\n });\n\n self.expressionsInOptions = expressionsInOptions;\n const flattened: Array<any> = flattenTree(filteredOptions);\n const selectedOptions: Array<any> = [];\n\n selected.forEach((item, index) => {\n let idx = findIndex(\n flattened,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (~idx) {\n selectedOptions.push(flattened[idx]);\n } else {\n let unMatched = (value && value[index]) || item;\n\n if (\n unMatched &&\n (typeof unMatched === 'string' || typeof unMatched === 'number')\n ) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: item,\n __unmatched: true\n };\n\n const orgin: any =\n originOptions &&\n find(\n originOptions,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (orgin) {\n unMatched[self.labelField || 'label'] =\n orgin[self.labelField || 'label'];\n }\n } else if (unMatched && self.extractValue) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: 'UnKnown',\n __unmatched: true\n };\n }\n\n unMatched && selectedOptions.push(unMatched);\n }\n });\n\n const form = self.form;\n\n let parentStore = form?.parentStore;\n if (parentStore?.storeType === ComboStore.name) {\n let combo = parentStore as IComboStore;\n let group = combo.uniques.get(self.name) as IUniqueGroup;\n let options: Array<any> = [];\n group &&\n group.items.forEach(item => {\n if (self !== item) {\n options.push(\n ...item.selectedOptions.map((item: any) => item && item.value)\n );\n }\n });\n\n if (filteredOptions.length) {\n filteredOptions = filteredOptions.filter(\n option => !~options.indexOf(option.value)\n );\n }\n }\n isArrayChildrenModified(self.selectedOptions, selectedOptions) &&\n (self.selectedOptions = selectedOptions);\n isArrayChildrenModified(self.filteredOptions, filteredOptions) &&\n (self.filteredOptions = filteredOptions);\n }\n\n function setLoading(value: boolean) {\n self.loading = value;\n }\n\n let subStore: any;\n function getSubStore() {\n return subStore;\n }\n\n function setSubStore(store: any) {\n subStore = store;\n }\n\n function reset(keepErrors: boolean = false) {\n self.validated = false;\n\n if (subStore && subStore.storeType === 'ComboStore') {\n const combo = subStore as IComboStore;\n combo.forms.forEach(form => form.reset());\n }\n\n !keepErrors && clearError();\n }\n\n function openDialog(\n schema: any,\n data: any,\n callback?: (ret?: any) => void\n ) {\n self.dialogSchema = schema;\n self.dialogData = data;\n self.dialogOpen = true;\n callback && dialogCallbacks.set(self.dialogData, callback);\n }\n\n function closeDialog(result?: any) {\n const callback = dialogCallbacks.get(self.dialogData);\n self.dialogOpen = false;\n\n if (callback) {\n dialogCallbacks.delete(self.dialogData);\n setTimeout(() => callback(result), 200);\n }\n }\n\n function changeTmpValue(value: any) {\n self.tmpValue = value;\n }\n\n function changeEmitedValue(value: any) {\n self.emitedValue = value;\n }\n\n function addSubFormItem(item: IFormItemStore) {\n self.itemsRef.push(item.id);\n }\n\n function removeSubFormItem(item: IFormItemStore) {\n const idx = self.itemsRef.findIndex(a => a === item.id);\n if (~idx) {\n self.itemsRef.splice(idx, 1);\n }\n }\n\n return {\n focus,\n blur,\n config,\n validate,\n setError,\n addError,\n clearError,\n setOptions,\n loadOptions,\n deferLoadOptions,\n deferLoadLeftOptions,\n expandTreeOptions,\n syncOptions,\n setLoading,\n setSubStore,\n getSubStore,\n reset,\n openDialog,\n closeDialog,\n changeTmpValue,\n changeEmitedValue,\n addSubFormItem,\n removeSubFormItem,\n loadAutoUpdateData\n };\n });\n\nexport type IFormItemStore = Instance<typeof FormItemStore>;\nexport type SFormItemStore = SnapshotIn<typeof FormItemStore>;\n"
11
+ "import {\n types,\n getParent,\n SnapshotIn,\n flow,\n getRoot,\n hasParent,\n isAlive,\n getEnv,\n Instance\n} from 'mobx-state-tree';\nimport isEqualWith from 'lodash/isEqualWith';\nimport {FormStore, IFormStore} from './form';\nimport {str2rules, validate as doValidate} from '../utils/validations';\nimport {Api, Payload, fetchOptions} from '../types';\nimport {ComboStore, IComboStore, IUniqueGroup} from './combo';\nimport {evalExpression} from '../utils/tpl';\nimport {isEffectiveApi} from '../utils/api';\nimport findIndex from 'lodash/findIndex';\nimport {\n isArrayChildrenModified,\n isObject,\n createObject,\n isObjectShallowModified,\n findTree,\n findTreeIndex,\n spliceTree,\n isEmpty,\n getTreeAncestors,\n filterTree\n} from '../utils/helper';\nimport {flattenTree} from '../utils/helper';\nimport {IRendererStore} from '.';\nimport {normalizeOptions, optionValueCompare} from '../components/Select';\nimport find from 'lodash/find';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {SimpleMap} from '../utils/SimpleMap';\nimport memoize from 'lodash/memoize';\nimport {TranslateFn} from '../locale';\nimport {StoreNode} from './node';\nimport {getStoreById} from './manager';\nimport {toast} from '../components';\n\ninterface IOption {\n value?: string | number | null;\n label?: string | null;\n children?: IOption[] | null;\n disabled?: boolean | null;\n visible?: boolean | null;\n hidden?: boolean | null;\n}\n\nconst ErrorDetail = types.model('ErrorDetail', {\n msg: '',\n tag: '',\n rule: ''\n});\n\nexport const FormItemStore = StoreNode.named('FormItemStore')\n .props({\n isFocused: false,\n type: '',\n label: '',\n unique: false,\n loading: false,\n required: false,\n tmpValue: types.frozen(),\n emitedValue: types.frozen(),\n rules: types.optional(types.frozen(), {}),\n messages: types.optional(types.frozen(), {}),\n errorData: types.optional(types.array(ErrorDetail), []),\n name: types.string,\n itemId: '', // 因为 name 可能会重名,所以加个 id 进来,如果有需要用来定位具体某一个\n unsetValueOnInvisible: false,\n itemsRef: types.optional(types.array(types.string), []),\n validated: false,\n validating: false,\n multiple: false,\n delimiter: ',',\n valueField: 'value',\n labelField: 'label',\n joinValues: true,\n extractValue: false,\n options: types.optional(types.frozen<Array<any>>(), []),\n expressionsInOptions: false,\n selectFirst: false,\n autoFill: types.frozen(),\n clearValueOnHidden: false,\n validateApi: types.optional(types.frozen(), ''),\n selectedOptions: types.optional(types.frozen(), []),\n filteredOptions: types.optional(types.frozen(), []),\n dialogSchema: types.frozen(),\n dialogOpen: false,\n dialogData: types.frozen(),\n resetValue: types.optional(types.frozen(), ''),\n validateOnChange: false\n })\n .views(self => {\n function getForm(): any {\n const form = self.parentStore;\n return form?.storeType === FormStore.name ? form : undefined;\n }\n\n function getValue(): any {\n return getForm()?.getValueByName(self.name);\n }\n\n function getLastOptionValue(): any {\n if (self.selectedOptions.length) {\n return self.selectedOptions[self.selectedOptions.length - 1].value;\n }\n\n return '';\n }\n\n function getErrors(): Array<string> {\n return self.errorData.map(item => item.msg);\n }\n\n return {\n get subFormItems(): any {\n return self.itemsRef.map(item => getStoreById(item));\n },\n\n get form(): any {\n return getForm();\n },\n\n get value(): any {\n return getValue();\n },\n\n get prinstine(): any {\n return (getForm() as IFormStore)?.getPristineValueByName(self.name);\n },\n\n get errors() {\n return getErrors();\n },\n\n get valid() {\n const errors = getErrors();\n return !!(!errors || !errors.length);\n },\n\n get errClassNames() {\n return self.errorData\n .map(item => item.rule)\n .filter((item, index, arr) => item && arr.indexOf(item) === index)\n .map(item => `has-error--${item}`)\n .join(' ');\n },\n\n get lastSelectValue(): string {\n return getLastOptionValue();\n },\n\n getSelectedOptions: (\n value: any = self.tmpValue,\n nodeValueArray?: any[] | undefined\n ) => {\n if (typeof value === 'undefined') {\n return [];\n }\n\n const valueArray = nodeValueArray\n ? nodeValueArray\n : Array.isArray(value)\n ? value\n : typeof value === 'string'\n ? value.split(self.delimiter || ',')\n : [value];\n const selected = valueArray.map(item =>\n item && item.hasOwnProperty(self.valueField || 'value')\n ? item[self.valueField || 'value']\n : item\n );\n\n const selectedOptions: Array<any> = [];\n\n selected.forEach((item, index) => {\n const matched = findTree(\n self.filteredOptions,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (matched) {\n selectedOptions.push(matched);\n } else {\n let unMatched = (valueArray && valueArray[index]) || item;\n\n if (\n unMatched &&\n (typeof unMatched === 'string' || typeof unMatched === 'number')\n ) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: item,\n __unmatched: true\n };\n } else if (unMatched && self.extractValue) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: 'UnKnown',\n __unmatched: true\n };\n }\n\n unMatched && selectedOptions.push(unMatched);\n }\n });\n\n return selectedOptions;\n }\n };\n })\n\n .actions(self => {\n const form = self.form as IFormStore;\n const dialogCallbacks = new SimpleMap<(result?: any) => void>();\n let loadAutoUpdateCancel: Function | null = null;\n\n function config({\n required,\n unique,\n value,\n rules,\n messages,\n delimiter,\n multiple,\n valueField,\n labelField,\n joinValues,\n extractValue,\n type,\n id,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n maxLength,\n minLength,\n validateOnChange,\n label\n }: {\n required?: boolean;\n unique?: boolean;\n value?: any;\n rules?: string | {[propName: string]: any};\n messages?: {[propName: string]: string};\n multiple?: boolean;\n delimiter?: string;\n valueField?: string;\n labelField?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n type?: string;\n id?: string;\n selectFirst?: boolean;\n autoFill?: any;\n clearValueOnHidden?: boolean;\n validateApi?: boolean;\n minLength?: number;\n maxLength?: number;\n validateOnChange?: boolean;\n label?: string;\n }) {\n if (typeof rules === 'string') {\n rules = str2rules(rules);\n }\n\n typeof type !== 'undefined' && (self.type = type);\n typeof id !== 'undefined' && (self.itemId = id);\n typeof messages !== 'undefined' && (self.messages = messages);\n typeof required !== 'undefined' && (self.required = !!required);\n typeof unique !== 'undefined' && (self.unique = !!unique);\n typeof multiple !== 'undefined' && (self.multiple = !!multiple);\n typeof selectFirst !== 'undefined' && (self.selectFirst = !!selectFirst);\n typeof autoFill !== 'undefined' && (self.autoFill = autoFill);\n typeof joinValues !== 'undefined' && (self.joinValues = !!joinValues);\n typeof extractValue !== 'undefined' &&\n (self.extractValue = !!extractValue);\n typeof delimiter !== 'undefined' &&\n (self.delimiter = (delimiter as string) || ',');\n typeof valueField !== 'undefined' &&\n (self.valueField = (valueField as string) || 'value');\n typeof labelField !== 'undefined' &&\n (self.labelField = (labelField as string) || 'label');\n typeof clearValueOnHidden !== 'undefined' &&\n (self.clearValueOnHidden = !!clearValueOnHidden);\n typeof validateApi !== 'undefined' && (self.validateApi = validateApi);\n typeof validateOnChange !== 'undefined' &&\n (self.validateOnChange = !!validateOnChange);\n typeof label === 'string' && (self.label = label);\n\n rules = {\n ...rules,\n isRequired: self.required\n };\n\n // todo 这个弄个配置由渲染器自己来决定\n // 暂时先这样\n if (~['input-text', 'textarea'].indexOf(self.type)) {\n if (typeof minLength === 'number') {\n rules.minLength = minLength;\n }\n\n if (typeof maxLength === 'number') {\n rules.maxLength = maxLength;\n }\n }\n\n if (isObjectShallowModified(rules, self.rules)) {\n self.rules = rules;\n clearError('builtin');\n self.validated = false;\n }\n }\n\n function focus() {\n self.isFocused = true;\n }\n\n function blur() {\n self.isFocused = false;\n }\n\n let validateCancel: Function | null = null;\n const validate: (\n data: Object,\n hook?: any,\n /**\n * customRules主要是为了支持action.require的验证方式\n * 这样可以基于不同的action实现不同的校验规则\n */\n customRules?: {[propName: string]: any}\n ) => Promise<boolean> = flow(function* validate(\n data: Object,\n hook?: any,\n customRules?: {[propName: string]: any}\n ) {\n if (self.validating && !isEffectiveApi(self.validateApi, data)) {\n return self.valid;\n }\n\n self.validating = true;\n clearError();\n if (hook) {\n yield hook();\n }\n\n addError(\n doValidate(\n self.tmpValue,\n data,\n customRules ? str2rules(customRules) : self.rules,\n self.messages,\n self.__\n )\n );\n\n if (!self.errors.length && isEffectiveApi(self.validateApi, data)) {\n if (validateCancel) {\n validateCancel();\n validateCancel = null;\n }\n\n const json: Payload = yield getEnv(self).fetcher(\n self.validateApi,\n /** 如果配置validateApi,需要将用户最新输入同步到数据域内 */\n createObject(data, {[self.name]: self.tmpValue}),\n {\n cancelExecutor: (executor: Function) => (validateCancel = executor)\n }\n );\n validateCancel = null;\n\n if (!json.ok && json.status === 422 && json.errors) {\n addError(\n String(json.errors || json.msg || `表单项「${self.name}」校验失败`)\n );\n }\n }\n\n self.validated = true;\n\n if (self.unique && self.form?.parentStore?.storeType === 'ComboStore') {\n const combo = self.form.parentStore as IComboStore;\n const group = combo.uniques.get(self.name) as IUniqueGroup;\n\n if (\n group.items.some(\n item =>\n item !== self &&\n self.tmpValue !== undefined &&\n item.value === self.tmpValue\n )\n ) {\n addError(self.__('Form.unique'));\n }\n }\n\n self.validating = false;\n return self.valid;\n });\n\n function setError(msg: string | Array<string>, tag: string = 'builtin') {\n clearError();\n addError(msg, tag);\n }\n\n function addError(\n msg:\n | string\n | Array<\n | string\n | {\n msg: string;\n rule: string;\n }\n >,\n tag: string = 'builtin'\n ) {\n const msgs: Array<\n | string\n | {\n msg: string;\n rule: string;\n }\n > = Array.isArray(msg) ? msg : [msg];\n msgs.forEach(item =>\n self.errorData.push({\n msg: typeof item === 'string' ? item : item.msg,\n rule: typeof item !== 'string' ? item.rule : undefined,\n tag: tag\n })\n );\n }\n\n function clearError(tag?: string) {\n if (tag) {\n const filtered = self.errorData.filter(item => item.tag !== tag);\n self.errorData.replace(filtered);\n } else {\n self.errorData.clear();\n }\n }\n\n function getFirstAvaibleOption(options: Array<any>): any {\n if (!Array.isArray(options)) {\n return;\n }\n\n for (let option of options) {\n if (Array.isArray(option.children)) {\n const childFirst = getFirstAvaibleOption(option.children);\n if (childFirst !== undefined) {\n return childFirst;\n }\n } else if (option[self.valueField || 'value'] && !option.disabled) {\n return option;\n }\n }\n }\n\n function setOptions(\n options: Array<object>,\n onChange?: (value: any) => void,\n data?: Object\n ) {\n if (!Array.isArray(options)) {\n return;\n }\n options = filterTree(options, item => item);\n const originOptions = self.options.concat();\n self.options = options;\n syncOptions(originOptions, data);\n let selectedOptions;\n\n if (\n onChange &&\n self.selectFirst &&\n self.filteredOptions.length &&\n (selectedOptions = self.getSelectedOptions(self.value)) &&\n !selectedOptions.filter(item => !item.__unmatched).length\n ) {\n const fistOption = getFirstAvaibleOption(self.filteredOptions);\n if (!fistOption) {\n return;\n }\n\n const list = [fistOption].map((item: any) => {\n if (self.extractValue || self.joinValues) {\n return item[self.valueField || 'value'];\n }\n\n return item;\n });\n\n const value =\n self.joinValues && self.multiple\n ? list.join(self.delimiter)\n : self.multiple\n ? list\n : list[0];\n\n onChange(value);\n }\n }\n\n let loadCancel: Function | null = null;\n const fetchOptions: (\n api: Api,\n data?: object,\n config?: fetchOptions,\n setErrorFlag?: boolean\n ) => Promise<Payload | null> = flow(function* getInitData(\n api: string,\n data: object,\n config?: fetchOptions,\n setErrorFlag?: boolean\n ) {\n try {\n if (loadCancel) {\n loadCancel();\n loadCancel = null;\n self.loading = false;\n }\n\n if (!config?.silent) {\n self.loading = true;\n }\n\n const json: Payload = yield getEnv(self).fetcher(api, data, {\n autoAppend: false,\n cancelExecutor: (executor: Function) => (loadCancel = executor),\n ...config\n });\n loadCancel = null;\n let result: any = null;\n\n if (!json.ok) {\n setErrorFlag !== false &&\n setError(\n self.__('Form.loadOptionsFailed', {\n reason: json.msg ?? (config && config.errorMessage)\n })\n );\n getEnv(self).notify(\n 'error',\n self.errors.join('') || `${api}:${json.msg}`,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n } else {\n result = json;\n }\n\n self.loading = false;\n return result;\n } catch (e) {\n const env = getEnv(self);\n\n if (!isAlive(self) || self.disposed) {\n return;\n }\n\n self.loading = false;\n if (env.isCancel(e)) {\n return;\n }\n\n console.error(e.stack);\n env.notify('error', e.message);\n return;\n }\n } as any);\n\n const loadOptions: (\n api: Api,\n data?: object,\n config?: fetchOptions & {\n extendsOptions?: boolean;\n },\n clearValue?: boolean,\n onChange?: (value: any) => void,\n setErrorFlag?: boolean\n ) => Promise<Payload | null> = flow(function* getInitData(\n api: string,\n data: object,\n config?: fetchOptions,\n clearValue?: any,\n onChange?: (\n value: any,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) => void,\n setErrorFlag?: boolean\n ) {\n let json = yield fetchOptions(api, data, config, setErrorFlag);\n if (!json) {\n return;\n }\n\n clearError();\n self.validated = false; // 拉完数据应该需要再校验一下\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data?.items ||\n json.data?.rows ||\n json.data ||\n [];\n\n options = normalizeOptions(options as any, undefined, self.valueField);\n\n if (config?.extendsOptions && self.selectedOptions.length > 0) {\n self.selectedOptions.forEach((item: any) => {\n const exited = findTree(\n options as any,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (!exited) {\n options.push(item);\n }\n });\n }\n\n setOptions(options, onChange, data);\n\n if (json.data && typeof (json.data as any).value !== 'undefined') {\n onChange && onChange((json.data as any).value, false, true);\n } else if (clearValue && !self.selectFirst) {\n self.selectedOptions.some((item: any) => item.__unmatched) &&\n onChange &&\n onChange('', false, true);\n }\n\n return json;\n });\n\n const loadAutoUpdateData: (\n api: Api,\n data?: object,\n silent?: boolean\n ) => Promise<Payload> = flow(function* getAutoUpdateData(\n api: string,\n data: object,\n silent: boolean = true\n ) {\n if (loadAutoUpdateCancel) {\n loadAutoUpdateCancel();\n loadAutoUpdateCancel = null;\n }\n\n const json: Payload = yield getEnv(self).fetcher(api, data, {\n cancelExecutor: (executor: Function) =>\n (loadAutoUpdateCancel = executor)\n });\n loadAutoUpdateCancel = null;\n\n if (!json) {\n return;\n }\n\n const result = json.data?.items || json.data?.rows;\n // 只处理仅有一个结果的数据\n if (result?.length === 1) {\n return result[0];\n } else if (isPlainObject(json.data)) {\n return json.data;\n }\n\n !silent && toast.info(self.__('FormItem.autoUpdateloadFaild'));\n\n return;\n });\n\n const tryDeferLoadLeftOptions: (\n option: any,\n leftOptions: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n leftOptions: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n if (!Array.isArray(leftOptions)) {\n return;\n }\n\n const indexes = findTreeIndex(\n self.options,\n item => item.leftOptions === leftOptions\n );\n const leftIndexes = findTreeIndex(leftOptions, item => item === option);\n const topOption = findTree(\n self.options,\n item => item.leftOptions === leftOptions\n );\n\n if (!indexes || !leftIndexes || !topOption) {\n return;\n }\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...topOption,\n loading: true,\n leftOptions: spliceTree(topOption.leftOptions, leftIndexes, 1, {\n ...option,\n loading: true\n })\n }),\n undefined,\n data\n );\n\n let json = yield fetchOptions(\n api,\n data,\n {\n ...config,\n silent: true\n },\n false\n );\n\n if (!json) {\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...topOption,\n loading: false,\n error: true,\n leftOptions: spliceTree(topOption.leftOptions, leftIndexes, 1, {\n ...option,\n loading: false,\n error: true\n })\n }),\n undefined,\n data\n );\n return;\n }\n\n const options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n const newLeftOptions = spliceTree(topOption.leftOptions, leftIndexes, 1, {\n ...option,\n loading: false,\n loaded: true,\n children: options\n });\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...topOption,\n loading: false,\n loaded: true,\n children: options,\n leftOptions: newLeftOptions\n }),\n undefined,\n data\n );\n\n // 插入新的子节点,用于之后BaseSelection.resolveSelected查找\n if (Array.isArray(topOption.children)) {\n const children = topOption.children.concat();\n flattenTree(newLeftOptions).forEach(item => {\n if (!findTree(topOption.children, node => node.ref === item.value)) {\n children.push({ref: item.value, defer: true});\n }\n });\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...topOption,\n leftOptions: newLeftOptions,\n children\n }),\n undefined,\n data\n );\n }\n\n return json;\n });\n\n const deferLoadLeftOptions: (\n option: any,\n leftOptions: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n leftOptions: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n return yield tryDeferLoadLeftOptions(\n option,\n leftOptions,\n api,\n data,\n config\n );\n });\n\n const deferLoadOptions: (\n option: any,\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null> = flow(function* (\n option: any,\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n const labelField = self.labelField || 'label';\n const valueField = self.valueField || 'value';\n const indexes = findTreeIndex(\n self.options,\n item =>\n item === option ||\n /** tree-select中会对option添加collapsed, visible属性,导致item === option不通过 */\n isEqualWith(\n item,\n option,\n (source, target) =>\n source?.[valueField] != null &&\n target?.[valueField] != null &&\n source?.[labelField] === target?.[labelField] &&\n source?.[valueField] === target?.[valueField]\n )\n );\n if (!indexes) {\n const leftOptions = self.options[0]?.leftOptions;\n return yield tryDeferLoadLeftOptions(\n option,\n leftOptions,\n api,\n data,\n config\n );\n }\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: true\n }),\n undefined,\n data\n );\n\n let json = yield fetchOptions(\n api,\n data,\n {\n ...config,\n silent: true\n },\n false\n );\n if (!json) {\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: false,\n error: true\n }),\n undefined,\n data\n );\n return;\n }\n\n let options: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n spliceTree(self.options, indexes, 1, {\n ...option,\n loading: false,\n loaded: true,\n children: options\n }),\n undefined,\n data\n );\n\n return json;\n });\n\n /**\n * 根据当前节点路径展开树形组件父节点\n */\n const expandTreeOptions: (\n nodePathArr: any[],\n api: Api,\n data?: object,\n config?: fetchOptions\n ) => Promise<Payload | null | void> = flow(function* getInitData(\n nodePathArr: any[],\n api: string,\n data: object,\n config?: fetchOptions\n ) {\n // 多选模式下需要记录遍历过的Node,避免发送相同的请求\n const traversedNode = new Map();\n\n for (let nodePath of nodePathArr) {\n // 根节点已经展开了,不需要加载\n if (nodePath.length <= 1) {\n continue;\n }\n\n // 叶节点不需要展开\n for (let level = 0; level < nodePath.length - 1; level++) {\n let tree = self.options.concat();\n let nodeValue = nodePath[level];\n\n if (traversedNode.has(nodeValue)) {\n continue;\n }\n // 节点value认为是唯一的\n let node = findTree(tree, (item, key, treeLevel: number) => {\n return (\n treeLevel === level + 1 &&\n optionValueCompare(nodeValue, self.valueField || 'value')(item)\n );\n });\n\n // 只处理懒加载节点\n if (!node || !node.defer) {\n continue;\n }\n const indexes = findTreeIndex(\n tree,\n item => item === node\n ) as number[];\n\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: true\n }),\n undefined,\n node\n );\n\n let json = yield fetchOptions(\n api,\n node,\n {...config, silent: true},\n false\n );\n\n if (!json) {\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: false,\n error: true\n }),\n undefined,\n node\n );\n }\n\n traversedNode.set(nodeValue, true);\n\n let childrenOptions: Array<IOption> =\n json.data?.options ||\n json.data.items ||\n json.data.rows ||\n json.data ||\n [];\n\n setOptions(\n spliceTree(tree, indexes, 1, {\n ...node,\n loading: false,\n loaded: true,\n children: childrenOptions\n }),\n undefined,\n node\n );\n }\n }\n });\n\n // @issue 强依赖form,需要改造暂且放过。\n function syncOptions(originOptions?: Array<any>, data?: Object) {\n if (!self.options.length && typeof self.value === 'undefined') {\n self.selectedOptions = [];\n self.filteredOptions = [];\n return;\n }\n\n const value = self.tmpValue;\n\n const selected = Array.isArray(value)\n ? value.map(item =>\n item && item.hasOwnProperty(self.valueField || 'value')\n ? item[self.valueField || 'value']\n : item\n )\n : typeof value === 'string'\n ? value.split(self.delimiter || ',')\n : value === void 0\n ? []\n : [\n value && value.hasOwnProperty(self.valueField || 'value')\n ? value[self.valueField || 'value']\n : value\n ];\n\n if (value && value.hasOwnProperty(self.labelField || 'label')) {\n selected[0] = {\n [self.labelField || 'label']: value[self.labelField || 'label'],\n [self.valueField || 'value']: value[self.valueField || 'value']\n };\n }\n\n let expressionsInOptions = false;\n let filteredOptions = self.options\n .filter((item: any) => {\n if (\n !expressionsInOptions &&\n (item.visibleOn || item.hiddenOn || item.disabledOn)\n ) {\n expressionsInOptions = true;\n }\n\n return item.visibleOn\n ? evalExpression(item.visibleOn, data) !== false\n : item.hiddenOn\n ? evalExpression(item.hiddenOn, data) !== true\n : item.visible !== false || item.hidden !== true;\n })\n .map((item: any, index) => {\n const disabled = evalExpression(item.disabledOn, data);\n const newItem = item.disabledOn\n ? self.filteredOptions.length > index &&\n self.filteredOptions[index].disabled === disabled\n ? self.filteredOptions[index]\n : {\n ...item,\n disabled: disabled\n }\n : item;\n\n return newItem;\n });\n\n self.expressionsInOptions = expressionsInOptions;\n const flattened: Array<any> = flattenTree(filteredOptions);\n const selectedOptions: Array<any> = [];\n\n selected.forEach((item, index) => {\n let idx = findIndex(\n flattened,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (~idx) {\n selectedOptions.push(flattened[idx]);\n } else {\n let unMatched = (value && value[index]) || item;\n\n if (\n unMatched &&\n (typeof unMatched === 'string' || typeof unMatched === 'number')\n ) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: item,\n __unmatched: true\n };\n\n const orgin: any =\n originOptions &&\n find(\n originOptions,\n optionValueCompare(item, self.valueField || 'value')\n );\n\n if (orgin) {\n unMatched[self.labelField || 'label'] =\n orgin[self.labelField || 'label'];\n }\n } else if (unMatched && self.extractValue) {\n unMatched = {\n [self.valueField || 'value']: item,\n [self.labelField || 'label']: 'UnKnown',\n __unmatched: true\n };\n }\n\n unMatched && selectedOptions.push(unMatched);\n }\n });\n\n const form = self.form;\n\n let parentStore = form?.parentStore;\n if (parentStore?.storeType === ComboStore.name) {\n let combo = parentStore as IComboStore;\n let group = combo.uniques.get(self.name) as IUniqueGroup;\n let options: Array<any> = [];\n group &&\n group.items.forEach(item => {\n if (self !== item) {\n options.push(\n ...item.selectedOptions.map((item: any) => item && item.value)\n );\n }\n });\n\n if (filteredOptions.length) {\n filteredOptions = filteredOptions.filter(\n option => !~options.indexOf(option.value)\n );\n }\n }\n isArrayChildrenModified(self.selectedOptions, selectedOptions) &&\n (self.selectedOptions = selectedOptions);\n isArrayChildrenModified(self.filteredOptions, filteredOptions) &&\n (self.filteredOptions = filteredOptions);\n }\n\n function setLoading(value: boolean) {\n self.loading = value;\n }\n\n let subStore: any;\n function getSubStore() {\n return subStore;\n }\n\n function setSubStore(store: any) {\n subStore = store;\n }\n\n function reset(keepErrors: boolean = false) {\n self.validated = false;\n\n if (subStore && subStore.storeType === 'ComboStore') {\n const combo = subStore as IComboStore;\n combo.forms.forEach(form => form.reset());\n }\n\n !keepErrors && clearError();\n }\n\n function openDialog(\n schema: any,\n data: any,\n callback?: (ret?: any) => void\n ) {\n self.dialogSchema = schema;\n self.dialogData = data;\n self.dialogOpen = true;\n callback && dialogCallbacks.set(self.dialogData, callback);\n }\n\n function closeDialog(result?: any) {\n const callback = dialogCallbacks.get(self.dialogData);\n self.dialogOpen = false;\n\n if (callback) {\n dialogCallbacks.delete(self.dialogData);\n setTimeout(() => callback(result), 200);\n }\n }\n\n function changeTmpValue(value: any) {\n self.tmpValue = value;\n }\n\n function changeEmitedValue(value: any) {\n self.emitedValue = value;\n }\n\n function addSubFormItem(item: IFormItemStore) {\n self.itemsRef.push(item.id);\n }\n\n function removeSubFormItem(item: IFormItemStore) {\n const idx = self.itemsRef.findIndex(a => a === item.id);\n if (~idx) {\n self.itemsRef.splice(idx, 1);\n }\n }\n\n return {\n focus,\n blur,\n config,\n validate,\n setError,\n addError,\n clearError,\n setOptions,\n loadOptions,\n deferLoadOptions,\n deferLoadLeftOptions,\n expandTreeOptions,\n syncOptions,\n setLoading,\n setSubStore,\n getSubStore,\n reset,\n openDialog,\n closeDialog,\n changeTmpValue,\n changeEmitedValue,\n addSubFormItem,\n removeSubFormItem,\n loadAutoUpdateData\n };\n });\n\nexport type IFormItemStore = Instance<typeof FormItemStore>;\nexport type SFormItemStore = SnapshotIn<typeof FormItemStore>;\n"
12
12
  ]
13
13
  }