@maketribe/ms-app 3.2.4 → 3.2.5

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.
Files changed (74) hide show
  1. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js +37 -2
  2. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js.map +1 -1
  3. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js +2 -37
  4. package/dist/cjs/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js.map +1 -1
  5. package/dist/cjs/components/basic/doc-editor/plugins/AutoLinkPlugin.vue.js +1 -1
  6. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js +26 -46
  7. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js.map +1 -1
  8. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js +14 -4
  9. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js.map +1 -1
  10. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.js +0 -1
  11. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.js.map +1 -1
  12. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +2 -0
  13. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  14. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +1 -1
  15. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +1 -1
  16. package/dist/cjs/components/data-model/data-table/views/table/table.js +0 -1
  17. package/dist/cjs/components/data-model/data-table/views/table/table.js.map +1 -1
  18. package/dist/cjs/components/data-model/data-table/views/table-view/header/header.js +12 -9
  19. package/dist/cjs/components/data-model/data-table/views/table-view/header/header.js.map +1 -1
  20. package/dist/cjs/components/data-model/data-table/views/tree/tree-options.js +1 -0
  21. package/dist/cjs/components/data-model/data-table/views/tree/tree-options.js.map +1 -1
  22. package/dist/cjs/components/data-model/data-table/views/tree/tree.js +1 -1
  23. package/dist/cjs/components/data-model/data-table/views/tree/tree.js.map +1 -1
  24. package/dist/cjs/composables/use-single-view.js +2 -0
  25. package/dist/cjs/composables/use-single-view.js.map +1 -1
  26. package/dist/cjs/core/MSAppClient.js +8 -6
  27. package/dist/cjs/core/MSAppClient.js.map +1 -1
  28. package/dist/cjs/core/PageManager.js.map +1 -1
  29. package/dist/cjs/modules/ms/dataviews/ms-material/MsMaterialMan.js +0 -1
  30. package/dist/cjs/modules/ms/dataviews/ms-material/MsMaterialMan.js.map +1 -1
  31. package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuTree.js.map +1 -1
  32. package/dist/cjs/modules/ms/pages/ms-menu/index.vue2.js +2 -1
  33. package/dist/cjs/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
  34. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js +36 -1
  35. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue.js.map +1 -1
  36. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js +1 -36
  37. package/dist/esm/components/basic/doc-editor/lexical-vue/components/LexicalAutoLinkPlugin/index.vue2.js.map +1 -1
  38. package/dist/esm/components/basic/doc-editor/plugins/AutoLinkPlugin.vue.js +1 -1
  39. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js +27 -47
  40. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/DocImageComponent.js.map +1 -1
  41. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js +14 -4
  42. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js.map +1 -1
  43. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.js +0 -1
  44. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.js.map +1 -1
  45. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +2 -0
  46. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  47. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +1 -1
  48. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +1 -1
  49. package/dist/esm/components/data-model/data-table/views/table/table.js +0 -1
  50. package/dist/esm/components/data-model/data-table/views/table/table.js.map +1 -1
  51. package/dist/esm/components/data-model/data-table/views/table-view/header/header.js +12 -9
  52. package/dist/esm/components/data-model/data-table/views/table-view/header/header.js.map +1 -1
  53. package/dist/esm/components/data-model/data-table/views/tree/tree-options.js +1 -0
  54. package/dist/esm/components/data-model/data-table/views/tree/tree-options.js.map +1 -1
  55. package/dist/esm/components/data-model/data-table/views/tree/tree.js +1 -1
  56. package/dist/esm/components/data-model/data-table/views/tree/tree.js.map +1 -1
  57. package/dist/esm/composables/use-single-view.js +2 -0
  58. package/dist/esm/composables/use-single-view.js.map +1 -1
  59. package/dist/esm/core/MSAppClient.js +8 -6
  60. package/dist/esm/core/MSAppClient.js.map +1 -1
  61. package/dist/esm/core/PageManager.js.map +1 -1
  62. package/dist/esm/modules/ms/dataviews/ms-material/MsMaterialMan.js +0 -1
  63. package/dist/esm/modules/ms/dataviews/ms-material/MsMaterialMan.js.map +1 -1
  64. package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuTree.js.map +1 -1
  65. package/dist/esm/modules/ms/pages/ms-menu/index.vue2.js +2 -1
  66. package/dist/esm/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
  67. package/dist/style/components/index.css +1 -1
  68. package/dist/style/components/material-item.css +1 -1
  69. package/dist/style/index.css +1 -1
  70. package/dist/style/src/components/material-item.scss +3 -2
  71. package/dist/types/components/data-model/data-table/views/tree/index.d.ts +3 -0
  72. package/dist/types/components/data-model/data-table/views/tree/tree-options.d.ts +1 -0
  73. package/dist/types/components/data-model/data-table/views/tree/tree.d.ts +3 -0
  74. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../../../../src/components/data-model/data-table/views/table/table.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n onMounted,\n ref,\n Ref,\n unref,\n watch,\n nextTick,\n inject,\n} from \"vue\";\nimport { Column, ElEmpty, ElTable, ElTableColumn } from \"element-plus\";\nimport { isEqual } from \"lodash-es\";\nimport MKDataTableColumn from \"../../data-table-column\";\nimport { tableProps } from \"./table-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\nimport Sortable from \"sortablejs\";\nimport { OrderType } from \"@maketribe/request\";\n\nexport default defineComponent({\n name: \"MKTable\",\n props: tableProps,\n setup(props, { slots }) {\n const treeProps = computed(() => {\n return props.treeProps;\n });\n\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTableEl = computed(() => dataTableContext?.el ?? null);\n\n const tableEl: Ref<InstanceType<typeof ElTable> | null> = ref(null);\n\n (window as any).tableEl = tableEl;\n\n const dataTable = computed(\n () => props.dataTable ?? dataTableContext!.dataTable\n );\n\n const rowKey = computed(() => props.rowKey || unref(dataTable).primaryKey);\n\n const list = computed(() => props.getList(unref(dataTable)));\n\n const selectionColumn = computed(() => unref(dataTable).selectionColumn);\n\n type SortChangeEvent = { column: Column; prop: string; order: string };\n\n const handleSortChange = ({ column, prop, order }: SortChangeEvent) => {\n let orderType: OrderType | null = null;\n\n if (order === \"descending\") {\n orderType = OrderType.DESC;\n } else if (order === \"ascending\") {\n orderType = OrderType.ASC;\n }\n\n unref(dataTable).sorter.setColumnSort(prop, orderType);\n };\n\n let allowChangeSelection = true;\n\n const handleSelectionChange = (items: any[]) => {\n if (allowChangeSelection) {\n unref(dataTable).setSelection(\n items.map((item) => item[unref(dataTable).primaryKey])\n );\n }\n };\n\n onMounted(() => {\n const _tableEl = unref(tableEl)!;\n\n watch(list, (list, _, onCleanup) => {\n onCleanup(\n watch(\n computed(() => unref(dataTable).getSelection()),\n async (selections) => {\n const primaryKey = unref(dataTable).primaryKey;\n\n const tableSelections = _tableEl\n .getSelectionRows()\n .map((item: any) => item[primaryKey])\n .sort();\n\n if (isEqual(selections, tableSelections)) {\n return;\n }\n\n allowChangeSelection = false;\n\n _tableEl.clearSelection();\n\n await nextTick();\n\n const selectedRows = list.filter((item: any) =>\n selections.includes(item[primaryKey])\n );\n\n for (var item of selectedRows) {\n _tableEl.toggleRowSelection(item, true);\n }\n\n allowChangeSelection = true;\n },\n {\n immediate: true,\n }\n )\n );\n });\n\n watch(\n dataTableEl,\n (el, _, onCleanup) => {\n if (!el) {\n return;\n }\n var sortableInstance = Sortable.create(el.querySelector(\"tbody\")!, {\n handle: \".mk-column-sort__drag\",\n animation: 300,\n onEnd: (event) => {\n const newIndex = event.newIndex!;\n const oldIndx = event.oldIndex!;\n\n if (oldIndx === newIndex) {\n return;\n }\n\n const movedElement = unref(dataTable).getList()[oldIndx];\n\n var updateRecords: any[] = [];\n\n if (oldIndx > newIndex) {\n // 后面元素移到了中间元素前 中间元素需要增加排序值\n const middleElements = unref(dataTable)\n .getList()\n .splice(newIndex, oldIndx);\n\n movedElement.sort = middleElements[0].sort;\n\n for (const middleElement of middleElements) {\n let sort = Number.parseInt(middleElement.sort);\n sort = Number.isNaN(sort) ? 0 : sort;\n sort += 1;\n }\n\n updateRecords = [movedElement, ...middleElements];\n } else {\n // 前面元素移动到了中间元素后 中间元素需要减少排序值\n const middleElements = unref(dataTable)\n .getList()\n .splice(oldIndx, newIndex);\n\n movedElement.sort =\n middleElements[middleElements.length - 1].sort;\n\n for (const middleElement of middleElements) {\n let sort = Number.parseInt(middleElement.sort);\n sort = Number.isNaN(sort) ? 0 : sort;\n sort -= 1;\n }\n\n updateRecords = [...middleElements, movedElement];\n }\n },\n });\n\n onCleanup(() => {\n sortableInstance.destroy();\n });\n },\n { immediate: true }\n );\n });\n\n return () => {\n const columns = unref(dataTable)\n .getColumns()\n .filter((column) => column.visible && column.name)\n .map((column) => {\n const columnProps: Record<string, any> = {\n prop: column.name,\n label: column.label,\n width: column.width,\n minWidth: column.minWidth,\n fixed: column.fixed,\n align: column.align || \"center\",\n reserveSelection: true,\n type: column.type || \"default\",\n sortable: column.sortable,\n };\n\n if (!column.visible) {\n return null;\n }\n\n return (\n slots[`col-${column.name}`]?.() ?? (\n <ElTableColumn\n {...columnProps}\n v-slots={{\n default: (scope: {\n $index: number;\n row: any;\n column: any;\n }) => {\n let children = slots[`col-${column.name}-content`]?.({\n $index: scope.$index,\n row: scope.row,\n column: column,\n dataTable: unref(dataTable),\n });\n\n if (children) {\n return children;\n }\n\n return (\n <MKDataTableColumn\n column={column}\n row={scope.row}\n index={scope.$index}\n />\n );\n },\n }}\n />\n )\n );\n });\n\n return (\n <ElTable\n data={unref(list)}\n row-key={unref(rowKey)}\n onSort-change={handleSortChange}\n ref={(el: any) =>\n (tableEl.value = el as InstanceType<typeof ElTable>)\n }\n show-overflow-tooltip\n border\n stripe\n lazy={props.lazy}\n load={props.load as any}\n v-slots={{ empty: () => slots.empty?.() || <ElEmpty /> }}\n onSelection-change={handleSelectionChange}\n defaultExpandAll={props.defaultExpandAll}\n >\n {unref(selectionColumn).visible ? (\n <ElTableColumn\n type={unref(selectionColumn).type ?? \"selection\"}\n width={unref(selectionColumn).width}\n fixed={unref(selectionColumn).fixed}\n />\n ) : null}\n {columns}\n </ElTable>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","tableProps","setup","slots","computed","treeProps","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTableEl","el","tableEl","ref","window","dataTable","rowKey","unref","primaryKey","list","getList","selectionColumn","handleSortChange","column","prop","order","orderType","OrderType","DESC","ASC","sorter","setColumnSort","allowChangeSelection","handleSelectionChange","items","setSelection","map","item","onMounted","_tableEl","watch","_","onCleanup","getSelection","selections","tableSelections","getSelectionRows","sort","isEqual","clearSelection","nextTick","selectedRows","filter","includes","toggleRowSelection","immediate","sortableInstance","Sortable","create","querySelector","handle","animation","onEnd","event","newIndex","oldIndx","oldIndex","movedElement","middleElements","splice","middleElement","Number","parseInt","length","destroy","columns","getColumns","visible","columnProps","label","width","minWidth","fixed","align","reserveSelection","type","sortable","_createVNode","ElTableColumn","default","scope","children","$index","row","MKDataTableColumn","ElTable","value","lazy","load","defaultExpandAll","empty","ElEmpty"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../../../../../src/components/data-model/data-table/views/table/table.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n onMounted,\n ref,\n Ref,\n unref,\n watch,\n nextTick,\n inject,\n} from \"vue\";\nimport { Column, ElEmpty, ElTable, ElTableColumn } from \"element-plus\";\nimport { isEqual } from \"lodash-es\";\nimport MKDataTableColumn from \"../../data-table-column\";\nimport { tableProps } from \"./table-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\nimport Sortable from \"sortablejs\";\nimport { OrderType } from \"@maketribe/request\";\n\nexport default defineComponent({\n name: \"MKTable\",\n props: tableProps,\n setup(props, { slots }) {\n const treeProps = computed(() => {\n return props.treeProps;\n });\n\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTableEl = computed(() => dataTableContext?.el ?? null);\n\n const tableEl: Ref<InstanceType<typeof ElTable> | null> = ref(null);\n\n const dataTable = computed(\n () => props.dataTable ?? dataTableContext!.dataTable\n );\n\n const rowKey = computed(() => props.rowKey || unref(dataTable).primaryKey);\n\n const list = computed(() => props.getList(unref(dataTable)));\n\n const selectionColumn = computed(() => unref(dataTable).selectionColumn);\n\n type SortChangeEvent = { column: Column; prop: string; order: string };\n\n const handleSortChange = ({ column, prop, order }: SortChangeEvent) => {\n let orderType: OrderType | null = null;\n\n if (order === \"descending\") {\n orderType = OrderType.DESC;\n } else if (order === \"ascending\") {\n orderType = OrderType.ASC;\n }\n\n unref(dataTable).sorter.setColumnSort(prop, orderType);\n };\n\n let allowChangeSelection = true;\n\n const handleSelectionChange = (items: any[]) => {\n if (allowChangeSelection) {\n unref(dataTable).setSelection(\n items.map((item) => item[unref(dataTable).primaryKey])\n );\n }\n };\n\n onMounted(() => {\n const _tableEl = unref(tableEl)!;\n\n watch(list, (list, _, onCleanup) => {\n onCleanup(\n watch(\n computed(() => unref(dataTable).getSelection()),\n async (selections) => {\n const primaryKey = unref(dataTable).primaryKey;\n\n const tableSelections = _tableEl\n .getSelectionRows()\n .map((item: any) => item[primaryKey])\n .sort();\n\n if (isEqual(selections, tableSelections)) {\n return;\n }\n\n allowChangeSelection = false;\n\n _tableEl.clearSelection();\n\n await nextTick();\n\n const selectedRows = list.filter((item: any) =>\n selections.includes(item[primaryKey])\n );\n\n for (var item of selectedRows) {\n _tableEl.toggleRowSelection(item, true);\n }\n\n allowChangeSelection = true;\n },\n {\n immediate: true,\n }\n )\n );\n });\n\n watch(\n dataTableEl,\n (el, _, onCleanup) => {\n if (!el) {\n return;\n }\n var sortableInstance = Sortable.create(el.querySelector(\"tbody\")!, {\n handle: \".mk-column-sort__drag\",\n animation: 300,\n onEnd: (event) => {\n const newIndex = event.newIndex!;\n const oldIndx = event.oldIndex!;\n\n if (oldIndx === newIndex) {\n return;\n }\n\n const movedElement = unref(dataTable).getList()[oldIndx];\n\n var updateRecords: any[] = [];\n\n if (oldIndx > newIndex) {\n // 后面元素移到了中间元素前 中间元素需要增加排序值\n const middleElements = unref(dataTable)\n .getList()\n .splice(newIndex, oldIndx);\n\n movedElement.sort = middleElements[0].sort;\n\n for (const middleElement of middleElements) {\n let sort = Number.parseInt(middleElement.sort);\n sort = Number.isNaN(sort) ? 0 : sort;\n sort += 1;\n }\n\n updateRecords = [movedElement, ...middleElements];\n } else {\n // 前面元素移动到了中间元素后 中间元素需要减少排序值\n const middleElements = unref(dataTable)\n .getList()\n .splice(oldIndx, newIndex);\n\n movedElement.sort =\n middleElements[middleElements.length - 1].sort;\n\n for (const middleElement of middleElements) {\n let sort = Number.parseInt(middleElement.sort);\n sort = Number.isNaN(sort) ? 0 : sort;\n sort -= 1;\n }\n\n updateRecords = [...middleElements, movedElement];\n }\n },\n });\n\n onCleanup(() => {\n sortableInstance.destroy();\n });\n },\n { immediate: true }\n );\n });\n\n return () => {\n const columns = unref(dataTable)\n .getColumns()\n .filter((column) => column.visible && column.name)\n .map((column) => {\n const columnProps: Record<string, any> = {\n prop: column.name,\n label: column.label,\n width: column.width,\n minWidth: column.minWidth,\n fixed: column.fixed,\n align: column.align || \"center\",\n reserveSelection: true,\n type: column.type || \"default\",\n sortable: column.sortable,\n };\n\n if (!column.visible) {\n return null;\n }\n\n return (\n slots[`col-${column.name}`]?.() ?? (\n <ElTableColumn\n {...columnProps}\n v-slots={{\n default: (scope: {\n $index: number;\n row: any;\n column: any;\n }) => {\n let children = slots[`col-${column.name}-content`]?.({\n $index: scope.$index,\n row: scope.row,\n column: column,\n dataTable: unref(dataTable),\n });\n\n if (children) {\n return children;\n }\n\n return (\n <MKDataTableColumn\n column={column}\n row={scope.row}\n index={scope.$index}\n />\n );\n },\n }}\n />\n )\n );\n });\n\n return (\n <ElTable\n data={unref(list)}\n row-key={unref(rowKey)}\n onSort-change={handleSortChange}\n ref={(el: any) =>\n (tableEl.value = el as InstanceType<typeof ElTable>)\n }\n show-overflow-tooltip\n border\n stripe\n lazy={props.lazy}\n load={props.load as any}\n v-slots={{ empty: () => slots.empty?.() || <ElEmpty /> }}\n onSelection-change={handleSelectionChange}\n defaultExpandAll={props.defaultExpandAll}\n >\n {unref(selectionColumn).visible ? (\n <ElTableColumn\n type={unref(selectionColumn).type ?? \"selection\"}\n width={unref(selectionColumn).width}\n fixed={unref(selectionColumn).fixed}\n />\n ) : null}\n {columns}\n </ElTable>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","tableProps","setup","slots","computed","treeProps","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTableEl","el","tableEl","ref","dataTable","rowKey","unref","primaryKey","list","getList","selectionColumn","handleSortChange","column","prop","order","orderType","OrderType","DESC","ASC","sorter","setColumnSort","allowChangeSelection","handleSelectionChange","items","setSelection","map","item","onMounted","_tableEl","watch","_","onCleanup","getSelection","selections","tableSelections","getSelectionRows","sort","isEqual","clearSelection","nextTick","selectedRows","filter","includes","toggleRowSelection","immediate","sortableInstance","Sortable","create","querySelector","handle","animation","onEnd","event","newIndex","oldIndx","oldIndex","movedElement","middleElements","splice","middleElement","Number","parseInt","length","destroy","columns","getColumns","visible","columnProps","label","width","minWidth","fixed","align","reserveSelection","type","sortable","_createVNode","ElTableColumn","default","scope","children","$index","row","MKDataTableColumn","ElTable","value","lazy","load","defaultExpandAll","empty","ElEmpty"],"mappings":"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"}
