@vcmap/ui 6.0.0-rc.2 → 6.0.0-rc.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.
- package/build/build.js +40 -60
- package/build/buildHelpers.js +62 -19
- package/build/bundle.js +1 -1
- package/build/info/conf.json +1 -1
- package/build/info/publish.js +25 -31
- package/build/lintTypes.js +5 -0
- package/config/base.config.json +2 -1
- package/config/dev.config.json +7 -1
- package/config/projects.config.json +2 -1
- package/config/splashscreen.config.json +45 -0
- package/config/www.config.json +25 -22
- package/dist/.htaccess +7 -0
- package/dist/assets/@mdi/font/README.md +25 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min-680621ca.css +3 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/dist/assets/{cesium.0b750d.js → cesium-126f111a.js} +272 -385
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.cbf44a.js → core-1c8b8674.js} +2015 -2019
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol.86e93c.js → ol-27f9b3f3.js} +42521 -44394
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-7214428e.css +1 -0
- package/dist/assets/{ui.7c276c.js → ui-7214428e.js} +13968 -13907
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue-c78a5f76.js +6083 -0
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify.4d18fe.css → vuetify-88a2fabe.css} +2 -2
- package/dist/assets/{vuetify.4d18fe.js → vuetify-88a2fabe.js} +7793 -7940
- package/dist/assets/vuetify.js +1 -1
- package/dist/index.html +11 -10
- package/index.d.ts +11 -11
- package/index.html +5 -5
- package/index.js +9 -7
- package/lib/olLib.js +84 -23
- package/package.json +19 -19
- package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
- package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +71 -32
- package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
- package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
- package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +21 -8
- package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +18 -11
- package/plugins/@vcmap-show-case/search-example/src/index.js +1 -0
- package/plugins/@vcmap-show-case/search-example/src/searchImpl.js +35 -5
- package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
- package/plugins/@vcmap-show-case/toolbox-example/src/index.js +2 -1
- package/plugins/package.json +3 -23
- package/public/assets/@mdi/font/README.md +25 -0
- package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
- package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/src/actions/StyleSelector.vue +1 -1
- package/src/actions/actionHelper.js +33 -22
- package/src/actions/flightActions.js +5 -5
- package/src/actions/listActions.d.ts +4 -11
- package/src/actions/listActions.js +6 -22
- package/src/actions/stateRefAction.js +2 -2
- package/src/application/VcsApp.vue +147 -57
- package/src/application/VcsApp.vue.d.ts +298 -4
- package/src/application/VcsAttributions.vue +2 -13
- package/src/application/VcsAttributionsFooter.vue +10 -11
- package/src/application/VcsContainer.vue +26 -9
- package/src/application/VcsContainer.vue.d.ts +237 -0
- package/src/application/VcsMainMap.vue +7 -7
- package/src/application/VcsMainMap.vue.d.ts +2 -2
- package/src/application/VcsNavbar.vue +5 -1
- package/src/application/VcsPositionDisplay.vue +8 -23
- package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
- package/src/application/VcsSettings.vue +10 -17
- package/src/application/VcsSplashScreen.vue +21 -40
- package/src/application/VcsSplashScreen.vue.d.ts +0 -2
- package/src/application/VcsTextPage.vue +12 -43
- package/src/application/VcsTextPage.vue.d.ts +4 -8
- package/src/application/VcsTextPageFooter.vue +23 -40
- package/src/components/buttons/VcsActionButtonList.vue +59 -3
- package/src/components/buttons/VcsActionButtonList.vue.d.ts +28 -0
- package/src/components/extent/VcsExtentEditor.vue +1 -1
- package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
- package/src/components/flight/VcsFlightComponent.vue +16 -21
- package/src/components/flight/VcsFlightPlayer.vue +27 -5
- package/src/components/form-inputs-controls/VcsCheckbox.vue +9 -5
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue +15 -13
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +3 -4
- package/src/components/form-inputs-controls/VcsCoordinate.vue +17 -4
- package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
- package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
- package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -63
- package/src/components/form-inputs-controls/VcsFileInput.vue +17 -18
- package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsLabel.vue +1 -1
- package/src/components/form-inputs-controls/VcsRadio.vue +17 -3
- package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +40 -31
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +5 -2
- package/src/components/form-inputs-controls/VcsSlider.vue +13 -1
- package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsTextArea.vue +27 -26
- package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsTextField.vue +20 -4
- package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +9 -0
- package/src/components/form-inputs-controls/VcsWizardStep.vue +3 -6
- package/src/components/form-inputs-controls/vcsTextField.scss +9 -12
- package/src/components/form-output/VcsFormattedNumber.vue +21 -5
- package/src/components/form-output/VcsFormattedNumber.vue.d.ts +9 -0
- package/src/components/form-output/VcsMarkdown.vue +15 -12
- package/src/components/form-output/VcsMarkdown.vue.d.ts +1 -0
- package/src/components/form-output/markdownHelper.d.ts +30 -0
- package/src/components/form-output/markdownHelper.js +398 -0
- package/src/components/import/VcsFileDrop.vue +8 -5
- package/src/components/import/VcsImportComponent.vue +4 -3
- package/src/components/import/VcsImportComponent.vue.d.ts +1 -2
- package/src/components/lists/VcsActionList.vue +11 -7
- package/src/components/lists/VcsList.vue +30 -52
- package/src/components/lists/VcsList.vue.d.ts +14 -59
- package/src/components/lists/{VcsListItem.vue → VcsListItemComponent.vue} +68 -22
- package/src/components/lists/VcsListItemComponent.vue.d.ts +69 -0
- package/src/components/lists/VcsTreeview.vue +43 -16
- package/src/components/lists/VcsTreeview.vue.d.ts +14 -3
- package/src/components/lists/VcsTreeviewLeaf.vue +15 -6
- package/src/components/lists/VcsTreeviewSearchbar.vue +2 -2
- package/src/components/notification/VcsHelp.vue +1 -1
- package/src/components/notification/VcsHelp.vue.d.ts +3 -2
- package/src/components/section/VcsExpansionPanel.vue +101 -0
- package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
- package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +10 -4
- package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +1 -2
- package/src/components/style/MenuWrapper.vue +24 -26
- package/src/components/style/MenuWrapper.vue.d.ts +4 -4
- package/src/components/style/VcsFillMenu.vue +9 -16
- package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
- package/src/components/style/VcsFillSelector.vue +13 -16
- package/src/components/style/VcsImageMenu.vue +8 -25
- package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
- package/src/components/style/VcsImageSelector.vue +102 -167
- package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
- package/src/components/style/VcsStrokeMenu.vue +8 -15
- package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
- package/src/components/style/VcsStrokeSelector.vue +11 -18
- package/src/components/style/VcsTextMenu.vue +9 -12
- package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
- package/src/components/style/VcsTextSelector.vue +79 -95
- package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
- package/src/components/style/VcsVectorStyleComponent.vue +8 -19
- package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
- package/src/components/style/composables.d.ts +0 -14
- package/src/components/style/composables.js +0 -49
- package/src/components/tables/VcsDataTable.vue +28 -22
- package/src/components/tables/VcsTable.vue +45 -62
- package/src/components/tables/VcsTable.vue.d.ts +30 -17
- package/src/components/tables/VcsTableCell.vue +72 -0
- package/src/components/tables/VcsTableCell.vue.d.ts +13 -0
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +43 -9
- package/src/components/vector-properties/VcsFeatureTransforms.vue +5 -0
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -1
- package/src/components/viewpoint/VcsViewpointComponent.vue +23 -10
- package/src/components/viewpoint/VcsViewpointEditor.vue +2 -1
- package/src/contentTree/LayerTree.vue +9 -27
- package/src/contentTree/LayerTree.vue.d.ts +1 -1
- package/src/contentTree/contentTreeCollection.d.ts +1 -0
- package/src/contentTree/contentTreeCollection.js +45 -11
- package/src/contentTree/contentTreeItem.d.ts +2 -2
- package/src/contentTree/contentTreeItem.js +7 -7
- package/src/featureInfo/BalloonComponent.vue +14 -15
- package/src/featureInfo/MarkdownBalloonComponent.vue +4 -2
- package/src/featureInfo/MarkdownBalloonComponent.vue.d.ts +2 -2
- package/src/featureInfo/abstractFeatureInfoView.d.ts +6 -0
- package/src/featureInfo/abstractFeatureInfoView.js +15 -7
- package/src/featureInfo/featureInfo.d.ts +5 -5
- package/src/featureInfo/featureInfo.js +59 -41
- package/src/featureInfo/iframeFeatureInfoView.d.ts +8 -2
- package/src/featureInfo/iframeFeatureInfoView.js +15 -5
- package/src/featureInfo/markdownBalloonFeatureInfoView.d.ts +1 -1
- package/src/featureInfo/markdownBalloonFeatureInfoView.js +5 -5
- package/src/featureInfo/markdownFeatureInfoView.d.ts +1 -1
- package/src/featureInfo/markdownFeatureInfoView.js +9 -11
- package/src/featureInfo/tableFeatureInfoView.js +13 -4
- package/src/init.d.ts +5 -38
- package/src/init.js +19 -18
- package/src/legend/StyleLegendItem.vue +4 -9
- package/src/legend/VcsLegend.vue +28 -54
- package/src/manager/buttonManager.js +4 -4
- package/src/manager/collectionManager/CollectionComponent.vue +17 -42
- package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
- package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
- package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
- package/src/manager/collectionManager/CollectionComponentList.vue +11 -9
- package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +6 -4
- package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
- package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
- package/src/manager/collectionManager/CollectionManager.vue +1 -1
- package/src/manager/collectionManager/collectionComponentClass.d.ts +1 -1
- package/src/manager/collectionManager/collectionComponentClass.js +7 -10
- package/src/manager/collectionManager/collectionManager.js +10 -10
- package/src/manager/collectionManager/editorCollectionComponentClass.js +6 -5
- package/src/manager/contextMenu/contextMenuManager.js +2 -2
- package/src/manager/navbarManager.js +2 -2
- package/src/manager/panel/PanelComponent.vue +2 -9
- package/src/manager/panel/PanelManagerComponent.vue +7 -3
- package/src/manager/panel/panelHelper.js +3 -3
- package/src/manager/panel/panelManager.d.ts +9 -1
- package/src/manager/panel/panelManager.js +18 -6
- package/src/manager/toolbox/GroupToolboxComponent.vue +8 -4
- package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -0
- package/src/manager/toolbox/SelectToolboxComponent.vue +7 -4
- package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -0
- package/src/manager/toolbox/ToolboxManager.vue +9 -6
- package/src/manager/toolbox/ToolboxManager.vue.d.ts +1 -0
- package/src/manager/toolbox/toolboxManager.js +10 -10
- package/src/manager/window/WindowComponent.vue +12 -8
- package/src/manager/window/WindowComponentHeader.vue +29 -8
- package/src/manager/window/WindowComponentHeader.vue.d.ts +2 -0
- package/src/manager/window/WindowManager.vue +2 -2
- package/src/manager/window/windowManager.d.ts +2 -2
- package/src/manager/window/windowManager.js +4 -4
- package/src/navigation/MapNavigation.vue +20 -0
- package/src/navigation/locatorHelper.js +1 -1
- package/src/navigation/overviewMap.js +1 -1
- package/src/notifier/NotifierComponent.vue +18 -15
- package/src/search/ResultItem.vue +18 -6
- package/src/search/ResultsComponent.vue +31 -20
- package/src/search/ResultsComponent.vue.d.ts +2 -1
- package/src/search/SearchComponent.vue +8 -14
- package/src/search/SearchComponent.vue.d.ts +1 -0
- package/src/search/search.js +2 -2
- package/src/siteConfig.js +9 -9
- package/src/state.js +4 -4
- package/src/styles/_typography.scss +0 -2
- package/src/styles/main.scss +0 -4
- package/src/uiConfig.d.ts +300 -5
- package/src/uiConfig.js +28 -16
- package/src/vcsUiApp.d.ts +21 -17
- package/src/vcsUiApp.js +11 -10
- package/src/vuePlugins/vuetify.d.ts +2 -0
- package/src/vuePlugins/vuetify.js +14 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
- package/dist/assets/index-8eGauqjA.js +0 -1
- package/dist/assets/ui.7c276c.css +0 -1
- package/dist/assets/vue.a3cd64.js +0 -6096
- package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/src/application/VcsCustomScreen.vue +0 -45
- package/src/application/VcsCustomScreen.vue.d.ts +0 -15
- package/src/application/markdownHelper.d.ts +0 -12
- package/src/application/markdownHelper.js +0 -70
- package/src/components/lists/VcsListItem.vue.d.ts +0 -21
- package/src/components/notification/VcsTooltip.vue +0 -156
- package/src/components/notification/VcsTooltip.vue.d.ts +0 -27
- package/src/featureInfo/MarkdownComponent.vue +0 -16
- package/src/featureInfo/MarkdownComponent.vue.d.ts +0 -7
- package/src/styles/_theming.scss +0 -73
- package/src/styles/settings.scss +0 -6
- package/src/styles/shades.scss +0 -4
- package/src/styles/variables.scss +0 -140
- package/src/styles/vcsFont.scss +0 -2
- package/src/styles/vcsGrid.scss +0 -3
- /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
- /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
- /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
- /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
- /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
- /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
- /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
- /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
- /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
- /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
- /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
- /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
package/build/build.js
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import path from 'path';
|
2
2
|
import fs from 'fs';
|
3
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
3
4
|
import { build } from 'vite';
|
4
5
|
import { v4 as uuid } from 'uuid';
|
5
6
|
|
@@ -13,7 +14,6 @@ import {
|
|
13
14
|
getFileMd5,
|
14
15
|
getFilesInDirectory,
|
15
16
|
libraries,
|
16
|
-
writeRewrittenFile,
|
17
17
|
} from './buildHelpers.js';
|
18
18
|
|
19
19
|
/**
|
@@ -97,8 +97,8 @@ function hashLibraries() {
|
|
97
97
|
throw new Error(`Trying to build unexported library ${key}`);
|
98
98
|
}
|
99
99
|
value.lib = libraries[key];
|
100
|
-
value.hash = `${uuid().substring(0,
|
101
|
-
libraryPaths[key] = `./${value.lib}
|
100
|
+
value.hash = `${uuid().substring(0, 8)}`;
|
101
|
+
libraryPaths[key] = `./${value.lib}-${value.hash}.js`;
|
102
102
|
value.rollupOptions = value.rollupOptions ? value.rollupOptions : {};
|
103
103
|
});
|
104
104
|
|
@@ -121,11 +121,13 @@ const { libraryBuildOptions, libraryPaths } = hashLibraries();
|
|
121
121
|
console.log('Building ol dump file');
|
122
122
|
await generateOLLib();
|
123
123
|
|
124
|
+
const distFolder = path.join(process.cwd(), 'dist');
|
125
|
+
const assetsFolder = path.join(distFolder, 'assets');
|
126
|
+
|
124
127
|
/** Cleaning/recreating Dist Folder */
|
125
|
-
if (await fs.existsSync(
|
126
|
-
await fs.promises.rm(
|
128
|
+
if (await fs.existsSync(distFolder)) {
|
129
|
+
await fs.promises.rm(distFolder, { recursive: true });
|
127
130
|
}
|
128
|
-
const assetsFolder = path.join(process.cwd(), 'dist', 'assets');
|
129
131
|
await fs.promises.mkdir(assetsFolder, { recursive: true });
|
130
132
|
|
131
133
|
/**
|
@@ -141,6 +143,8 @@ const fileTypesToHash = ['.png', '.css', '.svg', '.woff2'];
|
|
141
143
|
* we exclude the materialDesignIcons font because we do not want to also rewrite the materialDesignIcons.css file.
|
142
144
|
* The .woff2 is loaded with the materialDesignIcons Version number as a query parameter. So this also makes sure,
|
143
145
|
* that the browser can cache the file.
|
146
|
+
*
|
147
|
+
* we also exclude favicons from hashing, to just use the index.html as is.
|
144
148
|
*/
|
145
149
|
const filesToExclude = [
|
146
150
|
path.join(
|
@@ -150,6 +154,11 @@ const filesToExclude = [
|
|
150
154
|
'fonts',
|
151
155
|
'materialdesignicons-webfont.woff2',
|
152
156
|
),
|
157
|
+
path.join('assets', 'favicon-4c4ce5df.svg'),
|
158
|
+
path.join('assets', 'favicon-32-4c4ce5df.png'),
|
159
|
+
path.join('assets', 'favicon-128-4c4ce5df.png'),
|
160
|
+
path.join('assets', 'favicon-180-4c4ce5df.png'),
|
161
|
+
path.join('assets', 'favicon-192-4c4ce5df.png'),
|
153
162
|
];
|
154
163
|
const hashedPublicFiles = new Map();
|
155
164
|
const filesToCopy = new Map();
|
@@ -165,7 +174,7 @@ for await (const filePath of getFilesInDirectory(publicAssetsFolder)) {
|
|
165
174
|
const fileHash = await getFileMd5(filePath);
|
166
175
|
const hashedFileUrl = path.posix.join(
|
167
176
|
...path.dirname(relativePathInDist).split(path.sep),
|
168
|
-
`${path.basename(filePath, fileType)}
|
177
|
+
`${path.basename(filePath, fileType)}-${fileHash.slice(0, 8)}${fileType}`,
|
169
178
|
);
|
170
179
|
hashedPublicFiles.set(
|
171
180
|
path.posix.join(...relativePath.split(path.sep)),
|
@@ -174,9 +183,9 @@ for await (const filePath of getFilesInDirectory(publicAssetsFolder)) {
|
|
174
183
|
const newFilePath = path.join(
|
175
184
|
assetsFolder,
|
176
185
|
path.dirname(relativePathInDist),
|
177
|
-
`${path.basename(relativePath, fileType)}
|
186
|
+
`${path.basename(relativePath, fileType)}-${fileHash.slice(
|
178
187
|
0,
|
179
|
-
|
188
|
+
8,
|
180
189
|
)}${fileType}`,
|
181
190
|
);
|
182
191
|
filesToCopy.set(filePath, newFilePath);
|
@@ -191,57 +200,28 @@ for await (const [originalFilePath, newFilePath] of filesToCopy) {
|
|
191
200
|
}
|
192
201
|
|
193
202
|
console.log('Building app');
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
},
|
200
|
-
build: {
|
201
|
-
write: false,
|
202
|
-
modulePreload: false,
|
203
|
-
emptyOutDir: true,
|
204
|
-
rollupOptions: {
|
205
|
-
external: Object.keys(libraries),
|
206
|
-
output: {
|
207
|
-
paths: libraryPaths,
|
208
|
-
},
|
209
|
-
},
|
210
|
-
},
|
211
|
-
});
|
212
|
-
|
213
|
-
/**
|
214
|
-
* Building the Main entrypoint (index.html + index.js)
|
215
|
-
* This will ensure that all references to public assets will be rewritten to the hashed filename
|
216
|
-
*/
|
217
|
-
await Promise.all(
|
218
|
-
buildoutput.output?.map((output) => {
|
219
|
-
if (output.type === 'asset') {
|
220
|
-
const { source, fileName } = output;
|
221
|
-
// remove loading of materialdesignicons from index.html, we will later inject this in the ui.js
|
222
|
-
const fileContent = source.replace(
|
223
|
-
/<link[^>]*href=".*materialdesignicons\.min\.css"[^>]*(>[^<]*<\/link>|\/>)/,
|
224
|
-
'',
|
225
|
-
);
|
226
|
-
return writeRewrittenFile(
|
227
|
-
path.join(process.cwd(), 'dist', fileName),
|
228
|
-
fileContent,
|
229
|
-
hashedPublicFiles,
|
230
|
-
'assets',
|
231
|
-
);
|
232
|
-
}
|
233
|
-
if (output.type === 'chunk') {
|
234
|
-
const { code, fileName } = output;
|
235
|
-
return writeRewrittenFile(
|
236
|
-
path.join(process.cwd(), 'dist', fileName),
|
237
|
-
code,
|
238
|
-
hashedPublicFiles,
|
239
|
-
'assets',
|
240
|
-
);
|
241
|
-
}
|
242
|
-
return undefined;
|
243
|
-
}),
|
203
|
+
let indexHTMLContent = await readFile('./index.html', { encoding: 'utf8' });
|
204
|
+
// remove mdi icons link, will be later loaded from the ui.js
|
205
|
+
indexHTMLContent = indexHTMLContent.replace(
|
206
|
+
/<link[^>]*href=".*materialdesignicons\.min\.css"[^>]*>/,
|
207
|
+
'',
|
244
208
|
);
|
209
|
+
// replace @vcmap/ui with './assets/ui.js'
|
210
|
+
indexHTMLContent = indexHTMLContent.replace(/@vcmap\/ui/, './assets/ui.js');
|
211
|
+
await writeFile(path.join(distFolder, 'index.html'), indexHTMLContent, {
|
212
|
+
encoding: 'utf8',
|
213
|
+
});
|
214
|
+
const htaccessContent = `
|
215
|
+
<FilesMatch "-[\\w\\d]{8}\\.(js|css)$">
|
216
|
+
Header set Cache-Control "public, max-age=31540000, immutable"
|
217
|
+
</FilesMatch>
|
218
|
+
<FilesMatch "(index\\.html|config\\.json|ui\\.js|vue\\.js|vuetify\\.js|ol\\.js|cesium\\.js|core\\.js)$">
|
219
|
+
Header set Cache-Control "no-store, max-age=0"
|
220
|
+
</FilesMatch>
|
221
|
+
`;
|
222
|
+
await writeFile(path.join(distFolder, '.htaccess'), htaccessContent, {
|
223
|
+
encoding: 'utf8',
|
224
|
+
});
|
245
225
|
|
246
226
|
/**
|
247
227
|
* Building the Libraries, (vue, vuetify, openlayers, cesium, core, and ui). This will build one hashed library.hash.js
|
@@ -271,7 +251,7 @@ await Promise.all(
|
|
271
251
|
lib: {
|
272
252
|
entry: path.resolve(process.cwd(), value.entry),
|
273
253
|
formats: ['es'],
|
274
|
-
fileName: `${value.lib}
|
254
|
+
fileName: `${value.lib}-${value.hash}`,
|
275
255
|
},
|
276
256
|
rollupOptions: {
|
277
257
|
...value.rollupOptions,
|
package/build/buildHelpers.js
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
/* eslint import/no-extraneous-dependencies: ["error", { "devDependencies": false }] */
|
2
1
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
3
2
|
import { build } from 'vite'; // vite is also a plugin-cli dep
|
4
3
|
import fs from 'fs';
|
@@ -159,18 +158,12 @@ export async function buildLibrary(
|
|
159
158
|
base64Css = false,
|
160
159
|
rewrittenPublicAssets = undefined,
|
161
160
|
) {
|
162
|
-
// Base64 contains the characters '+', '/', and '=', which have a reserved meaning in URLs.
|
163
|
-
// Base64url solves this by replacing '+' with '-' and '/' with '_'.
|
164
|
-
// See https://stackoverflow.com/a/55389212
|
165
161
|
const cssInjectorCode = `
|
166
162
|
function loadCss(href) {
|
167
|
-
const base64url = href
|
168
|
-
.replace(/-/g, '+')
|
169
|
-
.replace(/_/g, '/');
|
170
163
|
return new Promise((resolve, reject) => {
|
171
164
|
const elem = document.createElement('link');
|
172
165
|
elem.rel = 'stylesheet';
|
173
|
-
elem.href =
|
166
|
+
elem.href = href;
|
174
167
|
elem.defer = false;
|
175
168
|
elem.async = false;
|
176
169
|
elem.onload = resolve;
|
@@ -180,7 +173,7 @@ function loadCss(href) {
|
|
180
173
|
}`;
|
181
174
|
|
182
175
|
const write = async (output) => {
|
183
|
-
const addedHash = hash ?
|
176
|
+
const addedHash = hash ? `-${hash}` : '';
|
184
177
|
let css = false;
|
185
178
|
if (output[1] && output[1].type === 'asset') {
|
186
179
|
if (base64Css) {
|
@@ -285,7 +278,12 @@ const toCopy = [
|
|
285
278
|
'README.md',
|
286
279
|
];
|
287
280
|
|
288
|
-
async function buildInlinePlugin(
|
281
|
+
async function buildInlinePlugin(
|
282
|
+
plugin,
|
283
|
+
baseConfig,
|
284
|
+
minify,
|
285
|
+
isDependend = false,
|
286
|
+
) {
|
289
287
|
// the relative path between plugins and libraries, is not known beforehand, so we calculate the distance.
|
290
288
|
// posixRelativePath is the relative path between the index.js of the plugin and the specific library.
|
291
289
|
const relativePluginPaths = {};
|
@@ -298,7 +296,15 @@ async function buildInlinePlugin(plugin, baseConfig, minify) {
|
|
298
296
|
.join(path.posix.sep);
|
299
297
|
});
|
300
298
|
|
301
|
-
const pluginDir =
|
299
|
+
const pluginDir = isDependend
|
300
|
+
? getProjectPath('plugins', 'node_modules', plugin)
|
301
|
+
: getProjectPath('plugins', plugin);
|
302
|
+
|
303
|
+
const isTs = fs.existsSync(path.join(pluginDir, 'src', 'index.ts'));
|
304
|
+
const entry = isTs
|
305
|
+
? path.join(pluginDir, 'src', 'index.ts')
|
306
|
+
: path.join(pluginDir, 'src', 'index.js');
|
307
|
+
|
302
308
|
const pluginConfig = {
|
303
309
|
...baseConfig,
|
304
310
|
esbuild: {
|
@@ -309,13 +315,14 @@ async function buildInlinePlugin(plugin, baseConfig, minify) {
|
|
309
315
|
emptyOutDir: false,
|
310
316
|
outDir: `dist/plugins/${plugin}/`,
|
311
317
|
lib: {
|
312
|
-
entry
|
318
|
+
entry,
|
313
319
|
formats: ['es'],
|
314
320
|
fileName: 'index',
|
315
321
|
},
|
316
322
|
rollupOptions: {
|
317
323
|
external: Object.keys(libraries),
|
318
324
|
output: {
|
325
|
+
manualChunks: () => 'index.js',
|
319
326
|
paths: relativePluginPaths,
|
320
327
|
},
|
321
328
|
},
|
@@ -327,11 +334,11 @@ async function buildInlinePlugin(plugin, baseConfig, minify) {
|
|
327
334
|
}
|
328
335
|
await buildLibrary(pluginConfig, `plugins/${plugin}`, 'index', '', true);
|
329
336
|
await Promise.all(
|
330
|
-
toCopy.map(async (
|
331
|
-
if (fs.existsSync(path.join(pluginDir,
|
337
|
+
toCopy.map(async (fileEntry) => {
|
338
|
+
if (fs.existsSync(path.join(pluginDir, fileEntry))) {
|
332
339
|
await fs.promises.cp(
|
333
|
-
path.join(pluginDir,
|
334
|
-
path.join(distPath,
|
340
|
+
path.join(pluginDir, fileEntry),
|
341
|
+
path.join(distPath, fileEntry),
|
335
342
|
{ recursive: true, force: true },
|
336
343
|
);
|
337
344
|
}
|
@@ -339,6 +346,10 @@ async function buildInlinePlugin(plugin, baseConfig, minify) {
|
|
339
346
|
);
|
340
347
|
}
|
341
348
|
|
349
|
+
/**
|
350
|
+
* Dependent Plugins which are installed from npm are already build and we just copy the relevant files
|
351
|
+
* @param {string} pluginName
|
352
|
+
*/
|
342
353
|
async function buildDependentPlugin(pluginName) {
|
343
354
|
const pluginsDirectory = getPluginDirectory();
|
344
355
|
let scope = '';
|
@@ -371,6 +382,19 @@ async function buildDependentPlugin(pluginName) {
|
|
371
382
|
);
|
372
383
|
}
|
373
384
|
|
385
|
+
function filterDependentPlugins(dependentPlugins, pluginIsBuild = true) {
|
386
|
+
const pluginsDir = getPluginDirectory();
|
387
|
+
return dependentPlugins.filter((pluginName) => {
|
388
|
+
const pluginExists = fs.existsSync(
|
389
|
+
path.join(pluginsDir, 'node_modules', ...pluginName.split('/'), 'dist'),
|
390
|
+
);
|
391
|
+
if (pluginIsBuild) {
|
392
|
+
return pluginExists;
|
393
|
+
}
|
394
|
+
return !pluginExists;
|
395
|
+
});
|
396
|
+
}
|
397
|
+
|
374
398
|
/**
|
375
399
|
* Will build a preview of all the current plugins & inline plugins
|
376
400
|
* @param {import("vite").InlineConfig} [baseConfig={}] - the base config to use. build & esbuild will be completely overwritten
|
@@ -380,14 +404,25 @@ async function buildDependentPlugin(pluginName) {
|
|
380
404
|
export async function buildPluginsForPreview(baseConfig = {}, minify = true) {
|
381
405
|
const inlinePlugins = await getInlinePlugins();
|
382
406
|
const dependentPlugins = await getPluginNames();
|
407
|
+
// only take already build plugins into account.
|
408
|
+
// Plugins loaded from a git repository do not have a dist folder.
|
409
|
+
// These plugins need to be build, same as the inline plugins
|
410
|
+
const buildDependentPlugins = filterDependentPlugins(dependentPlugins, true);
|
411
|
+
const notBuildDependentPlugins = filterDependentPlugins(
|
412
|
+
dependentPlugins,
|
413
|
+
false,
|
414
|
+
);
|
383
415
|
|
384
416
|
const promises = inlinePlugins.map((plugin) =>
|
385
417
|
buildInlinePlugin(plugin, baseConfig, minify),
|
386
418
|
);
|
387
419
|
|
388
420
|
promises.push(
|
389
|
-
...
|
390
|
-
buildDependentPlugin(pluginName
|
421
|
+
...buildDependentPlugins.map(async (pluginName) =>
|
422
|
+
buildDependentPlugin(pluginName),
|
423
|
+
),
|
424
|
+
...notBuildDependentPlugins.map(async (pluginName) =>
|
425
|
+
buildInlinePlugin(pluginName, baseConfig, minify, true),
|
391
426
|
),
|
392
427
|
);
|
393
428
|
await Promise.all(promises);
|
@@ -396,14 +431,22 @@ export async function buildPluginsForPreview(baseConfig = {}, minify = true) {
|
|
396
431
|
export async function buildPluginsForBundle(baseConfig = {}) {
|
397
432
|
const inlinePlugins = await getInlinePlugins();
|
398
433
|
const dependentPlugins = await getPluginNames(false);
|
434
|
+
const buildDependentPlugins = filterDependentPlugins(dependentPlugins, true);
|
435
|
+
const notBuildDependentPlugins = filterDependentPlugins(
|
436
|
+
dependentPlugins,
|
437
|
+
false,
|
438
|
+
);
|
399
439
|
const promises = inlinePlugins
|
400
440
|
.filter((plugin) => plugin.startsWith('@vcmap/'))
|
401
441
|
.map((plugin) => buildInlinePlugin(plugin, baseConfig, true));
|
402
442
|
|
403
443
|
promises.push(
|
404
|
-
...
|
444
|
+
...buildDependentPlugins.map(async (pluginName) =>
|
405
445
|
buildDependentPlugin(pluginName),
|
406
446
|
),
|
447
|
+
...notBuildDependentPlugins.map(async (pluginName) =>
|
448
|
+
buildInlinePlugin(pluginName, baseConfig, true, true),
|
449
|
+
),
|
407
450
|
);
|
408
451
|
await Promise.all(promises);
|
409
452
|
}
|
package/build/bundle.js
CHANGED
package/build/info/conf.json
CHANGED
package/build/info/publish.js
CHANGED
@@ -20,37 +20,31 @@ exports.publish = function publish(data) {
|
|
20
20
|
|
21
21
|
// get all doclets that have exports
|
22
22
|
const classes = {};
|
23
|
-
const docs = data(
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
);
|
49
|
-
},
|
50
|
-
],
|
51
|
-
{ kind: { '!is': 'file' } },
|
52
|
-
{ kind: { '!is': 'event' } },
|
53
|
-
).get();
|
23
|
+
const docs = data(function someKindOfExportsTransformer() {
|
24
|
+
if (this?.meta?.code?.name) {
|
25
|
+
if (this.meta.code.name === 'module.exports') {
|
26
|
+
this.exports = 'default';
|
27
|
+
} else if (String(this.meta.code.name).startsWith('exports.')) {
|
28
|
+
this.exports = this.meta.code.name.replace(/exports./, '');
|
29
|
+
}
|
30
|
+
}
|
31
|
+
if (this.kind === 'class') {
|
32
|
+
if (
|
33
|
+
!('extends' in this) ||
|
34
|
+
typeof this.api === 'boolean' ||
|
35
|
+
this.exports
|
36
|
+
) {
|
37
|
+
classes[this.longname] = this;
|
38
|
+
return true;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
return (
|
42
|
+
!['file', 'event', 'module'].includes(this.kind) &&
|
43
|
+
(typeof this.api === 'boolean' ||
|
44
|
+
this.exports ||
|
45
|
+
(this.meta && /[\\/]externs$/.test(this.meta.path)))
|
46
|
+
);
|
47
|
+
}).get();
|
54
48
|
|
55
49
|
// get symbols data, filter out those that are members of private classes
|
56
50
|
const symbols = [];
|
package/build/lintTypes.js
CHANGED
@@ -15,6 +15,11 @@ async function lintTypes() {
|
|
15
15
|
// eslint-disable-next-line no-continue
|
16
16
|
continue;
|
17
17
|
}
|
18
|
+
if (path.endsWith('uiConfig.d.ts')) {
|
19
|
+
// we do not check the vcsUiApp.d.ts, because import("vue").DeepReadonly creates an any type
|
20
|
+
// eslint-disable-next-line no-continue
|
21
|
+
continue;
|
22
|
+
}
|
18
23
|
// eslint-disable-next-line no-loop-func
|
19
24
|
content.split(EOL).forEach((line, index) => {
|
20
25
|
const matches = line.match(anyRegex);
|
package/config/base.config.json
CHANGED
@@ -571,7 +571,8 @@
|
|
571
571
|
"name": "tableAllWithTemplateHeader",
|
572
572
|
"keyMapping": {
|
573
573
|
"roofType": "codeLists.keys.roofType",
|
574
|
-
"function": "codeLists.keys.function"
|
574
|
+
"function": "codeLists.keys.function",
|
575
|
+
"featureId": "Feature ID"
|
575
576
|
},
|
576
577
|
"valueMapping": {
|
577
578
|
"roofType": "codeLists.values.roofType.${value}",
|
package/config/dev.config.json
CHANGED
@@ -512,7 +512,8 @@
|
|
512
512
|
"name": "flight",
|
513
513
|
"flightName": "FlightExampleBerlin",
|
514
514
|
"type": "FlightContentTreeItem",
|
515
|
-
"title": "this flight has a very long name. You can find the rest in the tooltip"
|
515
|
+
"title": "this flight has a very long name. You can find the rest in the tooltip",
|
516
|
+
"icon": "mdi-airplane"
|
516
517
|
},
|
517
518
|
{
|
518
519
|
"name": "flight2",
|
@@ -549,6 +550,7 @@
|
|
549
550
|
"name": "building.myTest",
|
550
551
|
"type": "ContentTreeItem",
|
551
552
|
"title": "test SwitchMapCallback Test",
|
553
|
+
"icon": "mdi-toggle-switch",
|
552
554
|
"onClick": [
|
553
555
|
{
|
554
556
|
"type": "ActivateLayersCallback",
|
@@ -656,6 +658,10 @@
|
|
656
658
|
"name": "@vcmap-show-case/hello-world",
|
657
659
|
"entry": "plugins/@vcmap-show-case/hello-world/index.js",
|
658
660
|
"showComponent": false
|
661
|
+
},
|
662
|
+
{
|
663
|
+
"name": "@vcmap-show-case/search-example",
|
664
|
+
"entry": "plugins/@vcmap-show-case/search-example/index.js"
|
659
665
|
}
|
660
666
|
],
|
661
667
|
"plugins2": [
|
@@ -0,0 +1,45 @@
|
|
1
|
+
{
|
2
|
+
"name": "SplashScreen Examples",
|
3
|
+
"uiConfig": [
|
4
|
+
{
|
5
|
+
"name": "splashScreen",
|
6
|
+
"value": {
|
7
|
+
"name": "MyCustomScreen.name",
|
8
|
+
"title": "MyCustomScreen.tooltip",
|
9
|
+
"icon": "mdi-information-slab-circle-outline",
|
10
|
+
"content": "\nSplash Screen Template\n-------------------\nErste Schritte\n-------------------\n\nDies ist ein <em> Beispieltext</em>, der Ihnen den Einstieg erleichtern soll. **Marked** wird verwendet, um Ihren Text <u>von Markdown nach HTML</u> zu konvertieren. Um mehr über die <u><em>korrekte Syntax</em></u>zu erfahren, besuchen Sie bitte diesen [Link](https://marked.js.org/demo/) für eine Demo. \n\nWie man Listen hinzufügt\n\n1. Punkt 1 einer Aufzählung\n2. Punkt 2 einer Aufzählung.\n\nWenn Sie Aufzählungen nicht mögen, wie wäre es mit Aufzählungspunkten? \n- Punkt 1: einer Liste mit Aufzählungspunkten. \n- Punkt 2: einer Aufzählungsliste.",
|
11
|
+
"acceptInput": true,
|
12
|
+
"menuEntry": false,
|
13
|
+
"checkBoxText": "components.splashScreen.checkBoxText",
|
14
|
+
"buttonTitle": "components.splashScreen.buttonTitle",
|
15
|
+
"position": {
|
16
|
+
"width": "800px",
|
17
|
+
"height": "500px",
|
18
|
+
"maxWidth": "800px",
|
19
|
+
"maxHeight": "500px"
|
20
|
+
}
|
21
|
+
},
|
22
|
+
"properties": {
|
23
|
+
"title": "appConfigurator.editors.uiConfig.splashScreen"
|
24
|
+
}
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"name": "customScreen",
|
28
|
+
"value": {
|
29
|
+
"content": "\n\n<br/>Projekt: \n--------\n\nErste Schritte\n\nZusammenfassung:\n--------\nDies ist ein <em> Beispieltext</em>, der Ihnen den Einstieg erleichtern soll. **Marked** wird verwendet, um Ihren Text <u>von Markdown nach HTML</u> zu konvertieren. Um mehr über die <u><em>korrekte Syntax</em></u>zu erfahren, besuchen Sie bitte diesen [Link](https://marked.js.org/demo/) für eine Demo. \n \nInhalt:\n-------\nLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\n \nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\n \nHow to add lists:\n-----------------\n\n<br/>1. Enumeration, lorem ipsum dolor sit amet.\n2. Enumeration, lorem ipsum dolor sit amet.\n\n\n- Punkt 1: einer Liste mit Aufzählungspunkten.\n- Punkt 2: einer Liste mit Aufzählungspunkten.\n\n<br/>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.",
|
30
|
+
"icon": "mdi-information",
|
31
|
+
"name": "MyCustomScreen.name",
|
32
|
+
"title": "MyCustomScreen.tooltip",
|
33
|
+
"windowPosition": {
|
34
|
+
"left": "30%",
|
35
|
+
"right": "30%",
|
36
|
+
"top": "10%",
|
37
|
+
"bottom": "20%"
|
38
|
+
}
|
39
|
+
},
|
40
|
+
"properties": {
|
41
|
+
"title": "appConfigurator.editors.uiConfig.customScreen"
|
42
|
+
}
|
43
|
+
}
|
44
|
+
]
|
45
|
+
}
|
package/config/www.config.json
CHANGED
@@ -1827,6 +1827,30 @@
|
|
1827
1827
|
"layerName": "festgesetzte Überschwemmungsgebiete"
|
1828
1828
|
}
|
1829
1829
|
],
|
1830
|
+
"plugins": [
|
1831
|
+
{
|
1832
|
+
"name": "@vcmap/print",
|
1833
|
+
"entry": "plugins/@vcmap/print/index.js",
|
1834
|
+
"contactDetails": {
|
1835
|
+
"department": "Entwicklung",
|
1836
|
+
"name": "Virtual City Systems",
|
1837
|
+
"streetAddress": "Tauentzienstr. 7 b/c",
|
1838
|
+
"zipAndCity": "10789 Berlin",
|
1839
|
+
"country": "Germany",
|
1840
|
+
"mail": "info@vc.systems",
|
1841
|
+
"phone": "+49 (0) 30 . 8904 . 871 . 0",
|
1842
|
+
"fax": "+49 (0) 30 . 8904 . 871 . 0"
|
1843
|
+
}
|
1844
|
+
},
|
1845
|
+
{
|
1846
|
+
"name": "@vcmap/multi-view",
|
1847
|
+
"entry": "plugins/@vcmap/multi-view/index.js"
|
1848
|
+
},
|
1849
|
+
{
|
1850
|
+
"name": "@vcmap/transparent-terrain",
|
1851
|
+
"entry": "plugins/@vcmap/transparent-terrain/index.js"
|
1852
|
+
}
|
1853
|
+
],
|
1830
1854
|
"plugins2": [
|
1831
1855
|
{
|
1832
1856
|
"name": "@vcmap/link-button",
|
@@ -1854,20 +1878,6 @@
|
|
1854
1878
|
"name": "@vcmap/create-link",
|
1855
1879
|
"entry": "plugins/@vcmap/create-link/index.js"
|
1856
1880
|
},
|
1857
|
-
{
|
1858
|
-
"name": "@vcmap/print",
|
1859
|
-
"entry": "plugins/@vcmap/print/index.js",
|
1860
|
-
"contactDetails": {
|
1861
|
-
"department": "Entwicklung",
|
1862
|
-
"name": "Virtual City Systems",
|
1863
|
-
"streetAddress": "Tauentzienstr. 7 b/c",
|
1864
|
-
"zipAndCity": "10789 Berlin",
|
1865
|
-
"country": "Germany",
|
1866
|
-
"mail": "info@vc.systems",
|
1867
|
-
"phone": "+49 (0) 30 . 8904 . 871 . 0",
|
1868
|
-
"fax": "+49 (0) 30 . 8904 . 871 . 0"
|
1869
|
-
}
|
1870
|
-
},
|
1871
1881
|
{
|
1872
1882
|
"name": "@vcmap/swipe-tool",
|
1873
1883
|
"entry": "plugins/@vcmap/swipe-tool/index.js"
|
@@ -1884,10 +1894,6 @@
|
|
1884
1894
|
"name": "@vcmap/search-nominatim",
|
1885
1895
|
"entry": "plugins/@vcmap/search-nominatim/index.js"
|
1886
1896
|
},
|
1887
|
-
{
|
1888
|
-
"name": "@vcmap/multi-view",
|
1889
|
-
"entry": "plugins/@vcmap/multi-view/index.js"
|
1890
|
-
},
|
1891
1897
|
{
|
1892
1898
|
"name": "@vcmap/cesium-filters",
|
1893
1899
|
"entry": "plugins/@vcmap/cesium-filters/index.js"
|
@@ -1936,10 +1942,7 @@
|
|
1936
1942
|
"projectId": "rBW58EJz5RwCz75Q3",
|
1937
1943
|
"mapId": "csunCGqmQE8Py4KCe"
|
1938
1944
|
},
|
1939
|
-
|
1940
|
-
"name": "@vcmap/transparent-terrain",
|
1941
|
-
"entry": "plugins/@vcmap/transparent-terrain/index.js"
|
1942
|
-
},
|
1945
|
+
|
1943
1946
|
{
|
1944
1947
|
"name": "@vcmap/search-coordinate",
|
1945
1948
|
"entry": "plugins/@vcmap/search-coordinate/index.js"
|
package/dist/.htaccess
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
|
2
|
+
<FilesMatch "-[\w\d]{8}\.(js|css)$">
|
3
|
+
Header set Cache-Control "public, max-age=31540000, immutable"
|
4
|
+
</FilesMatch>
|
5
|
+
<FilesMatch "(index\.html|config\.json|ui\.js|vue\.js|vuetify\.js|ol\.js|cesium\.js|core\.js)$">
|
6
|
+
Header set Cache-Control "no-store, max-age=0"
|
7
|
+
</FilesMatch>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
> *Note:* Please use the main [MaterialDesign](https://github.com/Templarian/MaterialDesign/issues) repo to report issues. This repo is for distribution of the Webfont files only.
|
2
|
+
|
3
|
+
# Webfont - Material Design Icons
|
4
|
+
|
5
|
+
Webfont distribution for the [Material Design Icons](https://materialdesignicons.com).
|
6
|
+
|
7
|
+
```
|
8
|
+
npm install @mdi/font
|
9
|
+
```
|
10
|
+
|
11
|
+
> Package built with [@mdi/font-build](https://github.com/Templarian/MaterialDesign-Font-Build).
|
12
|
+
|
13
|
+
## Related Packages
|
14
|
+
|
15
|
+
[NPM @MDI Organization](https://npmjs.com/org/mdi)
|
16
|
+
|
17
|
+
- JavaScript/Typescript: [MaterialDesign-JS](https://github.com/Templarian/MaterialDesign-JS)
|
18
|
+
- SVG: [MaterialDesign-SVG](https://github.com/Templarian/MaterialDesign-SVG)
|
19
|
+
- Font-Build [MaterialDesign-Font-Build](https://github.com/Templarian/MaterialDesign-Font-Build)
|
20
|
+
- Desktop Font: [MaterialDesign-Font](https://github.com/Templarian/MaterialDesign-Font)
|
21
|
+
|
22
|
+
## Learn More
|
23
|
+
|
24
|
+
- [MaterialDesignIcons.com](https://materialdesignicons.com)
|
25
|
+
- https://github.com/Templarian/MaterialDesign
|