You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
7.0 KiB

{"ast":null,"code":"import { getCurrentInstance, watch } from 'vue';\nimport '../../../../utils/index.mjs';\nimport { parseWidth, parseMinWidth } from '../util.mjs';\nimport { hasOwn } from '@vue/shared';\nfunction getAllAliases(props, aliases) {\n return props.reduce((prev, cur) => {\n prev[cur] = cur;\n return prev;\n }, aliases);\n}\nfunction useWatcher(owner, props_) {\n const instance = getCurrentInstance();\n const registerComplexWatchers = () => {\n const props = [\"fixed\"];\n const aliases = {\n realWidth: \"width\",\n realMinWidth: \"minWidth\"\n };\n const allAliases = getAllAliases(props, aliases);\n Object.keys(allAliases).forEach(key => {\n const columnKey = aliases[key];\n if (hasOwn(props_, columnKey)) {\n watch(() => props_[columnKey], newVal => {\n let value = newVal;\n if (columnKey === \"width\" && key === \"realWidth\") {\n value = parseWidth(newVal);\n }\n if (columnKey === \"minWidth\" && key === \"realMinWidth\") {\n value = parseMinWidth(newVal);\n }\n instance.columnConfig.value[columnKey] = value;\n instance.columnConfig.value[key] = value;\n const updateColumns = columnKey === \"fixed\";\n owner.value.store.scheduleLayout(updateColumns);\n });\n }\n });\n };\n const registerNormalWatchers = () => {\n const props = [\"label\", \"filters\", \"filterMultiple\", \"filteredValue\", \"sortable\", \"index\", \"formatter\", \"className\", \"labelClassName\", \"filterClassName\", \"showOverflowTooltip\"];\n const aliases = {\n property: \"prop\",\n align: \"realAlign\",\n headerAlign: \"realHeaderAlign\"\n };\n const allAliases = getAllAliases(props, aliases);\n Object.keys(allAliases).forEach(key => {\n const columnKey = aliases[key];\n if (hasOwn(props_, columnKey)) {\n watch(() => props_[columnKey], newVal => {\n instance.columnConfig.value[key] = newVal;\n });\n }\n });\n };\n return {\n registerComplexWatchers,\n registerNormalWatchers\n };\n}\nexport { useWatcher as default };","map":{"version":3,"names":["getAllAliases","props","aliases","reduce","prev","cur","useWatcher","owner","props_","instance","getCurrentInstance","registerComplexWatchers","realWidth","realMinWidth","allAliases","Object","keys","forEach","key","columnKey","hasOwn","watch","newVal","value","parseWidth","parseMinWidth","columnConfig","updateColumns","store","scheduleLayout","registerNormalWatchers","property","align","headerAlign"],"sources":["../../../../../../../packages/components/table/src/table-column/watcher-helper.ts"],"sourcesContent":["// @ts-nocheck\nimport { getCurrentInstance, watch } from 'vue'\nimport { hasOwn } from '@element-plus/utils'\nimport { parseMinWidth, parseWidth } from '../util'\n\nimport type { ComputedRef } from 'vue'\nimport type { TableColumn, TableColumnCtx, ValueOf } from './defaults'\n\nfunction getAllAliases(props, aliases) {\n return props.reduce((prev, cur) => {\n prev[cur] = cur\n return prev\n }, aliases)\n}\nfunction useWatcher<T>(\n owner: ComputedRef<any>,\n props_: Partial<TableColumnCtx<T>>\n) {\n const instance = getCurrentInstance() as TableColumn<T>\n const registerComplexWatchers = () => {\n const props = ['fixed']\n const aliases = {\n realWidth: 'width',\n realMinWidth: 'minWidth',\n }\n const allAliases = getAllAliases(props, aliases)\n Object.keys(allAliases).forEach((key) => {\n const columnKey = aliases[key]\n if (hasOwn(props_, columnKey)) {\n watch(\n () => props_[columnKey],\n (newVal) => {\n let value: ValueOf<TableColumnCtx<T>> = newVal\n if (columnKey === 'width' && key === 'realWidth') {\n value = parseWidth(newVal)\n }\n if (columnKey === 'minWidth' && key === 'realMinWidth') {\n value = parseMinWidth(newVal)\n }\n instance.columnConfig.value[columnKey as any] = value\n instance.columnConfig.value[key] = value\n const updateColumns = columnKey === 'fixed'\n owner.value.store.scheduleLayout(updateColumns)\n }\n )\n }\n })\n }\n const registerNormalWatchers = () => {\n const props = [\n 'label',\n 'filters',\n 'filterMultiple',\n 'filteredValue',\n 'sortable',\n 'index',\n 'formatter',\n 'className',\n 'labelClassName',\n 'filterClassName',\n 'showOverflowTooltip',\n ]\n const aliases = {\n property: 'prop',\n align: 'realAlign',\n headerAlign: 'realHeaderAlign',\n }\n const allAliases = getAllAliases(props, aliases)\n Object.keys(allAliases).forEach((key) => {\n const columnKey = aliases[key]\n if (hasOwn(props_, columnKey)) {\n watch(\n () => props_[columnKey],\n (newVal) => {\n instance.columnConfig.value[key] = newVal\n }\n )\n }\n })\n }\n\n return {\n registerComplexWatchers,\n registerNormalWatchers,\n }\n}\n\nexport default useWatcher\n"],"mappings":";;;;AAGA,SAASA,aAAaA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACrC,OAAOD,KAAK,CAACE,MAAM,CAAC,CAACC,IAAI,EAAEC,GAAG,KAAK;IACjCD,IAAI,CAACC,GAAG,CAAC,GAAGA,GAAG;IACf,OAAOD,IAAI;EACf,CAAG,EAAEF,OAAO,CAAC;AACb;AACA,SAASI,UAAUA,CAACC,KAAK,EAAEC,MAAM,EAAE;EACjC,MAAMC,QAAQ,GAAGC,kBAAkB,EAAE;EACrC,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;IACpC,MAAMV,KAAK,GAAG,CAAC,OAAO,CAAC;IACvB,MAAMC,OAAO,GAAG;MACdU,SAAS,EAAE,OAAO;MAClBC,YAAY,EAAE;IACpB,CAAK;IACD,MAAMC,UAAU,GAAGd,aAAa,CAACC,KAAK,EAAEC,OAAO,CAAC;IAChDa,MAAM,CAACC,IAAI,CAACF,UAAU,CAAC,CAACG,OAAO,CAAEC,GAAG,IAAK;MACvC,MAAMC,SAAS,GAAGjB,OAAO,CAACgB,GAAG,CAAC;MAC9B,IAAIE,MAAM,CAACZ,MAAM,EAAEW,SAAS,CAAC,EAAE;QAC7BE,KAAK,CAAC,MAAMb,MAAM,CAACW,SAAS,CAAC,EAAGG,MAAM,IAAK;UACzC,IAAIC,KAAK,GAAGD,MAAM;UAClB,IAAIH,SAAS,KAAK,OAAO,IAAID,GAAG,KAAK,WAAW,EAAE;YAChDK,KAAK,GAAGC,UAAU,CAACF,MAAM,CAAC;UACtC;UACU,IAAIH,SAAS,KAAK,UAAU,IAAID,GAAG,KAAK,cAAc,EAAE;YACtDK,KAAK,GAAGE,aAAa,CAACH,MAAM,CAAC;UACzC;UACUb,QAAQ,CAACiB,YAAY,CAACH,KAAK,CAACJ,SAAS,CAAC,GAAGI,KAAK;UAC9Cd,QAAQ,CAACiB,YAAY,CAACH,KAAK,CAACL,GAAG,CAAC,GAAGK,KAAK;UACxC,MAAMI,aAAa,GAAGR,SAAS,KAAK,OAAO;UAC3CZ,KAAK,CAACgB,KAAK,CAACK,KAAK,CAACC,cAAc,CAACF,aAAa,CAAC;QACzD,CAAS,CAAC;MACV;IACA,CAAK,CAAC;EACN,CAAG;EACD,MAAMG,sBAAsB,GAAGA,CAAA,KAAM;IACnC,MAAM7B,KAAK,GAAG,CACZ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,CACtB;IACD,MAAMC,OAAO,GAAG;MACd6B,QAAQ,EAAE,MAAM;MAChBC,KAAK,EAAE,WAAW;MAClBC,WAAW,EAAE;IACnB,CAAK;IACD,MAAMnB,UAAU,GAAGd,aAAa,CAACC,KAAK,EAAEC,OAAO,CAAC;IAChDa,MAAM,CAACC,IAAI,CAACF,UAAU,CAAC,CAACG,OAAO,CAAEC,GAAG,IAAK;MACvC,MAAMC,SAAS,GAAGjB,OAAO,CAACgB,GAAG,CAAC;MAC9B,IAAIE,MAAM,CAACZ,MAAM,EAAEW,SAAS,CAAC,EAAE;QAC7BE,KAAK,CAAC,MAAMb,MAAM,CAACW,SAAS,CAAC,EAAGG,MAAM,IAAK;UACzCb,QAAQ,CAACiB,YAAY,CAACH,KAAK,CAACL,GAAG,CAAC,GAAGI,MAAM;QACnD,CAAS,CAAC;MACV;IACA,CAAK,CAAC;EACN,CAAG;EACD,OAAO;IACLX,uBAAuB;IACvBmB;EACJ,CAAG;AACH","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}