@@ -6,21 +6,24 @@ const TableHeader = /* @__PURE__ */ defineComponent({
6
6
  setup(props, {
7
7
  slots
8
8
  }) {
9
- var _a;
10
- const dataTable = (_a = inject(DATA_TABLE_CONTEXT_KEY)) == null ? void 0 : _a.dataTable;
11
- const tableHeader = computed(() => dataTable == null ? void 0 : dataTable.header);
9
+ const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);
10
+ const dataTable = computed(() => dataTableContext.dataTable);
11
+ const tableHeader = computed(() => {
12
+ var _a;
13
+ return (_a = unref(dataTable)) == null ? void 0 : _a.header;
14
+ });
12
15
  const leftArea = computed(() => {
13
- var _a2;
14
- var items = ((_a2 = unref(tableHeader)) == null ? void 0 : _a2.leftArea) ?? [];
16
+ var _a;
17
+ var items = ((_a = unref(tableHeader)) == null ? void 0 : _a.leftArea) ?? [];
15
18
  return items.filter((item) => item.predicate());
16
19
  });
17
20
  const rightArea = computed(() => {
18
- var _a2;
19
- var items = ((_a2 = unref(tableHeader)) == null ? void 0 : _a2.rightArea) ?? [];
21
+ var _a;
22
+ var items = ((_a = unref(tableHeader)) == null ? void 0 : _a.rightArea) ?? [];
20
23
  return items.filter((item) => item.predicate());
21
24
  });
22
25
  return () => {
23
- var _a2, _b;
26
+ var _a, _b;
24
27
  const leftItems = unref(leftArea).map((item) => createVNode(TableHeaderItem, {
25
28
  "tableHeaderItem": item
26
29
  }, null));
@@ -31,7 +34,7 @@ const TableHeader = /* @__PURE__ */ defineComponent({
31
34
  "class": "mk-table-view__header"
32
35
  }, [createVNode("div", {
33
36
  "class": "mk-table-view__header-main"
34
- }, [leftItems, (_a2 = slots["header-main"]) == null ? void 0 : _a2.call(slots)]), createVNode("div", {
37
+ }, [leftItems, (_a = slots["header-main"]) == null ? void 0 : _a.call(slots)]), createVNode("div", {
35
38
  "class": "mk-table-view__header-tools"
36
39
  }, [rightItems, (_b = slots["header-tools"]) == null ? void 0 : _b.call(slots)])]);
37
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"header.js","sources":["../../../../../../../../src/components/data-model/data-table/views/table-view/header/header.tsx"],"sourcesContent":["import { computed, defineComponent, inject, unref } from \"vue\";\nimport TableHeaderItem from \"./header-item\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../../token\";\n\nexport default defineComponent({\n name: \"MKTableHeader\",\n setup(props, { slots }) {\n const dataTable = inject(DATA_TABLE_CONTEXT_KEY)?.dataTable;\n\n const tableHeader = computed(() => dataTable?.header!);\n\n const leftArea = computed(() => {\n var items = unref(tableHeader)?.leftArea ?? [];\n\n return items.filter((item) => item.predicate());\n });\n const rightArea = computed(() => {\n var items = unref(tableHeader)?.rightArea ?? [];\n\n return items.filter((item) => item.predicate());\n });\n\n return () => {\n const leftItems = unref(leftArea).map((item) => (\n <TableHeaderItem tableHeaderItem={item} />\n ));\n\n const rightItems = unref(rightArea).map((item) => (\n <TableHeaderItem tableHeaderItem={item} />\n ));\n \n return (\n <div class=\"mk-table-view__header\">\n <div class=\"mk-table-view__header-main\">\n {leftItems}\n {slots['header-main']?.()}\n </div>\n <div class=\"mk-table-view__header-tools\">\n {rightItems}\n {slots[\"header-tools\"]?.()}\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["defineComponent","name","setup","props","slots","dataTable","inject","DATA_TABLE_CONTEXT_KEY","tableHeader","computed","header","leftArea","items","unref","filter","item","predicate","rightArea","leftItems","map","_createVNode","TableHeaderItem","rightItems"],"mappings":";;;AAIA,MAAeA,8CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,MAAMC,OAAO;AAAA,IAAEC;AAAAA,EAAM,GAAG;;AACtB,UAAMC,aAAYC,YAAOC,sBAAsB,MAA7BD,mBAAgCD;AAElD,UAAMG,cAAcC,SAAS,MAAMJ,uCAAWK,MAAO;AAErD,UAAMC,WAAWF,SAAS,MAAM;;AAC9B,UAAIG,UAAQC,MAAAA,MAAML,WAAW,MAAjBK,gBAAAA,IAAoBF,aAAY,CAAA;AAE5C,aAAOC,MAAME,OAAQC,UAASA,KAAKC,UAAW,CAAA;AAAA,IAChD,CAAC;AACD,UAAMC,YAAYR,SAAS,MAAM;;AAC/B,UAAIG,UAAQC,MAAAA,MAAML,WAAW,MAAjBK,gBAAAA,IAAoBI,cAAa,CAAA;AAE7C,aAAOL,MAAME,OAAQC,UAASA,KAAKC,UAAW,CAAA;AAAA,IAChD,CAAC;AAED,WAAO,MAAM;;AACX,YAAME,YAAYL,MAAMF,QAAQ,EAAEQ,IAAKJ,UAAIK,YAAAC,iBAAA;AAAA,QAAA,mBACPN;AAAAA,MAAI,GAAA,IAAA,CACvC;AAED,YAAMO,aAAaT,MAAMI,SAAS,EAAEE,IAAKJ,UAAIK,YAAAC,iBAAA;AAAA,QAAA,mBACTN;AAAAA,MAAI,GAAA,IAAA,CACvC;AAED,aAAAK,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,SAGOF,CAAAA,YACAd,MAAAA,MAAM,mBAANA,gBAAAA,IAAAA,WAAwB,CAAA,GAAAgB,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAGxBE,aACAlB,WAAM,oBAANA,8BAAyB,CAAA,CAAA,CAAA;AAAA;EAKpC;AACF,CAAC;"}
1
+ {"version":3,"file":"header.js","sources":["../../../../../../../../src/components/data-model/data-table/views/table-view/header/header.tsx"],"sourcesContent":["import { computed, defineComponent, inject, unref } from \"vue\";\nimport TableHeaderItem from \"./header-item\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../../token\";\n\nexport default defineComponent({\n name: \"MKTableHeader\",\n setup(props, { slots }) {\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY)!;\n\n const dataTable = computed(() => dataTableContext.dataTable)\n\n const tableHeader = computed(() => unref(dataTable)?.header!);\n\n const leftArea = computed(() => {\n var items = unref(tableHeader)?.leftArea ?? [];\n\n return items.filter((item) => item.predicate());\n });\n const rightArea = computed(() => {\n var items = unref(tableHeader)?.rightArea ?? [];\n\n return items.filter((item) => item.predicate());\n });\n\n return () => {\n const leftItems = unref(leftArea).map((item) => (\n <TableHeaderItem tableHeaderItem={item} />\n ));\n\n const rightItems = unref(rightArea).map((item) => (\n <TableHeaderItem tableHeaderItem={item} />\n ));\n \n return (\n <div class=\"mk-table-view__header\">\n <div class=\"mk-table-view__header-main\">\n {leftItems}\n {slots['header-main']?.()}\n </div>\n <div class=\"mk-table-view__header-tools\">\n {rightItems}\n {slots[\"header-tools\"]?.()}\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["defineComponent","name","setup","props","slots","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTable","computed","tableHeader","unref","header","leftArea","items","filter","item","predicate","rightArea","leftItems","map","_createVNode","TableHeaderItem","rightItems"],"mappings":";;;AAIA,MAAeA,8CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,MAAMC,OAAO;AAAA,IAAEC;AAAAA,EAAM,GAAG;AACtB,UAAMC,mBAAmBC,OAAOC,sBAAsB;AAEtD,UAAMC,YAAYC,SAAS,MAAMJ,iBAAiBG,SAAS;AAE3D,UAAME,cAAcD,SAAS,MAAA;;AAAME,yBAAMH,SAAS,MAAfG,mBAAkBC;AAAAA,KAAO;AAE5D,UAAMC,WAAWJ,SAAS,MAAM;;AAC9B,UAAIK,UAAQH,WAAMD,WAAW,MAAjBC,mBAAoBE,aAAY,CAAA;AAE5C,aAAOC,MAAMC,OAAQC,UAASA,KAAKC,UAAW,CAAA;AAAA,IAChD,CAAC;AACD,UAAMC,YAAYT,SAAS,MAAM;;AAC/B,UAAIK,UAAQH,WAAMD,WAAW,MAAjBC,mBAAoBO,cAAa,CAAA;AAE7C,aAAOJ,MAAMC,OAAQC,UAASA,KAAKC,UAAW,CAAA;AAAA,IAChD,CAAC;AAED,WAAO,MAAM;;AACX,YAAME,YAAYR,MAAME,QAAQ,EAAEO,IAAKJ,UAAIK,YAAAC,iBAAA;AAAA,QAAA,mBACPN;AAAAA,MAAI,GAAA,IAAA,CACvC;AAED,YAAMO,aAAaZ,MAAMO,SAAS,EAAEE,IAAKJ,UAAIK,YAAAC,iBAAA;AAAA,QAAA,mBACTN;AAAAA,MAAI,GAAA,IAAA,CACvC;AAED,aAAAK,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,SAGOF,CAAAA,YACAf,WAAM,mBAANA,8BAAwB,CAAA,GAAAiB,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAGxBE,aACAnB,WAAM,oBAANA,8BAAyB,CAAA,CAAA,CAAA;AAAA;EAKpC;AACF,CAAC;"}
@@ -4,6 +4,7 @@ const treeProps = buildProps({
4
4
  dataTree: {
5
5
  type: DataTree
6
6
  },
7
+ currentNodeKey: { type: String, default: "" },
7
8
  draggable: { type: Boolean, default: false },
8
9
  filterNodeMethod: { type: Function },
9
10
  defaultExpandAll: { type: Boolean, default: false },
@@ -1 +1 @@
1
- {"version":3,"file":"tree-options.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree-options.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { buildProps } from \"@maketribe/utils\";\n\nexport const treeProps = buildProps({\n dataTree: {\n type: DataTree<any>,\n },\n draggable: { type: Boolean, default: false },\n filterNodeMethod: { type: Function },\n defaultExpandAll: { type: Boolean, default: false },\n allowSelectContainer: { type: Boolean, default: true },\n} as const);\n\nexport type TreeProps = ExtractPropTypes<typeof treeProps>;\n\nexport const treeEmits = {\n nodeClick: (node: DataTreeNode<any>) => true,\n};\n\nexport type TreeEmits = typeof treeEmits;\n"],"names":[],"mappings":";;AAIO,MAAM,YAAY,WAAW;AAAA,EAClC,UAAU;AAAA,IACR,MAAM;AAAA,EACR;AAAA,EACA,WAAW,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAC3C,kBAAkB,EAAE,MAAM,SAAS;AAAA,EACnC,kBAAkB,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAClD,sBAAsB,EAAE,MAAM,SAAS,SAAS,KAAK;AACvD,CAAU;AAIH,MAAM,YAAY;AAAA,EACvB,WAAW,CAAC,SAA4B;AAC1C;"}
1
+ {"version":3,"file":"tree-options.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree-options.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { buildProps } from \"@maketribe/utils\";\n\nexport const treeProps = buildProps({\n dataTree: {\n type: DataTree<any>,\n },\n currentNodeKey: { type: String, default: \"\" },\n draggable: { type: Boolean, default: false },\n filterNodeMethod: { type: Function },\n defaultExpandAll: { type: Boolean, default: false },\n allowSelectContainer: { type: Boolean, default: true },\n} as const);\n\nexport type TreeProps = ExtractPropTypes<typeof treeProps>;\n\nexport const treeEmits = {\n nodeClick: (node: DataTreeNode<any>) => true,\n};\n\nexport type TreeEmits = typeof treeEmits;\n"],"names":[],"mappings":";;AAIO,MAAM,YAAY,WAAW;AAAA,EAClC,UAAU;AAAA,IACR,MAAM;AAAA,EACR;AAAA,EACA,gBAAgB,EAAE,MAAM,QAAQ,SAAS,GAAG;AAAA,EAC5C,WAAW,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAC3C,kBAAkB,EAAE,MAAM,SAAS;AAAA,EACnC,kBAAkB,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAClD,sBAAsB,EAAE,MAAM,SAAS,SAAS,KAAK;AACvD,CAAU;AAIH,MAAM,YAAY;AAAA,EACvB,WAAW,CAAC,SAA4B;AAC1C;"}
@@ -88,7 +88,7 @@ const Tree = /* @__PURE__ */ defineComponent({
88
88
  handleNodeClick,
89
89
  $slots
90
90
  } = this;
91
- const currentNodeKey = innerDataTree.getSelection()[0] ?? "";
91
+ const currentNodeKey = (this.currentNodeKey || innerDataTree.getSelection()[0]) ?? "";
92
92
  return createVNode(ElTree, {
93
93
  "props": {
94
94
  children: "children",
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, inject, ref, unref } from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type { NodeDropType } from \"element-plus/es/components/tree/src/tree.type\";\nimport type { DragEvents } from \"element-plus/es/components/tree/src/model/useDragNode\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { treeEmits, treeProps } from \"./tree-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n emits: treeEmits,\n setup(props, { emit }) {\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTree = computed(\n () => props.dataTree ?? (dataTableContext!.dataTable as DataTree)\n );\n\n const treeRef = ref<typeof ElTree | null>(null);\n\n const rootNodes = computed(() => unref(dataTree).rootNodes);\n\n const handleAdd = (dataTreeNode?: DataTreeNode) => {\n unref(dataTree).addRecord(\n dataTreeNode ? { pid: dataTreeNode.data.id } : {}\n );\n };\n\n const handleEdit = (dataTreeNode: DataTreeNode) => {\n unref(dataTree).editRecord(dataTreeNode.data);\n };\n\n const handleDelete = async (dataTreeNode: DataTreeNode) => {\n unref(dataTree).deleteRecord(dataTreeNode.data);\n };\n\n const handleLoad = async (node: Node, resolve: Function) => {\n if (node.level === 0) {\n return;\n }\n\n if (!unref(dataTree).lazy) {\n resolve(node.data.children);\n return;\n }\n\n const dataTreeNode = node.data as DataTreeNode;\n\n await dataTreeNode.load();\n\n resolve(dataTreeNode.children);\n };\n\n const filter = (value: any) => {\n unref(treeRef)?.filter(value);\n };\n\n const handleCurrentChange = (\n dataTreeNode: DataTreeNode | null,\n node: Node | null\n ) => {\n if (!dataTreeNode) {\n return;\n }\n\n const _dataTree = unref(dataTree);\n\n if (!props.allowSelectContainer && !dataTreeNode.isLeaf) {\n const current = _dataTree.getSelection()[0] ?? null;\n\n unref(treeRef)?.setCurrentKey(current);\n\n return;\n }\n\n _dataTree.setSelection([dataTreeNode.data[_dataTree.primaryKey]]);\n };\n\n const handleNodeDrop = (\n draggingNode: Node,\n dropNode: Node,\n dropType: NodeDropType,\n event: DragEvents\n ) => {\n // console.log(draggingNode, dropNode);\n unref(dataTree).handleNodeDrop(\n draggingNode.data! as any,\n dropNode.data! as any,\n dropType\n );\n };\n\n const handleNodeClick = (node: DataTreeNode<any>) => {\n emit(\"nodeClick\", node);\n };\n\n return {\n treeRef,\n innerDataTree: dataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n filter,\n handleCurrentChange,\n handleNodeDrop,\n handleNodeClick,\n };\n },\n render() {\n const {\n defaultExpandAll,\n filterNodeMethod,\n innerDataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n handleCurrentChange,\n handleNodeDrop,\n handleNodeClick,\n $slots,\n } = this;\n\n const currentNodeKey = innerDataTree.getSelection()[0] ?? \"\";\n\n return (\n <ElTree\n props={{ children: \"children\", isLeaf: \"isLeaf\" }}\n defaultExpandAll={defaultExpandAll}\n ref=\"treeRef\"\n class=\"mk-data-tree\"\n highlight-current\n data={rootNodes}\n lazy\n currentNodeKey={currentNodeKey}\n filterNodeMethod={filterNodeMethod as any}\n nodeKey=\"primaryValue\"\n expand-on-click-node={false}\n load={handleLoad}\n onCurrent-change={handleCurrentChange}\n onNode-drop={handleNodeDrop}\n draggable={this.$props.draggable}\n onNode-click={handleNodeClick}\n v-slots={{\n default: (scope: any) => {\n let children = $slots.default?.(scope);\n\n if (children) {\n return children;\n }\n\n const { data } = scope;\n\n const label = data.data[innerDataTree.props.label];\n\n const main = $slots[\"node-main\"]?.(scope) || label;\n\n const tools = $slots[\"node-tools\"]?.(scope) || (\n <Fragment>\n {$slots[\"node-tools-prefix\"]?.(scope)}\n <ElButton type=\"primary\" link onClick={() => handleAdd(data)}>\n 添加\n </ElButton>\n <ElButton type=\"primary\" link onClick={() => handleEdit(data)}>\n 编辑\n </ElButton>\n <ElButton type=\"danger\" link onClick={() => handleDelete(data)}>\n 删除\n </ElButton>\n {$slots[\"node-tools-suffix\"]?.(scope)}\n </Fragment>\n );\n\n return (\n <div class=\"mk-data-tree-node\">\n <div class=\"mk-data-tree-node_main\">{main}</div>\n\n <div\n class=\"mk-data-tree-node__tools\"\n onClick={(e) => e.stopPropagation()}\n >\n {tools}\n </div>\n </div>\n );\n },\n }}\n />\n );\n },\n});\n"],"names":["defineComponent","name","props","treeProps","emits","treeEmits","setup","emit","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTree","computed","dataTable","treeRef","ref","rootNodes","unref","handleAdd","dataTreeNode","addRecord","pid","data","id","handleEdit","editRecord","handleDelete","deleteRecord","handleLoad","node","resolve","level","lazy","children","load","filter","value","handleCurrentChange","_dataTree","allowSelectContainer","isLeaf","current","getSelection","setCurrentKey","setSelection","primaryKey","handleNodeDrop","draggingNode","dropNode","dropType","event","handleNodeClick","innerDataTree","render","defaultExpandAll","filterNodeMethod","$slots","currentNodeKey","_createVNode","ElTree","$props","draggable","default","scope","label","main","tools","_Fragment","ElButton","onClick","_createTextVNode","e","stopPropagation"],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sources":["../../../../../../../src/components/data-model/data-table/views/tree/tree.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, inject, ref, unref } from \"vue\";\nimport { ElButton, ElTree } from \"element-plus\";\nimport type { NodeDropType } from \"element-plus/es/components/tree/src/tree.type\";\nimport type { DragEvents } from \"element-plus/es/components/tree/src/model/useDragNode\";\nimport type Node from \"element-plus/es/components/tree/src/model/node\";\nimport { DataTree, DataTreeNode } from \"@maketribe/dm\";\nimport { treeEmits, treeProps } from \"./tree-options\";\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\n\nexport default defineComponent({\n name: \"MKTree\",\n props: treeProps,\n emits: treeEmits,\n setup(props, { emit }) {\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY);\n\n const dataTree = computed(\n () => props.dataTree ?? (dataTableContext!.dataTable as DataTree)\n );\n\n const treeRef = ref<typeof ElTree | null>(null);\n\n const rootNodes = computed(() => unref(dataTree).rootNodes);\n\n const handleAdd = (dataTreeNode?: DataTreeNode) => {\n unref(dataTree).addRecord(\n dataTreeNode ? { pid: dataTreeNode.data.id } : {}\n );\n };\n\n const handleEdit = (dataTreeNode: DataTreeNode) => {\n unref(dataTree).editRecord(dataTreeNode.data);\n };\n\n const handleDelete = async (dataTreeNode: DataTreeNode) => {\n unref(dataTree).deleteRecord(dataTreeNode.data);\n };\n\n const handleLoad = async (node: Node, resolve: Function) => {\n if (node.level === 0) {\n return;\n }\n\n if (!unref(dataTree).lazy) {\n resolve(node.data.children);\n return;\n }\n\n const dataTreeNode = node.data as DataTreeNode;\n\n await dataTreeNode.load();\n\n resolve(dataTreeNode.children);\n };\n\n const filter = (value: any) => {\n unref(treeRef)?.filter(value);\n };\n\n const handleCurrentChange = (\n dataTreeNode: DataTreeNode | null,\n node: Node | null\n ) => {\n if (!dataTreeNode) {\n return;\n }\n\n const _dataTree = unref(dataTree);\n\n if (!props.allowSelectContainer && !dataTreeNode.isLeaf) {\n const current = _dataTree.getSelection()[0] ?? null;\n\n unref(treeRef)?.setCurrentKey(current);\n\n return;\n }\n\n _dataTree.setSelection([dataTreeNode.data[_dataTree.primaryKey]]);\n };\n\n const handleNodeDrop = (\n draggingNode: Node,\n dropNode: Node,\n dropType: NodeDropType,\n event: DragEvents\n ) => {\n // console.log(draggingNode, dropNode);\n unref(dataTree).handleNodeDrop(\n draggingNode.data! as any,\n dropNode.data! as any,\n dropType\n );\n };\n\n const handleNodeClick = (node: DataTreeNode<any>) => {\n emit(\"nodeClick\", node);\n };\n\n return {\n treeRef,\n innerDataTree: dataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n filter,\n handleCurrentChange,\n handleNodeDrop,\n handleNodeClick,\n };\n },\n render() {\n const {\n defaultExpandAll,\n filterNodeMethod,\n innerDataTree,\n rootNodes,\n handleAdd,\n handleEdit,\n handleDelete,\n handleLoad,\n handleCurrentChange,\n handleNodeDrop,\n handleNodeClick,\n $slots,\n } = this;\n\n const currentNodeKey =\n (this.currentNodeKey || innerDataTree.getSelection()[0]) ?? \"\";\n\n return (\n <ElTree\n props={{ children: \"children\", isLeaf: \"isLeaf\" }}\n defaultExpandAll={defaultExpandAll}\n ref=\"treeRef\"\n class=\"mk-data-tree\"\n highlight-current\n data={rootNodes}\n lazy\n currentNodeKey={currentNodeKey}\n filterNodeMethod={filterNodeMethod as any}\n nodeKey=\"primaryValue\"\n expand-on-click-node={false}\n load={handleLoad}\n onCurrent-change={handleCurrentChange}\n onNode-drop={handleNodeDrop}\n draggable={this.$props.draggable}\n onNode-click={handleNodeClick}\n v-slots={{\n default: (scope: any) => {\n let children = $slots.default?.(scope);\n\n if (children) {\n return children;\n }\n\n const { data } = scope;\n\n const label = data.data[innerDataTree.props.label];\n\n const main = $slots[\"node-main\"]?.(scope) || label;\n\n const tools = $slots[\"node-tools\"]?.(scope) || (\n <Fragment>\n {$slots[\"node-tools-prefix\"]?.(scope)}\n <ElButton type=\"primary\" link onClick={() => handleAdd(data)}>\n 添加\n </ElButton>\n <ElButton type=\"primary\" link onClick={() => handleEdit(data)}>\n 编辑\n </ElButton>\n <ElButton type=\"danger\" link onClick={() => handleDelete(data)}>\n 删除\n </ElButton>\n {$slots[\"node-tools-suffix\"]?.(scope)}\n </Fragment>\n );\n\n return (\n <div class=\"mk-data-tree-node\">\n <div class=\"mk-data-tree-node_main\">{main}</div>\n\n <div\n class=\"mk-data-tree-node__tools\"\n onClick={(e) => e.stopPropagation()}\n >\n {tools}\n </div>\n </div>\n );\n },\n }}\n />\n );\n },\n});\n"],"names":["defineComponent","name","props","treeProps","emits","treeEmits","setup","emit","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","dataTree","computed","dataTable","treeRef","ref","rootNodes","unref","handleAdd","dataTreeNode","addRecord","pid","data","id","handleEdit","editRecord","handleDelete","deleteRecord","handleLoad","node","resolve","level","lazy","children","load","filter","value","handleCurrentChange","_dataTree","allowSelectContainer","isLeaf","current","getSelection","setCurrentKey","setSelection","primaryKey","handleNodeDrop","draggingNode","dropNode","dropType","event","handleNodeClick","innerDataTree","render","defaultExpandAll","filterNodeMethod","$slots","currentNodeKey","_createVNode","ElTree","$props","draggable","default","scope","label","main","tools","_Fragment","ElButton","onClick","_createTextVNode","e","stopPropagation"],"mappings":"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"}
@@ -52,6 +52,7 @@ const useSingleView = (options) => {
52
52
  watch(
53
53
  options.dataTable,
54
54
  (dataTable, _, onCleanup) => {
55
+ isShowDataForm.value = false;
55
56
  handleDataTable(dataTable);
56
57
  onCleanup(() => {
57
58
  dataTable == null ? void 0 : dataTable.clearSelection();
@@ -72,6 +73,7 @@ const useSingleView = (options) => {
72
73
  watch(
73
74
  options.dataForm,
74
75
  (dataForm, _, onCleanup) => {
76
+ isShowDataForm.value = false;
75
77
  handleDataForm(dataForm);
76
78
  onCleanup(() => {
77
79
  dataForm == null ? void 0 : dataForm.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"use-single-view.js","sources":["../../../src/composables/use-single-view.ts"],"sourcesContent":["import { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport { isRef, onBeforeUnmount, Ref, ref, unref, watch } from \"vue\";\n\nexport type UseSingleViewOptions = {\n dataTable: Ref<DataTable | null> | DataTable;\n dataForm: Ref<DataForm | null> | DataForm;\n};\n\nexport const useSingleView = (options: UseSingleViewOptions) => {\n const isShowDataForm = ref(false);\n\n const handleDataTable = (dataTable: DataTable | null) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(async () => {\n const _dataForm = unref(options.dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(options.dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n try {\n const response = await _dataForm.editRecord(\n item[dataTable.primaryKey as string]\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n isShowDataForm.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDataForm.value = false;\n }\n });\n }\n };\n\n const handleDataForm = (dataForm: DataForm | null) => {\n if (dataForm) {\n dataForm.submittedEvent.on(() => {\n isShowDataForm.value = false;\n\n unref(options.dataTable)?.load();\n });\n\n dataForm.cancelEvent.on(() => {\n isShowDataForm.value = false;\n });\n }\n };\n\n if (isRef(options.dataTable)) {\n watch(\n options.dataTable,\n (dataTable, _, onCleanup) => {\n handleDataTable(dataTable);\n\n onCleanup(() => {\n dataTable?.clearSelection();\n dataTable?.dispose();\n });\n },\n { immediate: true }\n );\n } else {\n const dataTable = options.dataTable;\n handleDataTable(dataTable);\n\n onBeforeUnmount(() => {\n dataTable.clearSelection();\n dataTable.dispose();\n });\n }\n\n if (isRef(options.dataForm)) {\n watch(\n options.dataForm,\n (dataForm, _, onCleanup) => {\n handleDataForm(dataForm);\n onCleanup(() => {\n dataForm?.dispose();\n });\n },\n { immediate: true }\n );\n } else {\n const dataForm = options.dataForm;\n handleDataForm(dataForm);\n\n onBeforeUnmount(() => {\n dataForm.dispose();\n });\n }\n\n return { isShowDataForm };\n};\n\nexport const useSingleViewWithDialog = (options: UseSingleViewOptions) => {\n const { isShowDataForm } = useSingleView(options);\n\n watch(isShowDataForm, async (isShowDataForm) => {\n if (isShowDataForm) {\n await Dialoger.dataFormDialog({\n dataForm: unref(options.dataForm)!,\n customDataFormStatus: true,\n });\n }\n });\n};\n"],"names":["isShowDataForm"],"mappings":";;AAQa,MAAA,gBAAgB,CAAC,YAAkC;AACxD,QAAA,iBAAiB,IAAI,KAAK;AAE1B,QAAA,kBAAkB,CAAC,cAAgC;AACvD,QAAI,WAAW;AACH,gBAAA,eAAe,GAAG,YAAY;AAChC,cAAA,YAAY,MAAM,QAAQ,QAAQ;AAExC,YAAI,CAAC,WAAW;AACd,kBAAQ,KAAK,UAAU,UAAU,IAAI,eAAe;AACpD;AAAA,QACF;AAEA,uBAAe,QAAQ;AAEvB,kBAAU,UAAU;AAAA,MAAA,CACrB;AAED,gBAAU,gBAAgB,GAAG,OAAO,EAAE,WAAW;AACzC,cAAA,YAAY,MAAM,QAAQ,QAAQ;AAExC,YAAI,CAAC,WAAW;AACd,kBAAQ,KAAK,UAAU,UAAU,IAAI,eAAe;AACpD;AAAA,QACF;AAEA,uBAAe,QAAQ;AAEnB,YAAA;AACI,gBAAA,WAAW,MAAM,UAAU;AAAA,YAC/B,KAAK,UAAU,UAAoB;AAAA,UAAA;AAGjC,cAAA,SAAS,KAAK,SAAS,KAAK;AAC9B,qBAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C,2BAAe,QAAQ;AACvB;AAAA,UACF;AAAA,iBACO,GAAG;AACV,kBAAQ,MAAM,CAAC;AACf,yBAAe,QAAQ;AAAA,QACzB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAGI,QAAA,iBAAiB,CAAC,aAA8B;AACpD,QAAI,UAAU;AACH,eAAA,eAAe,GAAG,MAAM;;AAC/B,uBAAe,QAAQ;AAEjB,oBAAA,QAAQ,SAAS,MAAjB,mBAAoB;AAAA,MAAK,CAChC;AAEQ,eAAA,YAAY,GAAG,MAAM;AAC5B,uBAAe,QAAQ;AAAA,MAAA,CACxB;AAAA,IACH;AAAA,EAAA;AAGE,MAAA,MAAM,QAAQ,SAAS,GAAG;AAC5B;AAAA,MACE,QAAQ;AAAA,MACR,CAAC,WAAW,GAAG,cAAc;AAC3B,wBAAgB,SAAS;AAEzB,kBAAU,MAAM;AACd,iDAAW;AACX,iDAAW;AAAA,QAAQ,CACpB;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAAA,EACpB,OACK;AACL,UAAM,YAAY,QAAQ;AAC1B,oBAAgB,SAAS;AAEzB,oBAAgB,MAAM;AACpB,gBAAU,eAAe;AACzB,gBAAU,QAAQ;AAAA,IAAA,CACnB;AAAA,EACH;AAEI,MAAA,MAAM,QAAQ,QAAQ,GAAG;AAC3B;AAAA,MACE,QAAQ;AAAA,MACR,CAAC,UAAU,GAAG,cAAc;AAC1B,uBAAe,QAAQ;AACvB,kBAAU,MAAM;AACd,+CAAU;AAAA,QAAQ,CACnB;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAAA,EACpB,OACK;AACL,UAAM,WAAW,QAAQ;AACzB,mBAAe,QAAQ;AAEvB,oBAAgB,MAAM;AACpB,eAAS,QAAQ;AAAA,IAAA,CAClB;AAAA,EACH;AAEA,SAAO,EAAE,eAAe;AAC1B;AAEa,MAAA,0BAA0B,CAAC,YAAkC;AACxE,QAAM,EAAE,eAAA,IAAmB,cAAc,OAAO;AAE1C,QAAA,gBAAgB,OAAOA,oBAAmB;AAC9C,QAAIA,iBAAgB;AAClB,YAAM,SAAS,eAAe;AAAA,QAC5B,UAAU,MAAM,QAAQ,QAAQ;AAAA,QAChC,sBAAsB;AAAA,MAAA,CACvB;AAAA,IACH;AAAA,EAAA,CACD;AACH;"}
1
+ {"version":3,"file":"use-single-view.js","sources":["../../../src/composables/use-single-view.ts"],"sourcesContent":["import { DataForm, DataTable, Dialoger, Messager } from \"@maketribe/dm\";\nimport { isRef, onBeforeUnmount, Ref, ref, unref, watch } from \"vue\";\n\nexport type UseSingleViewOptions = {\n dataTable: Ref<DataTable | null> | DataTable;\n dataForm: Ref<DataForm | null> | DataForm;\n};\n\nexport const useSingleView = (options: UseSingleViewOptions) => {\n const isShowDataForm = ref(false);\n\n const handleDataTable = (dataTable: DataTable | null) => {\n if (dataTable) {\n dataTable.addRecordEvent.on(async () => {\n const _dataForm = unref(options.dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n _dataForm.addRecord();\n });\n\n dataTable.editRecordEvent.on(async ({ item }) => {\n const _dataForm = unref(options.dataForm);\n\n if (!_dataForm) {\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\n return;\n }\n\n isShowDataForm.value = true;\n\n try {\n const response = await _dataForm.editRecord(\n item[dataTable.primaryKey as string]\n );\n\n if (response.data.code !== 200) {\n Messager.error({ message: response.data.msg });\n isShowDataForm.value = false;\n return;\n }\n } catch (e) {\n console.error(e);\n isShowDataForm.value = false;\n }\n });\n }\n };\n\n const handleDataForm = (dataForm: DataForm | null) => {\n if (dataForm) {\n dataForm.submittedEvent.on(() => {\n isShowDataForm.value = false;\n\n unref(options.dataTable)?.load();\n });\n\n dataForm.cancelEvent.on(() => {\n isShowDataForm.value = false;\n });\n }\n };\n\n if (isRef(options.dataTable)) {\n watch(\n options.dataTable,\n (dataTable, _, onCleanup) => {\n isShowDataForm.value = false;\n\n handleDataTable(dataTable);\n\n onCleanup(() => {\n dataTable?.clearSelection();\n dataTable?.dispose();\n });\n },\n { immediate: true }\n );\n } else {\n const dataTable = options.dataTable;\n handleDataTable(dataTable);\n\n onBeforeUnmount(() => {\n dataTable.clearSelection();\n dataTable.dispose();\n });\n }\n\n if (isRef(options.dataForm)) {\n watch(\n options.dataForm,\n (dataForm, _, onCleanup) => {\n isShowDataForm.value = false;\n\n handleDataForm(dataForm);\n\n onCleanup(() => {\n dataForm?.dispose();\n });\n },\n { immediate: true }\n );\n } else {\n const dataForm = options.dataForm;\n handleDataForm(dataForm);\n\n onBeforeUnmount(() => {\n dataForm.dispose();\n });\n }\n\n return { isShowDataForm };\n};\n\nexport const useSingleViewWithDialog = (options: UseSingleViewOptions) => {\n const { isShowDataForm } = useSingleView(options);\n\n watch(isShowDataForm, async (isShowDataForm) => {\n if (isShowDataForm) {\n await Dialoger.dataFormDialog({\n dataForm: unref(options.dataForm)!,\n customDataFormStatus: true,\n });\n }\n });\n};\n"],"names":["isShowDataForm"],"mappings":";;AAQa,MAAA,gBAAgB,CAAC,YAAkC;AACxD,QAAA,iBAAiB,IAAI,KAAK;AAE1B,QAAA,kBAAkB,CAAC,cAAgC;AACvD,QAAI,WAAW;AACH,gBAAA,eAAe,GAAG,YAAY;AAChC,cAAA,YAAY,MAAM,QAAQ,QAAQ;AAExC,YAAI,CAAC,WAAW;AACd,kBAAQ,KAAK,UAAU,UAAU,IAAI,eAAe;AACpD;AAAA,QACF;AAEA,uBAAe,QAAQ;AAEvB,kBAAU,UAAU;AAAA,MAAA,CACrB;AAED,gBAAU,gBAAgB,GAAG,OAAO,EAAE,WAAW;AACzC,cAAA,YAAY,MAAM,QAAQ,QAAQ;AAExC,YAAI,CAAC,WAAW;AACd,kBAAQ,KAAK,UAAU,UAAU,IAAI,eAAe;AACpD;AAAA,QACF;AAEA,uBAAe,QAAQ;AAEnB,YAAA;AACI,gBAAA,WAAW,MAAM,UAAU;AAAA,YAC/B,KAAK,UAAU,UAAoB;AAAA,UAAA;AAGjC,cAAA,SAAS,KAAK,SAAS,KAAK;AAC9B,qBAAS,MAAM,EAAE,SAAS,SAAS,KAAK,KAAK;AAC7C,2BAAe,QAAQ;AACvB;AAAA,UACF;AAAA,iBACO,GAAG;AACV,kBAAQ,MAAM,CAAC;AACf,yBAAe,QAAQ;AAAA,QACzB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAGI,QAAA,iBAAiB,CAAC,aAA8B;AACpD,QAAI,UAAU;AACH,eAAA,eAAe,GAAG,MAAM;;AAC/B,uBAAe,QAAQ;AAEjB,oBAAA,QAAQ,SAAS,MAAjB,mBAAoB;AAAA,MAAK,CAChC;AAEQ,eAAA,YAAY,GAAG,MAAM;AAC5B,uBAAe,QAAQ;AAAA,MAAA,CACxB;AAAA,IACH;AAAA,EAAA;AAGE,MAAA,MAAM,QAAQ,SAAS,GAAG;AAC5B;AAAA,MACE,QAAQ;AAAA,MACR,CAAC,WAAW,GAAG,cAAc;AAC3B,uBAAe,QAAQ;AAEvB,wBAAgB,SAAS;AAEzB,kBAAU,MAAM;AACd,iDAAW;AACX,iDAAW;AAAA,QAAQ,CACpB;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAAA,EACpB,OACK;AACL,UAAM,YAAY,QAAQ;AAC1B,oBAAgB,SAAS;AAEzB,oBAAgB,MAAM;AACpB,gBAAU,eAAe;AACzB,gBAAU,QAAQ;AAAA,IAAA,CACnB;AAAA,EACH;AAEI,MAAA,MAAM,QAAQ,QAAQ,GAAG;AAC3B;AAAA,MACE,QAAQ;AAAA,MACR,CAAC,UAAU,GAAG,cAAc;AAC1B,uBAAe,QAAQ;AAEvB,uBAAe,QAAQ;AAEvB,kBAAU,MAAM;AACd,+CAAU;AAAA,QAAQ,CACnB;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAAA,EACpB,OACK;AACL,UAAM,WAAW,QAAQ;AACzB,mBAAe,QAAQ;AAEvB,oBAAgB,MAAM;AACpB,eAAS,QAAQ;AAAA,IAAA,CAClB;AAAA,EACH;AAEA,SAAO,EAAE,eAAe;AAC1B;AAEa,MAAA,0BAA0B,CAAC,YAAkC;AACxE,QAAM,EAAE,eAAA,IAAmB,cAAc,OAAO;AAE1C,QAAA,gBAAgB,OAAOA,oBAAmB;AAC9C,QAAIA,iBAAgB;AAClB,YAAM,SAAS,eAAe;AAAA,QAC5B,UAAU,MAAM,QAAQ,QAAQ;AAAA,QAChC,sBAAsB;AAAA,MAAA,CACvB;AAAA,IACH;AAAA,EAAA,CACD;AACH;"}
@@ -146,12 +146,6 @@ class MSAppClient {
146
146
  item
147
147
  );
148
148
  }
149
- for (let item of internalModule.normalPages) {
150
- this.pageManager.addNormalPage(item);
151
- }
152
- for (let item of internalModule.extendsPages) {
153
- this.pageManager.addExtendsPage(item);
154
- }
155
149
  dataTableComponents.push(internalModule.dataTableComponents);
156
150
  dataFormComponents.push(internalModule.dataFormComponents);
157
151
  dataFilterComponents.push(internalModule.dataFilterComponents);
@@ -179,6 +173,14 @@ class MSAppClient {
179
173
  });
180
174
  this.pageManager.init();
181
175
  this.pageManager.setMSAppCLient(this);
176
+ for (let internalModule of internalModules) {
177
+ for (let item of internalModule.normalPages) {
178
+ this.pageManager.addNormalPage(item);
179
+ }
180
+ for (let item of internalModule.extendsPages) {
181
+ this.pageManager.addExtendsPage(item);
182
+ }
183
+ }
182
184
  this.httpRequest.getInterceptors().response.use((config) => {
183
185
  var _a;
184
186
  if (config.data.code === 401) {
@@ -1 +1 @@
1
- {"version":3,"file":"MSAppClient.js","sources":["../../../src/core/MSAppClient.ts"],"sourcesContent":["import {\r\n createRouter,\r\n createWebHashHistory,\r\n Router as VueRouter,\r\n} from \"vue-router\";\r\nimport {\r\n ACCESS_TOKEN_HEADER,\r\n DVQueryable,\r\n HttpRequest,\r\n R,\r\n WebHttpRequest,\r\n X_ACCESS_TOKEN_HEADER,\r\n} from \"@maketribe/request\";\r\nimport { IComponents, Components, ComponentsCombine } from \"@maketribe/dm\";\r\nimport { I18n } from \"@maketribe/locale\";\r\n\r\nimport { Event, md5 } from \"@maketribe/utils\";\r\nimport { UserSession } from \"./UserSession\";\r\nimport { authBeforeEach } from \"../router-middleware\";\r\nimport { PageManager } from \"./PageManager\";\r\nimport { InternalMkModule, MkModule } from \"./MkModule\";\r\nimport { DataModelDefines } from \"./DataModelDefines\";\r\nimport { App } from \"vue\";\r\nimport { DATA_MODEL_NAME } from \"../constants\";\r\n\r\nexport type LoginResult = {\r\n account: string;\r\n email: string;\r\n nickName: string;\r\n avatarPath: string;\r\n};\r\n\r\nexport interface MSAppClientOptions {\r\n app: App;\r\n pageManager?: PageManager;\r\n projectName: string;\r\n httpRequest?: HttpRequest;\r\n origin: string;\r\n appID: string;\r\n logo?: string;\r\n locale?: string;\r\n vueRouter?: VueRouter;\r\n dataTableComponents?: IComponents;\r\n dataTableHeaderComponents?: IComponents;\r\n dataFormComponents?: IComponents;\r\n dataFilterComponents?: IComponents;\r\n whereFilterComponents?: IComponents;\r\n}\r\n\r\nexport class MSAppClient {\r\n static instance: MSAppClient | null = null;\r\n\r\n origin: string = \"\";\r\n\r\n private _options: Required<MSAppClientOptions>;\r\n\r\n app: App;\r\n\r\n projectName: string;\r\n\r\n logo: string;\r\n\r\n appID: string;\r\n\r\n userSession: UserSession | null = null;\r\n\r\n httpRequest: HttpRequest;\r\n\r\n ready: boolean = false;\r\n\r\n initd: boolean = false;\r\n\r\n pageManager: PageManager;\r\n\r\n modules: MkModule[] = [];\r\n\r\n /**\r\n * @deprecated\r\n * @description 使用 MSAppClient.instance.userSession.userInfo\r\n */\r\n get userInfo() {\r\n return this.userSession?.userInfo ?? null;\r\n }\r\n\r\n dataTableComponents: IComponents;\r\n dataTableHeaderComponents: IComponents;\r\n dataFormComponents: IComponents;\r\n dataFilterComponents: IComponents;\r\n whereFilterComponents: IComponents;\r\n i18n: I18n;\r\n\r\n vueRouter: VueRouter;\r\n\r\n beforeInitUserSessionEvent: Event<{ userSession: UserSession }> = new Event();\r\n\r\n userSessionChangeEvent: Event<{ userSession: UserSession | null }> =\r\n new Event();\r\n\r\n constructor(options: MSAppClientOptions) {\r\n this._options = this._normalizeOptions(options);\r\n\r\n this.app = options.app;\r\n\r\n this.appID = this._options.appID;\r\n\r\n this.logo = this._options.logo;\r\n\r\n this.projectName = options.projectName;\r\n\r\n this.dataTableComponents = this._options.dataTableComponents;\r\n this.dataTableHeaderComponents = this._options.dataTableHeaderComponents;\r\n this.dataFormComponents = this._options.dataFormComponents;\r\n this.dataFilterComponents = this._options.dataFilterComponents;\r\n this.whereFilterComponents = this._options.whereFilterComponents;\r\n this.i18n = I18n.instance;\r\n this.i18n.setCurrentLanguageName(this._options.locale);\r\n\r\n this.dataTableComponents = this._options.dataTableComponents;\r\n this.dataFormComponents = this._options.dataFormComponents;\r\n this.dataFilterComponents = this._options.dataFilterComponents;\r\n this.whereFilterComponents = this._options.whereFilterComponents;\r\n\r\n this.vueRouter = this._options.vueRouter;\r\n\r\n this.pageManager = this._options.pageManager;\r\n\r\n this.httpRequest = this._options.httpRequest;\r\n\r\n HttpRequest.appID = this.appID;\r\n HttpRequest.setDefaultHttpRequest(this.httpRequest);\r\n\r\n DVQueryable.setHttpRequest(this.httpRequest);\r\n }\r\n\r\n setUserSession(userSession: UserSession | null) {\r\n if (this.userSession) {\r\n this.userSession.dispose();\r\n }\r\n\r\n this.userSession = userSession;\r\n\r\n this.userSessionChangeEvent.emit({ userSession });\r\n }\r\n\r\n private _normalizeOptions(\r\n options: MSAppClientOptions\r\n ): Required<MSAppClientOptions> {\r\n return {\r\n app: options.app,\r\n appID: options.appID,\r\n projectName: options.projectName,\r\n httpRequest: options.httpRequest ?? new WebHttpRequest(),\r\n origin: options.origin,\r\n logo: options.logo || \"\",\r\n locale: options.locale || \"zh-cn\",\r\n vueRouter:\r\n options.vueRouter ??\r\n createRouter({\r\n history: createWebHashHistory(),\r\n routes: [],\r\n }),\r\n pageManager: options.pageManager ?? new PageManager(),\r\n dataTableComponents: options.dataTableComponents ?? new Components(),\r\n dataTableHeaderComponents:\r\n options.dataTableHeaderComponents ?? new Components(),\r\n dataFormComponents: options.dataFormComponents ?? new Components(),\r\n dataFilterComponents: options.dataFilterComponents ?? new Components(),\r\n whereFilterComponents: options.whereFilterComponents ?? new Components(),\r\n };\r\n }\r\n getI18n() {\r\n return this.i18n;\r\n }\r\n\r\n getOptions() {\r\n return this._options;\r\n }\r\n\r\n async loadCurrentUserSession(options?: {\r\n accessToken: string;\r\n xAccessToken: string;\r\n }) {\r\n const userSession = (this.userSession = new UserSession({\r\n msAppClient: this,\r\n ...options,\r\n }));\r\n this.userSession = null;\r\n\r\n this.beforeInitUserSessionEvent.emit({ userSession });\r\n const userSessionInitResult = await userSession.init();\r\n\r\n if (userSessionInitResult?.data.code !== 200) {\r\n userSession.dispose();\r\n return userSessionInitResult!;\r\n }\r\n\r\n this.setUserSession(userSession);\r\n }\r\n\r\n async init() {\r\n if (this.initd) {\r\n return;\r\n }\r\n\r\n const internalModules = this.modules.map((module) => {\r\n const internalModule = new InternalMkModule(this.app);\r\n\r\n module(internalModule);\r\n\r\n return internalModule;\r\n });\r\n\r\n const dataTableComponents = [];\r\n const dataFormComponents = [];\r\n const whereFilterComponents = [];\r\n const dataFilterComponents = [];\r\n\r\n for (let internalModule of internalModules) {\r\n for (let item of internalModule.dataTableClasses) {\r\n DataModelDefines.instance.registerDataTableDefine(\r\n (item as any)[DATA_MODEL_NAME],\r\n item\r\n );\r\n }\r\n\r\n for (let item of internalModule.dataFormClasses) {\r\n DataModelDefines.instance.registerDataFormDefine(\r\n (item as any)[DATA_MODEL_NAME],\r\n item\r\n );\r\n }\r\n\r\n for (let item of internalModule.dataTreeClasses) {\r\n DataModelDefines.instance.registerDataTreeDefine(\r\n (item as any)[DATA_MODEL_NAME],\r\n item\r\n );\r\n }\r\n\r\n for (let item of internalModule.normalPages) {\r\n this.pageManager.addNormalPage(item);\r\n }\r\n\r\n for (let item of internalModule.extendsPages) {\r\n this.pageManager.addExtendsPage(item);\r\n }\r\n\r\n dataTableComponents.push(internalModule.dataTableComponents);\r\n dataFormComponents.push(internalModule.dataFormComponents);\r\n dataFilterComponents.push(internalModule.dataFilterComponents);\r\n whereFilterComponents.push(internalModule.whereFilterComponents);\r\n }\r\n\r\n this.dataTableComponents = new ComponentsCombine({\r\n componentsList: [...dataTableComponents, this.dataTableComponents],\r\n });\r\n this.dataFormComponents = new ComponentsCombine({\r\n componentsList: [...dataFormComponents, this.dataFormComponents],\r\n });\r\n this.dataFilterComponents = new ComponentsCombine({\r\n componentsList: [...dataFilterComponents, this.dataFilterComponents],\r\n });\r\n this.whereFilterComponents = new ComponentsCombine({\r\n componentsList: [...whereFilterComponents, this.whereFilterComponents],\r\n });\r\n\r\n this.vueRouter.beforeEach(async (to, from, next) => {\r\n const route = await authBeforeEach(this, to, from);\r\n\r\n if (route) {\r\n next(route);\r\n return;\r\n }\r\n\r\n next();\r\n });\r\n\r\n this.pageManager.init();\r\n this.pageManager.setMSAppCLient(this);\r\n\r\n this.httpRequest.getInterceptors().response.use((config) => {\r\n if (config.data.code === 401) {\r\n this.userSession?.dispose();\r\n this.vueRouter.push({ name: \"login\" });\r\n }\r\n return config;\r\n });\r\n\r\n this.initd = true;\r\n }\r\n\r\n async login(username: string, password: string, code: string) {\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/ms/app/login\",\r\n method: \"POST\",\r\n data: {\r\n account: username,\r\n password: md5(`mkbl#${password}`),\r\n vCode: code,\r\n },\r\n });\r\n\r\n if (response.data.code === 200) {\r\n await this.loadCurrentUserSession({\r\n accessToken: response.headers[ACCESS_TOKEN_HEADER],\r\n xAccessToken: response.headers[X_ACCESS_TOKEN_HEADER],\r\n });\r\n }\r\n\r\n return response;\r\n }\r\n\r\n formatURL(url: string) {\r\n return url;\r\n }\r\n\r\n async resetPassword(username: string, code: string) {\r\n type LoginResult = {\r\n account: string;\r\n email: string;\r\n nickName: string;\r\n avatarPath: string;\r\n };\r\n\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/ms/app/reset-password\",\r\n method: \"POST\",\r\n data: { account: username, vCode: code },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n async logout() {\r\n this.setUserSession(null);\r\n }\r\n async changePassword(password: string, newPassword: string, vCode: string) {\r\n type LoginResult = {\r\n account: string;\r\n email: string;\r\n nickName: string;\r\n avatarPath: string;\r\n };\r\n\r\n const response = await this.httpRequest.request<R<LoginResult>>({\r\n url: \"/ms/app/modify-password\",\r\n method: \"POST\",\r\n data: {\r\n password: md5(`mkbl#${password}`),\r\n newPassword: md5(`mkbl#${newPassword}`),\r\n vCode\r\n },\r\n });\r\n\r\n return response;\r\n }\r\n\r\n addModule(module: MkModule) {\r\n this.modules.push(module);\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MSAppClient.js","sources":["../../../src/core/MSAppClient.ts"],"sourcesContent":["import {\n createRouter,\n createWebHashHistory,\n Router as VueRouter,\n} from \"vue-router\";\nimport {\n ACCESS_TOKEN_HEADER,\n DVQueryable,\n HttpRequest,\n R,\n WebHttpRequest,\n X_ACCESS_TOKEN_HEADER,\n} from \"@maketribe/request\";\nimport { IComponents, Components, ComponentsCombine } from \"@maketribe/dm\";\nimport { I18n } from \"@maketribe/locale\";\n\nimport { Event, md5 } from \"@maketribe/utils\";\nimport { UserSession } from \"./UserSession\";\nimport { authBeforeEach } from \"../router-middleware\";\nimport { PageManager } from \"./PageManager\";\nimport { InternalMkModule, MkModule } from \"./MkModule\";\nimport { DataModelDefines } from \"./DataModelDefines\";\nimport { App } from \"vue\";\nimport { DATA_MODEL_NAME } from \"../constants\";\n\nexport type LoginResult = {\n account: string;\n email: string;\n nickName: string;\n avatarPath: string;\n};\n\nexport interface MSAppClientOptions {\n app: App;\n pageManager?: PageManager;\n projectName: string;\n httpRequest?: HttpRequest;\n origin: string;\n appID: string;\n logo?: string;\n locale?: string;\n vueRouter?: VueRouter;\n dataTableComponents?: IComponents;\n dataTableHeaderComponents?: IComponents;\n dataFormComponents?: IComponents;\n dataFilterComponents?: IComponents;\n whereFilterComponents?: IComponents;\n}\n\nexport class MSAppClient {\n static instance: MSAppClient | null = null;\n\n origin: string = \"\";\n\n private _options: Required<MSAppClientOptions>;\n\n app: App;\n\n projectName: string;\n\n logo: string;\n\n appID: string;\n\n userSession: UserSession | null = null;\n\n httpRequest: HttpRequest;\n\n ready: boolean = false;\n\n initd: boolean = false;\n\n pageManager: PageManager;\n\n modules: MkModule[] = [];\n\n /**\n * @deprecated\n * @description 使用 MSAppClient.instance.userSession.userInfo\n */\n get userInfo() {\n return this.userSession?.userInfo ?? null;\n }\n\n dataTableComponents: IComponents;\n dataTableHeaderComponents: IComponents;\n dataFormComponents: IComponents;\n dataFilterComponents: IComponents;\n whereFilterComponents: IComponents;\n i18n: I18n;\n\n vueRouter: VueRouter;\n\n beforeInitUserSessionEvent: Event<{ userSession: UserSession }> = new Event();\n\n userSessionChangeEvent: Event<{ userSession: UserSession | null }> =\n new Event();\n\n constructor(options: MSAppClientOptions) {\n this._options = this._normalizeOptions(options);\n\n this.app = options.app;\n\n this.appID = this._options.appID;\n\n this.logo = this._options.logo;\n\n this.projectName = options.projectName;\n\n this.dataTableComponents = this._options.dataTableComponents;\n this.dataTableHeaderComponents = this._options.dataTableHeaderComponents;\n this.dataFormComponents = this._options.dataFormComponents;\n this.dataFilterComponents = this._options.dataFilterComponents;\n this.whereFilterComponents = this._options.whereFilterComponents;\n this.i18n = I18n.instance;\n this.i18n.setCurrentLanguageName(this._options.locale);\n\n this.dataTableComponents = this._options.dataTableComponents;\n this.dataFormComponents = this._options.dataFormComponents;\n this.dataFilterComponents = this._options.dataFilterComponents;\n this.whereFilterComponents = this._options.whereFilterComponents;\n\n this.vueRouter = this._options.vueRouter;\n\n this.pageManager = this._options.pageManager;\n\n this.httpRequest = this._options.httpRequest;\n\n HttpRequest.appID = this.appID;\n HttpRequest.setDefaultHttpRequest(this.httpRequest);\n\n DVQueryable.setHttpRequest(this.httpRequest);\n }\n\n setUserSession(userSession: UserSession | null) {\n if (this.userSession) {\n this.userSession.dispose();\n }\n\n this.userSession = userSession;\n\n this.userSessionChangeEvent.emit({ userSession });\n }\n\n private _normalizeOptions(\n options: MSAppClientOptions\n ): Required<MSAppClientOptions> {\n return {\n app: options.app,\n appID: options.appID,\n projectName: options.projectName,\n httpRequest: options.httpRequest ?? new WebHttpRequest(),\n origin: options.origin,\n logo: options.logo || \"\",\n locale: options.locale || \"zh-cn\",\n vueRouter:\n options.vueRouter ??\n createRouter({\n history: createWebHashHistory(),\n routes: [],\n }),\n pageManager: options.pageManager ?? new PageManager(),\n dataTableComponents: options.dataTableComponents ?? new Components(),\n dataTableHeaderComponents:\n options.dataTableHeaderComponents ?? new Components(),\n dataFormComponents: options.dataFormComponents ?? new Components(),\n dataFilterComponents: options.dataFilterComponents ?? new Components(),\n whereFilterComponents: options.whereFilterComponents ?? new Components(),\n };\n }\n getI18n() {\n return this.i18n;\n }\n\n getOptions() {\n return this._options;\n }\n\n async loadCurrentUserSession(options?: {\n accessToken: string;\n xAccessToken: string;\n }) {\n const userSession = (this.userSession = new UserSession({\n msAppClient: this,\n ...options,\n }));\n this.userSession = null;\n\n this.beforeInitUserSessionEvent.emit({ userSession });\n const userSessionInitResult = await userSession.init();\n\n if (userSessionInitResult?.data.code !== 200) {\n userSession.dispose();\n return userSessionInitResult!;\n }\n\n this.setUserSession(userSession);\n }\n\n async init() {\n if (this.initd) {\n return;\n }\n\n const internalModules = this.modules.map((module) => {\n const internalModule = new InternalMkModule(this.app);\n\n module(internalModule);\n\n return internalModule;\n });\n\n const dataTableComponents = [];\n const dataFormComponents = [];\n const whereFilterComponents = [];\n const dataFilterComponents = [];\n\n for (let internalModule of internalModules) {\n for (let item of internalModule.dataTableClasses) {\n DataModelDefines.instance.registerDataTableDefine(\n (item as any)[DATA_MODEL_NAME],\n item\n );\n }\n\n for (let item of internalModule.dataFormClasses) {\n DataModelDefines.instance.registerDataFormDefine(\n (item as any)[DATA_MODEL_NAME],\n item\n );\n }\n\n for (let item of internalModule.dataTreeClasses) {\n DataModelDefines.instance.registerDataTreeDefine(\n (item as any)[DATA_MODEL_NAME],\n item\n );\n }\n\n dataTableComponents.push(internalModule.dataTableComponents);\n dataFormComponents.push(internalModule.dataFormComponents);\n dataFilterComponents.push(internalModule.dataFilterComponents);\n whereFilterComponents.push(internalModule.whereFilterComponents);\n }\n\n this.dataTableComponents = new ComponentsCombine({\n componentsList: [...dataTableComponents, this.dataTableComponents],\n });\n this.dataFormComponents = new ComponentsCombine({\n componentsList: [...dataFormComponents, this.dataFormComponents],\n });\n this.dataFilterComponents = new ComponentsCombine({\n componentsList: [...dataFilterComponents, this.dataFilterComponents],\n });\n this.whereFilterComponents = new ComponentsCombine({\n componentsList: [...whereFilterComponents, this.whereFilterComponents],\n });\n\n this.vueRouter.beforeEach(async (to, from, next) => {\n const route = await authBeforeEach(this, to, from);\n\n if (route) {\n next(route);\n return;\n }\n\n next();\n });\n\n this.pageManager.init();\n this.pageManager.setMSAppCLient(this);\n\n for (let internalModule of internalModules) {\n for (let item of internalModule.normalPages) {\n this.pageManager.addNormalPage(item);\n }\n\n for (let item of internalModule.extendsPages) {\n this.pageManager.addExtendsPage(item);\n }\n }\n\n this.httpRequest.getInterceptors().response.use((config) => {\n if (config.data.code === 401) {\n this.userSession?.dispose();\n this.vueRouter.push({ name: \"login\" });\n }\n return config;\n });\n\n this.initd = true;\n }\n\n async login(username: string, password: string, code: string) {\n const response = await this.httpRequest.request<R<LoginResult>>({\n url: \"/ms/app/login\",\n method: \"POST\",\n data: {\n account: username,\n password: md5(`mkbl#${password}`),\n vCode: code,\n },\n });\n\n if (response.data.code === 200) {\n await this.loadCurrentUserSession({\n accessToken: response.headers[ACCESS_TOKEN_HEADER],\n xAccessToken: response.headers[X_ACCESS_TOKEN_HEADER],\n });\n }\n\n return response;\n }\n\n formatURL(url: string) {\n return url;\n }\n\n async resetPassword(username: string, code: string) {\n type LoginResult = {\n account: string;\n email: string;\n nickName: string;\n avatarPath: string;\n };\n\n const response = await this.httpRequest.request<R<LoginResult>>({\n url: \"/ms/app/reset-password\",\n method: \"POST\",\n data: { account: username, vCode: code },\n });\n\n return response;\n }\n\n async logout() {\n this.setUserSession(null);\n }\n async changePassword(password: string, newPassword: string, vCode: string) {\n type LoginResult = {\n account: string;\n email: string;\n nickName: string;\n avatarPath: string;\n };\n\n const response = await this.httpRequest.request<R<LoginResult>>({\n url: \"/ms/app/modify-password\",\n method: \"POST\",\n data: {\n password: md5(`mkbl#${password}`),\n newPassword: md5(`mkbl#${newPassword}`),\n vCode,\n },\n });\n\n return response;\n }\n\n addModule(module: MkModule) {\n this.modules.push(module);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PageManager.js","sources":["../../../src/core/PageManager.ts"],"sourcesContent":["import { RouteRecordRaw } from \"vue-router\";\r\nimport type { MSAppClient } from \"./MSAppClient\";\r\nimport { Disposable, Event, createDisposable } from \"@maketribe/utils\";\r\n\r\nexport class PageManager {\r\n normalPages: RouteRecordRaw[] = [];\r\n\r\n extendsPages: RouteRecordRaw[] = [];\r\n\r\n msAppClient: MSAppClient | null = null;\r\n\r\n msAppClientChangeEvent: Event<{ msAppClient: MSAppClient | null }> =\r\n new Event();\r\n\r\n msAppClientDisposable: Disposable | null = null;\r\n\r\n setMSAppCLient(msAppClient: MSAppClient | null) {\r\n this.msAppClientDisposable?.dispose();\r\n\r\n this.msAppClientDisposable = new Disposable();\r\n\r\n this.msAppClient = msAppClient;\r\n\r\n this.msAppClientChangeEvent.emit({ msAppClient });\r\n }\r\n\r\n addNormalPage(normalPage: RouteRecordRaw) {\r\n const index = this.normalPages.findIndex(\r\n (item) => item.name === normalPage.name\r\n );\r\n\r\n if (index > -1) {\r\n this.normalPages.splice(index, 1);\r\n }\r\n\r\n this.normalPages.push(normalPage);\r\n }\r\n\r\n addExtendsPage(extendsPage: RouteRecordRaw) {\r\n const index = this.extendsPages.findIndex(\r\n (item) => item.name === extendsPage.name\r\n );\r\n\r\n if (index > -1) {\r\n this.extendsPages.splice(index, 1);\r\n }\r\n\r\n this.extendsPages.push(extendsPage);\r\n }\r\n\r\n init() {\r\n this.addNormalPage({\r\n name: \"mk-ms-layout\",\r\n path: \"/\",\r\n component: () => import(\"../page/index.vue\"),\r\n });\r\n\r\n this.addNormalPage({\r\n name: \"login\",\r\n path: \"/login\",\r\n meta: {\r\n isAuthorization: false,\r\n },\r\n component: () => import(\"../page/login/index.vue\"),\r\n });\r\n\r\n this.addNormalPage({\r\n name: \"signup\",\r\n path: \"/signup\",\r\n meta: {\r\n isAuthorization: false,\r\n },\r\n component: () => import(\"../page/signup/index.vue\"),\r\n });\r\n\r\n // this.addExtendsPage({\r\n // name: \"dv/ms-material/list\",\r\n // path: \"/sys/materials\",\r\n // component: () => import(\"../page/index/material/index.vue\"),\r\n // meta: { name: \"ms-material\" },\r\n // });\r\n\r\n // this.addExtendsPage({\r\n // name: \"dv/ms-member/list\",\r\n // path: \"/sys/members\",\r\n // component: () => import(\"../page/index/dv/ms-member/index.vue\"),\r\n // meta: { name: \"ms-member\" },\r\n // });\r\n\r\n // this.addExtendsPage({\r\n // name: \"dv/ms-role/single/list/dialog\",\r\n // path: \"/sys/roles\",\r\n // component: () => import(\"../page/index/dv/ms-role/index.vue\"),\r\n // meta: { name: \"ms-role\" },\r\n // });\r\n\r\n // this.addExtendsPage({\r\n // name: \"dv/local-log/single/tree/dialog\",\r\n // path: \"/log/local\",\r\n // component: () => import(\"../page/index/dv/local-log/index.vue\"),\r\n // meta: { name: \"local-log\" },\r\n // });\r\n\r\n this.msAppClientChangeEvent.on(({ msAppClient }) => {\r\n if (!msAppClient) {\r\n return;\r\n }\r\n\r\n const vueRouter = msAppClient.vueRouter;\r\n const vueRoutes = vueRouter.getRoutes();\r\n\r\n const addedNormalPageNames: string[] = [];\r\n\r\n for (const normalPage of this.normalPages) {\r\n const vueRoute = vueRoutes.find(\r\n (vueRoute) => vueRoute.name === normalPage.name\r\n );\r\n\r\n if (!vueRoute) {\r\n addedNormalPageNames.push(normalPage.name as string);\r\n vueRouter.addRoute(normalPage);\r\n }\r\n }\r\n\r\n this.msAppClientDisposable?.register(\r\n createDisposable(() => {\r\n for (const addedNormalPageName of addedNormalPageNames) {\r\n vueRouter.removeRoute(addedNormalPageName);\r\n }\r\n })\r\n );\r\n\r\n this.msAppClientDisposable?.register(\r\n msAppClient.beforeInitUserSessionEvent.on(({ userSession }) => {\r\n if (!userSession) {\r\n return;\r\n }\r\n\r\n userSession.beforeInitRouterEvent.on(() => {\r\n const router = userSession.router;\r\n\r\n const addedExtendsPageNames: string[] = [];\r\n\r\n for (const extendsPage of this.extendsPages) {\r\n const routeInfo = router.getRouteByName(\r\n extendsPage.name as string\r\n );\r\n\r\n if (!routeInfo) {\r\n continue;\r\n }\r\n\r\n const vueRoute = vueRoutes.find(\r\n (vueRoute) => vueRoute.name === extendsPage.name\r\n );\r\n\r\n if (!vueRoute) {\r\n extendsPage.path = routeInfo.route || extendsPage.path;\r\n addedExtendsPageNames.push(extendsPage.name as string);\r\n vueRouter.addRoute(\"mk-ms-layout\", extendsPage);\r\n }\r\n }\r\n\r\n if (!this.extendsPages.find((page) => page.name === \"notFound\")) {\r\n this.addExtendsPage({\r\n name: \"notFound\",\r\n // path: \":pathMatch(.*)*\",\r\n path: \"\",\r\n component: () => import(\"../page/index/404.vue\"),\r\n });\r\n }\r\n\r\n userSession.register(\r\n createDisposable(() => {\r\n for (const addedExtendsPageName of addedExtendsPageNames) {\r\n vueRouter.removeRoute(addedExtendsPageName);\r\n }\r\n })\r\n );\r\n });\r\n })\r\n );\r\n });\r\n }\r\n}\r\n"],"names":["vueRoute"],"mappings":"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"}
1
+ {"version":3,"file":"PageManager.js","sources":["../../../src/core/PageManager.ts"],"sourcesContent":["import { RouteRecordRaw } from \"vue-router\";\nimport type { MSAppClient } from \"./MSAppClient\";\nimport { Disposable, Event, createDisposable } from \"@maketribe/utils\";\n\nexport class PageManager {\n normalPages: RouteRecordRaw[] = [];\n\n extendsPages: RouteRecordRaw[] = [];\n\n msAppClient: MSAppClient | null = null;\n\n msAppClientChangeEvent: Event<{ msAppClient: MSAppClient | null }> =\n new Event();\n\n msAppClientDisposable: Disposable | null = null;\n\n setMSAppCLient(msAppClient: MSAppClient | null) {\n this.msAppClientDisposable?.dispose();\n\n this.msAppClientDisposable = new Disposable();\n\n this.msAppClient = msAppClient;\n\n this.msAppClientChangeEvent.emit({ msAppClient });\n }\n\n addNormalPage(normalPage: RouteRecordRaw) {\n const index = this.normalPages.findIndex(\n (item) => item.name === normalPage.name\n );\n\n if (index > -1) {\n this.normalPages.splice(index, 1);\n }\n\n this.normalPages.push(normalPage);\n }\n\n addExtendsPage(extendsPage: RouteRecordRaw) {\n const index = this.extendsPages.findIndex(\n (item) => item.name === extendsPage.name\n );\n\n if (index > -1) {\n this.extendsPages.splice(index, 1);\n }\n\n this.extendsPages.push(extendsPage);\n }\n\n init() {\n this.addNormalPage({\n name: \"mk-ms-layout\",\n path: \"/\",\n component: () => import(\"../page/index.vue\"),\n });\n\n this.addNormalPage({\n name: \"login\",\n path: \"/login\",\n meta: {\n isAuthorization: false,\n },\n component: () => import(\"../page/login/index.vue\"),\n });\n\n this.addNormalPage({\n name: \"signup\",\n path: \"/signup\",\n meta: {\n isAuthorization: false,\n },\n component: () => import(\"../page/signup/index.vue\"),\n });\n\n this.msAppClientChangeEvent.on(({ msAppClient }) => {\n if (!msAppClient) {\n return;\n }\n\n const vueRouter = msAppClient.vueRouter;\n const vueRoutes = vueRouter.getRoutes();\n\n const addedNormalPageNames: string[] = [];\n\n for (const normalPage of this.normalPages) {\n const vueRoute = vueRoutes.find(\n (vueRoute) => vueRoute.name === normalPage.name\n );\n\n if (!vueRoute) {\n addedNormalPageNames.push(normalPage.name as string);\n vueRouter.addRoute(normalPage);\n }\n }\n\n this.msAppClientDisposable?.register(\n createDisposable(() => {\n for (const addedNormalPageName of addedNormalPageNames) {\n vueRouter.removeRoute(addedNormalPageName);\n }\n })\n );\n\n this.msAppClientDisposable?.register(\n msAppClient.beforeInitUserSessionEvent.on(({ userSession }) => {\n if (!userSession) {\n return;\n }\n\n userSession.beforeInitRouterEvent.on(() => {\n const router = userSession.router;\n\n const addedExtendsPageNames: string[] = [];\n\n for (const extendsPage of this.extendsPages) {\n const routeInfo = router.getRouteByName(\n extendsPage.name as string\n );\n\n if (!routeInfo) {\n continue;\n }\n\n const vueRoute = vueRoutes.find(\n (vueRoute) => vueRoute.name === extendsPage.name\n );\n\n if (!vueRoute) {\n extendsPage.path = routeInfo.route || extendsPage.path;\n addedExtendsPageNames.push(extendsPage.name as string);\n vueRouter.addRoute(\"mk-ms-layout\", extendsPage);\n }\n }\n\n if (!this.extendsPages.find((page) => page.name === \"notFound\")) {\n this.addExtendsPage({\n name: \"notFound\",\n // path: \":pathMatch(.*)*\",\n path: \"\",\n component: () => import(\"../page/index/404.vue\"),\n });\n }\n\n userSession.register(\n createDisposable(() => {\n for (const addedExtendsPageName of addedExtendsPageNames) {\n vueRouter.removeRoute(addedExtendsPageName);\n }\n })\n );\n });\n })\n );\n });\n }\n}\n"],"names":["vueRoute"],"mappings":"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"}
@@ -75,7 +75,6 @@ class MsMaterialMan {
75
75
  this.materialTable.load();
76
76
  });
77
77
  });
78
- window.materialMan = this;
79
78
  await this.materialTable.init();
80
79
  this.materialTypes = this.materialTable.getMaterialTypes();
81
80
  if (this.materialTypes.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"MsMaterialMan.js","sources":["../../../../../../src/modules/ms/dataviews/ms-material/MsMaterialMan.ts"],"sourcesContent":["import { Group } from \"@maketribe/request\";\nimport { IComponents, WhereFilter } from \"@maketribe/dm\";\nimport { MsMaterialTable, MsMaterialType } from \"./MsMaterialTable\";\nimport { MsMaterialGroupNode, MsMaterialGroupTree } from \"./ms-material-group\";\nimport { UploadError, WebFileUpload, HttpRequest } from \"@maketribe/request\";\nimport { MsMaterialForm } from \"./MsMaterialForm\";\nimport { MsMaterialComponents } from \"./MsMaterialComponents\";\n\nexport type MsMaterialManOptions = {\n components?: IComponents;\n httpRequest?: HttpRequest;\n};\n\nexport class MsMaterialMan {\n // currentMaterialGroupId: MaterialGroup[\"id\"] | null;\n currentMaterialTypeId: MsMaterialType[\"value\"] | null;\n\n materialTypes: MsMaterialType[] = [];\n materialTypeValues: MsMaterialType[\"value\"][] = [];\n\n materialGroupTree: MsMaterialGroupTree;\n materialTable: MsMaterialTable;\n materialForm: MsMaterialForm;\n\n protected initing: boolean = false;\n protected initd: boolean = false;\n\n upload: WebFileUpload;\n\n protected materialConditionGroup: Group;\n\n get currentMaterialGroupId() {\n return this.materialGroupTree.getCurrentNode()?.data?.id ?? null;\n }\n\n get currentMaterialType() {\n return (\n this.materialTypes.find(\n (materialType) => materialType.value === this.currentMaterialTypeId\n ) ?? null\n );\n }\n\n constructor(options: MsMaterialManOptions) {\n this.materialGroupTree = new MsMaterialGroupTree();\n // this.materialGroupTable = new MaterialGroupTable();\n this.materialTable = new MsMaterialTable({\n materialComponents: options.components ?? new MsMaterialComponents(),\n });\n this.materialForm = new MsMaterialForm();\n\n this.materialConditionGroup = new Group();\n\n this.materialTable.useCondition((defaultGroup) => {\n defaultGroup.addGroup(this.materialConditionGroup);\n });\n\n this.upload = new WebFileUpload({\n filters: [\n (file) => {\n if (!this.currentMaterialType) {\n throw new UploadError(\"不能上传文件,素材类型无效\");\n }\n\n if (this.currentMaterialType.limit * 1024 * 1024 < file.size) {\n throw new UploadError(\"文件太大不能上传\");\n }\n },\n ],\n httpRequest: options.httpRequest,\n });\n\n this.currentMaterialTypeId = null;\n }\n\n async init() {\n if (this.initing || this.initd) {\n return;\n }\n this.initing = true;\n\n this.upload.uploadEvent.on(({ uploadItem }) => {\n uploadItem.completeEvent.once(async () => {\n await this.materialForm.addRecord();\n\n this.materialForm.setData({\n id: \"\",\n materialGroupId: this.currentMaterialGroupId,\n type: this.currentMaterialTypeId!,\n desc: uploadItem.payload.name,\n path: uploadItem.response!.data.data.path,\n });\n\n const submitResult = await this.materialForm.submit();\n\n if (submitResult.data.code !== 200) {\n return;\n }\n\n this.materialTable.load();\n });\n });\n\n (window as any).materialMan = this;\n\n await this.materialTable.init();\n\n this.materialTypes = this.materialTable.getMaterialTypes();\n\n if (this.materialTypes.length) {\n this.currentMaterialTypeId = this.materialTypes[0].value;\n }\n\n this.attachMaterialTableCondition();\n\n this.initing = false;\n this.initd = true;\n }\n\n setAllowAccessMaterialTypeValues(\n materialTypeValues: MsMaterialType[\"value\"][]\n ) {\n this.materialTypeValues = materialTypeValues;\n }\n\n getMaterialType() {\n if (!this.materialTypeValues.length) {\n return this.materialTypes;\n }\n\n return this.materialTypes.filter((materialType) =>\n this.materialTypeValues.includes(materialType.value)\n );\n }\n\n setCurrentMaterialGroup(materialGroup: MsMaterialGroupNode | null) {\n this.materialGroupTree.setCurrentNode(\n materialGroup\n ? this.materialGroupTree.findDataTreeNode(materialGroup)\n : null\n );\n\n this.attachMaterialTableCondition();\n }\n\n setCurrentMaterialTypeId(materialTypeId: MsMaterialType[\"value\"] | null) {\n this.currentMaterialTypeId = materialTypeId;\n\n this.attachMaterialTableCondition();\n }\n\n protected attachMaterialTableCondition() {\n this.materialConditionGroup.clear();\n\n if (this.currentMaterialGroupId) {\n this.materialConditionGroup.addCondition(\n \"materialGroupId\",\n \"=\",\n this.currentMaterialGroupId\n );\n }\n\n if (this.currentMaterialTypeId) {\n this.materialConditionGroup.addCondition(\n \"type\",\n \"=\",\n this.currentMaterialTypeId\n );\n }\n\n this.materialTable.load();\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MsMaterialMan.js","sources":["../../../../../../src/modules/ms/dataviews/ms-material/MsMaterialMan.ts"],"sourcesContent":["import { Group } from \"@maketribe/request\";\nimport { IComponents, WhereFilter } from \"@maketribe/dm\";\nimport { MsMaterialTable, MsMaterialType } from \"./MsMaterialTable\";\nimport { MsMaterialGroupNode, MsMaterialGroupTree } from \"./ms-material-group\";\nimport { UploadError, WebFileUpload, HttpRequest } from \"@maketribe/request\";\nimport { MsMaterialForm } from \"./MsMaterialForm\";\nimport { MsMaterialComponents } from \"./MsMaterialComponents\";\n\nexport type MsMaterialManOptions = {\n components?: IComponents;\n httpRequest?: HttpRequest;\n};\n\nexport class MsMaterialMan {\n // currentMaterialGroupId: MaterialGroup[\"id\"] | null;\n currentMaterialTypeId: MsMaterialType[\"value\"] | null;\n\n materialTypes: MsMaterialType[] = [];\n materialTypeValues: MsMaterialType[\"value\"][] = [];\n\n materialGroupTree: MsMaterialGroupTree;\n materialTable: MsMaterialTable;\n materialForm: MsMaterialForm;\n\n protected initing: boolean = false;\n protected initd: boolean = false;\n\n upload: WebFileUpload;\n\n protected materialConditionGroup: Group;\n\n get currentMaterialGroupId() {\n return this.materialGroupTree.getCurrentNode()?.data?.id ?? null;\n }\n\n get currentMaterialType() {\n return (\n this.materialTypes.find(\n (materialType) => materialType.value === this.currentMaterialTypeId\n ) ?? null\n );\n }\n\n constructor(options: MsMaterialManOptions) {\n this.materialGroupTree = new MsMaterialGroupTree();\n // this.materialGroupTable = new MaterialGroupTable();\n this.materialTable = new MsMaterialTable({\n materialComponents: options.components ?? new MsMaterialComponents(),\n });\n this.materialForm = new MsMaterialForm();\n\n this.materialConditionGroup = new Group();\n\n this.materialTable.useCondition((defaultGroup) => {\n defaultGroup.addGroup(this.materialConditionGroup);\n });\n\n this.upload = new WebFileUpload({\n filters: [\n (file) => {\n if (!this.currentMaterialType) {\n throw new UploadError(\"不能上传文件,素材类型无效\");\n }\n\n if (this.currentMaterialType.limit * 1024 * 1024 < file.size) {\n throw new UploadError(\"文件太大不能上传\");\n }\n },\n ],\n httpRequest: options.httpRequest,\n });\n\n this.currentMaterialTypeId = null;\n }\n\n async init() {\n if (this.initing || this.initd) {\n return;\n }\n this.initing = true;\n\n this.upload.uploadEvent.on(({ uploadItem }) => {\n uploadItem.completeEvent.once(async () => {\n await this.materialForm.addRecord();\n\n this.materialForm.setData({\n id: \"\",\n materialGroupId: this.currentMaterialGroupId,\n type: this.currentMaterialTypeId!,\n desc: uploadItem.payload.name,\n path: uploadItem.response!.data.data.path,\n });\n\n const submitResult = await this.materialForm.submit();\n\n if (submitResult.data.code !== 200) {\n return;\n }\n\n this.materialTable.load();\n });\n });\n\n await this.materialTable.init();\n\n this.materialTypes = this.materialTable.getMaterialTypes();\n\n if (this.materialTypes.length) {\n this.currentMaterialTypeId = this.materialTypes[0].value;\n }\n\n this.attachMaterialTableCondition();\n\n this.initing = false;\n this.initd = true;\n }\n\n setAllowAccessMaterialTypeValues(\n materialTypeValues: MsMaterialType[\"value\"][]\n ) {\n this.materialTypeValues = materialTypeValues;\n }\n\n getMaterialType() {\n if (!this.materialTypeValues.length) {\n return this.materialTypes;\n }\n\n return this.materialTypes.filter((materialType) =>\n this.materialTypeValues.includes(materialType.value)\n );\n }\n\n setCurrentMaterialGroup(materialGroup: MsMaterialGroupNode | null) {\n this.materialGroupTree.setCurrentNode(\n materialGroup\n ? this.materialGroupTree.findDataTreeNode(materialGroup)\n : null\n );\n\n this.attachMaterialTableCondition();\n }\n\n setCurrentMaterialTypeId(materialTypeId: MsMaterialType[\"value\"] | null) {\n this.currentMaterialTypeId = materialTypeId;\n\n this.attachMaterialTableCondition();\n }\n\n protected attachMaterialTableCondition() {\n this.materialConditionGroup.clear();\n\n if (this.currentMaterialGroupId) {\n this.materialConditionGroup.addCondition(\n \"materialGroupId\",\n \"=\",\n this.currentMaterialGroupId\n );\n }\n\n if (this.currentMaterialTypeId) {\n this.materialConditionGroup.addCondition(\n \"type\",\n \"=\",\n this.currentMaterialTypeId\n );\n }\n\n this.materialTable.load();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MsMenuTree.js","sources":["../../../../../../src/modules/ms/dataviews/ms-menu/MsMenuTree.ts"],"sourcesContent":["import {\n DataTableOptions,\n DataTree,\n DataTreeNode,\n TableActionColumn,\n TableColumn,\n} from \"@maketribe/dm\";\nimport type { MsMenuItem } from \"./MsMenuForm\";\nimport { DATA_MODEL_NAME, MenuType } from \"../../../../constants\";\nimport { MODULE_NAME } from \"../../constants\";\n\nexport type MsMenuItemNode = MsMenuItem & { children: MsMenuItemNode[] };\n\nexport class MsMenuTree extends DataTree<MsMenuItemNode> {\n static [DATA_MODEL_NAME]: string = \"ms-menu\";\n\n constructor(options: Omit<DataTableOptions, \"name\"> = {}) {\n super({\n name: MsMenuTree[DATA_MODEL_NAME],\n moduleName: MODULE_NAME,\n sortFieldName: \"sort\",\n ...options,\n });\n }\n\n protected async initialize() {\n await super.initialize();\n\n this.setColumns([\n new TableColumn({ name: \"data.title\", label: \"菜单描述\", align: \"left\" }),\n new TableColumn({\n name: \"data.type\",\n width: \"100px\",\n label: \"菜单类型\",\n componentInfo: \"MKColumnObjectMappingText\",\n componentProps: {\n mapping: {\n [MenuType.Container]: \"菜单组\",\n [MenuType.Menu]: \"菜单\",\n [MenuType.SystemSettings]: \"系统设置\",\n },\n },\n }),\n new TableActionColumn(),\n ]);\n }\n\n formatItem(item: MsMenuItemNode): MsMenuItemNode {\n item.type += \"\";\n item.children = item.children || [];\n\n return item;\n }\n\n public nodeHasChildren(node: DataTreeNode<MsMenuItemNode>): boolean {\n return ([MenuType.Container, MenuType.SystemSettings] as string[]).includes(\n node.data?.type as string\n );\n }\n\n async load(params?: Record<string, any>) {\n return super.loadAll(params);\n }\n}\n"],"names":["_a"],"mappings":";;;;;;;;AAaO,MAAM,cAAN,MAAM,qBAAmB,eACtB,sBADsB,IAAyB;AAAA,EAGvD,YAAY,UAA0C,IAAI;AAClD,UAAA;AAAA,MACJ,MAAM,YAAW,eAAe;AAAA,MAChC,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,GAAG;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,MAAgB,aAAa;AAC3B,UAAM,MAAM;AAEZ,SAAK,WAAW;AAAA,MACd,IAAI,YAAY,EAAE,MAAM,cAAc,OAAO,QAAQ,OAAO,QAAQ;AAAA,MACpE,IAAI,YAAY;AAAA,QACd,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,eAAe;AAAA,QACf,gBAAgB;AAAA,UACd,SAAS;AAAA,YACP,CAAC,SAAS,SAAS,GAAG;AAAA,YACtB,CAAC,SAAS,IAAI,GAAG;AAAA,YACjB,CAAC,SAAS,cAAc,GAAG;AAAA,UAC7B;AAAA,QACF;AAAA,MAAA,CACD;AAAA,MACD,IAAI,kBAAkB;AAAA,IAAA,CACvB;AAAA,EACH;AAAA,EAEA,WAAW,MAAsC;AAC/C,SAAK,QAAQ;AACR,SAAA,WAAW,KAAK,YAAY,CAAA;AAE1B,WAAA;AAAA,EACT;AAAA,EAEO,gBAAgB,MAA6C;;AAClE,WAAQ,CAAC,SAAS,WAAW,SAAS,cAAc,EAAe;AAAA,OACjEA,MAAA,KAAK,SAAL,gBAAAA,IAAW;AAAA,IAAA;AAAA,EAEf;AAAA,EAEA,MAAM,KAAK,QAA8B;AAChC,WAAA,MAAM,QAAQ,MAAM;AAAA,EAC7B;AACF;AAjDE,cADW,aACH,IAA2B;AAD9B,IAAM,aAAN;"}
1
+ {"version":3,"file":"MsMenuTree.js","sources":["../../../../../../src/modules/ms/dataviews/ms-menu/MsMenuTree.ts"],"sourcesContent":["import {\n DataTableOptions,\n DataTree,\n DataTreeNode,\n TableActionColumn,\n TableColumn,\n} from \"@maketribe/dm\";\nimport type { MsMenuItem } from \"./MsMenuForm\";\nimport { DATA_MODEL_NAME, MenuType } from \"../../../../constants\";\nimport { MODULE_NAME } from \"../../constants\";\n\nexport type MsMenuItemNode = MsMenuItem & {\n children: MsMenuItemNode[];\n};\n\nexport class MsMenuTree extends DataTree<MsMenuItemNode> {\n static [DATA_MODEL_NAME]: string = \"ms-menu\";\n\n constructor(options: Omit<DataTableOptions, \"name\"> = {}) {\n super({\n name: MsMenuTree[DATA_MODEL_NAME],\n moduleName: MODULE_NAME,\n sortFieldName: \"sort\",\n ...options,\n });\n }\n\n protected async initialize() {\n await super.initialize();\n\n this.setColumns([\n new TableColumn({ name: \"data.title\", label: \"菜单描述\", align: \"left\" }),\n new TableColumn({\n name: \"data.type\",\n width: \"100px\",\n label: \"菜单类型\",\n componentInfo: \"MKColumnObjectMappingText\",\n componentProps: {\n mapping: {\n [MenuType.Container]: \"菜单组\",\n [MenuType.Menu]: \"菜单\",\n [MenuType.SystemSettings]: \"系统设置\",\n },\n },\n }),\n new TableActionColumn(),\n ]);\n }\n\n formatItem(item: MsMenuItemNode): MsMenuItemNode {\n item.type += \"\";\n item.children = item.children || [];\n\n // item.targetUrl = item.url || \"\";\n\n // if (!item.targetUrl) {\n // const route = item.routes.find((route) => route.id === item.routeId);\n // item.targetUrl = route?.route || \"\";\n\n // if (item.targetUrl) {\n\n // }\n\n // if (!item.targetUrl && route) {\n // const match = route.name.match(/^dv\\/([^/]+)\\/(edit|.+)$/i);\n\n // if (match) {\n // item.targetUrl =\n // match[2] === \"edit\" ? `/dv/${match[1]}/edit` : `/dv/${match[1]}`;\n // }\n // }\n // }\n\n return item;\n }\n\n public nodeHasChildren(node: DataTreeNode<MsMenuItemNode>): boolean {\n return ([MenuType.Container, MenuType.SystemSettings] as string[]).includes(\n node.data?.type as string\n );\n }\n\n async load(params?: Record<string, any>) {\n return super.loadAll(params);\n }\n}\n"],"names":["_a"],"mappings":";;;;;;;;AAeO,MAAM,cAAN,MAAM,qBAAmB,eACtB,sBADsB,IAAyB;AAAA,EAGvD,YAAY,UAA0C,IAAI;AAClD,UAAA;AAAA,MACJ,MAAM,YAAW,eAAe;AAAA,MAChC,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,GAAG;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,MAAgB,aAAa;AAC3B,UAAM,MAAM;AAEZ,SAAK,WAAW;AAAA,MACd,IAAI,YAAY,EAAE,MAAM,cAAc,OAAO,QAAQ,OAAO,QAAQ;AAAA,MACpE,IAAI,YAAY;AAAA,QACd,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,eAAe;AAAA,QACf,gBAAgB;AAAA,UACd,SAAS;AAAA,YACP,CAAC,SAAS,SAAS,GAAG;AAAA,YACtB,CAAC,SAAS,IAAI,GAAG;AAAA,YACjB,CAAC,SAAS,cAAc,GAAG;AAAA,UAC7B;AAAA,QACF;AAAA,MAAA,CACD;AAAA,MACD,IAAI,kBAAkB;AAAA,IAAA,CACvB;AAAA,EACH;AAAA,EAEA,WAAW,MAAsC;AAC/C,SAAK,QAAQ;AACR,SAAA,WAAW,KAAK,YAAY,CAAA;AAsB1B,WAAA;AAAA,EACT;AAAA,EAEO,gBAAgB,MAA6C;;AAClE,WAAQ,CAAC,SAAS,WAAW,SAAS,cAAc,EAAe;AAAA,OACjEA,MAAA,KAAK,SAAL,gBAAAA,IAAW;AAAA,IAAA;AAAA,EAEf;AAAA,EAEA,MAAM,KAAK,QAA8B;AAChC,WAAA,MAAM,QAAQ,MAAM;AAAA,EAC7B;AACF;AArEE,cADW,aACH,IAA2B;AAD9B,IAAM,aAAN;"}
@@ -6,6 +6,7 @@ import "@maketribe/utils";
6
6
  import { DataModelDefines } from "../../../../core/DataModelDefines.js";
7
7
  import "@maketribe/request";
8
8
  import "@maketribe/locale";
9
+ import { MenuType } from "../../../../constants/menu.js";
9
10
  import "../../../../components/abstract/abstract-select/abstract-select.js";
10
11
  import "../../../../components/abstract/abstract-select/abstract-select-options.js";
11
12
  import "../../../../components/basic/svg-icon/index.js";
@@ -71,7 +72,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
71
72
  iconClass: row.data.iconName
72
73
  }, null, 8, ["iconClass"]),
73
74
  createElementVNode("span", _hoisted_1, toDisplayString(row.data.title), 1),
74
- row.data.url ? (openBlock(), createBlock(_component_ElButton, {
75
+ row.data.type === unref(MenuType).Menu ? (openBlock(), createBlock(_component_ElButton, {
75
76
  key: 0,
76
77
  link: "",
77
78
  type: "primary",
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/ms/pages/ms-menu/index.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataTree\">\n <MKDataTable :data-table=\"dataTree\" enableQueryParams>\n <MKTableView>\n <MKTableTree defaultExpandAll>\n <template #col-data.title-content=\"{ row }\">\n <MKSvgIcon :iconClass=\"row.data.iconName\" />\n <span class=\"ms-menu__title\">{{ row.data.title }}</span>\n <ElButton v-if=\"row.data.url\" link type=\"primary\" class=\"ms-menu__url\">\n {{ row.data.url }}\n </ElButton>\n </template>\n </MKTableTree>\n </MKTableView>\n </MKDataTable>\n </MKPageContainer>\n</template>\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTree } from \"@maketribe/dm\";\nimport { DataModelDefines } from \"../../../../core\";\nimport {\n MKPageContainer,\n MKDataTable,\n MKTableView,\n MKTableTree,\n} from \"../../../../components\";\nimport { useSingleViewWithDialog } from \"../../../../composables\";\n\nconst router = useRouter();\n\nconst dataTree: Ref<DataTree | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTree.value = DataModelDefines.instance.getDataTree(name);\n\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,UAAM,SAAS;AAET,UAAA,WAAiC,IAAI,IAAI;AACzC,UAAA,WAAiC,IAAI,IAAI;AAE/C;AAAA,MACE,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAE3D,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,4BAAwB,EAAE,WAAW,UAAU,SAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../../../src/modules/ms/pages/ms-menu/index.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataTree\">\n <MKDataTable :data-table=\"dataTree\" enableQueryParams>\n <MKTableView>\n <MKTableTree defaultExpandAll>\n <template #col-data.title-content=\"{ row }\">\n <MKSvgIcon :iconClass=\"row.data.iconName\" />\n <span class=\"ms-menu__title\">{{ row.data.title }}</span>\n <ElButton\n v-if=\"row.data.type === MenuType.Menu\"\n link\n type=\"primary\"\n class=\"ms-menu__url\"\n >\n {{ row.data.url }}\n </ElButton>\n </template>\n </MKTableTree>\n </MKTableView>\n </MKDataTable>\n </MKPageContainer>\n</template>\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTree } from \"@maketribe/dm\";\nimport { DataModelDefines } from \"../../../../core\";\nimport {\n MKPageContainer,\n MKDataTable,\n MKTableView,\n MKTableTree,\n} from \"../../../../components\";\nimport { useSingleViewWithDialog } from \"../../../../composables\";\nimport { MenuType } from \"../../../../constants\";\n\nconst router = useRouter();\n\nconst dataTree: Ref<DataTree | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTree.value = DataModelDefines.instance.getDataTree(name);\n\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,UAAM,SAAS;AAET,UAAA,WAAiC,IAAI,IAAI;AACzC,UAAA,WAAiC,IAAI,IAAI;AAE/C;AAAA,MACE,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAE3D,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,4BAAwB,EAAE,WAAW,UAAU,SAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}