yuyeon 0.0.8 → 0.0.10
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/style.css +1 -1
- package/dist/yuyeon.mjs +2753 -1513
- package/dist/yuyeon.umd.js +1 -1
- package/lib/components/button/YButton.mjs +31 -27
- package/lib/components/button/YButton.mjs.map +1 -1
- package/lib/components/button/YButton.scss +13 -6
- package/lib/components/icons/YIconCheckbox.mjs +5 -3
- package/lib/components/icons/YIconCheckbox.mjs.map +1 -1
- package/lib/components/icons/YIconCheckbox.scss +26 -0
- package/lib/components/icons/YIconPageControl.mjs +1 -5
- package/lib/components/icons/YIconPageControl.mjs.map +1 -1
- package/lib/components/icons/YIconSort.mjs +45 -0
- package/lib/components/icons/YIconSort.mjs.map +1 -0
- package/lib/components/icons/YIconSort.scss +23 -0
- package/lib/components/pagination/YPagination.mjs +19 -17
- package/lib/components/pagination/YPagination.mjs.map +1 -1
- package/lib/components/pagination/YPagination.scss +1 -1
- package/lib/components/table/YDataTable.mjs +17 -7
- package/lib/components/table/YDataTable.mjs.map +1 -1
- package/lib/components/table/YDataTableBody.mjs +69 -6
- package/lib/components/table/YDataTableBody.mjs.map +1 -1
- package/lib/components/table/YDataTableCell.mjs +18 -4
- package/lib/components/table/YDataTableCell.mjs.map +1 -1
- package/lib/components/table/YDataTableControl.mjs.map +1 -1
- package/lib/components/table/YDataTableHead.mjs +144 -5
- package/lib/components/table/YDataTableHead.mjs.map +1 -1
- package/lib/components/table/YDataTableRow.mjs +66 -3
- package/lib/components/table/YDataTableRow.mjs.map +1 -1
- package/lib/components/table/YDataTableServer.mjs +103 -16
- package/lib/components/table/YDataTableServer.mjs.map +1 -1
- package/lib/components/table/YTable.mjs +17 -13
- package/lib/components/table/YTable.mjs.map +1 -1
- package/lib/components/table/YTable.scss +53 -0
- package/lib/components/table/composibles/header.mjs +110 -0
- package/lib/components/table/composibles/header.mjs.map +1 -0
- package/lib/components/table/composibles/items.mjs +45 -0
- package/lib/components/table/composibles/items.mjs.map +1 -0
- package/lib/components/table/composibles/options.mjs +33 -0
- package/lib/components/table/composibles/options.mjs.map +1 -0
- package/lib/components/table/composibles/pagination.mjs +82 -0
- package/lib/components/table/composibles/pagination.mjs.map +1 -0
- package/lib/components/table/composibles/selection.mjs +179 -0
- package/lib/components/table/composibles/selection.mjs.map +1 -0
- package/lib/components/table/composibles/sorting.mjs +74 -0
- package/lib/components/table/composibles/sorting.mjs.map +1 -0
- package/lib/components/table/types/index.mjs +2 -0
- package/lib/components/table/types/index.mjs.map +1 -0
- package/lib/components/tree-view/YTreeView.mjs.map +1 -1
- package/lib/components/tree-view/types.mjs.map +1 -1
- package/lib/components/tree-view/util.mjs.map +1 -1
- package/lib/composables/icon.mjs +2 -0
- package/lib/composables/icon.mjs.map +1 -0
- package/lib/styles/base.scss +8 -0
- package/lib/types/index.mjs +2 -0
- package/lib/types/index.mjs.map +1 -0
- package/lib/util/array.mjs +3 -0
- package/lib/util/array.mjs.map +1 -1
- package/lib/util/common.mjs +13 -0
- package/lib/util/common.mjs.map +1 -1
- package/lib/util/vue-component.mjs.map +1 -1
- package/package.json +1 -1
- package/types/components/button/YButton.d.ts +135 -66
- package/types/components/checkbox/YInputCheckbox.d.ts +6 -3
- package/types/components/icons/YIconCheckbox.d.ts +6 -3
- package/types/components/icons/YIconPageControl.d.ts +0 -8
- package/types/components/icons/YIconSort.d.ts +18 -0
- package/types/components/pagination/YPagination.d.ts +6 -27
- package/types/components/table/YDataTable.d.ts +282 -19
- package/types/components/table/YDataTableBody.d.ts +34 -6
- package/types/components/table/YDataTableCell.d.ts +50 -0
- package/types/components/table/YDataTableHead.d.ts +67 -5
- package/types/components/table/YDataTableRow.d.ts +30 -0
- package/types/components/table/YDataTableServer.d.ts +317 -29
- package/types/components/table/YTable.d.ts +41 -0
- package/types/components/table/composibles/header.d.ts +66 -0
- package/types/components/table/composibles/items.d.ts +54 -0
- package/types/components/table/composibles/options.d.ts +10 -0
- package/types/components/table/composibles/pagination.d.ts +68 -0
- package/types/components/table/composibles/selection.d.ts +67 -0
- package/types/components/table/composibles/sorting.d.ts +41 -0
- package/types/components/table/types/index.d.ts +77 -0
- package/types/components/tree-view/YTreeView.d.ts +14 -14
- package/types/components/tree-view/types.d.ts +3 -3
- package/types/components/tree-view/util.d.ts +2 -2
- package/types/types/index.d.ts +1 -0
- package/types/util/array.d.ts +1 -0
- package/types/util/common.d.ts +2 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { toRef } from '@vue/runtime-core';
|
|
2
|
+
import { inject, provide } from 'vue';
|
|
3
|
+
import { useModelDuplex } from "../../../composables/communication.mjs";
|
|
4
|
+
import { propsFactory } from "../../../util/vue-component.mjs";
|
|
5
|
+
const Y_DATA_TABLE_SORTING_KEY = Symbol.for('yuyeon.data-table.sorting');
|
|
6
|
+
export const pressDataTableSortProps = propsFactory({
|
|
7
|
+
sortBy: {
|
|
8
|
+
type: Array,
|
|
9
|
+
default: () => []
|
|
10
|
+
},
|
|
11
|
+
multiSort: Boolean
|
|
12
|
+
}, 'YDataTable--sorting');
|
|
13
|
+
export function createSorting(props) {
|
|
14
|
+
const sortBy = useModelDuplex(props, 'sortBy');
|
|
15
|
+
const multiSort = toRef(props, 'multiSort');
|
|
16
|
+
return {
|
|
17
|
+
sortBy,
|
|
18
|
+
multiSort
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function provideSorting(options) {
|
|
22
|
+
const {
|
|
23
|
+
sortBy,
|
|
24
|
+
multiSort,
|
|
25
|
+
page
|
|
26
|
+
} = options;
|
|
27
|
+
const toggleSort = column => {
|
|
28
|
+
let neo = sortBy.value?.map(v => ({
|
|
29
|
+
...v
|
|
30
|
+
})) ?? [];
|
|
31
|
+
const target = neo.find(v => v.key === column.key);
|
|
32
|
+
const sortOption = {
|
|
33
|
+
key: column.key,
|
|
34
|
+
order: 'asc'
|
|
35
|
+
};
|
|
36
|
+
if (!target) {
|
|
37
|
+
if (multiSort?.value) {
|
|
38
|
+
neo = [...neo, sortOption];
|
|
39
|
+
} else {
|
|
40
|
+
neo = [sortOption];
|
|
41
|
+
}
|
|
42
|
+
} else if (target.order === 'desc') {
|
|
43
|
+
if (column.mustSort) {
|
|
44
|
+
target.order = 'asc';
|
|
45
|
+
} else {
|
|
46
|
+
neo = neo.filter(v => v.key !== column.key);
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
target.order = 'desc';
|
|
50
|
+
}
|
|
51
|
+
sortBy.value = neo;
|
|
52
|
+
if (page) {
|
|
53
|
+
page.value = 1;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
function isSorted(column) {
|
|
57
|
+
return !!sortBy.value.find(option => option.key === column.key);
|
|
58
|
+
}
|
|
59
|
+
const data = {
|
|
60
|
+
sortBy,
|
|
61
|
+
toggleSort,
|
|
62
|
+
isSorted
|
|
63
|
+
};
|
|
64
|
+
provide(Y_DATA_TABLE_SORTING_KEY, data);
|
|
65
|
+
return data;
|
|
66
|
+
}
|
|
67
|
+
export function useSorting() {
|
|
68
|
+
const data = inject(Y_DATA_TABLE_SORTING_KEY);
|
|
69
|
+
if (!data) {
|
|
70
|
+
throw new Error(`Not provided: ${Y_DATA_TABLE_SORTING_KEY.description}`);
|
|
71
|
+
}
|
|
72
|
+
return data;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=sorting.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sorting.mjs","names":["toRef","inject","provide","useModelDuplex","propsFactory","Y_DATA_TABLE_SORTING_KEY","Symbol","for","pressDataTableSortProps","sortBy","type","Array","default","multiSort","Boolean","createSorting","props","provideSorting","options","page","toggleSort","column","neo","value","map","v","target","find","key","sortOption","order","mustSort","filter","isSorted","option","data","useSorting","Error","description"],"sources":["../../../../src/components/table/composibles/sorting.ts"],"sourcesContent":["import { toRef } from '@vue/runtime-core';\nimport type { InjectionKey, PropType, Ref } from 'vue';\nimport { inject, provide } from 'vue';\n\nimport { useModelDuplex } from '../../../composables/communication';\nimport { propsFactory } from '../../../util/vue-component';\n\nimport type {\n DataTableProvideSortingData,\n InternalDataTableHeader,\n SortOption,\n} from '../types';\n\nconst Y_DATA_TABLE_SORTING_KEY: InjectionKey<{\n sortBy: Ref<readonly SortOption[]>;\n toggleSort: (col: InternalDataTableHeader) => void;\n isSorted: (col: InternalDataTableHeader) => boolean;\n}> = Symbol.for('yuyeon.data-table.sorting');\n\nexport const pressDataTableSortProps = propsFactory(\n {\n sortBy: {\n type: Array as PropType<readonly SortOption[]>,\n default: () => [],\n },\n multiSort: Boolean,\n },\n 'YDataTable--sorting',\n);\n\ntype SortProps = {\n sortBy: readonly SortOption[];\n 'onUpdate:sortBy': ((value: any) => void) | undefined;\n multiSort: boolean;\n};\n\nexport function createSorting(props: SortProps) {\n const sortBy = useModelDuplex(props, 'sortBy');\n const multiSort = toRef(props, 'multiSort');\n\n return { sortBy, multiSort };\n}\n\nexport function provideSorting(options: {\n sortBy: Ref<readonly SortOption[]>;\n page?: Ref<number>;\n multiSort?: Ref<boolean>;\n}) {\n const { sortBy, multiSort, page } = options;\n\n const toggleSort = (column: InternalDataTableHeader) => {\n let neo = sortBy.value?.map((v) => ({ ...v })) ?? [];\n const target = neo.find((v) => v.key === column.key);\n const sortOption: SortOption = { key: column.key, order: 'asc' };\n\n if (!target) {\n if (multiSort?.value) {\n neo = [...neo, sortOption];\n } else {\n neo = [sortOption];\n }\n } else if (target.order === 'desc') {\n if (column.mustSort) {\n target.order = 'asc';\n } else {\n neo = neo.filter((v) => v.key !== column.key);\n }\n } else {\n target.order = 'desc';\n }\n sortBy.value = neo;\n if (page) {\n page.value = 1;\n }\n };\n\n function isSorted(column: InternalDataTableHeader) {\n return !!sortBy.value.find((option) => option.key === column.key);\n }\n\n const data: DataTableProvideSortingData = { sortBy, toggleSort, isSorted };\n\n provide(Y_DATA_TABLE_SORTING_KEY, data);\n\n return data;\n}\n\nexport function useSorting() {\n const data = inject(Y_DATA_TABLE_SORTING_KEY);\n if (!data) {\n throw new Error(`Not provided: ${Y_DATA_TABLE_SORTING_KEY.description}`);\n }\n return data;\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,mBAAmB;AAEzC,SAASC,MAAM,EAAEC,OAAO,QAAQ,KAAK;AAAC,SAE7BC,cAAc;AAAA,SACdC,YAAY;AAQrB,MAAMC,wBAIJ,GAAGC,MAAM,CAACC,GAAG,CAAC,2BAA2B,CAAC;AAE5C,OAAO,MAAMC,uBAAuB,GAAGJ,YAAY,CACjD;EACEK,MAAM,EAAE;IACNC,IAAI,EAAEC,KAAwC;IAC9CC,OAAO,EAAEA,CAAA,KAAM;EACjB,CAAC;EACDC,SAAS,EAAEC;AACb,CAAC,EACD,qBACF,CAAC;AAQD,OAAO,SAASC,aAAaA,CAACC,KAAgB,EAAE;EAC9C,MAAMP,MAAM,GAAGN,cAAc,CAACa,KAAK,EAAE,QAAQ,CAAC;EAC9C,MAAMH,SAAS,GAAGb,KAAK,CAACgB,KAAK,EAAE,WAAW,CAAC;EAE3C,OAAO;IAAEP,MAAM;IAAEI;EAAU,CAAC;AAC9B;AAEA,OAAO,SAASI,cAAcA,CAACC,OAI9B,EAAE;EACD,MAAM;IAAET,MAAM;IAAEI,SAAS;IAAEM;EAAK,CAAC,GAAGD,OAAO;EAE3C,MAAME,UAAU,GAAIC,MAA+B,IAAK;IACtD,IAAIC,GAAG,GAAGb,MAAM,CAACc,KAAK,EAAEC,GAAG,CAAEC,CAAC,KAAM;MAAE,GAAGA;IAAE,CAAC,CAAC,CAAC,IAAI,EAAE;IACpD,MAAMC,MAAM,GAAGJ,GAAG,CAACK,IAAI,CAAEF,CAAC,IAAKA,CAAC,CAACG,GAAG,KAAKP,MAAM,CAACO,GAAG,CAAC;IACpD,MAAMC,UAAsB,GAAG;MAAED,GAAG,EAAEP,MAAM,CAACO,GAAG;MAAEE,KAAK,EAAE;IAAM,CAAC;IAEhE,IAAI,CAACJ,MAAM,EAAE;MACX,IAAIb,SAAS,EAAEU,KAAK,EAAE;QACpBD,GAAG,GAAG,CAAC,GAAGA,GAAG,EAAEO,UAAU,CAAC;MAC5B,CAAC,MAAM;QACLP,GAAG,GAAG,CAACO,UAAU,CAAC;MACpB;IACF,CAAC,MAAM,IAAIH,MAAM,CAACI,KAAK,KAAK,MAAM,EAAE;MAClC,IAAIT,MAAM,CAACU,QAAQ,EAAE;QACnBL,MAAM,CAACI,KAAK,GAAG,KAAK;MACtB,CAAC,MAAM;QACLR,GAAG,GAAGA,GAAG,CAACU,MAAM,CAAEP,CAAC,IAAKA,CAAC,CAACG,GAAG,KAAKP,MAAM,CAACO,GAAG,CAAC;MAC/C;IACF,CAAC,MAAM;MACLF,MAAM,CAACI,KAAK,GAAG,MAAM;IACvB;IACArB,MAAM,CAACc,KAAK,GAAGD,GAAG;IAClB,IAAIH,IAAI,EAAE;MACRA,IAAI,CAACI,KAAK,GAAG,CAAC;IAChB;EACF,CAAC;EAED,SAASU,QAAQA,CAACZ,MAA+B,EAAE;IACjD,OAAO,CAAC,CAACZ,MAAM,CAACc,KAAK,CAACI,IAAI,CAAEO,MAAM,IAAKA,MAAM,CAACN,GAAG,KAAKP,MAAM,CAACO,GAAG,CAAC;EACnE;EAEA,MAAMO,IAAiC,GAAG;IAAE1B,MAAM;IAAEW,UAAU;IAAEa;EAAS,CAAC;EAE1E/B,OAAO,CAACG,wBAAwB,EAAE8B,IAAI,CAAC;EAEvC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,UAAUA,CAAA,EAAG;EAC3B,MAAMD,IAAI,GAAGlC,MAAM,CAACI,wBAAwB,CAAC;EAC7C,IAAI,CAAC8B,IAAI,EAAE;IACT,MAAM,IAAIE,KAAK,CAAE,iBAAgBhC,wBAAwB,CAACiC,WAAY,EAAC,CAAC;EAC1E;EACA,OAAOH,IAAI;AACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/table/types/index.ts"],"sourcesContent":["import { ComputedRef, Ref, UnwrapRef } from \"vue\";\n\nimport { SelectableItem } from '../composibles/selection';\n\nexport type DataTableCompareFn<T = any> = (a: T, b: T) => number;\n\nexport type DataTableHeader = {\n key: string;\n text: string;\n value?: any;\n\n colspan?: number;\n rowspan?: number;\n fixed?: boolean;\n\n align?: 'start' | 'end' | 'center';\n width?: number | string;\n minWidth?: string;\n maxWidth?: string;\n sortable?: boolean;\n sort?: DataTableCompareFn;\n mustSort?: boolean;\n};\n\nexport type InternalDataTableHeader = DataTableHeader & {\n sortable: boolean;\n fixedOffset?: number;\n lastFixed?: boolean;\n};\n\nexport interface DataTableItem<T = any> extends SelectableItem {\n index: number;\n columns: Record<string, any>;\n raw: T;\n}\n\nexport type SortOption = { key: string; order?: boolean | 'asc' | 'desc' };\n\nexport type DataTableProvideSortingData = {\n sortBy: Ref<readonly SortOption[]>;\n toggleSort: (column: InternalDataTableHeader) => void;\n isSorted: (column: InternalDataTableHeader) => boolean;\n};\n\nexport interface DataTableProvidePaginationData {\n page: Ref<number>;\n pageSize: Ref<number>;\n startIndex: ComputedRef<number>;\n endIndex: ComputedRef<number>;\n pageLength: ComputedRef<number>;\n total: Ref<number>;\n nextPage: () => void;\n prevPage: () => void;\n setPage: (value: number) => void;\n setPageSize: (value: number) => void;\n}\n\nexport interface DataTableProvideSelectionData {\n toggleSelect: (item: SelectableItem) => void;\n select: (items: SelectableItem[], value: boolean) => void;\n selectAll: (value: boolean) => void;\n isSelected: (items: (SelectableItem | SelectableItem[])) => any;\n isSomeSelected: (items: (SelectableItem | SelectableItem[])) => any;\n someSelected: ComputedRef<boolean>;\n allSelected: ComputedRef<any>;\n showSelectAll: boolean;\n selectables: ComputedRef<SelectableItem[]>\n}\n\nexport type YDataTableSlotProps = {\n // pagination\n page: number;\n pageSize: number;\n pageLength: number;\n setPageSize: DataTableProvidePaginationData['setPageSize'];\n // sorting\n sortBy: UnwrapRef<DataTableProvideSortingData['sortBy']>;\n toggleSort: DataTableProvideSortingData['toggleSort'];\n // selection\n someSelected: boolean,\n allSelected: boolean,\n isSelected: DataTableProvideSelectionData['isSelected'];\n select: DataTableProvideSelectionData['select'];\n selectAll: DataTableProvideSelectionData['selectAll'];\n toggleSelect: DataTableProvideSelectionData['toggleSelect'];\n //\n items: readonly DataTableItem[];\n columns: InternalDataTableHeader[];\n headers: InternalDataTableHeader[][];\n};\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","onMounted","provide","ref","watch","useModelDuplex","useRender","differenceBetween","deepEqual","getObjectValueByPath","hasOwnProperty","isColorValue","chooseProps","YTreeViewNode","pressYTreeViewNodeProps","getKeys","treeViewNodeProps","YTreeView","name","props","items","type","Array","default","expanded","active","multipleActive","Boolean","activeStrategy","String","selected","selectStrategy","returnItem","defaultExpand","Number","emits","setup","_ref","slots","emit","expose","nodes","expandedSet","Set","selectedSet","activeSet","expandedCache","getDescendants","key","descendants","arguments","length","undefined","childKeys","value","push","childKey","getNodeKey","itemOrKey","itemKey","updateNodes","parentKey","level","item","children","childrenKey","exist","existNode","vnode","indeterminate","node","map","child","add","issueVnodeState","updateExpanded","to","isArray","delete","expand","until","Object","entries","forEach","_ref2","emitExpanded","updateActive","inactiveKey","keys","descendant","updateSelected","arr","emitActive","emitSelected","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","neo","oldKeys","nodeKey","neoKeys","diff","k","oldSelected","clear","deep","register","renderLeaves","classes","styles","color","activeColor","_createVNode","_Fragment","leaf","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\n PropType,\n Ref,\n VNode,\n computed,\n defineComponent,\n onMounted,\n provide,\n ref,\n watch,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { differenceBetween } from '../../util/array';\nimport {\n deepEqual,\n getObjectValueByPath,\n hasOwnProperty,\n} from '../../util/common';\nimport { isColorValue } from '../../util/ui';\nimport { chooseProps } from '../../util/vue-component';\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\nimport { getKeys } from './util';\n\nimport './YTreeView.scss';\nimport { NodeKey, NodeState } from './types';\n\nconst treeViewNodeProps = pressYTreeViewNodeProps();\n\nexport const YTreeView = defineComponent({\n name: 'YTreeView',\n props: {\n items: {\n type: Array as PropType<any[]>,\n default: () => [],\n },\n expanded: {\n type: [Array] as PropType<NodeKey[]>,\n default: () => [],\n },\n active: {\n type: [Array] as PropType<NodeKey[]>,\n default: () => [],\n },\n multipleActive: Boolean,\n activeStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'independent',\n },\n selected: {\n type: [Array] as PropType<NodeKey[]>,\n default: () => [],\n },\n selectStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'leaf',\n },\n returnItem: Boolean,\n defaultExpand: [Boolean, String, Number],\n ...treeViewNodeProps,\n },\n emits: ['update:expanded', 'update:active', 'update:selected'],\n setup(props, { slots, emit, expose }) {\n const nodes = ref<Record<NodeKey, any>>({});\n\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<NodeKey>());\n const selectedSet = ref(new Set<NodeKey>());\n const activeSet = ref(new Set<NodeKey>());\n\n const expandedCache = ref<NodeKey[]>([]);\n\n // Util Methods\n function getDescendants(key: NodeKey, descendants: NodeKey[] = []) {\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n for (const childKey of childKeys) {\n descendants = getDescendants(childKey, descendants);\n }\n return descendants;\n }\n\n function getNodeKey(itemOrKey: any) {\n return props.returnItem\n ? getObjectValueByPath(itemOrKey, props.itemKey)\n : itemOrKey;\n }\n\n // State Methods\n function updateNodes(\n items: any[],\n parentKey: NodeKey | null = null,\n level = 0,\n ) {\n for (const item of items) {\n const key = getObjectValueByPath(item, props.itemKey);\n const children = getObjectValueByPath(item, props.childrenKey) ?? [];\n const exist = hasOwnProperty(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: false,\n indeterminate: false,\n active: false,\n expanded: false,\n };\n const node: NodeState = {\n vnode: existNode.vnode,\n item,\n level,\n parentKey,\n childKeys: children.map((child: any) =>\n getObjectValueByPath(child, props.itemKey),\n ),\n expanded: children.length > 0 && existNode.expanded,\n active: existNode.active,\n indeterminate: existNode.indeterminate,\n selected: existNode.selected,\n };\n\n updateNodes(children, key, level + 1);\n\n nodes.value[key] = node;\n if (nodes.value[key].expanded) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].selected) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n\n issueVnodeState(key);\n }\n }\n\n function updateExpanded(key: NodeKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(node.item, props.childrenKey);\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key)\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || until >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n }\n\n function updateActive(key: NodeKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive) {\n [inactiveKey] = activeSet.value.keys();\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (props.multipleActive && props.activeStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? activeSet.value.add(descendant)\n : activeSet.value.delete(descendant);\n nodes.value[descendant].active = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function updateSelected(key: NodeKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function stateWatcher(\n value: any[],\n stateSet: Ref<Set<NodeKey>>,\n updater: (key: NodeKey, to: boolean) => void,\n emitter: () => void,\n ) {\n const valuesOfKey = props.returnItem\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\n : value;\n const old = [...stateSet.value];\n if (deepEqual(old, valuesOfKey)) {\n return;\n }\n old.forEach((key) => updater(key, false));\n valuesOfKey.forEach((key) => updater(key, true));\n emitter();\n }\n\n watch(expanded, (neo) => {\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\n });\n\n watch(active, (neo) => {\n stateWatcher(neo, activeSet, updateActive, emitActive);\n });\n\n watch(selected, (neo) => {\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\n });\n\n watch(\n () => props.items,\n (neo: any[]) => {\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\n );\n const neoKeys = getKeys(neo, props.itemKey, props.childrenKey);\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => delete nodes.value[k]);\n\n // init\n const oldSelected = [...selectedSet.value];\n selectedSet.value.clear();\n expandedSet.value.clear();\n activeSet.value.clear();\n updateNodes(neo);\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\n emitSelected();\n }\n },\n { deep: true },\n );\n\n // Provide & Issue\n function issueVnodeState(key: NodeKey) {\n const node = nodes.value[key];\n if (node && node.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n function register(key: NodeKey, vnode: VNode) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n updateNodes(props.items);\n\n provide('tree-view', {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n });\n\n const renderLeaves = computed(() => {\n return props.items;\n });\n\n const classes = computed(() => {\n return {\n 'y-tree-view': true,\n };\n });\n\n const styles = computed(() => {\n let color = props.activeColor;\n if (props.activeColor && !isColorValue(props.activeColor)) {\n color = `rgba(var(--y-theme--${props.activeColor}), 1)`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.defaultExpand !== undefined) {\n expand(props.defaultExpand);\n } else {\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\n emitExpanded();\n }\n });\n\n expose({\n expand,\n });\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} style={styles.value} role=\"tree\">\n {renderLeaves.value.length > 0 ? (\n renderLeaves.value.map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n {...{\n ...chooseProps(props, treeViewNodeProps),\n item: leaf,\n level: 0,\n }}\n ></YTreeViewNode>\n );\n })\n ) : (\n <div class=\"y-tree-view__no-data\">\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\n </div>\n )}\n </div>\n </>\n );\n });\n\n return {\n nodes,\n expandedSet,\n selectedSet,\n activeSet,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","onMounted","provide","ref","watch","useModelDuplex","useRender","differenceBetween","deepEqual","getObjectValueByPath","hasOwnProperty","isColorValue","chooseProps","YTreeViewNode","pressYTreeViewNodeProps","getKeys","treeViewNodeProps","YTreeView","name","props","items","type","Array","default","expanded","active","multipleActive","Boolean","activeStrategy","String","selected","selectStrategy","returnItem","defaultExpand","Number","emits","setup","_ref","slots","emit","expose","nodes","expandedSet","Set","selectedSet","activeSet","expandedCache","getDescendants","key","descendants","arguments","length","undefined","childKeys","value","push","childKey","getNodeKey","itemOrKey","itemKey","updateNodes","parentKey","level","item","children","childrenKey","exist","existNode","vnode","indeterminate","node","map","child","add","issueVnodeState","updateExpanded","to","isArray","delete","expand","until","Object","entries","forEach","_ref2","emitExpanded","updateActive","inactiveKey","keys","descendant","updateSelected","arr","emitActive","emitSelected","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","neo","oldKeys","nodeKey","neoKeys","diff","k","oldSelected","clear","deep","register","renderLeaves","classes","styles","color","activeColor","_createVNode","_Fragment","leaf","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\n PropType,\n Ref,\n VNode,\n computed,\n defineComponent,\n onMounted,\n provide,\n ref,\n watch,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { differenceBetween } from '../../util/array';\nimport {\n deepEqual,\n getObjectValueByPath,\n hasOwnProperty,\n} from '../../util/common';\nimport { isColorValue } from '../../util/ui';\nimport { chooseProps } from '../../util/vue-component';\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\nimport { getKeys } from './util';\n\nimport { CandidateKey } from '../../types';\nimport './YTreeView.scss';\nimport { NodeState } from './types';\n\nconst treeViewNodeProps = pressYTreeViewNodeProps();\n\nexport const YTreeView = defineComponent({\n name: 'YTreeView',\n props: {\n items: {\n type: Array as PropType<any[]>,\n default: () => [],\n },\n expanded: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n active: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n multipleActive: Boolean,\n activeStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'independent',\n },\n selected: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n selectStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'leaf',\n },\n returnItem: Boolean,\n defaultExpand: [Boolean, String, Number],\n ...treeViewNodeProps,\n },\n emits: ['update:expanded', 'update:active', 'update:selected'],\n setup(props, { slots, emit, expose }) {\n const nodes = ref<Record<CandidateKey, any>>({});\n\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n\n const expandedCache = ref<CandidateKey[]>([]);\n\n // Util Methods\n function getDescendants(key: CandidateKey, descendants: CandidateKey[] = []) {\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n for (const childKey of childKeys) {\n descendants = getDescendants(childKey, descendants);\n }\n return descendants;\n }\n\n function getNodeKey(itemOrKey: any) {\n return props.returnItem\n ? getObjectValueByPath(itemOrKey, props.itemKey)\n : itemOrKey;\n }\n\n // State Methods\n function updateNodes(\n items: any[],\n parentKey: CandidateKey | null = null,\n level = 0,\n ) {\n for (const item of items) {\n const key = getObjectValueByPath(item, props.itemKey);\n const children = getObjectValueByPath(item, props.childrenKey) ?? [];\n const exist = hasOwnProperty(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: false,\n indeterminate: false,\n active: false,\n expanded: false,\n };\n const node: NodeState = {\n vnode: existNode.vnode,\n item,\n level,\n parentKey,\n childKeys: children.map((child: any) =>\n getObjectValueByPath(child, props.itemKey),\n ),\n expanded: children.length > 0 && existNode.expanded,\n active: existNode.active,\n indeterminate: existNode.indeterminate,\n selected: existNode.selected,\n };\n\n updateNodes(children, key, level + 1);\n\n nodes.value[key] = node;\n if (nodes.value[key].expanded) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].selected) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n\n issueVnodeState(key);\n }\n }\n\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(node.item, props.childrenKey);\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || until >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n }\n\n function updateActive(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive) {\n [inactiveKey] = activeSet.value.keys();\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (props.multipleActive && props.activeStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? activeSet.value.add(descendant)\n : activeSet.value.delete(descendant);\n nodes.value[descendant].active = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function stateWatcher(\n value: any[],\n stateSet: Ref<Set<CandidateKey>>,\n updater: (key: CandidateKey, to: boolean) => void,\n emitter: () => void,\n ) {\n const valuesOfKey = props.returnItem\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\n : value;\n const old = [...stateSet.value];\n if (deepEqual(old, valuesOfKey)) {\n return;\n }\n old.forEach((key) => updater(key, false));\n valuesOfKey.forEach((key) => updater(key, true));\n emitter();\n }\n\n watch(expanded, (neo) => {\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\n });\n\n watch(active, (neo) => {\n stateWatcher(neo, activeSet, updateActive, emitActive);\n });\n\n watch(selected, (neo) => {\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\n });\n\n watch(\n () => props.items,\n (neo: any[]) => {\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\n );\n const neoKeys = getKeys(neo, props.itemKey, props.childrenKey);\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => delete nodes.value[k]);\n\n // init\n const oldSelected = [...selectedSet.value];\n selectedSet.value.clear();\n expandedSet.value.clear();\n activeSet.value.clear();\n updateNodes(neo);\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\n emitSelected();\n }\n },\n { deep: true },\n );\n\n // Provide & Issue\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node && node.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n function register(key: CandidateKey, vnode: VNode) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n updateNodes(props.items);\n\n provide('tree-view', {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n });\n\n const renderLeaves = computed(() => {\n return props.items;\n });\n\n const classes = computed(() => {\n return {\n 'y-tree-view': true,\n };\n });\n\n const styles = computed(() => {\n let color = props.activeColor;\n if (props.activeColor && !isColorValue(props.activeColor)) {\n color = `rgba(var(--y-theme--${props.activeColor}), 1)`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.defaultExpand !== undefined) {\n expand(props.defaultExpand);\n } else {\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\n emitExpanded();\n }\n });\n\n expose({\n expand,\n });\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} style={styles.value} role=\"tree\">\n {renderLeaves.value.length > 0 ? (\n renderLeaves.value.map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n {...{\n ...chooseProps(props, treeViewNodeProps),\n item: leaf,\n level: 0,\n }}\n ></YTreeViewNode>\n );\n })\n ) : (\n <div class=\"y-tree-view__no-data\">\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\n </div>\n )}\n </div>\n </>\n );\n });\n\n return {\n nodes,\n expandedSet,\n selectedSet,\n activeSet,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":";AAAA,SAIEA,QAAQ,EACRC,eAAe,EACfC,SAAS,EACTC,OAAO,EACPC,GAAG,EACHC,KAAK,QACA,KAAK;AAAC,SAEJC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,iBAAiB;AAAA,SAExBC,SAAS,EACTC,oBAAoB,EACpBC,cAAc;AAAA,SAEPC,YAAY;AAAA,SACZC,WAAW;AAAA,SACXC,aAAa,EAAEC,uBAAuB;AAAA,SACtCC,OAAO;AAGhB;AAGA,MAAMC,iBAAiB,GAAGF,uBAAuB,CAAC,CAAC;AAEnD,OAAO,MAAMG,SAAS,GAAGjB,eAAe,CAAC;EACvCkB,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAEC,KAAwB;MAC9BC,OAAO,EAAEA,CAAA,KAAM;IACjB,CAAC;IACDC,QAAQ,EAAE;MACRH,IAAI,EAAE,CAACC,KAAK,CAA6B;MACzCC,OAAO,EAAEA,CAAA,KAAM;IACjB,CAAC;IACDE,MAAM,EAAE;MACNJ,IAAI,EAAE,CAACC,KAAK,CAA6B;MACzCC,OAAO,EAAEA,CAAA,KAAM;IACjB,CAAC;IACDG,cAAc,EAAEC,OAAO;IACvBC,cAAc,EAAE;MACdP,IAAI,EAAEQ,MAA6C;MAAE;MACrDN,OAAO,EAAE;IACX,CAAC;IACDO,QAAQ,EAAE;MACRT,IAAI,EAAE,CAACC,KAAK,CAA6B;MACzCC,OAAO,EAAEA,CAAA,KAAM;IACjB,CAAC;IACDQ,cAAc,EAAE;MACdV,IAAI,EAAEQ,MAA6C;MAAE;MACrDN,OAAO,EAAE;IACX,CAAC;IACDS,UAAU,EAAEL,OAAO;IACnBM,aAAa,EAAE,CAACN,OAAO,EAAEE,MAAM,EAAEK,MAAM,CAAC;IACxC,GAAGlB;EACL,CAAC;EACDmB,KAAK,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC;EAC9DC,KAAKA,CAACjB,KAAK,EAAAkB,IAAA,EAA2B;IAAA,IAAzB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAO,CAAC,GAAAH,IAAA;IAClC,MAAMI,KAAK,GAAGtC,GAAG,CAA4B,CAAC,CAAC,CAAC;IAEhD,MAAMqB,QAAQ,GAAGnB,cAAc,CAACc,KAAK,EAAE,UAAU,CAAC;IAClD,MAAMM,MAAM,GAAGpB,cAAc,CAACc,KAAK,EAAE,QAAQ,CAAC;IAC9C,MAAMW,QAAQ,GAAGzB,cAAc,CAACc,KAAK,EAAE,UAAU,CAAC;IAElD,MAAMuB,WAAW,GAAGvC,GAAG,CAAC,IAAIwC,GAAG,CAAe,CAAC,CAAC;IAChD,MAAMC,WAAW,GAAGzC,GAAG,CAAC,IAAIwC,GAAG,CAAe,CAAC,CAAC;IAChD,MAAME,SAAS,GAAG1C,GAAG,CAAC,IAAIwC,GAAG,CAAe,CAAC,CAAC;IAE9C,MAAMG,aAAa,GAAG3C,GAAG,CAAiB,EAAE,CAAC;;IAE7C;IACA,SAAS4C,cAAcA,CAACC,GAAiB,EAAoC;MAAA,IAAlCC,WAA2B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;MACzE,MAAM;QAAEG;MAAU,CAAC,GAAGZ,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC;MACtCC,WAAW,CAACM,IAAI,CAAC,GAAGF,SAAS,CAAC;MAC9B,KAAK,MAAMG,QAAQ,IAAIH,SAAS,EAAE;QAChCJ,WAAW,GAAGF,cAAc,CAACS,QAAQ,EAAEP,WAAW,CAAC;MACrD;MACA,OAAOA,WAAW;IACpB;IAEA,SAASQ,UAAUA,CAACC,SAAc,EAAE;MAClC,OAAOvC,KAAK,CAACa,UAAU,GACnBvB,oBAAoB,CAACiD,SAAS,EAAEvC,KAAK,CAACwC,OAAO,CAAC,GAC9CD,SAAS;IACf;;IAEA;IACA,SAASE,WAAWA,CAClBxC,KAAY,EAGZ;MAAA,IAFAyC,SAA8B,GAAAX,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MAAA,IACrCY,KAAK,GAAAZ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;MAET,KAAK,MAAMa,IAAI,IAAI3C,KAAK,EAAE;QACxB,MAAM4B,GAAG,GAAGvC,oBAAoB,CAACsD,IAAI,EAAE5C,KAAK,CAACwC,OAAO,CAAC;QACrD,MAAMK,QAAQ,GAAGvD,oBAAoB,CAACsD,IAAI,EAAE5C,KAAK,CAAC8C,WAAW,CAAC,IAAI,EAAE;QACpE,MAAMC,KAAK,GAAGxD,cAAc,CAAC+B,KAAK,CAACa,KAAK,EAAEN,GAAG,CAAC;QAC9C,MAAMmB,SAAS,GAAGD,KAAK,GACnBzB,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,GAChB;UACEoB,KAAK,EAAE,IAAI;UACXtC,QAAQ,EAAE,KAAK;UACfuC,aAAa,EAAE,KAAK;UACpB5C,MAAM,EAAE,KAAK;UACbD,QAAQ,EAAE;QACZ,CAAC;QACL,MAAM8C,IAAe,GAAG;UACtBF,KAAK,EAAED,SAAS,CAACC,KAAK;UACtBL,IAAI;UACJD,KAAK;UACLD,SAAS;UACTR,SAAS,EAAEW,QAAQ,CAACO,GAAG,CAAEC,KAAU,IACjC/D,oBAAoB,CAAC+D,KAAK,EAAErD,KAAK,CAACwC,OAAO,CAC3C,CAAC;UACDnC,QAAQ,EAAEwC,QAAQ,CAACb,MAAM,GAAG,CAAC,IAAIgB,SAAS,CAAC3C,QAAQ;UACnDC,MAAM,EAAE0C,SAAS,CAAC1C,MAAM;UACxB4C,aAAa,EAAEF,SAAS,CAACE,aAAa;UACtCvC,QAAQ,EAAEqC,SAAS,CAACrC;QACtB,CAAC;QAED8B,WAAW,CAACI,QAAQ,EAAEhB,GAAG,EAAEc,KAAK,GAAG,CAAC,CAAC;QAErCrB,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,GAAGsB,IAAI;QACvB,IAAI7B,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,CAACxB,QAAQ,EAAE;UAC7BkB,WAAW,CAACY,KAAK,CAACmB,GAAG,CAACzB,GAAG,CAAC;QAC5B;QACA,IAAIP,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,CAAClB,QAAQ,EAAE;UAC7BY,WAAW,CAACY,KAAK,CAACmB,GAAG,CAACzB,GAAG,CAAC;QAC5B;QACA,IAAIP,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,CAACvB,MAAM,EAAE;UAC3BoB,SAAS,CAACS,KAAK,CAACmB,GAAG,CAACzB,GAAG,CAAC;QAC1B;QAEA0B,eAAe,CAAC1B,GAAG,CAAC;MACtB;IACF;IAEA,SAAS2B,cAAcA,CAAC3B,GAAiB,EAAE4B,EAAW,EAAE;MACtD,IAAI,EAAE5B,GAAG,IAAIP,KAAK,CAACa,KAAK,CAAC,EAAE;MAC3B,MAAMgB,IAAI,GAAG7B,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC;MAC7B,MAAMgB,QAAQ,GAAGvD,oBAAoB,CAAC6D,IAAI,CAACP,IAAI,EAAE5C,KAAK,CAAC8C,WAAW,CAAC;MACnE,IAAI3C,KAAK,CAACuD,OAAO,CAACb,QAAQ,CAAC,IAAIA,QAAQ,CAACb,MAAM,GAAG,CAAC,EAAE;QAClDyB,EAAE,GAAGlC,WAAW,CAACY,KAAK,CAACmB,GAAG,CAACzB,GAAG,CAAC,GAAGN,WAAW,CAACY,KAAK,CAACwB,MAAM,CAAC9B,GAAG,CAAC;QAC/DsB,IAAI,CAAC9C,QAAQ,GAAGoD,EAAE;QAClBF,eAAe,CAAC1B,GAAG,CAAC;MACtB;IACF;IAEA,SAAS+B,MAAMA,CAAA,EAA0C;MAAA,IAAzCC,KAAgC,GAAA9B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MACrD+B,MAAM,CAACC,OAAO,CAACzC,KAAK,CAACa,KAAK,CAAC,CAAC6B,OAAO,CAACC,KAAA,IAAiB;QAAA,IAAhB,CAACpC,GAAG,EAAEsB,IAAI,CAAC,GAAAc,KAAA;QAC9C,IAAIJ,KAAK,KAAK,IAAI,IAAIA,KAAK,IAAIV,IAAI,CAACR,KAAK,EAAE;UACzCa,cAAc,CAAC3B,GAAG,EAAE,IAAI,CAAC;QAC3B;MACF,CAAC,CAAC;MACFqC,YAAY,CAAC,CAAC;IAChB;IAEA,SAASC,YAAYA,CAACtC,GAAiB,EAAE4B,EAAW,EAAE;MACpD,IAAI,EAAE5B,GAAG,IAAIP,KAAK,CAACa,KAAK,CAAC,EAAE;MAC3B,MAAMgB,IAAI,GAAG7B,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC;MAC7B,IAAIuC,WAAW,GAAG,CAACX,EAAE,GAAG5B,GAAG,GAAG,EAAE;MAChC,IAAI,CAAC7B,KAAK,CAACO,cAAc,EAAE;QACzB,CAAC6D,WAAW,CAAC,GAAG1C,SAAS,CAACS,KAAK,CAACkC,IAAI,CAAC,CAAC;MACxC;MACA,IAAIZ,EAAE,EAAE;QACN/B,SAAS,CAACS,KAAK,CAACmB,GAAG,CAACzB,GAAG,CAAC;QACxBsB,IAAI,CAAC7C,MAAM,GAAG,IAAI;MACpB;MACA,IAAI8D,WAAW,IAAIA,WAAW,IAAI9C,KAAK,CAACa,KAAK,EAAE;QAC7CT,SAAS,CAACS,KAAK,CAACwB,MAAM,CAACS,WAAW,CAAC;QACnC9C,KAAK,CAACa,KAAK,CAACiC,WAAW,CAAC,CAAC9D,MAAM,GAAG,KAAK;QACvCiD,eAAe,CAACa,WAAW,CAAC;MAC9B;MAEA,IAAIpE,KAAK,CAACO,cAAc,IAAIP,KAAK,CAACS,cAAc,KAAK,SAAS,EAAE;QAC9D,KAAK,MAAM6D,UAAU,IAAI1C,cAAc,CAACC,GAAG,CAAC,EAAE;UAC5C,IAAIyC,UAAU,IAAIhD,KAAK,CAACa,KAAK,EAAE;YAC7BsB,EAAE,GACE/B,SAAS,CAACS,KAAK,CAACmB,GAAG,CAACgB,UAAU,CAAC,GAC/B5C,SAAS,CAACS,KAAK,CAACwB,MAAM,CAACW,UAAU,CAAC;YACtChD,KAAK,CAACa,KAAK,CAACmC,UAAU,CAAC,CAAChE,MAAM,GAAGmD,EAAE;YACnCF,eAAe,CAACe,UAAU,CAAC;UAC7B;QACF;MACF;IACF;IAEA,SAASC,cAAcA,CAAC1C,GAAiB,EAAE4B,EAAW,EAAE;MACtD,IAAI,EAAE5B,GAAG,IAAIP,KAAK,CAACa,KAAK,CAAC,EAAE;MAC3B,MAAMgB,IAAI,GAAG7B,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC;MAE7B,IAAI4B,EAAE,EAAE;QACNhC,WAAW,CAACU,KAAK,CAACmB,GAAG,CAACzB,GAAG,CAAC;QAC1BsB,IAAI,CAACxC,QAAQ,GAAG,IAAI;MACtB;MAEA,IAAI,CAAC8C,EAAE,IAAI5B,GAAG,IAAIP,KAAK,CAACa,KAAK,EAAE;QAC7BV,WAAW,CAACU,KAAK,CAACwB,MAAM,CAAC9B,GAAG,CAAC;QAC7BP,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,CAAClB,QAAQ,GAAG,KAAK;QACjC4C,eAAe,CAAC1B,GAAG,CAAC;MACtB;MAEA,IAAI7B,KAAK,CAACY,cAAc,KAAK,SAAS,EAAE;QACtC,KAAK,MAAM0D,UAAU,IAAI1C,cAAc,CAACC,GAAG,CAAC,EAAE;UAC5C,IAAIyC,UAAU,IAAIhD,KAAK,CAACa,KAAK,EAAE;YAC7BsB,EAAE,GACEhC,WAAW,CAACU,KAAK,CAACmB,GAAG,CAACgB,UAAU,CAAC,GACjC7C,WAAW,CAACU,KAAK,CAACwB,MAAM,CAACW,UAAU,CAAC;YACxChD,KAAK,CAACa,KAAK,CAACmC,UAAU,CAAC,CAAC3D,QAAQ,GAAG8C,EAAE;YACrCF,eAAe,CAACe,UAAU,CAAC;UAC7B;QACF;MACF;IACF;IAEA,SAASJ,YAAYA,CAAA,EAAG;MACtB,MAAMM,GAAG,GAAG,CAAC,GAAGjD,WAAW,CAACY,KAAK,CAAC;MAClC9B,QAAQ,CAAC8B,KAAK,GAAGnC,KAAK,CAACa,UAAU,GAC7B2D,GAAG,CAACpB,GAAG,CAAEvB,GAAG,IAAKP,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,CAACe,IAAI,CAAC,GACvC4B,GAAG;IACT;IAEA,SAASC,UAAUA,CAAA,EAAG;MACpB,MAAMD,GAAG,GAAG,CAAC,GAAG9C,SAAS,CAACS,KAAK,CAAC;MAChC7B,MAAM,CAAC6B,KAAK,GAAGnC,KAAK,CAACa,UAAU,GAC3B2D,GAAG,CAACpB,GAAG,CAAEvB,GAAG,IAAKP,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,CAACe,IAAI,CAAC,GACvC4B,GAAG;IACT;IAEA,SAASE,YAAYA,CAAA,EAAG;MACtB,MAAMF,GAAG,GAAG,CAAC,GAAG/C,WAAW,CAACU,KAAK,CAAC;MAClCxB,QAAQ,CAACwB,KAAK,GAAGnC,KAAK,CAACa,UAAU,GAC7B2D,GAAG,CAACpB,GAAG,CAAEvB,GAAG,IAAKP,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,CAACe,IAAI,CAAC,GACvC4B,GAAG;IACT;IAEA,SAASG,YAAYA,CACnBxC,KAAY,EACZyC,QAAgC,EAChCC,OAAiD,EACjDC,OAAmB,EACnB;MACA,MAAMC,WAAW,GAAG/E,KAAK,CAACa,UAAU,GAChCsB,KAAK,CAACiB,GAAG,CAAE4B,CAAC,IAAK1F,oBAAoB,CAAC0F,CAAC,EAAEhF,KAAK,CAACwC,OAAO,CAAC,CAAC,GACxDL,KAAK;MACT,MAAM8C,GAAG,GAAG,CAAC,GAAGL,QAAQ,CAACzC,KAAK,CAAC;MAC/B,IAAI9C,SAAS,CAAC4F,GAAG,EAAEF,WAAW,CAAC,EAAE;QAC/B;MACF;MACAE,GAAG,CAACjB,OAAO,CAAEnC,GAAG,IAAKgD,OAAO,CAAChD,GAAG,EAAE,KAAK,CAAC,CAAC;MACzCkD,WAAW,CAACf,OAAO,CAAEnC,GAAG,IAAKgD,OAAO,CAAChD,GAAG,EAAE,IAAI,CAAC,CAAC;MAChDiD,OAAO,CAAC,CAAC;IACX;IAEA7F,KAAK,CAACoB,QAAQ,EAAG6E,GAAG,IAAK;MACvBP,YAAY,CAACO,GAAG,EAAE3D,WAAW,EAAEiC,cAAc,EAAEU,YAAY,CAAC;IAC9D,CAAC,CAAC;IAEFjF,KAAK,CAACqB,MAAM,EAAG4E,GAAG,IAAK;MACrBP,YAAY,CAACO,GAAG,EAAExD,SAAS,EAAEyC,YAAY,EAAEM,UAAU,CAAC;IACxD,CAAC,CAAC;IAEFxF,KAAK,CAAC0B,QAAQ,EAAGuE,GAAG,IAAK;MACvBP,YAAY,CAACO,GAAG,EAAEzD,WAAW,EAAE8C,cAAc,EAAEG,YAAY,CAAC;IAC9D,CAAC,CAAC;IAEFzF,KAAK,CACH,MAAMe,KAAK,CAACC,KAAK,EAChBiF,GAAU,IAAK;MACd,MAAMC,OAAO,GAAGrB,MAAM,CAACO,IAAI,CAAC/C,KAAK,CAACa,KAAK,CAAC,CAACiB,GAAG,CAAEgC,OAAO,IACnD9F,oBAAoB,CAACgC,KAAK,CAACa,KAAK,CAACiD,OAAO,CAAC,CAACxC,IAAI,EAAE5C,KAAK,CAACwC,OAAO,CAC/D,CAAC;MACD,MAAM6C,OAAO,GAAGzF,OAAO,CAACsF,GAAG,EAAElF,KAAK,CAACwC,OAAO,EAAExC,KAAK,CAAC8C,WAAW,CAAC;MAC9D,MAAMwC,IAAI,GAAGlG,iBAAiB,CAAC+F,OAAO,EAAEE,OAAO,CAAC;MAChD,IAAIC,IAAI,CAACtD,MAAM,GAAG,CAAC,IAAIqD,OAAO,CAACrD,MAAM,GAAGmD,OAAO,CAACnD,MAAM,EAAE;QACtD;MACF;MACAsD,IAAI,CAACtB,OAAO,CAAEuB,CAAC,IAAK,OAAOjE,KAAK,CAACa,KAAK,CAACoD,CAAC,CAAC,CAAC;;MAE1C;MACA,MAAMC,WAAW,GAAG,CAAC,GAAG/D,WAAW,CAACU,KAAK,CAAC;MAC1CV,WAAW,CAACU,KAAK,CAACsD,KAAK,CAAC,CAAC;MACzBlE,WAAW,CAACY,KAAK,CAACsD,KAAK,CAAC,CAAC;MACzB/D,SAAS,CAACS,KAAK,CAACsD,KAAK,CAAC,CAAC;MACvBhD,WAAW,CAACyC,GAAG,CAAC;MAChB,IAAI,CAAC7F,SAAS,CAACmG,WAAW,EAAE,CAAC,GAAG/D,WAAW,CAACU,KAAK,CAAC,CAAC,EAAE;QACnDuC,YAAY,CAAC,CAAC;MAChB;IACF,CAAC,EACD;MAAEgB,IAAI,EAAE;IAAK,CACf,CAAC;;IAED;IACA,SAASnC,eAAeA,CAAC1B,GAAiB,EAAE;MAC1C,MAAMsB,IAAI,GAAG7B,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC;MAC7B,IAAIsB,IAAI,IAAIA,IAAI,CAACF,KAAK,EAAE;QACtBE,IAAI,CAACF,KAAK,CAAC3C,MAAM,GAAG6C,IAAI,CAAC7C,MAAM;QAC/B6C,IAAI,CAACF,KAAK,CAACtC,QAAQ,GAAGwC,IAAI,CAACxC,QAAQ;QACnCwC,IAAI,CAACF,KAAK,CAACC,aAAa,GAAGC,IAAI,CAACD,aAAa;QAC7CC,IAAI,CAACF,KAAK,CAAC5C,QAAQ,GAAG8C,IAAI,CAAC9C,QAAQ;MACrC;IACF;IAEA,SAASsF,QAAQA,CAAC9D,GAAiB,EAAEoB,KAAY,EAAE;MACjD,IAAI3B,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,EAAE;QACpBP,KAAK,CAACa,KAAK,CAACN,GAAG,CAAC,CAACoB,KAAK,GAAGA,KAAK;MAChC;MAEAM,eAAe,CAAC1B,GAAG,CAAC;IACtB;IAEAY,WAAW,CAACzC,KAAK,CAACC,KAAK,CAAC;IAExBlB,OAAO,CAAC,WAAW,EAAE;MACnB4G,QAAQ;MACRnC,cAAc;MACdW,YAAY;MACZI,cAAc;MACdL,YAAY;MACZO,UAAU;MACVC;IACF,CAAC,CAAC;IAEF,MAAMkB,YAAY,GAAGhH,QAAQ,CAAC,MAAM;MAClC,OAAOoB,KAAK,CAACC,KAAK;IACpB,CAAC,CAAC;IAEF,MAAM4F,OAAO,GAAGjH,QAAQ,CAAC,MAAM;MAC7B,OAAO;QACL,aAAa,EAAE;MACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAMkH,MAAM,GAAGlH,QAAQ,CAAC,MAAM;MAC5B,IAAImH,KAAK,GAAG/F,KAAK,CAACgG,WAAW;MAC7B,IAAIhG,KAAK,CAACgG,WAAW,IAAI,CAACxG,YAAY,CAACQ,KAAK,CAACgG,WAAW,CAAC,EAAE;QACzDD,KAAK,GAAI,uBAAsB/F,KAAK,CAACgG,WAAY,OAAM;MACzD;MACA,OAAO;QACL,CAAE,6BAA4B,GAAGD;MACnC,CAAC;IACH,CAAC,CAAC;IAEFjH,SAAS,CAAC,MAAM;MACd,IAAIkB,KAAK,CAACc,aAAa,KAAKmB,SAAS,EAAE;QACrC2B,MAAM,CAAC5D,KAAK,CAACc,aAAa,CAAC;MAC7B,CAAC,MAAM;QACLT,QAAQ,CAAC8B,KAAK,CAAC6B,OAAO,CAAEgB,CAAM,IAAKxB,cAAc,CAAClB,UAAU,CAAC0C,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvEd,YAAY,CAAC,CAAC;MAChB;IACF,CAAC,CAAC;IAEF7C,MAAM,CAAC;MACLuC;IACF,CAAC,CAAC;IAEFzE,SAAS,CAAC,MAAM;MACd,OAAA8G,YAAA,CAAAC,SAAA,SAAAD,YAAA;QAAA,SAEgBJ,OAAO,CAAC1D,KAAK;QAAA,SAAS2D,MAAM,CAAC3D,KAAK;QAAA,QAAO;MAAM,IACxDyD,YAAY,CAACzD,KAAK,CAACH,MAAM,GAAG,CAAC,GAC5B4D,YAAY,CAACzD,KAAK,CAACiB,GAAG,CAAE+C,IAAI,IAAK;QAC/B,OAAAF,YAAA,CAAAvG,aAAA;UAIM,GAAGD,WAAW,CAACO,KAAK,EAAEH,iBAAiB,CAAC;UACxC+C,IAAI,EAAEuD,IAAI;UACVxD,KAAK,EAAE;QAAC,GAJDxB,KAAK;MAQpB,CAAC,CAAC,GAAA8E,YAAA;QAAA,SAES;MAAsB,IAC9B9E,KAAK,CAAC,SAAS,CAAC,GAAGA,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAA8E,YAAA,gBAAAG,gBAAA,aAAuB,EAEhE;IAIT,CAAC,CAAC;IAEF,OAAO;MACL9E,KAAK;MACLC,WAAW;MACXE,WAAW;MACXC;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/tree-view/types.ts"],"sourcesContent":["import { ComponentPublicInstance } from 'vue';\
|
|
1
|
+
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/tree-view/types.ts"],"sourcesContent":["import { ComponentPublicInstance } from 'vue';\nimport { CandidateKey } from \"../../types\";\n\nexport interface NodeState {\n childKeys: CandidateKey[];\n item: any;\n parentKey: null | CandidateKey;\n vnode: null | ComponentPublicInstance;\n level: number;\n //\n selected: false;\n indeterminate: false;\n active: false;\n expanded: false;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.mjs","names":["getObjectValueByPath","getKeys","items","itemKey","childrenKey","keys","item","key","push","children","Array","isArray"],"sources":["../../../src/components/tree-view/util.ts"],"sourcesContent":["import { getObjectValueByPath } from '../../util/common';\
|
|
1
|
+
{"version":3,"file":"util.mjs","names":["getObjectValueByPath","getKeys","items","itemKey","childrenKey","keys","item","key","push","children","Array","isArray"],"sources":["../../../src/components/tree-view/util.ts"],"sourcesContent":["import { getObjectValueByPath } from '../../util/common';\nimport { CandidateKey } from \"../../types\";\n\nexport function getKeys(items: any[], itemKey: string, childrenKey: string) {\n const keys: CandidateKey[] = [];\n for (const item of items) {\n const key = getObjectValueByPath(item, itemKey);\n keys.push(key);\n const children = getObjectValueByPath(item, childrenKey);\n if (Array.isArray(children)) {\n keys.push(...getKeys(children, itemKey, childrenKey));\n }\n }\n return keys;\n}\n"],"mappings":"SAASA,oBAAoB;AAG7B,OAAO,SAASC,OAAOA,CAACC,KAAY,EAAEC,OAAe,EAAEC,WAAmB,EAAE;EAC1E,MAAMC,IAAoB,GAAG,EAAE;EAC/B,KAAK,MAAMC,IAAI,IAAIJ,KAAK,EAAE;IACxB,MAAMK,GAAG,GAAGP,oBAAoB,CAACM,IAAI,EAAEH,OAAO,CAAC;IAC/CE,IAAI,CAACG,IAAI,CAACD,GAAG,CAAC;IACd,MAAME,QAAQ,GAAGT,oBAAoB,CAACM,IAAI,EAAEF,WAAW,CAAC;IACxD,IAAIM,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;MAC3BJ,IAAI,CAACG,IAAI,CAAC,GAAGP,OAAO,CAACQ,QAAQ,EAAEN,OAAO,EAAEC,WAAW,CAAC,CAAC;IACvD;EACF;EACA,OAAOC,IAAI;AACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.mjs","names":["IconPropOption","String","Function","Object","Array"],"sources":["../../src/composables/icon.ts"],"sourcesContent":["\r\nimport type { Component, PropType } from \"vue\";\r\n\r\nexport type IconValue = string | (string | [path: string, opacity: number])[] | Component;\r\n\r\nexport const IconPropOption = [String, Function, Object, Array] as PropType<IconValue>;\r\n\r\ntype IconProps = {\r\n tag: string;\r\n icon?: IconValue,\r\n disabled?: Boolean,\r\n}\r\n\r\ntype IconComponent = Component<IconProps>;\r\n"],"mappings":"AAKA,OAAO,MAAMA,cAAc,GAAG,CAACC,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,CAAwB"}
|
package/lib/styles/base.scss
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
:root {
|
|
11
11
|
--y-palette--primary: #{palette.$primary};
|
|
12
|
+
//--y-theme--primary: 79, 151, 220;
|
|
13
|
+
//--y-theme--base-bg: 255, 255, 255;
|
|
14
|
+
//--y-line-color: 0, 0, 0;
|
|
15
|
+
//--y-line-opacity: 0.14;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
.fade-enter-active,
|
|
@@ -64,6 +68,10 @@
|
|
|
64
68
|
font-weight: bold;
|
|
65
69
|
}
|
|
66
70
|
|
|
71
|
+
.contain-paint {
|
|
72
|
+
contain: paint;
|
|
73
|
+
}
|
|
74
|
+
|
|
67
75
|
@each $space-type-prefix, $space-type in provided.$space-types {
|
|
68
76
|
@each $side-prefix, $sides-properties in provided.$box-side-combinations {
|
|
69
77
|
@each $space-index, $space-size in variables.$space-list {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/types/index.ts"],"sourcesContent":["export type CandidateKey = string | number;\r\n"],"mappings":""}
|
package/lib/util/array.mjs
CHANGED
package/lib/util/array.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.mjs","names":["differenceBetween","inspect","exclude","ret","target","includes","push"],"sources":["../../src/util/array.ts"],"sourcesContent":["export function differenceBetween(inspect: any[], exclude: any[]) {\r\n const ret = [];\r\n for (const target of exclude) {\r\n if (!inspect.includes(target)) {\r\n ret.push(target);\r\n }\r\n }\r\n return ret;\r\n}\r\n"],"mappings":"AAAA,OAAO,SAASA,iBAAiBA,CAACC,OAAc,EAAEC,OAAc,EAAE;EAChE,MAAMC,GAAG,GAAG,EAAE;EACd,KAAK,MAAMC,MAAM,IAAIF,OAAO,EAAE;IAC5B,IAAI,CAACD,OAAO,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;MAC7BD,GAAG,CAACG,IAAI,CAACF,MAAM,CAAC;IAClB;EACF;EACA,OAAOD,GAAG;AACZ"}
|
|
1
|
+
{"version":3,"file":"array.mjs","names":["differenceBetween","inspect","exclude","ret","target","includes","push","wrapInArray","arrOrNot","Array","isArray"],"sources":["../../src/util/array.ts"],"sourcesContent":["export function differenceBetween(inspect: any[], exclude: any[]) {\r\n const ret = [];\r\n for (const target of exclude) {\r\n if (!inspect.includes(target)) {\r\n ret.push(target);\r\n }\r\n }\r\n return ret;\r\n}\r\n\r\nexport function wrapInArray(arrOrNot: any | any[]) {\r\n return Array.isArray(arrOrNot) ? arrOrNot : [arrOrNot];\r\n}\r\n"],"mappings":"AAAA,OAAO,SAASA,iBAAiBA,CAACC,OAAc,EAAEC,OAAc,EAAE;EAChE,MAAMC,GAAG,GAAG,EAAE;EACd,KAAK,MAAMC,MAAM,IAAIF,OAAO,EAAE;IAC5B,IAAI,CAACD,OAAO,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;MAC7BD,GAAG,CAACG,IAAI,CAACF,MAAM,CAAC;IAClB;EACF;EACA,OAAOD,GAAG;AACZ;AAEA,OAAO,SAASI,WAAWA,CAACC,QAAqB,EAAE;EACjD,OAAOC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC;AACxD"}
|
package/lib/util/common.mjs
CHANGED
|
@@ -52,6 +52,19 @@ export function getObjectValueByPath(obj, path, fallback) {
|
|
|
52
52
|
traversPath = traversPath.replace(/^\./, ''); // strip a leading dot
|
|
53
53
|
return getNestedValue(obj, traversPath.split('.'), fallback);
|
|
54
54
|
}
|
|
55
|
+
export function getPropertyFromItem(item, property, fallback) {
|
|
56
|
+
if (property == null) return item === undefined ? fallback : item;
|
|
57
|
+
if (item !== Object(item)) {
|
|
58
|
+
if (typeof property !== 'function') return fallback;
|
|
59
|
+
const value = property(item, fallback);
|
|
60
|
+
return typeof value === 'undefined' ? fallback : value;
|
|
61
|
+
}
|
|
62
|
+
if (typeof property === 'string') return getObjectValueByPath(item, property, fallback);
|
|
63
|
+
if (Array.isArray(property)) return getNestedValue(item, property, fallback);
|
|
64
|
+
if (typeof property !== 'function') return fallback;
|
|
65
|
+
const value = property(item, fallback);
|
|
66
|
+
return typeof value === 'undefined' ? fallback : value;
|
|
67
|
+
}
|
|
55
68
|
export function randomCharOne(str) {
|
|
56
69
|
if (str) {
|
|
57
70
|
return str.charAt(Math.floor(Math.random() * str.length));
|
package/lib/util/common.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.mjs","names":["hasOwnProperty","object","property","Object","prototype","call","getNestedValue","obj","path","fallback","last","length","traversObj","undefined","i","mergeDeep","source","arguments","overwrite","arrayFn","ret","key","sourceValue","overwriteValue","Array","isArray","getObjectValueByPath","traversPath","replace","split","randomCharOne","str","charAt","Math","floor","random","clamp","
|
|
1
|
+
{"version":3,"file":"common.mjs","names":["hasOwnProperty","object","property","Object","prototype","call","getNestedValue","obj","path","fallback","last","length","traversObj","undefined","i","mergeDeep","source","arguments","overwrite","arrayFn","ret","key","sourceValue","overwriteValue","Array","isArray","getObjectValueByPath","traversPath","replace","split","getPropertyFromItem","item","value","randomCharOne","str","charAt","Math","floor","random","clamp","min","max","getRangeArr","start","from","v","k","deepEqual","a","b","Date","getTime","props","keys","every","p"],"sources":["../../src/util/common.ts"],"sourcesContent":["export function hasOwnProperty(object: any, property: string) {\n if (object) {\n return Object.prototype.hasOwnProperty.call(object, property);\n }\n return false;\n}\n\nexport function getNestedValue(\n obj: any,\n path: (string | number)[],\n fallback?: any,\n): any {\n const last = path.length - 1;\n let traversObj = obj;\n\n if (last < 0) return traversObj === undefined ? fallback : traversObj;\n\n for (let i = 0; i < last; i += 1) {\n if (traversObj == null) {\n return fallback;\n }\n traversObj = traversObj[path[i]];\n }\n\n if (traversObj == null) return fallback;\n\n return traversObj[path[last]] === undefined\n ? fallback\n : traversObj[path[last]];\n}\n\nexport function mergeDeep(\n source: Record<string, any> = {},\n overwrite: Record<string, any> = {},\n arrayFn?: (source: unknown[], overwrite: unknown[]) => unknown[],\n) {\n const ret = { ...source };\n for (const key in overwrite) {\n const sourceValue = ret[key];\n const overwriteValue = overwrite[key];\n\n if (Array.isArray(sourceValue) && Array.isArray(overwriteValue)) {\n if (arrayFn) {\n ret[key] = arrayFn(sourceValue, overwriteValue);\n continue;\n }\n }\n\n if (typeof sourceValue === 'object' && typeof overwriteValue === 'object') {\n ret[key] = mergeDeep(sourceValue, overwriteValue, arrayFn);\n continue;\n }\n\n ret[key] = overwriteValue;\n }\n return ret;\n}\n\nexport function getObjectValueByPath(\n obj: any,\n path: string,\n fallback?: any,\n): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n let traversPath = path;\n if (obj == null || !traversPath || typeof traversPath !== 'string') {\n return fallback;\n }\n if (obj[traversPath] !== undefined) return obj[traversPath];\n traversPath = traversPath.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n traversPath = traversPath.replace(/^\\./, ''); // strip a leading dot\n return getNestedValue(obj, traversPath.split('.'), fallback);\n}\n\nexport type SelectItemKey =\n | boolean // Ignored\n | string // Lookup by key, can use dot notation for nested objects\n | (string | number)[] // Nested lookup by key, each array item is a key in the next level\n | ((item: Record<string, any>, fallback?: any) => any)\n\nexport function getPropertyFromItem (\n item: any,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n }\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function randomCharOne(str: string) {\n if (str) {\n return str.charAt(Math.floor(Math.random() * str.length));\n }\n return '';\n}\n\nexport function clamp(value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value));\n}\n\nexport function getRangeArr(length: number, start = 0) {\n return Array.from({ length }, (v, k) => start + k);\n}\n\nexport function deepEqual(a: any, b: any): boolean {\n if (a === b) return true;\n\n if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) {\n return false;\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n return false;\n }\n const props = Object.keys(a);\n if (props.length !== Object.keys(b).length) {\n return false;\n }\n return props.every((p) => deepEqual(a[p], b[p]));\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue-component.mjs","names":["getCurrentInstance","hasOwnProperty","getSlot","vm","name","arguments","length","undefined","data","optional","$slots","slot","Function","filter","node","el","nodeType","getUid","uid","chooseProps","props","target","Object","keys","reduce","acc","prop","bindClasses","classes","boundClasses","Array","isArray","clas","getHtmlElement","$el","propsFactory","source","defaults","options","option","isObjectOption","objectOption","type","default"],"sources":["../../src/util/vue-component.ts"],"sourcesContent":["import type { IfAny } from '@vue/shared';\nimport type {\n ComponentObjectPropsOptions,\n ComponentPublicInstance,\n ExtractPropTypes,\n Prop,\n PropType,\n VNode,\n} from 'vue';\nimport { getCurrentInstance } from 'vue';\n\nimport { hasOwnProperty } from './common';\n\nexport function getSlot(\n vm: ComponentPublicInstance | any,\n // eslint-disable-next-line default-param-last\n name = 'default',\n data?: any | (() => any),\n optional = false,\n): VNode[] | undefined {\n if (vm.$slots?.[name]) {\n const slot = vm.$slots[name]!(data instanceof Function ? data() : data);\n return slot.filter((node: VNode) => {\n return node.el?.nodeType !== 8;\n });\n }\n return undefined;\n}\n\nexport function getUid() {\n const vm = getCurrentInstance();\n return vm?.uid;\n}\n\nexport function chooseProps<PropsOptions extends ComponentObjectPropsOptions>(\n props: any,\n target: PropsOptions,\n): ExtractPropTypes<PropsOptions> {\n return Object.keys(target).reduce((acc, prop) => {\n if (props && prop in props) {\n acc[prop] = props[prop];\n }\n return acc;\n }, {} as
|
|
1
|
+
{"version":3,"file":"vue-component.mjs","names":["getCurrentInstance","hasOwnProperty","getSlot","vm","name","arguments","length","undefined","data","optional","$slots","slot","Function","filter","node","el","nodeType","getUid","uid","chooseProps","props","target","Object","keys","reduce","acc","prop","bindClasses","classes","boundClasses","Array","isArray","clas","getHtmlElement","$el","propsFactory","source","defaults","options","option","isObjectOption","objectOption","type","default"],"sources":["../../src/util/vue-component.ts"],"sourcesContent":["import type { IfAny } from '@vue/shared';\nimport type {\n ComponentObjectPropsOptions,\n ComponentPublicInstance,\n ExtractPropTypes,\n Prop,\n PropType,\n VNode,\n} from 'vue';\nimport { getCurrentInstance } from 'vue';\n\nimport { hasOwnProperty } from './common';\n\nexport function getSlot(\n vm: ComponentPublicInstance | any,\n // eslint-disable-next-line default-param-last\n name = 'default',\n data?: any | (() => any),\n optional = false,\n): VNode[] | undefined {\n if (vm.$slots?.[name]) {\n const slot = vm.$slots[name]!(data instanceof Function ? data() : data);\n return slot.filter((node: VNode) => {\n return node.el?.nodeType !== 8;\n });\n }\n return undefined;\n}\n\nexport function getUid() {\n const vm = getCurrentInstance();\n return vm?.uid;\n}\n\nexport function chooseProps<PropsOptions extends ComponentObjectPropsOptions>(\n props: any,\n target: PropsOptions,\n): ExtractPropTypes<PropsOptions> {\n return Object.keys(target).reduce((acc, prop) => {\n if (props && prop in props) {\n acc[prop as keyof ExtractPropTypes<PropsOptions>] = props[prop];\n }\n return acc;\n }, {} as ExtractPropTypes<PropsOptions>);\n}\n\nexport function bindClasses(\n classes: string | string[] | Record<string, any> | undefined,\n) {\n const boundClasses = {} as Record<string, boolean>;\n if (typeof classes === 'string') {\n boundClasses[classes] = true;\n } else if (Array.isArray(classes)) {\n (classes as string[]).reduce((acc, clas) => {\n acc[clas] = true;\n return acc;\n }, boundClasses);\n } else if (typeof classes === 'object') {\n Object.keys(classes).reduce((acc, clas) => {\n acc[clas] = !!classes[clas];\n return acc;\n }, boundClasses);\n }\n return boundClasses;\n}\n\nexport function getHtmlElement<N extends object | undefined>(\n node: N,\n): Exclude<N, ComponentPublicInstance> | HTMLElement {\n return node && hasOwnProperty(node, '$el')\n ? ((node as ComponentPublicInstance).$el as HTMLElement)\n : (node as HTMLElement);\n}\n\nexport function propsFactory<PropsOptions extends ComponentObjectPropsOptions>(\n props: PropsOptions,\n source: string,\n) {\n return <Defaults extends PartialKeys<PropsOptions> = {}>(\n defaults?: Defaults,\n ): OverwrittenPropOptions<PropsOptions, Defaults> => {\n return Object.keys(props).reduce<any>((options, prop) => {\n const option = props[prop];\n const isObjectOption =\n typeof option === 'object' && option != null && !Array.isArray(option);\n const objectOption = isObjectOption ? option : { type: option };\n if (defaults && prop in defaults) {\n options[prop] = {\n ...objectOption,\n default: defaults[prop],\n };\n } else {\n options[prop] = objectOption;\n }\n\n if (source && !options[prop].source) {\n options[prop].source = source;\n }\n return options;\n }, {} as PropsOptions);\n };\n}\n\ntype OverwrittenPropOptions<\n T extends ComponentObjectPropsOptions,\n D extends PartialKeys<T>,\n> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Record<string, unknown>\n ? Omit<T[P], 'type' | 'default'> & {\n type: FollowPropType<Pick<T[P], 'type'>, T[P], D[P]>;\n default: MergeDefault<T[P], D[P]>;\n }\n : {\n type: PropType<MergeDefault<P, D>>;\n default: MergeDefault<T[P], D[P]>;\n };\n};\n\ntype MergeDefault<T, D> = unknown extends D\n ? InferPropType<T>\n : NonNullable<InferPropType<T>> | D;\n\ntype FollowPropType<T, P, D> = [T] extends [PropType<unknown>]\n ? T\n : PropType<MergeDefault<P, D>>;\n\ntype PartialKeys<T> = { [P in keyof T]?: unknown };\n\n// Copied from Vue\ntype InferPropType<T> = [T] extends [null]\n ? any // null & true would fail to infer\n : [T] extends [{ type: null | true }]\n ? // As TS issue https://github.com/Microsoft/TypeScript/issues/14829\n // somehow `ObjectConstructor` when inferred from { (): T } becomes `any`\n // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n any\n : [T] extends [ObjectConstructor | { type: ObjectConstructor }]\n ? Record<string, any>\n : [T] extends [BooleanConstructor | { type: BooleanConstructor }]\n ? boolean\n : [T] extends [DateConstructor | { type: DateConstructor }]\n ? Date\n : [T] extends [(infer U)[] | { type: (infer U)[] }]\n ? U extends DateConstructor\n ? Date | InferPropType<U>\n : InferPropType<U>\n : [T] extends [Prop<infer V, infer D>]\n ? unknown extends V\n ? IfAny<V, V, D>\n : V\n : T;\n"],"mappings":"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"}
|