@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.
@@ -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) => item.data);
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>)\n emit('update:modelValue', targetValues)\n emit('update:label', targetLabels.length ? targetLabels : undefined)\n emit('change', targetItems)\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,KAAK,IAA2B;EAC7E,KAAK,qBAAqB,YAAY;EACtC,KAAK,gBAAgB,aAAa,SAAS,eAAe,KAAA,CAAS;EACnE,KAAK,UAAU,WAAW;CAC5B;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"}
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", leafNode?.data);
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', leafNode?.data as Record<string, any> | undefined)\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;EAExD,KAAK,qBAAqB,WAAW;EACrC,KAAK,gBAAgB,WAAW;EAChC,KAAK,UAAU,UAAU,IAAuC;CAClE;;;;;;;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
+ {"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":"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"}
@@ -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.3/node_modules/@codemirror/legacy-modes/mode/shell.js";
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.3/node_modules/@codemirror/legacy-modes/mode/powershell.js";
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() {
@@ -115,7 +115,7 @@
115
115
  }
116
116
  .u-table__head .u-table__cell {
117
117
  background-color: var(--u-table-header-bg);
118
- font-weight: 500;
118
+ font-weight: bold;
119
119
  color: var(--u-table-header-color);
120
120
  }
121
121
  .u-table__head.is-multistage .u-table__cell {
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.bun/@codemirror+legacy-modes@6.5.3/node_modules/@codemirror/legacy-modes/mode/powershell.js
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.3/node_modules/@codemirror/legacy-modes/mode/shell.js
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.3/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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"}
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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"}
@@ -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>[]): void;
60
- (e: 'change', item?: Record<string, any>): void;
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.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.49.0",
55
- "@lexical/html": "^0.49.0",
56
- "@lexical/link": "^0.49.0",
57
- "@lexical/list": "^0.49.0",
58
- "@lexical/rich-text": "^0.49.0",
59
- "@lexical/selection": "^0.49.0",
60
- "@lexical/utils": "^0.49.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.49.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.3",
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.7",
84
- "@veltra/directives": "^1.7.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.7",
88
- "@veltra/utils": "^1.7.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) => item.data as Record<string, any>)
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', leafNode?.data as Record<string, any> | undefined)
122
+ emit('change', changeItem, targetLabel)
122
123
  }
123
124
 
124
125
  /**
@@ -126,7 +126,7 @@ $root-name: table;
126
126
 
127
127
  @include m.bem($root-name, cell) {
128
128
  background-color: var(--u-table-header-bg);
129
- font-weight: 500;
129
+ font-weight: bold;
130
130
  color: var(--u-table-header-color);
131
131
  }
132
132
 
@@ -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
- (e: 'change', items: Record<string, any>[]): void
66
- (e: 'change', item?: Record<string, any>): void
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