@veltra/desktop 1.7.7 → 1.7.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/cascade/use-check.js +5 -2
- package/dist/components/cascade/use-check.js.map +1 -1
- package/dist/components/cascade/use-select.js +5 -1
- package/dist/components/cascade/use-select.js.map +1 -1
- package/dist/components/code-editor/langs/bash/index.js +1 -1
- package/dist/components/code-editor/langs/powershell/index.js +1 -1
- package/dist/components/table/style2.css +1 -1
- package/dist/node_modules/.bun/{@codemirror_legacy-modes@6.5.3 → @codemirror_legacy-modes@6.5.4}/node_modules/@codemirror/legacy-modes/mode/powershell.js +1 -1
- package/dist/node_modules/.bun/{@codemirror_legacy-modes@6.5.3 → @codemirror_legacy-modes@6.5.4}/node_modules/@codemirror/legacy-modes/mode/powershell.js.map +1 -1
- package/dist/node_modules/.bun/{@codemirror_legacy-modes@6.5.3 → @codemirror_legacy-modes@6.5.4}/node_modules/@codemirror/legacy-modes/mode/shell.js +1 -1
- package/dist/node_modules/.bun/{@codemirror_legacy-modes@6.5.3 → @codemirror_legacy-modes@6.5.4}/node_modules/@codemirror/legacy-modes/mode/shell.js.map +1 -1
- package/dist/types/cascade.d.ts +6 -2
- package/package.json +14 -14
- package/src/components/cascade/__test__/cascade.test.ts +103 -0
- package/src/components/cascade/use-check.ts +5 -2
- package/src/components/cascade/use-select.ts +2 -1
- package/src/components/table/style.scss +1 -1
- package/src/types/cascade.ts +10 -2
|
@@ -22,10 +22,13 @@ function useCheck(options) {
|
|
|
22
22
|
const checkedArr = Array.from(checkedSet.value);
|
|
23
23
|
const targetValues = checkedArr.map((item) => item.value);
|
|
24
24
|
const targetLabels = checkedArr.map((item) => item.label);
|
|
25
|
-
const targetItems = checkedArr.map((item) =>
|
|
25
|
+
const targetItems = checkedArr.map((item) => {
|
|
26
|
+
const data = item.data;
|
|
27
|
+
return data ? Object.assign({}, data, { fullLabel: item.label }) : data;
|
|
28
|
+
});
|
|
26
29
|
emit("update:modelValue", targetValues);
|
|
27
30
|
emit("update:label", targetLabels.length ? targetLabels : void 0);
|
|
28
|
-
emit("change", targetItems);
|
|
31
|
+
emit("change", targetItems, targetLabels.length ? targetLabels : void 0);
|
|
29
32
|
}
|
|
30
33
|
const restTag = computed(() => {
|
|
31
34
|
const { visibilityLimit, modelValue } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-check.js","names":[],"sources":["../../../src/components/cascade/use-check.ts"],"sourcesContent":["import { dfs, type Forest } from '@cat-kit/core'\nimport {\n computed,\n shallowRef,\n triggerRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from 'vue'\n\nimport type { CascadeProps, CascadeEmits, CascadeNode } from '../../types'\n\ninterface CheckOptions {\n props: CascadeProps\n emit: CascadeEmits\n dataMap: ShallowRef<Map<string, CascadeNode>>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n forest: Ref<Forest<Record<string, unknown>, any>>\n isUserActive: () => boolean\n getPanelItemList: (data?: CascadeNode[]) => void\n}\n\ninterface UseCheckReturned {\n hovered: ShallowRef<boolean>\n tags: ComputedRef<CascadeNode[]>\n checkedSet: ShallowRef<Set<CascadeNode>>\n restTag: ComputedRef<number>\n handleCloseTag: (tag: CascadeNode) => void\n updateMultipleValue: () => void\n checkItem: (item: CascadeNode, checked: boolean) => void\n}\n\nexport function useCheck(options: CheckOptions): UseCheckReturned {\n const { props, emit, dataMap, disabled, readonly, forest, isUserActive, getPanelItemList } =\n options\n\n const hovered = shallowRef(false)\n\n const checkedSet = shallowRef(new Set<CascadeNode>())\n\n const tags = computed(() => {\n const { modelValue, multiple } = props\n let tags: CascadeNode[] = []\n\n if (!multiple || !Array.isArray(modelValue)) return tags\n\n let { visibilityLimit } = props\n if (visibilityLimit! < 0) {\n visibilityLimit = 0\n }\n\n // 禁用时,显示全部\n if (disabled.value || readonly.value) {\n visibilityLimit = props.modelValue?.length ?? 0\n }\n\n modelValue.slice(0, visibilityLimit).forEach((k) => {\n const option = dataMap.value.get(k)\n option && tags.push(option)\n })\n\n return tags\n })\n\n function updateMultipleValue() {\n const checkedArr = Array.from(checkedSet.value)\n const targetValues = checkedArr.map((item) => item.value)\n const targetLabels = checkedArr.map((item) => item.label)\n const targetItems = checkedArr.map((item) => item.data as Record<string, any
|
|
1
|
+
{"version":3,"file":"use-check.js","names":[],"sources":["../../../src/components/cascade/use-check.ts"],"sourcesContent":["import { dfs, type Forest } from '@cat-kit/core'\nimport {\n computed,\n shallowRef,\n triggerRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from 'vue'\n\nimport type { CascadeProps, CascadeEmits, CascadeNode } from '../../types'\n\ninterface CheckOptions {\n props: CascadeProps\n emit: CascadeEmits\n dataMap: ShallowRef<Map<string, CascadeNode>>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n forest: Ref<Forest<Record<string, unknown>, any>>\n isUserActive: () => boolean\n getPanelItemList: (data?: CascadeNode[]) => void\n}\n\ninterface UseCheckReturned {\n hovered: ShallowRef<boolean>\n tags: ComputedRef<CascadeNode[]>\n checkedSet: ShallowRef<Set<CascadeNode>>\n restTag: ComputedRef<number>\n handleCloseTag: (tag: CascadeNode) => void\n updateMultipleValue: () => void\n checkItem: (item: CascadeNode, checked: boolean) => void\n}\n\nexport function useCheck(options: CheckOptions): UseCheckReturned {\n const { props, emit, dataMap, disabled, readonly, forest, isUserActive, getPanelItemList } =\n options\n\n const hovered = shallowRef(false)\n\n const checkedSet = shallowRef(new Set<CascadeNode>())\n\n const tags = computed(() => {\n const { modelValue, multiple } = props\n let tags: CascadeNode[] = []\n\n if (!multiple || !Array.isArray(modelValue)) return tags\n\n let { visibilityLimit } = props\n if (visibilityLimit! < 0) {\n visibilityLimit = 0\n }\n\n // 禁用时,显示全部\n if (disabled.value || readonly.value) {\n visibilityLimit = props.modelValue?.length ?? 0\n }\n\n modelValue.slice(0, visibilityLimit).forEach((k) => {\n const option = dataMap.value.get(k)\n option && tags.push(option)\n })\n\n return tags\n })\n\n function updateMultipleValue() {\n const checkedArr = Array.from(checkedSet.value)\n const targetValues = checkedArr.map((item) => item.value)\n const targetLabels = checkedArr.map((item) => item.label)\n const targetItems = checkedArr.map((item) => {\n const data = item.data as Record<string, any>\n return data ? Object.assign({}, data, { fullLabel: item.label }) : data\n })\n emit('update:modelValue', targetValues)\n emit('update:label', targetLabels.length ? targetLabels : undefined)\n emit('change', targetItems, targetLabels.length ? targetLabels : undefined)\n }\n\n const restTag = computed(() => {\n const { visibilityLimit, modelValue } = props\n\n return Math.max((modelValue?.length ?? 0) - visibilityLimit!, 0)\n })\n\n function handleCloseTag(tag: CascadeNode) {\n checkedSet.value.delete(tag)\n updateMultipleValue()\n }\n\n function checkItem(item: CascadeNode, checked: boolean) {\n const childrenKey = props.childrenKey ?? 'children'\n if (checked) {\n dfs(\n item as unknown as Record<string, unknown>,\n (node) => {\n checkedSet.value.add(node as unknown as CascadeNode)\n },\n childrenKey\n )\n } else {\n dfs(\n item as unknown as Record<string, unknown>,\n (node) => {\n checkedSet.value.delete(node as unknown as CascadeNode)\n },\n childrenKey\n )\n }\n\n triggerRef(checkedSet)\n\n updateMultipleValue()\n }\n\n function initMultipleCheck() {\n const { modelValue } = props\n getPanelItemList()\n if (Array.isArray(modelValue)) {\n checkedSet.value = new Set(modelValue.map((v) => dataMap.value.get(v)!))\n }\n }\n\n watch(\n [() => props.multiple, () => props.modelValue, forest],\n ([multiple]) => {\n if (!multiple || isUserActive()) return\n initMultipleCheck()\n },\n { immediate: false }\n )\n\n return { hovered, tags, checkedSet, restTag, handleCloseTag, updateMultipleValue, checkItem }\n}\n"],"mappings":";;;AAkCA,SAAgB,SAAS,SAAyC;CAChE,MAAM,EAAE,OAAO,MAAM,SAAS,UAAU,UAAU,QAAQ,cAAc,qBACtE;CAEF,MAAM,UAAU,WAAW,KAAK;CAEhC,MAAM,aAAa,2BAAW,IAAI,IAAiB,CAAC;CAEpD,MAAM,OAAO,eAAe;EAC1B,MAAM,EAAE,YAAY,aAAa;EACjC,IAAI,OAAsB,CAAC;EAE3B,IAAI,CAAC,YAAY,CAAC,MAAM,QAAQ,UAAU,GAAG,OAAO;EAEpD,IAAI,EAAE,oBAAoB;EAC1B,IAAI,kBAAmB,GACrB,kBAAkB;EAIpB,IAAI,SAAS,SAAS,SAAS,OAC7B,kBAAkB,MAAM,YAAY,UAAU;EAGhD,WAAW,MAAM,GAAG,eAAe,CAAC,CAAC,SAAS,MAAM;GAClD,MAAM,SAAS,QAAQ,MAAM,IAAI,CAAC;GAClC,UAAU,KAAK,KAAK,MAAM;EAC5B,CAAC;EAED,OAAO;CACT,CAAC;CAED,SAAS,sBAAsB;EAC7B,MAAM,aAAa,MAAM,KAAK,WAAW,KAAK;EAC9C,MAAM,eAAe,WAAW,KAAK,SAAS,KAAK,KAAK;EACxD,MAAM,eAAe,WAAW,KAAK,SAAS,KAAK,KAAK;EACxD,MAAM,cAAc,WAAW,KAAK,SAAS;GAC3C,MAAM,OAAO,KAAK;GAClB,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,IAAI;EACrE,CAAC;EACD,KAAK,qBAAqB,YAAY;EACtC,KAAK,gBAAgB,aAAa,SAAS,eAAe,KAAA,CAAS;EACnE,KAAK,UAAU,aAAa,aAAa,SAAS,eAAe,KAAA,CAAS;CAC5E;CAEA,MAAM,UAAU,eAAe;EAC7B,MAAM,EAAE,iBAAiB,eAAe;EAExC,OAAO,KAAK,KAAK,YAAY,UAAU,KAAK,iBAAkB,CAAC;CACjE,CAAC;CAED,SAAS,eAAe,KAAkB;EACxC,WAAW,MAAM,OAAO,GAAG;EAC3B,oBAAoB;CACtB;CAEA,SAAS,UAAU,MAAmB,SAAkB;EACtD,MAAM,cAAc,MAAM,eAAe;EACzC,IAAI,SACF,IACE,OACC,SAAS;GACR,WAAW,MAAM,IAAI,IAA8B;EACrD,GACA,WACF;OAEA,IACE,OACC,SAAS;GACR,WAAW,MAAM,OAAO,IAA8B;EACxD,GACA,WACF;EAGF,WAAW,UAAU;EAErB,oBAAoB;CACtB;CAEA,SAAS,oBAAoB;EAC3B,MAAM,EAAE,eAAe;EACvB,iBAAiB;EACjB,IAAI,MAAM,QAAQ,UAAU,GAC1B,WAAW,QAAQ,IAAI,IAAI,WAAW,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC,CAAE,CAAC;CAE3E;CAEA,MACE;QAAO,MAAM;QAAgB,MAAM;EAAY;CAAM,IACpD,CAAC,cAAc;EACd,IAAI,CAAC,YAAY,aAAa,GAAG;EACjC,kBAAkB;CACpB,GACA,EAAE,WAAW,MAAM,CACrB;CAEA,OAAO;EAAE;EAAS;EAAM;EAAY;EAAS;EAAgB;EAAqB;CAAU;AAC9F"}
|
|
@@ -55,9 +55,13 @@ function useSelect(options) {
|
|
|
55
55
|
const targetValue = showFullPath ? keys.length ? keys.join(separator) : void 0 : leafKey;
|
|
56
56
|
const targetLabel = showFullPath ? keys.map((key) => dataMap.value.get(key)?.label).filter(Boolean).join(separator) : leafLabel;
|
|
57
57
|
const leafNode = leafKey ? dataMap.value.get(leafKey) : void 0;
|
|
58
|
+
const changeItem = leafNode?.data ? {
|
|
59
|
+
...leafNode.data,
|
|
60
|
+
fullLabel: targetLabel
|
|
61
|
+
} : void 0;
|
|
58
62
|
emit("update:modelValue", targetValue);
|
|
59
63
|
emit("update:label", targetLabel);
|
|
60
|
-
emit("change",
|
|
64
|
+
emit("change", changeItem, targetLabel);
|
|
61
65
|
}
|
|
62
66
|
/**
|
|
63
67
|
* 单选选择
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-select.js","names":[],"sources":["../../../src/components/cascade/use-select.ts"],"sourcesContent":["import { Forest } from '@cat-kit/core'\nimport { createIncrease } from '@veltra/utils'\nimport {\n computed,\n nextTick,\n shallowRef,\n triggerRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from 'vue'\n\nimport type {\n CascadeProps,\n CascadeEmits,\n CascadeNode,\n DropdownExposed,\n PanelItem\n} from '../../types'\n\ninterface SelectOptions {\n props: CascadeProps\n emit: CascadeEmits\n isUserActive: () => boolean\n forest: Ref<Forest<Record<string, unknown>, any>>\n dataMap: Ref<Map<string, CascadeNode>>\n dropdownRef: Ref<DropdownExposed | undefined>\n}\n\nfunction buildPathKeys(leaf: CascadeNode): string[] {\n const keys: string[] = []\n let node: CascadeNode | undefined = leaf\n while (node) {\n keys.unshift(node.value)\n node = node.parent\n }\n return keys\n}\n\ninterface UseSelectReturned {\n displayedValue: ComputedRef<string | undefined>\n selectItem: (panelIndex: number, item: CascadeNode) => void\n selectedNodeKeys: ShallowRef<string[]>\n updateSingleValue: () => void\n initSingleSelect: () => void\n panelItemList: ShallowRef<PanelItem[]>\n getPanelItemList: (data?: CascadeNode[]) => void\n setPanelItem: (panelIndex: number, panelData?: CascadeNode[]) => void\n createPanelItem: (nodes: CascadeNode[]) => PanelItem\n}\n\nexport function useSelect(options: SelectOptions): UseSelectReturned {\n const { props, emit, dataMap, isUserActive, dropdownRef, forest } = options\n\n /** 选中的节点key */\n const selectedNodeKeys = shallowRef<string[]>([])\n\n /** 面板数据 */\n const panelItemList = shallowRef<PanelItem[]>([])\n const uid = createIncrease()\n function createPanelItem(nodes: CascadeNode[]): PanelItem {\n return { key: uid(), nodes: nodes.filter((node) => node.visible) }\n }\n\n const displayedValue = computed(() => {\n const { modelValue, separator, showFullPath } = props\n if (!modelValue || typeof modelValue !== 'string') return ''\n\n if (showFullPath) {\n return modelValue\n .split(separator!)\n .map((v) => dataMap.value.get(v)?.label ?? v)\n .join(separator)\n }\n return dataMap.value.get(modelValue)?.label ?? modelValue\n })\n\n function getPanelItemList(data?: CascadeNode[]) {\n const _panelItemList: Array<PanelItem> = []\n if (!data?.length) return panelItemList\n _panelItemList.push(createPanelItem(data))\n\n selectedNodeKeys.value.slice(0, -1).forEach((key) => {\n const node = dataMap.value.get(key)\n node?.children?.length && _panelItemList.push(createPanelItem(node.children))\n })\n\n panelItemList.value = _panelItemList\n }\n\n function setPanelItem(panelIndex: number, panelData?: CascadeNode[]) {\n if (panelData?.length) {\n panelItemList.value[panelIndex + 1] = createPanelItem(panelData)\n panelItemList.value.splice(panelIndex + 2)\n } else {\n panelItemList.value.splice(panelIndex + 1)\n }\n\n triggerRef(panelItemList)\n }\n\n function updateSingleValue() {\n const { separator, showFullPath } = props\n const keys = selectedNodeKeys.value\n const leafKey = keys.length ? keys[keys.length - 1] : undefined\n const leafLabel = leafKey ? dataMap.value.get(leafKey)?.label : undefined\n\n const targetValue = showFullPath ? (keys.length ? keys.join(separator!) : undefined) : leafKey\n const targetLabel = showFullPath\n ? keys\n .map((key) => dataMap.value.get(key)?.label)\n .filter(Boolean)\n .join(separator!)\n : leafLabel\n\n const leafNode = leafKey ? dataMap.value.get(leafKey) : undefined\n\n emit('update:modelValue', targetValue)\n emit('update:label', targetLabel)\n emit('change',
|
|
1
|
+
{"version":3,"file":"use-select.js","names":[],"sources":["../../../src/components/cascade/use-select.ts"],"sourcesContent":["import { Forest } from '@cat-kit/core'\nimport { createIncrease } from '@veltra/utils'\nimport {\n computed,\n nextTick,\n shallowRef,\n triggerRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from 'vue'\n\nimport type {\n CascadeProps,\n CascadeEmits,\n CascadeNode,\n DropdownExposed,\n PanelItem\n} from '../../types'\n\ninterface SelectOptions {\n props: CascadeProps\n emit: CascadeEmits\n isUserActive: () => boolean\n forest: Ref<Forest<Record<string, unknown>, any>>\n dataMap: Ref<Map<string, CascadeNode>>\n dropdownRef: Ref<DropdownExposed | undefined>\n}\n\nfunction buildPathKeys(leaf: CascadeNode): string[] {\n const keys: string[] = []\n let node: CascadeNode | undefined = leaf\n while (node) {\n keys.unshift(node.value)\n node = node.parent\n }\n return keys\n}\n\ninterface UseSelectReturned {\n displayedValue: ComputedRef<string | undefined>\n selectItem: (panelIndex: number, item: CascadeNode) => void\n selectedNodeKeys: ShallowRef<string[]>\n updateSingleValue: () => void\n initSingleSelect: () => void\n panelItemList: ShallowRef<PanelItem[]>\n getPanelItemList: (data?: CascadeNode[]) => void\n setPanelItem: (panelIndex: number, panelData?: CascadeNode[]) => void\n createPanelItem: (nodes: CascadeNode[]) => PanelItem\n}\n\nexport function useSelect(options: SelectOptions): UseSelectReturned {\n const { props, emit, dataMap, isUserActive, dropdownRef, forest } = options\n\n /** 选中的节点key */\n const selectedNodeKeys = shallowRef<string[]>([])\n\n /** 面板数据 */\n const panelItemList = shallowRef<PanelItem[]>([])\n const uid = createIncrease()\n function createPanelItem(nodes: CascadeNode[]): PanelItem {\n return { key: uid(), nodes: nodes.filter((node) => node.visible) }\n }\n\n const displayedValue = computed(() => {\n const { modelValue, separator, showFullPath } = props\n if (!modelValue || typeof modelValue !== 'string') return ''\n\n if (showFullPath) {\n return modelValue\n .split(separator!)\n .map((v) => dataMap.value.get(v)?.label ?? v)\n .join(separator)\n }\n return dataMap.value.get(modelValue)?.label ?? modelValue\n })\n\n function getPanelItemList(data?: CascadeNode[]) {\n const _panelItemList: Array<PanelItem> = []\n if (!data?.length) return panelItemList\n _panelItemList.push(createPanelItem(data))\n\n selectedNodeKeys.value.slice(0, -1).forEach((key) => {\n const node = dataMap.value.get(key)\n node?.children?.length && _panelItemList.push(createPanelItem(node.children))\n })\n\n panelItemList.value = _panelItemList\n }\n\n function setPanelItem(panelIndex: number, panelData?: CascadeNode[]) {\n if (panelData?.length) {\n panelItemList.value[panelIndex + 1] = createPanelItem(panelData)\n panelItemList.value.splice(panelIndex + 2)\n } else {\n panelItemList.value.splice(panelIndex + 1)\n }\n\n triggerRef(panelItemList)\n }\n\n function updateSingleValue() {\n const { separator, showFullPath } = props\n const keys = selectedNodeKeys.value\n const leafKey = keys.length ? keys[keys.length - 1] : undefined\n const leafLabel = leafKey ? dataMap.value.get(leafKey)?.label : undefined\n\n const targetValue = showFullPath ? (keys.length ? keys.join(separator!) : undefined) : leafKey\n const targetLabel = showFullPath\n ? keys\n .map((key) => dataMap.value.get(key)?.label)\n .filter(Boolean)\n .join(separator!)\n : leafLabel\n\n const leafNode = leafKey ? dataMap.value.get(leafKey) : undefined\n const changeItem = leafNode?.data ? { ...leafNode.data, fullLabel: targetLabel } : undefined\n\n emit('update:modelValue', targetValue)\n emit('update:label', targetLabel)\n emit('change', changeItem, targetLabel)\n }\n\n /**\n * 单选选择\n *\n * @param panelIndex 面板索引\n * @param item 选中的节点\n */\n function selectItem(panelIndex: number, item: CascadeNode) {\n // 设置选中的节点\n selectedNodeKeys.value[panelIndex] = item.value\n selectedNodeKeys.value.splice(panelIndex + 1)\n triggerRef(selectedNodeKeys)\n\n // 展开子级面板\n setPanelItem(panelIndex, item.children)\n\n nextTick(() => {\n dropdownRef.value?.updateDropdown()\n })\n\n if (!item.children?.length && !props.multiple) {\n dropdownRef.value?.close()\n }\n }\n\n function initSingleSelect() {\n const { modelValue, separator, showFullPath } = props\n\n if (modelValue && typeof modelValue === 'string') {\n let keys: string[]\n if (showFullPath) {\n keys = modelValue.split(separator!)\n } else {\n const leaf = dataMap.value.get(modelValue)\n keys = leaf ? buildPathKeys(leaf) : [modelValue]\n }\n selectedNodeKeys.value = keys\n getPanelItemList(forest.value.roots)\n } else {\n selectedNodeKeys.value = []\n getPanelItemList(forest.value.roots)\n }\n }\n\n watch(\n [() => props.multiple, () => props.modelValue, forest],\n ([multiple]) => {\n if (multiple || isUserActive()) return\n initSingleSelect()\n },\n { immediate: true }\n )\n\n return {\n displayedValue,\n selectItem,\n selectedNodeKeys,\n updateSingleValue,\n initSingleSelect,\n panelItemList,\n getPanelItemList,\n setPanelItem,\n createPanelItem\n }\n}\n"],"mappings":";;;;AA8BA,SAAS,cAAc,MAA6B;CAClD,MAAM,OAAiB,CAAC;CACxB,IAAI,OAAgC;CACpC,OAAO,MAAM;EACX,KAAK,QAAQ,KAAK,KAAK;EACvB,OAAO,KAAK;CACd;CACA,OAAO;AACT;AAcA,SAAgB,UAAU,SAA2C;CACnE,MAAM,EAAE,OAAO,MAAM,SAAS,cAAc,aAAa,WAAW;;CAGpE,MAAM,mBAAmB,WAAqB,CAAC,CAAC;;CAGhD,MAAM,gBAAgB,WAAwB,CAAC,CAAC;CAChD,MAAM,MAAM,eAAe;CAC3B,SAAS,gBAAgB,OAAiC;EACxD,OAAO;GAAE,KAAK,IAAI;GAAG,OAAO,MAAM,QAAQ,SAAS,KAAK,OAAO;EAAE;CACnE;CAEA,MAAM,iBAAiB,eAAe;EACpC,MAAM,EAAE,YAAY,WAAW,iBAAiB;EAChD,IAAI,CAAC,cAAc,OAAO,eAAe,UAAU,OAAO;EAE1D,IAAI,cACF,OAAO,WACJ,MAAM,SAAU,CAAC,CACjB,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAC5C,KAAK,SAAS;EAEnB,OAAO,QAAQ,MAAM,IAAI,UAAU,CAAC,EAAE,SAAS;CACjD,CAAC;CAED,SAAS,iBAAiB,MAAsB;EAC9C,MAAM,iBAAmC,CAAC;EAC1C,IAAI,CAAC,MAAM,QAAQ,OAAO;EAC1B,eAAe,KAAK,gBAAgB,IAAI,CAAC;EAEzC,iBAAiB,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,SAAS,QAAQ;GACnD,MAAM,OAAO,QAAQ,MAAM,IAAI,GAAG;GAClC,MAAM,UAAU,UAAU,eAAe,KAAK,gBAAgB,KAAK,QAAQ,CAAC;EAC9E,CAAC;EAED,cAAc,QAAQ;CACxB;CAEA,SAAS,aAAa,YAAoB,WAA2B;EACnE,IAAI,WAAW,QAAQ;GACrB,cAAc,MAAM,aAAa,KAAK,gBAAgB,SAAS;GAC/D,cAAc,MAAM,OAAO,aAAa,CAAC;EAC3C,OACE,cAAc,MAAM,OAAO,aAAa,CAAC;EAG3C,WAAW,aAAa;CAC1B;CAEA,SAAS,oBAAoB;EAC3B,MAAM,EAAE,WAAW,iBAAiB;EACpC,MAAM,OAAO,iBAAiB;EAC9B,MAAM,UAAU,KAAK,SAAS,KAAK,KAAK,SAAS,KAAK,KAAA;EACtD,MAAM,YAAY,UAAU,QAAQ,MAAM,IAAI,OAAO,CAAC,EAAE,QAAQ,KAAA;EAEhE,MAAM,cAAc,eAAgB,KAAK,SAAS,KAAK,KAAK,SAAU,IAAI,KAAA,IAAa;EACvF,MAAM,cAAc,eAChB,KACG,KAAK,QAAQ,QAAQ,MAAM,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAC3C,OAAO,OAAO,CAAC,CACf,KAAK,SAAU,IAClB;EAEJ,MAAM,WAAW,UAAU,QAAQ,MAAM,IAAI,OAAO,IAAI,KAAA;EACxD,MAAM,aAAa,UAAU,OAAO;GAAE,GAAG,SAAS;GAAM,WAAW;EAAY,IAAI,KAAA;EAEnF,KAAK,qBAAqB,WAAW;EACrC,KAAK,gBAAgB,WAAW;EAChC,KAAK,UAAU,YAAY,WAAW;CACxC;;;;;;;CAQA,SAAS,WAAW,YAAoB,MAAmB;EAEzD,iBAAiB,MAAM,cAAc,KAAK;EAC1C,iBAAiB,MAAM,OAAO,aAAa,CAAC;EAC5C,WAAW,gBAAgB;EAG3B,aAAa,YAAY,KAAK,QAAQ;EAEtC,eAAe;GACb,YAAY,OAAO,eAAe;EACpC,CAAC;EAED,IAAI,CAAC,KAAK,UAAU,UAAU,CAAC,MAAM,UACnC,YAAY,OAAO,MAAM;CAE7B;CAEA,SAAS,mBAAmB;EAC1B,MAAM,EAAE,YAAY,WAAW,iBAAiB;EAEhD,IAAI,cAAc,OAAO,eAAe,UAAU;GAChD,IAAI;GACJ,IAAI,cACF,OAAO,WAAW,MAAM,SAAU;QAC7B;IACL,MAAM,OAAO,QAAQ,MAAM,IAAI,UAAU;IACzC,OAAO,OAAO,cAAc,IAAI,IAAI,CAAC,UAAU;GACjD;GACA,iBAAiB,QAAQ;GACzB,iBAAiB,OAAO,MAAM,KAAK;EACrC,OAAO;GACL,iBAAiB,QAAQ,CAAC;GAC1B,iBAAiB,OAAO,MAAM,KAAK;EACrC;CACF;CAEA,MACE;QAAO,MAAM;QAAgB,MAAM;EAAY;CAAM,IACpD,CAAC,cAAc;EACd,IAAI,YAAY,aAAa,GAAG;EAChC,iBAAiB;CACnB,GACA,EAAE,WAAW,KAAK,CACpB;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LanguageSupport, StreamLanguage } from "../../../../node_modules/.bun/@codemirror_language@6.12.4/node_modules/@codemirror/language/dist/index.js";
|
|
2
|
-
import { shell } from "../../../../node_modules/.bun/@codemirror_legacy-modes@6.5.
|
|
2
|
+
import { shell } from "../../../../node_modules/.bun/@codemirror_legacy-modes@6.5.4/node_modules/@codemirror/legacy-modes/mode/shell.js";
|
|
3
3
|
//#region src/components/code-editor/langs/bash/index.ts
|
|
4
4
|
/** Bash / shell 脚本语言支持(基于 CodeMirror legacy shell mode) */
|
|
5
5
|
function bash() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LanguageSupport, StreamLanguage } from "../../../../node_modules/.bun/@codemirror_language@6.12.4/node_modules/@codemirror/language/dist/index.js";
|
|
2
|
-
import { powerShell } from "../../../../node_modules/.bun/@codemirror_legacy-modes@6.5.
|
|
2
|
+
import { powerShell } from "../../../../node_modules/.bun/@codemirror_legacy-modes@6.5.4/node_modules/@codemirror/legacy-modes/mode/powershell.js";
|
|
3
3
|
//#region src/components/code-editor/langs/powershell/index.ts
|
|
4
4
|
/** PowerShell 语言支持(基于 CodeMirror legacy powershell mode) */
|
|
5
5
|
function powershell() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../../node_modules/.bun/@codemirror+legacy-modes@6.5.
|
|
1
|
+
//#region ../../node_modules/.bun/@codemirror+legacy-modes@6.5.4/node_modules/@codemirror/legacy-modes/mode/powershell.js
|
|
2
2
|
function buildRegexp(patterns, options) {
|
|
3
3
|
options = options || {};
|
|
4
4
|
var prefix = options.prefix !== void 0 ? options.prefix : "^";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powershell.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/@codemirror+legacy-modes@6.5.3/node_modules/@codemirror/legacy-modes/mode/powershell.js"],"sourcesContent":["function buildRegexp(patterns, options) {\n options = options || {};\n var prefix = options.prefix !== undefined ? options.prefix : '^';\n var suffix = options.suffix !== undefined ? options.suffix : '\\\\b';\n\n for (var i = 0; i < patterns.length; i++) {\n if (patterns[i] instanceof RegExp) {\n patterns[i] = patterns[i].source;\n }\n else {\n patterns[i] = patterns[i].replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n }\n\n return new RegExp(prefix + '(' + patterns.join('|') + ')' + suffix, 'i');\n}\n\nvar notCharacterOrDash = '(?=[^A-Za-z\\\\d\\\\-_]|$)';\nvar varNames = /[\\w\\-:]/\nvar keywords = buildRegexp([\n /begin|break|catch|continue|data|default|do|dynamicparam/,\n /else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in/,\n /param|process|return|switch|throw|trap|try|until|where|while/\n], { suffix: notCharacterOrDash });\n\nvar punctuation = /[\\[\\]{},;`\\\\\\.]|@[({]/;\nvar wordOperators = buildRegexp([\n 'f',\n /b?not/,\n /[ic]?split/, 'join',\n /is(not)?/, 'as',\n /[ic]?(eq|ne|[gl][te])/,\n /[ic]?(not)?(like|match|contains)/,\n /[ic]?replace/,\n /b?(and|or|xor)/\n], { prefix: '-' });\nvar symbolOperators = /[+\\-*\\/%]=|\\+\\+|--|\\.\\.|[+\\-*&^%:=!|\\/]|<(?!#)|(?!#)>/;\nvar operators = buildRegexp([wordOperators, symbolOperators], { suffix: '' });\n\nvar numbers = /^((0x[\\da-f]+)|((\\d+\\.\\d+|\\d\\.|\\.\\d+|\\d+)(e[\\+\\-]?\\d+)?))[ld]?([kmgtp]b)?/i;\n\nvar identifiers = /^[A-Za-z\\_][A-Za-z\\-\\_\\d]*\\b/;\n\nvar symbolBuiltins = /[A-Z]:|%|\\?/i;\nvar namedBuiltins = buildRegexp([\n /Add-(Computer|Content|History|Member|PSSnapin|Type)/,\n /Checkpoint-Computer/,\n /Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,\n /Compare-Object/,\n /Complete-Transaction/,\n /Connect-PSSession/,\n /ConvertFrom-(Csv|Json|SecureString|StringData)/,\n /Convert-Path/,\n /ConvertTo-(Csv|Html|Json|SecureString|Xml)/,\n /Copy-Item(Property)?/,\n /Debug-Process/,\n /Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,\n /Disconnect-PSSession/,\n /Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,\n /(Enter|Exit)-PSSession/,\n /Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,\n /ForEach-Object/,\n /Format-(Custom|List|Table|Wide)/,\n new RegExp('Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential'\n + '|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job'\n + '|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration'\n + '|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)'),\n /Group-Object/,\n /Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,\n /ImportSystemModules/,\n /Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,\n /Join-Path/,\n /Limit-EventLog/,\n /Measure-(Command|Object)/,\n /Move-Item(Property)?/,\n new RegExp('New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile'\n + '|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)'),\n /Out-(Default|File|GridView|Host|Null|Printer|String)/,\n /Pause/,\n /(Pop|Push)-Location/,\n /Read-Host/,\n /Receive-(Job|PSSession)/,\n /Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,\n /Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,\n /Rename-(Computer|Item(Property)?)/,\n /Reset-ComputerMachinePassword/,\n /Resolve-Path/,\n /Restart-(Computer|Service)/,\n /Restore-Computer/,\n /Resume-(Job|Service)/,\n /Save-Help/,\n /Select-(Object|String|Xml)/,\n /Send-MailMessage/,\n new RegExp('Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug' +\n '|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)'),\n /Show-(Command|ControlPanelItem|EventLog)/,\n /Sort-Object/,\n /Split-Path/,\n /Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,\n /Stop-(Computer|Job|Process|Service|Transcript)/,\n /Suspend-(Job|Service)/,\n /TabExpansion2/,\n /Tee-Object/,\n /Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,\n /Trace-Command/,\n /Unblock-File/,\n /Undo-Transaction/,\n /Unregister-(Event|PSSessionConfiguration)/,\n /Update-(FormatData|Help|List|TypeData)/,\n /Use-Transaction/,\n /Wait-(Event|Job|Process)/,\n /Where-Object/,\n /Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,\n /cd|help|mkdir|more|oss|prompt/,\n /ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,\n /echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,\n /group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,\n /measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,\n /rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,\n /sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/\n], { prefix: '', suffix: '' });\nvar variableBuiltins = buildRegexp([\n /[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,\n /FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,\n /MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,\n /PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,\n /PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,\n /WarningPreference|WhatIfPreference/,\n\n /Event|EventArgs|EventSubscriber|Sender/,\n /Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,\n /true|false|null/\n], { prefix: '\\\\$', suffix: '' });\n\nvar builtins = buildRegexp([symbolBuiltins, namedBuiltins, variableBuiltins], { suffix: notCharacterOrDash });\n\nvar grammar = {\n keyword: keywords,\n number: numbers,\n operator: operators,\n builtin: builtins,\n punctuation: punctuation,\n variable: identifiers\n};\n\n// tokenizers\nfunction tokenBase(stream, state) {\n // Handle Comments\n //var ch = stream.peek();\n\n var parent = state.returnStack[state.returnStack.length - 1];\n if (parent && parent.shouldReturnFrom(state)) {\n state.tokenize = parent.tokenize;\n state.returnStack.pop();\n return state.tokenize(stream, state);\n }\n\n if (stream.eatSpace()) {\n return null;\n }\n\n if (stream.eat('(')) {\n state.bracketNesting += 1;\n return 'punctuation';\n }\n\n if (stream.eat(')')) {\n state.bracketNesting -= 1;\n return 'punctuation';\n }\n\n for (var key in grammar) {\n if (stream.match(grammar[key])) {\n return key;\n }\n }\n\n var ch = stream.next();\n\n // single-quote string\n if (ch === \"'\") {\n return tokenSingleQuoteString(stream, state);\n }\n\n if (ch === '$') {\n return tokenVariable(stream, state);\n }\n\n // double-quote string\n if (ch === '\"') {\n return tokenDoubleQuoteString(stream, state);\n }\n\n if (ch === '<' && stream.eat('#')) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n\n if (ch === '#') {\n stream.skipToEnd();\n return 'comment';\n }\n\n if (ch === '@') {\n var quoteMatch = stream.eat(/[\"']/);\n if (quoteMatch && stream.eol()) {\n state.tokenize = tokenMultiString;\n state.startQuote = quoteMatch[0];\n return tokenMultiString(stream, state);\n } else if (stream.eol()) {\n return 'error';\n } else if (stream.peek().match(/[({]/)) {\n return 'punctuation';\n } else if (stream.peek().match(varNames)) {\n // splatted variable\n return tokenVariable(stream, state);\n }\n }\n return 'error';\n}\n\nfunction tokenSingleQuoteString(stream, state) {\n var ch;\n while ((ch = stream.peek()) != null) {\n stream.next();\n\n if (ch === \"'\" && !stream.eat(\"'\")) {\n state.tokenize = tokenBase;\n return 'string';\n }\n }\n\n return 'error';\n}\n\nfunction tokenDoubleQuoteString(stream, state) {\n var ch;\n while ((ch = stream.peek()) != null) {\n if (ch === '$') {\n state.tokenize = tokenStringInterpolation;\n return 'string';\n }\n\n stream.next();\n if (ch === '`') {\n stream.next();\n continue;\n }\n\n if (ch === '\"' && !stream.eat('\"')) {\n state.tokenize = tokenBase;\n return 'string';\n }\n }\n\n return 'error';\n}\n\nfunction tokenStringInterpolation(stream, state) {\n return tokenInterpolation(stream, state, tokenDoubleQuoteString);\n}\n\nfunction tokenMultiStringReturn(stream, state) {\n state.tokenize = tokenMultiString;\n state.startQuote = '\"'\n return tokenMultiString(stream, state);\n}\n\nfunction tokenHereStringInterpolation(stream, state) {\n return tokenInterpolation(stream, state, tokenMultiStringReturn);\n}\n\nfunction tokenInterpolation(stream, state, parentTokenize) {\n if (stream.match('$(')) {\n var savedBracketNesting = state.bracketNesting;\n state.returnStack.push({\n /*jshint loopfunc:true */\n shouldReturnFrom: function(state) {\n return state.bracketNesting === savedBracketNesting;\n },\n tokenize: parentTokenize\n });\n state.tokenize = tokenBase;\n state.bracketNesting += 1;\n return 'punctuation';\n } else {\n stream.next();\n state.returnStack.push({\n shouldReturnFrom: function() { return true; },\n tokenize: parentTokenize\n });\n state.tokenize = tokenVariable;\n return state.tokenize(stream, state);\n }\n}\n\nfunction tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == '>') {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch === '#');\n }\n return 'comment';\n}\n\nfunction tokenVariable(stream, state) {\n var ch = stream.peek();\n if (stream.eat('{')) {\n state.tokenize = tokenVariableWithBraces;\n return tokenVariableWithBraces(stream, state);\n } else if (ch != undefined && ch.match(varNames)) {\n stream.eatWhile(varNames);\n state.tokenize = tokenBase;\n return 'variable';\n } else {\n state.tokenize = tokenBase;\n return 'error';\n }\n}\n\nfunction tokenVariableWithBraces(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch === '}') {\n state.tokenize = tokenBase;\n break;\n }\n }\n return 'variable';\n}\n\nfunction tokenMultiString(stream, state) {\n var quote = state.startQuote;\n if (stream.sol() && stream.match(new RegExp(quote + '@'))) {\n state.tokenize = tokenBase;\n }\n else if (quote === '\"') {\n while (!stream.eol()) {\n var ch = stream.peek();\n if (ch === '$') {\n state.tokenize = tokenHereStringInterpolation;\n return 'string';\n }\n\n stream.next();\n if (ch === '`') {\n stream.next();\n }\n }\n }\n else {\n stream.skipToEnd();\n }\n\n return 'string';\n}\n\nexport const powerShell = {\n name: \"powershell\",\n\n startState: function() {\n return {\n returnStack: [],\n bracketNesting: 0,\n tokenize: tokenBase\n };\n },\n\n token: function(stream, state) {\n return state.tokenize(stream, state);\n },\n\n languageData: {\n commentTokens: {line: \"#\", block: {open: \"<#\", close: \"#>\"}}\n }\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"powershell.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/@codemirror+legacy-modes@6.5.4/node_modules/@codemirror/legacy-modes/mode/powershell.js"],"sourcesContent":["function buildRegexp(patterns, options) {\n options = options || {};\n var prefix = options.prefix !== undefined ? options.prefix : '^';\n var suffix = options.suffix !== undefined ? options.suffix : '\\\\b';\n\n for (var i = 0; i < patterns.length; i++) {\n if (patterns[i] instanceof RegExp) {\n patterns[i] = patterns[i].source;\n }\n else {\n patterns[i] = patterns[i].replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n }\n\n return new RegExp(prefix + '(' + patterns.join('|') + ')' + suffix, 'i');\n}\n\nvar notCharacterOrDash = '(?=[^A-Za-z\\\\d\\\\-_]|$)';\nvar varNames = /[\\w\\-:]/\nvar keywords = buildRegexp([\n /begin|break|catch|continue|data|default|do|dynamicparam/,\n /else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in/,\n /param|process|return|switch|throw|trap|try|until|where|while/\n], { suffix: notCharacterOrDash });\n\nvar punctuation = /[\\[\\]{},;`\\\\\\.]|@[({]/;\nvar wordOperators = buildRegexp([\n 'f',\n /b?not/,\n /[ic]?split/, 'join',\n /is(not)?/, 'as',\n /[ic]?(eq|ne|[gl][te])/,\n /[ic]?(not)?(like|match|contains)/,\n /[ic]?replace/,\n /b?(and|or|xor)/\n], { prefix: '-' });\nvar symbolOperators = /[+\\-*\\/%]=|\\+\\+|--|\\.\\.|[+\\-*&^%:=!|\\/]|<(?!#)|(?!#)>/;\nvar operators = buildRegexp([wordOperators, symbolOperators], { suffix: '' });\n\nvar numbers = /^((0x[\\da-f]+)|((\\d+\\.\\d+|\\d\\.|\\.\\d+|\\d+)(e[\\+\\-]?\\d+)?))[ld]?([kmgtp]b)?/i;\n\nvar identifiers = /^[A-Za-z\\_][A-Za-z\\-\\_\\d]*\\b/;\n\nvar symbolBuiltins = /[A-Z]:|%|\\?/i;\nvar namedBuiltins = buildRegexp([\n /Add-(Computer|Content|History|Member|PSSnapin|Type)/,\n /Checkpoint-Computer/,\n /Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,\n /Compare-Object/,\n /Complete-Transaction/,\n /Connect-PSSession/,\n /ConvertFrom-(Csv|Json|SecureString|StringData)/,\n /Convert-Path/,\n /ConvertTo-(Csv|Html|Json|SecureString|Xml)/,\n /Copy-Item(Property)?/,\n /Debug-Process/,\n /Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,\n /Disconnect-PSSession/,\n /Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,\n /(Enter|Exit)-PSSession/,\n /Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,\n /ForEach-Object/,\n /Format-(Custom|List|Table|Wide)/,\n new RegExp('Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential'\n + '|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job'\n + '|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration'\n + '|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)'),\n /Group-Object/,\n /Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,\n /ImportSystemModules/,\n /Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,\n /Join-Path/,\n /Limit-EventLog/,\n /Measure-(Command|Object)/,\n /Move-Item(Property)?/,\n new RegExp('New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile'\n + '|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)'),\n /Out-(Default|File|GridView|Host|Null|Printer|String)/,\n /Pause/,\n /(Pop|Push)-Location/,\n /Read-Host/,\n /Receive-(Job|PSSession)/,\n /Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,\n /Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,\n /Rename-(Computer|Item(Property)?)/,\n /Reset-ComputerMachinePassword/,\n /Resolve-Path/,\n /Restart-(Computer|Service)/,\n /Restore-Computer/,\n /Resume-(Job|Service)/,\n /Save-Help/,\n /Select-(Object|String|Xml)/,\n /Send-MailMessage/,\n new RegExp('Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug' +\n '|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)'),\n /Show-(Command|ControlPanelItem|EventLog)/,\n /Sort-Object/,\n /Split-Path/,\n /Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,\n /Stop-(Computer|Job|Process|Service|Transcript)/,\n /Suspend-(Job|Service)/,\n /TabExpansion2/,\n /Tee-Object/,\n /Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,\n /Trace-Command/,\n /Unblock-File/,\n /Undo-Transaction/,\n /Unregister-(Event|PSSessionConfiguration)/,\n /Update-(FormatData|Help|List|TypeData)/,\n /Use-Transaction/,\n /Wait-(Event|Job|Process)/,\n /Where-Object/,\n /Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,\n /cd|help|mkdir|more|oss|prompt/,\n /ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,\n /echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,\n /group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,\n /measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,\n /rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,\n /sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/\n], { prefix: '', suffix: '' });\nvar variableBuiltins = buildRegexp([\n /[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,\n /FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,\n /MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,\n /PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,\n /PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,\n /WarningPreference|WhatIfPreference/,\n\n /Event|EventArgs|EventSubscriber|Sender/,\n /Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,\n /true|false|null/\n], { prefix: '\\\\$', suffix: '' });\n\nvar builtins = buildRegexp([symbolBuiltins, namedBuiltins, variableBuiltins], { suffix: notCharacterOrDash });\n\nvar grammar = {\n keyword: keywords,\n number: numbers,\n operator: operators,\n builtin: builtins,\n punctuation: punctuation,\n variable: identifiers\n};\n\n// tokenizers\nfunction tokenBase(stream, state) {\n // Handle Comments\n //var ch = stream.peek();\n\n var parent = state.returnStack[state.returnStack.length - 1];\n if (parent && parent.shouldReturnFrom(state)) {\n state.tokenize = parent.tokenize;\n state.returnStack.pop();\n return state.tokenize(stream, state);\n }\n\n if (stream.eatSpace()) {\n return null;\n }\n\n if (stream.eat('(')) {\n state.bracketNesting += 1;\n return 'punctuation';\n }\n\n if (stream.eat(')')) {\n state.bracketNesting -= 1;\n return 'punctuation';\n }\n\n for (var key in grammar) {\n if (stream.match(grammar[key])) {\n return key;\n }\n }\n\n var ch = stream.next();\n\n // single-quote string\n if (ch === \"'\") {\n return tokenSingleQuoteString(stream, state);\n }\n\n if (ch === '$') {\n return tokenVariable(stream, state);\n }\n\n // double-quote string\n if (ch === '\"') {\n return tokenDoubleQuoteString(stream, state);\n }\n\n if (ch === '<' && stream.eat('#')) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n\n if (ch === '#') {\n stream.skipToEnd();\n return 'comment';\n }\n\n if (ch === '@') {\n var quoteMatch = stream.eat(/[\"']/);\n if (quoteMatch && stream.eol()) {\n state.tokenize = tokenMultiString;\n state.startQuote = quoteMatch[0];\n return tokenMultiString(stream, state);\n } else if (stream.eol()) {\n return 'error';\n } else if (stream.peek().match(/[({]/)) {\n return 'punctuation';\n } else if (stream.peek().match(varNames)) {\n // splatted variable\n return tokenVariable(stream, state);\n }\n }\n return 'error';\n}\n\nfunction tokenSingleQuoteString(stream, state) {\n var ch;\n while ((ch = stream.peek()) != null) {\n stream.next();\n\n if (ch === \"'\" && !stream.eat(\"'\")) {\n state.tokenize = tokenBase;\n return 'string';\n }\n }\n\n return 'error';\n}\n\nfunction tokenDoubleQuoteString(stream, state) {\n var ch;\n while ((ch = stream.peek()) != null) {\n if (ch === '$') {\n state.tokenize = tokenStringInterpolation;\n return 'string';\n }\n\n stream.next();\n if (ch === '`') {\n stream.next();\n continue;\n }\n\n if (ch === '\"' && !stream.eat('\"')) {\n state.tokenize = tokenBase;\n return 'string';\n }\n }\n\n return 'error';\n}\n\nfunction tokenStringInterpolation(stream, state) {\n return tokenInterpolation(stream, state, tokenDoubleQuoteString);\n}\n\nfunction tokenMultiStringReturn(stream, state) {\n state.tokenize = tokenMultiString;\n state.startQuote = '\"'\n return tokenMultiString(stream, state);\n}\n\nfunction tokenHereStringInterpolation(stream, state) {\n return tokenInterpolation(stream, state, tokenMultiStringReturn);\n}\n\nfunction tokenInterpolation(stream, state, parentTokenize) {\n if (stream.match('$(')) {\n var savedBracketNesting = state.bracketNesting;\n state.returnStack.push({\n /*jshint loopfunc:true */\n shouldReturnFrom: function(state) {\n return state.bracketNesting === savedBracketNesting;\n },\n tokenize: parentTokenize\n });\n state.tokenize = tokenBase;\n state.bracketNesting += 1;\n return 'punctuation';\n } else {\n stream.next();\n state.returnStack.push({\n shouldReturnFrom: function() { return true; },\n tokenize: parentTokenize\n });\n state.tokenize = tokenVariable;\n return state.tokenize(stream, state);\n }\n}\n\nfunction tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == '>') {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch === '#');\n }\n return 'comment';\n}\n\nfunction tokenVariable(stream, state) {\n var ch = stream.peek();\n if (stream.eat('{')) {\n state.tokenize = tokenVariableWithBraces;\n return tokenVariableWithBraces(stream, state);\n } else if (ch != undefined && ch.match(varNames)) {\n stream.eatWhile(varNames);\n state.tokenize = tokenBase;\n return 'variable';\n } else {\n state.tokenize = tokenBase;\n return 'error';\n }\n}\n\nfunction tokenVariableWithBraces(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch === '}') {\n state.tokenize = tokenBase;\n break;\n }\n }\n return 'variable';\n}\n\nfunction tokenMultiString(stream, state) {\n var quote = state.startQuote;\n if (stream.sol() && stream.match(new RegExp(quote + '@'))) {\n state.tokenize = tokenBase;\n }\n else if (quote === '\"') {\n while (!stream.eol()) {\n var ch = stream.peek();\n if (ch === '$') {\n state.tokenize = tokenHereStringInterpolation;\n return 'string';\n }\n\n stream.next();\n if (ch === '`') {\n stream.next();\n }\n }\n }\n else {\n stream.skipToEnd();\n }\n\n return 'string';\n}\n\nexport const powerShell = {\n name: \"powershell\",\n\n startState: function() {\n return {\n returnStack: [],\n bracketNesting: 0,\n tokenize: tokenBase\n };\n },\n\n token: function(stream, state) {\n return state.tokenize(stream, state);\n },\n\n languageData: {\n commentTokens: {line: \"#\", block: {open: \"<#\", close: \"#>\"}}\n }\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../../node_modules/.bun/@codemirror+legacy-modes@6.5.
|
|
1
|
+
//#region ../../node_modules/.bun/@codemirror+legacy-modes@6.5.4/node_modules/@codemirror/legacy-modes/mode/shell.js
|
|
2
2
|
var words = {};
|
|
3
3
|
function define(style, dict) {
|
|
4
4
|
for (var i = 0; i < dict.length; i++) words[dict[i]] = style;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/@codemirror+legacy-modes@6.5.
|
|
1
|
+
{"version":3,"file":"shell.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/@codemirror+legacy-modes@6.5.4/node_modules/@codemirror/legacy-modes/mode/shell.js"],"sourcesContent":["var words = {};\nfunction define(style, dict) {\n for(var i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n};\n\nvar commonAtoms = [\"true\", \"false\"];\nvar commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\nvar commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n \"yes\", \"zsh\"];\n\ndefine('atom', commonAtoms);\ndefine('keyword', commonKeywords);\ndefine('builtin', commonCommands);\n\nfunction tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n\n var sol = stream.sol();\n var ch = stream.next();\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === '\\'' || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta'; // 'comment'?\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (ch == \"<\") {\n if (stream.match(\"<<\")) return \"operator\"\n var heredoc = stream.match(/^<-?\\s*(?:['\"]([^'\"]*)['\"]|([^'\"\\s]*))/)\n if (heredoc) {\n state.tokens.unshift(tokenHeredoc(heredoc[1] || heredoc[2]))\n return 'string.special'\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n if(stream.eol() || !/\\w/.test(stream.peek())) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n var cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return words.hasOwnProperty(cur) ? words[cur] : null;\n}\n\nfunction tokenString(quote, style) {\n var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n return function(stream, state) {\n var next, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style))\n return tokenize(stream, state)\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, \"string\"));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n};\n\nfunction tokenStringStart(quote, style) {\n return function(stream, state) {\n state.tokens[0] = tokenString(quote, style)\n stream.next()\n return tokenize(stream, state)\n }\n}\n\nvar tokenDollar = function(stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n var ch = stream.next()\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n};\n\nfunction tokenHeredoc(delim) {\n return function(stream, state) {\n if (stream.sol() && stream.string == delim) state.tokens.shift()\n stream.skipToEnd()\n return \"string.special\"\n }\n}\n\nfunction tokenize(stream, state) {\n return (state.tokens[0] || tokenBase) (stream, state);\n};\n\nexport const shell = {\n name: \"shell\",\n startState: function() {return {tokens:[]};},\n token: function(stream, state) {\n return tokenize(stream, state);\n },\n languageData: {\n autocomplete: commonAtoms.concat(commonKeywords, commonCommands),\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"]},\n commentTokens: {line: \"#\"}\n }\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
package/dist/types/cascade.d.ts
CHANGED
|
@@ -56,8 +56,12 @@ interface CascadeEmits {
|
|
|
56
56
|
/** 触发更新 label 事件 */
|
|
57
57
|
(e: 'update:label', label?: string | string[]): void;
|
|
58
58
|
(e: 'update:modelValue', value?: string | string[]): void;
|
|
59
|
-
(e: 'change', items: Record<string, any>
|
|
60
|
-
|
|
59
|
+
(e: 'change', items: (Record<string, any> & {
|
|
60
|
+
fullLabel?: string;
|
|
61
|
+
})[], fullLabels?: string[]): void;
|
|
62
|
+
(e: 'change', item: (Record<string, any> & {
|
|
63
|
+
fullLabel?: string;
|
|
64
|
+
}) | undefined, fullLabel?: string): void;
|
|
61
65
|
(e: 'clear'): void;
|
|
62
66
|
}
|
|
63
67
|
/** 级联选择器组件暴露的属性和方法(组件内部使用) */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veltra/desktop",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.8",
|
|
4
4
|
"homepage": "https://github.com/cabinet-fe/ultra-ui#readme",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/cabinet-fe/ultra-ui/issues"
|
|
@@ -51,15 +51,15 @@
|
|
|
51
51
|
"@embedpdf/plugin-scroll": "^2.15.0",
|
|
52
52
|
"@embedpdf/plugin-viewport": "^2.15.0",
|
|
53
53
|
"@embedpdf/plugin-zoom": "^2.15.0",
|
|
54
|
-
"@lexical/history": "^0.
|
|
55
|
-
"@lexical/html": "^0.
|
|
56
|
-
"@lexical/link": "^0.
|
|
57
|
-
"@lexical/list": "^0.
|
|
58
|
-
"@lexical/rich-text": "^0.
|
|
59
|
-
"@lexical/selection": "^0.
|
|
60
|
-
"@lexical/utils": "^0.
|
|
54
|
+
"@lexical/history": "^0.50.0",
|
|
55
|
+
"@lexical/html": "^0.50.0",
|
|
56
|
+
"@lexical/link": "^0.50.0",
|
|
57
|
+
"@lexical/list": "^0.50.0",
|
|
58
|
+
"@lexical/rich-text": "^0.50.0",
|
|
59
|
+
"@lexical/selection": "^0.50.0",
|
|
60
|
+
"@lexical/utils": "^0.50.0",
|
|
61
61
|
"docx-preview": "^0.4.0",
|
|
62
|
-
"lexical": "^0.
|
|
62
|
+
"lexical": "^0.50.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@codemirror/autocomplete": "6.20.3",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"@codemirror/lang-markdown": "6.5.2",
|
|
71
71
|
"@codemirror/lang-sql": "6.10.0",
|
|
72
72
|
"@codemirror/language": "6.12.4",
|
|
73
|
-
"@codemirror/legacy-modes": "6.5.
|
|
73
|
+
"@codemirror/legacy-modes": "6.5.4",
|
|
74
74
|
"@codemirror/lint": "6.9.7",
|
|
75
75
|
"@codemirror/search": "6.7.1",
|
|
76
76
|
"@codemirror/state": "6.7.1",
|
|
@@ -80,12 +80,12 @@
|
|
|
80
80
|
"peerDependencies": {
|
|
81
81
|
"@cat-kit/core": ">=1.2.1",
|
|
82
82
|
"@cat-kit/fe": ">=1.2.1",
|
|
83
|
-
"@veltra/compositions": "^1.7.
|
|
84
|
-
"@veltra/directives": "^1.7.
|
|
83
|
+
"@veltra/compositions": "^1.7.8",
|
|
84
|
+
"@veltra/directives": "^1.7.8",
|
|
85
85
|
"@veltra/icons": "^1.5.0",
|
|
86
86
|
"@veltra/sheet-core": "^2.5.4",
|
|
87
|
-
"@veltra/styles": "^1.7.
|
|
88
|
-
"@veltra/utils": "^1.7.
|
|
87
|
+
"@veltra/styles": "^1.7.8",
|
|
88
|
+
"@veltra/utils": "^1.7.8",
|
|
89
89
|
"vue": ">=3.5.42"
|
|
90
90
|
},
|
|
91
91
|
"peerDependenciesMeta": {
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { createApp, h, nextTick, ref } from 'vue'
|
|
3
|
+
|
|
4
|
+
import UCascade from '../cascade.vue'
|
|
5
|
+
|
|
6
|
+
const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms))
|
|
7
|
+
|
|
8
|
+
const cascadeData = [
|
|
9
|
+
{
|
|
10
|
+
label: '浙江省',
|
|
11
|
+
value: 'zhejiang',
|
|
12
|
+
children: [
|
|
13
|
+
{
|
|
14
|
+
label: '杭州市',
|
|
15
|
+
value: 'hangzhou',
|
|
16
|
+
children: [
|
|
17
|
+
{ label: '西湖区', value: 'xihu' },
|
|
18
|
+
{ label: '余杭区', value: 'yuhang' }
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
label: '江苏省',
|
|
25
|
+
value: 'jiangsu',
|
|
26
|
+
children: [
|
|
27
|
+
{ label: '南京市', value: 'nanjing', children: [{ label: '玄武区', value: 'xuanwu' }] }
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
function queryCascadeItems() {
|
|
33
|
+
return [...document.body.querySelectorAll<HTMLElement>('.u-cascade-panel-item__option')]
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async function openDropdown(host: HTMLElement) {
|
|
37
|
+
const trigger = (host.querySelector('.u-cascade') ||
|
|
38
|
+
host.querySelector('.u-dropdown') ||
|
|
39
|
+
host.firstElementChild) as HTMLElement
|
|
40
|
+
trigger.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true }))
|
|
41
|
+
for (let attempt = 0; attempt < 20; attempt++) {
|
|
42
|
+
await nextTick()
|
|
43
|
+
await sleep(25)
|
|
44
|
+
if (queryCascadeItems().length > 0) return
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async function clickItemByLabel(label: string) {
|
|
49
|
+
const item = queryCascadeItems().find((el) => el.textContent?.includes(label))
|
|
50
|
+
expect(item, `cascade item "${label}" not found`).toBeTruthy()
|
|
51
|
+
item!.dispatchEvent(new MouseEvent('click', { bubbles: true }))
|
|
52
|
+
await nextTick()
|
|
53
|
+
await sleep(30)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
describe('UCascade change event fullLabel', () => {
|
|
57
|
+
it('should emit fullLabel in change event for single select', async () => {
|
|
58
|
+
const host = document.createElement('div')
|
|
59
|
+
document.body.appendChild(host)
|
|
60
|
+
|
|
61
|
+
const model = ref<string | undefined>()
|
|
62
|
+
let changeResult: { item: any; fullLabel?: string } | undefined
|
|
63
|
+
|
|
64
|
+
const app = createApp({
|
|
65
|
+
render() {
|
|
66
|
+
return h(UCascade, {
|
|
67
|
+
data: cascadeData,
|
|
68
|
+
modelValue: model.value,
|
|
69
|
+
'onUpdate:modelValue': (val: string) => {
|
|
70
|
+
model.value = val
|
|
71
|
+
},
|
|
72
|
+
onChange: (item: any, fullLabel?: string) => {
|
|
73
|
+
changeResult = { item, fullLabel }
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
app.mount(host)
|
|
80
|
+
await nextTick()
|
|
81
|
+
|
|
82
|
+
await openDropdown(host)
|
|
83
|
+
|
|
84
|
+
// 点击第一列 "浙江省"
|
|
85
|
+
await clickItemByLabel('浙江省')
|
|
86
|
+
|
|
87
|
+
// 点击第二列 "杭州市"
|
|
88
|
+
await clickItemByLabel('杭州市')
|
|
89
|
+
|
|
90
|
+
// 点击第三列 "西湖区"
|
|
91
|
+
await clickItemByLabel('西湖区')
|
|
92
|
+
|
|
93
|
+
expect(changeResult).toBeDefined()
|
|
94
|
+
expect(changeResult?.fullLabel).toBe('浙江省/杭州市/西湖区')
|
|
95
|
+
expect(changeResult?.item).toBeDefined()
|
|
96
|
+
expect(changeResult?.item.value).toBe('xihu')
|
|
97
|
+
expect(changeResult?.item.label).toBe('西湖区')
|
|
98
|
+
expect(changeResult?.item.fullLabel).toBe('浙江省/杭州市/西湖区')
|
|
99
|
+
|
|
100
|
+
app.unmount()
|
|
101
|
+
host.remove()
|
|
102
|
+
})
|
|
103
|
+
})
|
|
@@ -68,10 +68,13 @@ export function useCheck(options: CheckOptions): UseCheckReturned {
|
|
|
68
68
|
const checkedArr = Array.from(checkedSet.value)
|
|
69
69
|
const targetValues = checkedArr.map((item) => item.value)
|
|
70
70
|
const targetLabels = checkedArr.map((item) => item.label)
|
|
71
|
-
const targetItems = checkedArr.map((item) =>
|
|
71
|
+
const targetItems = checkedArr.map((item) => {
|
|
72
|
+
const data = item.data as Record<string, any>
|
|
73
|
+
return data ? Object.assign({}, data, { fullLabel: item.label }) : data
|
|
74
|
+
})
|
|
72
75
|
emit('update:modelValue', targetValues)
|
|
73
76
|
emit('update:label', targetLabels.length ? targetLabels : undefined)
|
|
74
|
-
emit('change', targetItems)
|
|
77
|
+
emit('change', targetItems, targetLabels.length ? targetLabels : undefined)
|
|
75
78
|
}
|
|
76
79
|
|
|
77
80
|
const restTag = computed(() => {
|
|
@@ -115,10 +115,11 @@ export function useSelect(options: SelectOptions): UseSelectReturned {
|
|
|
115
115
|
: leafLabel
|
|
116
116
|
|
|
117
117
|
const leafNode = leafKey ? dataMap.value.get(leafKey) : undefined
|
|
118
|
+
const changeItem = leafNode?.data ? { ...leafNode.data, fullLabel: targetLabel } : undefined
|
|
118
119
|
|
|
119
120
|
emit('update:modelValue', targetValue)
|
|
120
121
|
emit('update:label', targetLabel)
|
|
121
|
-
emit('change',
|
|
122
|
+
emit('change', changeItem, targetLabel)
|
|
122
123
|
}
|
|
123
124
|
|
|
124
125
|
/**
|
package/src/types/cascade.ts
CHANGED
|
@@ -62,8 +62,16 @@ export interface CascadeEmits {
|
|
|
62
62
|
/** 触发更新 label 事件 */
|
|
63
63
|
(e: 'update:label', label?: string | string[]): void
|
|
64
64
|
(e: 'update:modelValue', value?: string | string[]): void
|
|
65
|
-
(
|
|
66
|
-
|
|
65
|
+
(
|
|
66
|
+
e: 'change',
|
|
67
|
+
items: (Record<string, any> & { fullLabel?: string })[],
|
|
68
|
+
fullLabels?: string[]
|
|
69
|
+
): void
|
|
70
|
+
(
|
|
71
|
+
e: 'change',
|
|
72
|
+
item: (Record<string, any> & { fullLabel?: string }) | undefined,
|
|
73
|
+
fullLabel?: string
|
|
74
|
+
): void
|
|
67
75
|
(e: 'clear'): void
|
|
68
76
|
}
|
|
69
77
|
|