From cb52b7d14ec373dd95eb6d676544afd46298103d Mon Sep 17 00:00:00 2001 From: "hung.pv" Date: Mon, 2 Jun 2025 22:45:30 +0700 Subject: [PATCH 1/5] feat: init new store --- .vscode/extensions.json | 6 +- apps/demo-draggable/src/main.ts | 6 +- apps/demo-map/src/main.ts | 2 + apps/demo-map/src/views/AllMapCompareView.vue | 22 +- apps/demo-map/src/views/AllMapView.vue | 14 +- libs/draggable/package.json | 3 +- .../draggable/draggable-container.vue | 10 +- .../src/components/draggable/item-sidebar.vue | 6 +- libs/draggable/src/hoc/mobile-handle.ts | 6 +- libs/draggable/src/hook/useComponent.ts | 10 +- libs/draggable/src/hook/useInit.ts | 30 +- libs/draggable/src/store/index.ts | 256 +++++----- libs/draggable/vite.config.ts | 7 +- libs/map/basemap/package.json | 3 +- libs/map/basemap/src/adapter/base.ts | 9 +- libs/map/basemap/src/hooks/useBaseMap.ts | 14 +- libs/map/basemap/src/index.ts | 1 - libs/map/basemap/src/modules/BaseMapCard.vue | 9 +- .../src/modules/CompareBaseMapControl.vue | 1 - libs/map/basemap/src/store/index.ts | 46 +- libs/map/basemap/vite.config.ts | 1 + libs/map/core/package.json | 3 +- .../map/core/src/extra/compare/hooks/index.ts | 9 +- .../src/extra/compare/modules/MapCompare.vue | 26 +- libs/map/core/src/extra/compare/store.ts | 7 +- .../core/src/extra/crs/hooks/useCoordinate.ts | 5 +- .../src/extra/crs/hooks/useMapCrsItems.ts | 28 +- libs/map/core/src/extra/crs/index.md | 9 +- libs/map/core/src/extra/crs/index.ts | 2 +- libs/map/core/src/extra/crs/store.ts | 59 +-- .../map/core/src/extra/event/hook/useEvent.ts | 30 +- .../src/extra/event/hook/useEventMapItems.ts | 18 +- .../src/extra/event/modules/ActionControl.vue | 20 +- libs/map/core/src/extra/event/store.ts | 80 +-- libs/map/core/src/extra/image/index.md | 7 +- libs/map/core/src/extra/image/index.ts | 2 +- libs/map/core/src/extra/image/store.ts | 63 +-- libs/map/core/src/extra/index.ts | 1 + libs/map/core/src/extra/lang/hook.ts | 29 +- libs/map/core/src/extra/lang/store.ts | 86 ++-- libs/map/core/src/extra/mitt/index.ts | 25 +- libs/map/core/src/modules/Map.vue | 9 +- libs/map/core/src/store/index.md | 17 +- libs/map/core/src/store/index.ts | 1 - libs/map/core/src/store/logger.ts | 3 + libs/map/core/src/store/queue.ts | 61 --- libs/map/core/src/store/store.ts | 88 +++- libs/map/core/src/types/index.ts | 1 + libs/map/core/vite.config.ts | 1 + libs/map/dataset/package.json | 3 +- .../src/model/data-management/model.ts | 13 +- libs/map/dataset/src/model/part-menu.model.ts | 15 +- .../ComponentManagementControl.vue | 14 +- .../modules/CreateControl/CreateControl.vue | 9 +- .../IdentifyControl/IdentifyControl.vue | 24 +- .../IdentifyShowFirstControl.vue | 14 +- .../modules/LayerControl/part/LayerList.vue | 20 +- .../LayerControl/part/LayerListReadonly.vue | 11 +- .../src/modules/LayerDetail/LayerDetail.vue | 5 +- .../modules/LayerHighlight/LayerHighlight.vue | 24 +- libs/map/dataset/src/store/component.ts | 113 +++-- libs/map/dataset/src/store/highlight.ts | 140 +++--- libs/map/dataset/src/store/index.ts | 189 ++++---- libs/map/dataset/vite.config.ts | 1 + libs/map/draw/package.json | 1 + .../src/modules/DrawControl/DrawControl.vue | 67 +-- .../modules/InspectControl/InspectControl.vue | 15 +- libs/map/draw/src/store/index.ts | 458 +++++++++--------- libs/map/draw/vite.config.ts | 1 + .../src/modules/MeasurementControl.vue | 30 +- libs/map/print/package.json | 3 +- .../src/modules/PrintAdvancedControl.vue | 7 +- libs/map/print/src/store/index.ts | 88 ++-- libs/map/print/vite.config.ts | 1 + libs/share/store/.eslintrc.json | 30 ++ libs/share/store/README.md | 11 + libs/share/store/jest.config.ts | 10 + libs/share/store/package.json | 26 + libs/share/store/project.json | 33 ++ libs/share/store/src/index.ts | 2 + libs/share/store/src/plugin/index.ts | 36 ++ libs/share/store/src/store/createStore.ts | 130 +++++ libs/share/store/src/store/index.ts | 1 + libs/share/store/tsconfig.json | 23 + libs/share/store/tsconfig.lib.json | 10 + libs/share/store/tsconfig.spec.json | 15 + nx.json | 8 +- package-lock.json | 32 +- package.json | 3 +- tsconfig.base.json | 1 + 90 files changed, 1517 insertions(+), 1272 deletions(-) delete mode 100644 libs/map/core/src/store/queue.ts create mode 100644 libs/share/store/.eslintrc.json create mode 100644 libs/share/store/README.md create mode 100644 libs/share/store/jest.config.ts create mode 100644 libs/share/store/package.json create mode 100644 libs/share/store/project.json create mode 100644 libs/share/store/src/index.ts create mode 100644 libs/share/store/src/plugin/index.ts create mode 100644 libs/share/store/src/store/createStore.ts create mode 100644 libs/share/store/src/store/index.ts create mode 100644 libs/share/store/tsconfig.json create mode 100644 libs/share/store/tsconfig.lib.json create mode 100644 libs/share/store/tsconfig.spec.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 71f5e85..97e81d4 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,7 @@ { - "recommendations": ["nrwl.angular-console", "esbenp.prettier-vscode"] + "recommendations": [ + "nrwl.angular-console", + "esbenp.prettier-vscode", + "firsttris.vscode-jest-runner" + ] } diff --git a/apps/demo-draggable/src/main.ts b/apps/demo-draggable/src/main.ts index 840a48b..5dfcdb2 100644 --- a/apps/demo-draggable/src/main.ts +++ b/apps/demo-draggable/src/main.ts @@ -1,8 +1,8 @@ -import './styles.scss'; - +import { createStoreRegistryPlugin } from '@hungpvq/shared-store'; import { createApp } from 'vue'; import App from './app/App.vue'; +import './styles.scss'; const app = createApp(App); - +app.use(createStoreRegistryPlugin()); app.mount('#root'); diff --git a/apps/demo-map/src/main.ts b/apps/demo-map/src/main.ts index 51e1c81..6aff449 100644 --- a/apps/demo-map/src/main.ts +++ b/apps/demo-map/src/main.ts @@ -2,11 +2,13 @@ import './styles.css'; import router from './router'; +import { createStoreRegistryPlugin } from '@hungpvq/shared-store'; import { createApp } from 'vue'; import App from './app/App.vue'; const app = createApp(App); app.use(router); +app.use(createStoreRegistryPlugin()); app.mount('#root'); diff --git a/apps/demo-map/src/views/AllMapCompareView.vue b/apps/demo-map/src/views/AllMapCompareView.vue index d157a85..bc858b0 100644 --- a/apps/demo-map/src/views/AllMapCompareView.vue +++ b/apps/demo-map/src/views/AllMapCompareView.vue @@ -4,11 +4,11 @@ import { CompareBaseMapControl, } from '@hungpvq/vue-map-basemap'; import { + CompareSettingCard, CompareSettingControl, CrsControl, FullScreenControl, GeoLocateControl, - CompareSettingCard, GotoControl, HomeControl, MapCompare, @@ -17,7 +17,6 @@ import { ZoomControl, } from '@hungpvq/vue-map-core'; import { - addDataset, ComponentManagementControl, createDataManagementMapboxComponent, createDataset, @@ -42,6 +41,7 @@ import { LayerHighlight, LayerInfoControl, LayerSimpleMapboxBuild, + useMapDataset, } from '@hungpvq/vue-map-dataset'; import { MeasurementControl } from '@hungpvq/vue-map-measurement'; import { mdiDownload, mdiPencil } from '@mdi/js'; @@ -49,13 +49,13 @@ import { ref } from 'vue'; const mapRef = ref(); function onMapLoaded(props: { id: string }) { + const { addDataset } = useMapDataset(props.id); const dataset_raster = createDataset( 'Group test', null, - true + true, ) as DatasetComposite; const source_raster = createDatasetPartRasterSourceComponent('source', { - name: 'raster 1', type: 'raster', tiles: [ 'https://naturalearthtiles.roblabs.com/tiles/natural_earth_cross_blended_hypso_shaded_relief.raster/{z}/{x}/{y}.png', @@ -76,7 +76,7 @@ function onMapLoaded(props: { id: string }) { const groupLayer_raster = createDataset( 'Group layer 1', null, - true + true, ) as DatasetComposite; dataset_raster.add(source_raster); groupLayer_raster.add(list_raster); @@ -92,7 +92,7 @@ function onMapLoaded(props: { id: string }) { const groupLayer1 = createDataset( 'Group layer 1', null, - true + true, ) as DatasetComposite; const list1: IListViewUI = createDatasetPartListViewUiComponent('test area'); list1.color = '#0000FF'; @@ -125,7 +125,7 @@ function onMapLoaded(props: { id: string }) { const groupLayer2 = createDataset( 'Group layer 2', null, - true + true, ) as DatasetComposite; const list2 = createDatasetPartListViewUiComponent('test point'); list2.color = '#ff0000'; @@ -155,7 +155,7 @@ function onMapLoaded(props: { id: string }) { 105.88454157202995, 20.878811643339404, 106.16710803591963, 21.0854254401454, ], - } + }, ); const metadata = createDatasetPartMetadataComponent('metadata', { bbox: [ @@ -196,7 +196,7 @@ function onMapLoaded(props: { id: string }) { { text: 'Name', value: 'name' }, { text: 'Name', value: 'name' }, ], - } + }, ); dataManagement.setItems([ { @@ -238,8 +238,8 @@ function onMapLoaded(props: { id: string }) { dataset.add(groupLayer2); dataset.add(identify); dataset.add(metadata); - addDataset(props.id, dataset_raster); - addDataset(props.id, dataset); + addDataset(dataset_raster); + addDataset(dataset); }