@vcmap/ui 5.0.0-rc.21 → 5.0.0-rc.22
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/buildHelpers.js +1 -0
- package/build/commonViteConfig.js +1 -0
- package/config/www.config.json +25 -14
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.59d4d1.js → core.a66593.js} +2443 -2457
- package/dist/assets/core.js +1 -1
- package/dist/assets/favicon.decf54cc.svg +10 -0
- package/dist/assets/{index.a3861d4e.js → index.8b833ead.js} +1 -1
- package/dist/assets/{ol.c1c512.js → ol.d4539f.js} +12406 -12152
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui.d760e4.css +5 -0
- package/dist/assets/{ui.80175f.js → ui.d760e4.js} +5218 -4240
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +2 -2
- package/dist/assets/vuetify.427322.css +5 -0
- package/dist/assets/{vuetify.efc158.js → vuetify.427322.js} +1 -1
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +6 -1
- package/index.html +5 -0
- package/index.js +2 -1
- package/lib/olLib.js +15 -1
- package/package.json +4 -3
- package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +1 -1
- package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +10 -4
- package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +75 -81
- package/plugins/@vcmap-show-case/form-inputs-example/index.js +7 -3
- package/plugins/@vcmap-show-case/form-inputs-example/validation.js +1 -1
- package/plugins/@vcmap-show-case/list-example/ListExample.vue +5 -2
- package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +57 -23
- package/plugins/package.json +2 -1
- package/src/application/VcsApp.vue +13 -5
- package/src/application/VcsAttributions.vue +2 -3
- package/src/application/VcsAttributionsFooter.vue +10 -16
- package/src/application/VcsNavbar.vue +1 -2
- package/src/application/VcsSettings.vue +21 -8
- package/src/assets/favicon-128.png +0 -0
- package/src/assets/favicon-180.png +0 -0
- package/src/assets/favicon-192.png +0 -0
- package/src/assets/favicon-32.png +0 -0
- package/src/assets/favicon.svg +10 -0
- package/src/components/buttons/VcsButton.vue +2 -3
- package/src/components/form-inputs-controls/VcsCheckbox.vue +46 -26
- package/src/components/form-inputs-controls/VcsFormSection.vue +15 -13
- package/src/components/form-inputs-controls/VcsLabel.vue +10 -1
- package/src/components/form-inputs-controls/VcsRadio.vue +38 -18
- package/src/components/form-inputs-controls/VcsSelect.vue +117 -59
- package/src/components/form-inputs-controls/VcsTextArea.vue +101 -60
- package/src/components/form-inputs-controls/VcsTextField.vue +171 -69
- package/src/components/form-inputs-controls/VcsWizard.vue +20 -14
- package/src/components/form-inputs-controls/VcsWizardStep.vue +18 -16
- package/src/components/form-inputs-controls/composables.js +26 -0
- package/src/components/form-output/VcsFormattedNumber.vue +1 -1
- package/src/components/icons/2DDistanceIcon.vue +0 -3
- package/src/components/icons/3DDistanceIcon.vue +0 -3
- package/src/components/icons/3DHeightIcon.vue +0 -3
- package/src/components/icons/CheckboxCheckedIcon.vue +4 -11
- package/src/components/icons/CheckboxIcon.vue +9 -2
- package/src/components/icons/CheckboxIndeterminateIcon.vue +4 -21
- package/src/components/icons/CommentIcon.vue +1 -5
- package/src/components/icons/ObliqueViewIcon.vue +6 -8
- package/src/components/icons/SimpleCircleOutlinedIcon.vue +1 -1
- package/src/components/icons/SplitViewIcon.vue +0 -4
- package/src/components/icons/ToolsIcon.vue +2 -4
- package/src/components/lists/VcsActionList.vue +0 -1
- package/src/components/lists/VcsList.vue +6 -25
- package/src/components/lists/VcsTreeview.vue +2 -2
- package/src/components/lists/VcsTreeviewLeaf.vue +3 -9
- package/src/components/lists/VcsTreeviewSearchbar.vue +4 -4
- package/src/components/notification/VcsBadge.vue +6 -2
- package/src/components/notification/VcsHelp.vue +39 -0
- package/src/components/tables/VcsTable.vue +70 -24
- package/src/featureInfo/AddressBalloonComponent.vue +1 -1
- package/src/featureInfo/BalloonComponent.vue +14 -9
- package/src/featureInfo/featureInfo.js +25 -7
- package/src/featureInfo/tableFeatureInfoView.js +4 -0
- package/src/i18n/de.js +5 -1
- package/src/i18n/en.js +5 -1
- package/src/legend/styleLegendItem.vue +24 -2
- package/src/legend/vcsLegend.vue +24 -31
- package/src/manager/toolbox/GroupToolboxComponent.vue +2 -3
- package/src/manager/toolbox/SelectToolboxComponent.vue +11 -5
- package/src/manager/toolbox/ToolboxManager.vue +0 -7
- package/src/manager/window/WindowComponent.vue +0 -1
- package/src/manager/window/WindowComponentHeader.vue +2 -2
- package/src/navigation/overviewMap.js +6 -15
- package/src/navigation/tiltSlider.vue +30 -6
- package/src/search/resultsComponent.vue +0 -1
- package/src/search/search.js +7 -17
- package/src/search/searchComponent.vue +6 -7
- package/src/styles/_theming.scss +72 -3
- package/src/styles/_typography.scss +0 -5
- package/src/styles/main.scss +1 -0
- package/src/styles/shades.scss +2 -0
- package/src/styles/variables.scss +40 -4
- package/src/uiConfig.js +1 -0
- package/src/vcsUiApp.js +5 -0
- package/src/vuePlugins/vuetify.js +59 -13
- package/dist/assets/ui.80175f.css +0 -1
- package/dist/assets/vuetify.efc158.css +0 -5
- /package/dist/assets/{cesium.49585c.js → cesium.88cffd.js} +0 -0
- /package/dist/assets/{vue.a08ab1.js → vue.db5102.js} +0 -0
@@ -13,7 +13,7 @@ function loadCss(href) {
|
|
13
13
|
elem.onerror = reject;
|
14
14
|
document.head.appendChild(elem);
|
15
15
|
});
|
16
|
-
} await loadCss('./assets/vuetify.
|
16
|
+
} await loadCss('./assets/vuetify.427322.css');import v from "./vue.db5102.js";
|
17
17
|
const Ne = v.extend().extend({
|
18
18
|
name: "themeable",
|
19
19
|
provide() {
|
package/dist/assets/vuetify.js
CHANGED
package/dist/index.html
CHANGED
@@ -3,7 +3,12 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8" />
|
5
5
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
6
|
-
|
6
|
+
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAc9JREFUeNpiYBgFo2AUjHTA6DC3LAxINwIxHyka////z/zg9n22l08eM/iaPPtnqPT5Jxn2r2IBEmGkWg4Cnz9+Znl498F3EHvtcTGWH7+ZOC3VP34n0ZgwJiAxh5yg+/vnz38Y+98/xj9bTov+2HBCjIvUEGA6kNy1A8hIBuJPlMTl//8M/0/f4ftOgiNWVfl/KASFAAPUESF0dEQ9yHIQgwkmAnTEVWo6YsFeKa4fv5gYsSgpBFoOj3YmZBlqOuLWM65vQEdwojkCZPkqZLVM6JqhjjAH4quU5vFHbzjAjvj+i+kzNsuxOgDqiE/QkKDcERyWf5s/L31e9X4VVrOYcGmkiiNkDNkZ9IP/MjAxqwF5axgW7NIm2gFojlhFsuUKlpxgyxmZ/kBF+LA5gpFY84BFdj+01ASD92/esV08feEXVsW6AVwM8qbAUpHxPxZZiKcS3K4SDAG00CgkKiTwWw4LiV3AkAgjKQSQQgJUcaVgDQHClmOUCUykOgAYEvUgjSiCrByMDOYJpFoOAv1M5CRuoCNW8fLzFbKwsjAycAoyM5glcDKIqn0j0XIQuMpIUSYPMZFlcK1SYmDn+UWmCRSXM6NgFIwCigFAgAEAmHnAVoDNAXoAAAAASUVORK5CYII=" sizes="32x32">
|
7
|
+
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABMJJREFUeNrs3c1rHGUAx/FnZpPNbogbQyXa0KStRRBqWwqxEkTxUDQHJVFD8FQi7T8QBA9eSi8eCm3/AZWec/DtFIWCINKCHrysUCkiJsbGvLi10uxud12fiZuw2mZ3Znbmmed55vuFEGjeWH6fpLtt5lkhiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiEj3HD/v9NKH747KV6/Il0Fbbni9Vu9dXbntljY2Hymtr945+eRdd+q5tYpl+y6+N1UqdgVAjn9OvrpgE/rNtY38j8WblfJWub77h45wDuwr59564XZ1aKBWt+j2LkgE86EAWDi++P231f4fvi/e2+vtA7l639unV+r7hyq1NCBw24xfkK/esWn8arWald/5W+3e569ypvLx9WFRrrqORTd99v3PHp0IBEA2KV8KNgHYWF13avdrjU7v9+tGX+2jayNZyxBMBgUwats93nK53PD7vsvrucrVayN5ixAcDQog9f2ynrtnGYJAAIoQsArBYiAAX5296H3AEgSsQPCnfPkizF8BZ5sfDAKzEZyXDwOXAgOQPwW8vwZmQGA0gnk5/kKY+wAgMB9B2/F9PwoAgZEIOo4f6GEgCIxC4Gv8wP8OAAIjEPgePzCAFgTnmV9LBIHGDwWgicD7IvPMrxWCwOOHBgAC7RCEGr8rACDQBsEHYcfvGgAIEkfg/aJHV/fHIvnfQBAkgqDtr3opBQAC5QgiGT9SACBQhiCy8SMHAILYEUQ6fiwAQLA3At3Gjw0ACB6O4JMbw3mdxo8VAAge7LtbhfKnN4b7dRk/dgAg+G+Nhmh8e6uwFQBBrOMrAQCC0AhiH18ZABAERqBkfKUAQOAbgbLxlQMAQUcESsf3yiRxw3/+/Jvioannl8Ue16vFVWnzj8ydzZJ2l36v3B38e3nw9NrCma+nVX/txC4N4ydBs96c0zg113dzYPoxcfXLK6kBAIJ/xxen5vJiaGznvIJZ1QgSvzg0tQgeHF8kgUCLq4ObCC4zvnoE2lweLhFc8u4FM75aBFqdDyARzFuP4PjrWR/jK0Og3QERViM4/kZW7D8W9Ci6WBFoeUKIlQiOTfeLsfFqyI+ODYG2R8RYhcAb/+CzW11+llgQaH1GkBUIdsd3GhF8tsgRaH9IlNEIoh0/FgRGnBJmJIJ4xo8cgTHHxBmFIN7xI0Vg1DmBRiBQM35kCIw7KFJrBGrHjwSBkSeFaokgmfFbEZxLDQDtECQ7/k4XJILZ1ADQBoEe4+90JSgC4w+LThSBXuOHQmDFaeGJINBz/MAIrDkuXikCvccPhMCq5wtQgsCM8X0jsO4JI2JFYNb4vhBY+YwhsSAwc/xWBKOpAdCCYJHxd5tNFYBmHoIi4283kToA8qeAd6j1TGgE9oyfnjuB7RDkcjn/BzUdmshaNv5SKgG0Inh85IliT29PZwQHTvaIZ169b9l3/kJqAewgcDPua4efOvJTh/H7xIk3hWXjL4q5l68/7A2OSFsz44Xth0X/vzTdu2Ln6cm8GBuvCMe16tnD5fjhnj3ccghHtxHsO+yKoYMZceRFVyKoWHYrve98ngCUiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjI/P4RYAALhItUNRV1FwAAAABJRU5ErkJggg==" sizes="128x128">
|
8
|
+
<link rel="icon" type="image/png" href="data:image/png;base64,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" sizes="180x180">
|
9
|
+
<link rel="icon" type="image/png" href="data:image/png;base64,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" sizes="192x192">
|
10
|
+
<link rel="icon" type="image/svg+xml" href="./assets/favicon.decf54cc.svg" />
|
11
|
+
<script type="module" crossorigin src="./assets/index.8b833ead.js"></script>
|
7
12
|
</head>
|
8
13
|
<body style="height: 100vH;">
|
9
14
|
<noscript>
|
package/index.html
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8" />
|
5
5
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
6
|
+
<link rel="icon" type="image/png" href="src/assets/favicon-32.png" sizes="32x32">
|
7
|
+
<link rel="icon" type="image/png" href="src/assets/favicon-128.png" sizes="128x128">
|
8
|
+
<link rel="icon" type="image/png" href="src/assets/favicon-180.png" sizes="180x180">
|
9
|
+
<link rel="icon" type="image/png" href="src/assets/favicon-192.png" sizes="192x192">
|
10
|
+
<link rel="icon" type="image/svg+xml" href="src/assets/favicon.svg" />
|
6
11
|
</head>
|
7
12
|
<body style="height: 100vH;">
|
8
13
|
<noscript>
|
package/index.js
CHANGED
@@ -100,7 +100,7 @@ export { default as VcsCompass } from './src/navigation/vcsCompass.vue';
|
|
100
100
|
export { default as VcsZoomButton } from './src/navigation/vcsZoomButton.vue';
|
101
101
|
|
102
102
|
export { createVueI18n, setupI18n } from './src/vuePlugins/i18n.js';
|
103
|
-
export { createVuetify, vuetify } from './src/vuePlugins/vuetify.js';
|
103
|
+
export { createVuetify, vuetify, getColorByKey, getDefaultPrimaryColor } from './src/vuePlugins/vuetify.js';
|
104
104
|
export { default as initApp } from './src/init.js';
|
105
105
|
export {
|
106
106
|
vcsAppSymbol,
|
@@ -120,6 +120,7 @@ export { default as Icons } from './src/components/icons/+all.js';
|
|
120
120
|
export { default as VcsButton } from './src/components/buttons/VcsButton.vue';
|
121
121
|
export { default as VcsActionButtonList } from './src/components/buttons/VcsActionButtonList.vue';
|
122
122
|
export { default as VcsTooltip } from './src/components/notification/VcsTooltip.vue';
|
123
|
+
export { default as VcsHelp } from './src/components/notification/VcsHelp.vue';
|
123
124
|
|
124
125
|
export { default as VcsTable } from './src/components/tables/VcsTable.vue';
|
125
126
|
|
package/lib/olLib.js
CHANGED
@@ -3,10 +3,14 @@ export {default as ol$AssertionError} from 'ol/AssertionError';
|
|
3
3
|
export {CollectionEvent as ol$Collection$CollectionEvent} from 'ol/Collection';
|
4
4
|
export {default as ol$Collection} from 'ol/Collection';
|
5
5
|
export {default as ol$CollectionEventType} from 'ol/CollectionEventType';
|
6
|
+
export {asImageLike as ol$DataTile$asImageLike} from 'ol/DataTile';
|
7
|
+
export {asArrayLike as ol$DataTile$asArrayLike} from 'ol/DataTile';
|
8
|
+
export {toArray as ol$DataTile$toArray} from 'ol/DataTile';
|
6
9
|
export {default as ol$DataTile} from 'ol/DataTile';
|
7
10
|
export {default as ol$Disposable} from 'ol/Disposable';
|
8
11
|
export {default as ol$Feature} from 'ol/Feature';
|
9
12
|
export {createStyleFunction as ol$Feature$createStyleFunction} from 'ol/Feature';
|
13
|
+
export {GeolocationError as ol$Geolocation$GeolocationError} from 'ol/Geolocation';
|
10
14
|
export {default as ol$Geolocation} from 'ol/Geolocation';
|
11
15
|
export {listenImage as ol$Image$listenImage} from 'ol/Image';
|
12
16
|
export {default as ol$Image} from 'ol/Image';
|
@@ -45,7 +49,7 @@ export {isNoopAnimation as ol$View$isNoopAnimation} from 'ol/View';
|
|
45
49
|
export {default as ol$ViewHint} from 'ol/ViewHint';
|
46
50
|
export {default as ol$ViewProperty} from 'ol/ViewProperty';
|
47
51
|
export {binarySearch as ol$array$binarySearch} from 'ol/array';
|
48
|
-
export {
|
52
|
+
export {ascending as ol$array$ascending} from 'ol/array';
|
49
53
|
export {linearFindNearest as ol$array$linearFindNearest} from 'ol/array';
|
50
54
|
export {reverseSubArray as ol$array$reverseSubArray} from 'ol/array';
|
51
55
|
export {extend as ol$array$extend} from 'ol/array';
|
@@ -63,6 +67,10 @@ export {normalize as ol$color$normalize} from 'ol/color';
|
|
63
67
|
export {toString as ol$color$toString} from 'ol/color';
|
64
68
|
export {isStringColor as ol$color$isStringColor} from 'ol/color';
|
65
69
|
export {asColorLike as ol$colorlike$asColorLike} from 'ol/colorlike';
|
70
|
+
export {setLevel as ol$console$setLevel} from 'ol/console';
|
71
|
+
export {log as ol$console$log} from 'ol/console';
|
72
|
+
export {warn as ol$console$warn} from 'ol/console';
|
73
|
+
export {error as ol$console$error} from 'ol/console';
|
66
74
|
export {default as ol$control$Attribution} from 'ol/control/Attribution';
|
67
75
|
export {default as ol$control$Control} from 'ol/control/Control';
|
68
76
|
export {default as ol$control$FullScreen} from 'ol/control/FullScreen';
|
@@ -492,7 +500,12 @@ export {RADIUS as ol$proj$epsg4326$RADIUS} from 'ol/proj/epsg4326';
|
|
492
500
|
export {EXTENT as ol$proj$epsg4326$EXTENT} from 'ol/proj/epsg4326';
|
493
501
|
export {METERS_PER_UNIT as ol$proj$epsg4326$METERS_PER_UNIT} from 'ol/proj/epsg4326';
|
494
502
|
export {PROJECTIONS as ol$proj$epsg4326$PROJECTIONS} from 'ol/proj/epsg4326';
|
503
|
+
export {isRegistered as ol$proj$proj4$isRegistered} from 'ol/proj/proj4';
|
504
|
+
export {unregister as ol$proj$proj4$unregister} from 'ol/proj/proj4';
|
495
505
|
export {register as ol$proj$proj4$register} from 'ol/proj/proj4';
|
506
|
+
export {setEPSGLookup as ol$proj$proj4$setEPSGLookup} from 'ol/proj/proj4';
|
507
|
+
export {getEPSGLookup as ol$proj$proj4$getEPSGLookup} from 'ol/proj/proj4';
|
508
|
+
export {fromEPSGCode as ol$proj$proj4$fromEPSGCode} from 'ol/proj/proj4';
|
496
509
|
export {clear as ol$proj$projections$clear} from 'ol/proj/projections';
|
497
510
|
export {get as ol$proj$projections$get} from 'ol/proj/projections';
|
498
511
|
export {add as ol$proj$projections$add} from 'ol/proj/projections';
|
@@ -626,6 +639,7 @@ export {STROKE_VERTEX_SHADER as ol$renderer$webgl$shaders$STROKE_VERTEX_SHADER}
|
|
626
639
|
export {STROKE_FRAGMENT_SHADER as ol$renderer$webgl$shaders$STROKE_FRAGMENT_SHADER} from 'ol/renderer/webgl/shaders';
|
627
640
|
export {POINT_VERTEX_SHADER as ol$renderer$webgl$shaders$POINT_VERTEX_SHADER} from 'ol/renderer/webgl/shaders';
|
628
641
|
export {POINT_FRAGMENT_SHADER as ol$renderer$webgl$shaders$POINT_FRAGMENT_SHADER} from 'ol/renderer/webgl/shaders';
|
642
|
+
export {default as ol$reproj$DataTile} from 'ol/reproj/DataTile';
|
629
643
|
export {default as ol$reproj$Image} from 'ol/reproj/Image';
|
630
644
|
export {default as ol$reproj$Tile} from 'ol/reproj/Tile';
|
631
645
|
export {default as ol$reproj$Triangulation} from 'ol/reproj/Triangulation';
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vcmap/ui",
|
3
|
-
"version": "5.0.0-rc.
|
3
|
+
"version": "5.0.0-rc.22",
|
4
4
|
"author": "Virtual City Systems",
|
5
5
|
"license": "MIT",
|
6
6
|
"scripts": {
|
@@ -42,8 +42,8 @@
|
|
42
42
|
},
|
43
43
|
"peerDependencies": {
|
44
44
|
"@vcmap-cesium/engine": "~1.1.2",
|
45
|
-
"@vcmap/core": "~5.0.0-rc.
|
46
|
-
"ol": "~7.
|
45
|
+
"@vcmap/core": "~5.0.0-rc.27",
|
46
|
+
"ol": "~7.2.2",
|
47
47
|
"vue": "~2.7.3",
|
48
48
|
"vuetify": "~2.6.7"
|
49
49
|
},
|
@@ -59,6 +59,7 @@
|
|
59
59
|
"jsdoc-plugin-intersection": "^1.0.4",
|
60
60
|
"jsdoc-plugin-typescript": "^2.0.6",
|
61
61
|
"jsdom": "^19.0.0",
|
62
|
+
"resize-observer-polyfill": "1.5.1",
|
62
63
|
"rollup-plugin-strip-pragma": "^1.0.0",
|
63
64
|
"sass": "1.32.13",
|
64
65
|
"typescript": "^4.2.4",
|
@@ -38,22 +38,28 @@
|
|
38
38
|
</v-list-item-action>
|
39
39
|
</v-list-item>
|
40
40
|
<v-card class="my-1 ma-1 py-1 white">
|
41
|
+
<h2>
|
42
|
+
light
|
43
|
+
</h2>
|
41
44
|
<v-chip
|
42
45
|
class="mx-1"
|
43
46
|
label
|
44
|
-
:color="theme.
|
45
|
-
v-for="(key, index) in Object.keys(theme.
|
47
|
+
:color="theme.light[key]?.base || theme.light[key]"
|
48
|
+
v-for="(key, index) in Object.keys(theme.light)"
|
46
49
|
:key="index"
|
47
50
|
>
|
48
51
|
{{ key }}
|
49
52
|
</v-chip>
|
50
53
|
</v-card>
|
51
54
|
<v-card class="my-1 ma-1 py-1 black">
|
55
|
+
<h2 class="white--text">
|
56
|
+
dark
|
57
|
+
</h2>
|
52
58
|
<v-chip
|
53
59
|
class="mx-1"
|
54
60
|
label
|
55
|
-
:color="theme.
|
56
|
-
v-for="(key, index) in Object.keys(theme.
|
61
|
+
:color="theme.dark[key]?.base || theme.dark[key]"
|
62
|
+
v-for="(key, index) in Object.keys(theme.dark)"
|
57
63
|
:key="index"
|
58
64
|
>
|
59
65
|
{{ key }}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<v-form v-model="isValid">
|
2
|
+
<v-form v-model="isValid" ref="form">
|
3
3
|
<VcsFormSection
|
4
4
|
heading="VcsFormSection Select & Text Inputs"
|
5
5
|
:header-actions="actions"
|
@@ -16,9 +16,8 @@
|
|
16
16
|
</ol>
|
17
17
|
</template>
|
18
18
|
<template #default v-if="showSection">
|
19
|
-
<v-container class="
|
19
|
+
<v-container class="py-0 px-1">
|
20
20
|
<v-row
|
21
|
-
:dense="dense"
|
22
21
|
no-gutters
|
23
22
|
align="center"
|
24
23
|
>
|
@@ -32,13 +31,13 @@
|
|
32
31
|
id="selectInput"
|
33
32
|
:items="selectOptions"
|
34
33
|
:dense="dense"
|
35
|
-
:rules="[
|
34
|
+
:rules="[v => v !== 'D' || 'D is not allowed']"
|
36
35
|
v-model="state.selected"
|
36
|
+
color="purple"
|
37
37
|
/>
|
38
38
|
</v-col>
|
39
39
|
</v-row>
|
40
40
|
<v-row
|
41
|
-
:dense="dense"
|
42
41
|
no-gutters
|
43
42
|
align="center"
|
44
43
|
>
|
@@ -54,44 +53,38 @@
|
|
54
53
|
:dense="dense"
|
55
54
|
:rules="[conditionalTest(state.conditionalInput, state.selected)]"
|
56
55
|
v-model="state.conditionalInput"
|
56
|
+
placeholder="conditional"
|
57
57
|
/>
|
58
58
|
</v-col>
|
59
59
|
</v-row>
|
60
60
|
<v-row
|
61
|
-
:dense="dense"
|
62
61
|
no-gutters
|
63
62
|
align="center"
|
64
63
|
>
|
65
64
|
<v-col>
|
66
65
|
<VcsTextField
|
67
66
|
:dense="dense"
|
68
|
-
v-model="initialTextInput"
|
67
|
+
v-model="state.initialTextInput"
|
68
|
+
:rules="[isValidText]"
|
69
|
+
:loading="state.initialTextInput === 'myInitialText'"
|
70
|
+
:error-messages="!state.checkboxInput ? ['manual error message depending on checkbox'] : undefined"
|
69
71
|
/>
|
70
72
|
</v-col>
|
71
73
|
</v-row>
|
72
74
|
<v-row
|
73
|
-
:dense="dense"
|
74
75
|
no-gutters
|
75
76
|
align="center"
|
76
77
|
>
|
77
78
|
<v-col>
|
78
|
-
<
|
79
|
-
InitialTextInput
|
80
|
-
</VcsLabel>
|
81
|
-
</v-col>
|
82
|
-
<v-col>
|
83
|
-
<VcsTextField
|
84
|
-
id="initialTextInput"
|
79
|
+
<VcsTextArea
|
85
80
|
:dense="dense"
|
86
|
-
:rules="[
|
87
|
-
|
88
|
-
|
89
|
-
:error-messages="!state.checkboxInput ? ['manual error message depending on checkbox'] : undefined"
|
81
|
+
:rules="[v => !!v || 'text area must not be empty']"
|
82
|
+
placeholder="This is a text area"
|
83
|
+
rows="2"
|
90
84
|
/>
|
91
85
|
</v-col>
|
92
86
|
</v-row>
|
93
87
|
<v-row
|
94
|
-
:dense="dense"
|
95
88
|
no-gutters
|
96
89
|
align="center"
|
97
90
|
>
|
@@ -107,11 +100,12 @@
|
|
107
100
|
type="email"
|
108
101
|
:rules="[isValidEmail]"
|
109
102
|
v-model="state.email"
|
103
|
+
color="blue"
|
104
|
+
placeholder="Email address"
|
110
105
|
/>
|
111
106
|
</v-col>
|
112
107
|
</v-row>
|
113
108
|
<v-row
|
114
|
-
:dense="dense"
|
115
109
|
no-gutters
|
116
110
|
align="center"
|
117
111
|
>
|
@@ -126,17 +120,17 @@
|
|
126
120
|
:dense="dense"
|
127
121
|
prepend-icon="mdi-map-marker"
|
128
122
|
v-model="state.prependedInput"
|
123
|
+
label="text"
|
129
124
|
/>
|
130
125
|
</v-col>
|
131
126
|
</v-row>
|
132
127
|
<v-row
|
133
|
-
:dense="dense"
|
134
128
|
no-gutters
|
135
129
|
align="center"
|
136
130
|
>
|
137
131
|
<v-col>
|
138
132
|
<VcsLabel html-for="fileInput" :dense="dense">
|
139
|
-
|
133
|
+
File input
|
140
134
|
</VcsLabel>
|
141
135
|
</v-col>
|
142
136
|
<v-col>
|
@@ -157,9 +151,8 @@
|
|
157
151
|
help-text="form-inputs-example.help"
|
158
152
|
>
|
159
153
|
<template #default>
|
160
|
-
<v-container>
|
154
|
+
<v-container class="py-0 px-1">
|
161
155
|
<v-row
|
162
|
-
:dense="dense"
|
163
156
|
no-gutters
|
164
157
|
align="center"
|
165
158
|
>
|
@@ -173,14 +166,14 @@
|
|
173
166
|
id="numberInput"
|
174
167
|
:dense="dense"
|
175
168
|
type="number"
|
176
|
-
step="
|
177
|
-
|
169
|
+
step="1"
|
170
|
+
unit="cm"
|
178
171
|
v-model.number="state.numberInput"
|
172
|
+
show-spin-buttons
|
179
173
|
/>
|
180
174
|
</v-col>
|
181
175
|
</v-row>
|
182
176
|
<v-row
|
183
|
-
:dense="dense"
|
184
177
|
no-gutters
|
185
178
|
align="center"
|
186
179
|
>
|
@@ -200,52 +193,39 @@
|
|
200
193
|
</v-col>
|
201
194
|
</v-row>
|
202
195
|
<v-row
|
203
|
-
:dense="dense"
|
204
196
|
no-gutters
|
205
197
|
align="center"
|
206
198
|
>
|
207
|
-
<v-col cols="1" class="px-1">
|
208
|
-
<VcsLabel html-for="coordinateX" :dense="dense">
|
209
|
-
X
|
210
|
-
</VcsLabel>
|
211
|
-
</v-col>
|
212
199
|
<v-col>
|
213
200
|
<VcsTextField
|
214
201
|
id="coordinateX"
|
215
202
|
:dense="dense"
|
216
203
|
type="number"
|
217
204
|
step="10"
|
218
|
-
|
205
|
+
prefix="X"
|
206
|
+
unit="m"
|
219
207
|
v-model.number="state.numberInput"
|
220
208
|
/>
|
221
209
|
</v-col>
|
222
|
-
<v-col
|
223
|
-
<VcsLabel html-for="coordinateY" :dense="dense">
|
224
|
-
Y
|
225
|
-
</VcsLabel>
|
226
|
-
</v-col>
|
227
|
-
<v-col>
|
210
|
+
<v-col class="px-2">
|
228
211
|
<VcsTextField
|
229
212
|
id="coordinateY"
|
230
213
|
:dense="dense"
|
231
214
|
type="number"
|
232
215
|
step="10"
|
233
|
-
|
216
|
+
prefix="Y"
|
217
|
+
unit="m"
|
234
218
|
v-model.number="state.numberInput"
|
235
219
|
/>
|
236
220
|
</v-col>
|
237
|
-
<v-col cols="1" class="px-1">
|
238
|
-
<VcsLabel html-for="coordinateZ" :dense="dense">
|
239
|
-
Z
|
240
|
-
</VcsLabel>
|
241
|
-
</v-col>
|
242
221
|
<v-col>
|
243
222
|
<VcsTextField
|
244
223
|
id="coordinateZ"
|
245
224
|
:dense="dense"
|
246
225
|
type="number"
|
247
226
|
step="10"
|
248
|
-
|
227
|
+
unit="m"
|
228
|
+
prefix="Z"
|
249
229
|
v-model.number="state.numberInput"
|
250
230
|
/>
|
251
231
|
</v-col>
|
@@ -257,9 +237,8 @@
|
|
257
237
|
heading="VcsFormSection Radio & Checkbox"
|
258
238
|
>
|
259
239
|
<template #default>
|
260
|
-
<v-container>
|
240
|
+
<v-container class="py-0 px-1">
|
261
241
|
<v-row
|
262
|
-
:dense="dense"
|
263
242
|
no-gutters
|
264
243
|
align="center"
|
265
244
|
>
|
@@ -268,12 +247,17 @@
|
|
268
247
|
:dense="dense"
|
269
248
|
:items="[...selectOptions, { label: 'Radio Option E colored', color: 'primary', value: 'E' }]"
|
270
249
|
v-model="state.selected"
|
250
|
+
:rules="[v => v !== 'D' || 'D is not allowed']"
|
271
251
|
row
|
272
252
|
/>
|
273
253
|
</v-col>
|
274
254
|
</v-row>
|
255
|
+
<v-row no-gutters>
|
256
|
+
<v-col>
|
257
|
+
<VcsLabel :dense="dense">Text</VcsLabel>
|
258
|
+
</v-col>
|
259
|
+
</v-row>
|
275
260
|
<v-row
|
276
|
-
:dense="dense"
|
277
261
|
no-gutters
|
278
262
|
align="center"
|
279
263
|
>
|
@@ -307,15 +291,14 @@
|
|
307
291
|
heading="VcsFormSection Mixed Inputs"
|
308
292
|
>
|
309
293
|
<template #header="{ heading }">
|
310
|
-
<article class="pa-2
|
294
|
+
<article class="pa-2 text--primary">
|
311
295
|
{{ heading }}
|
312
296
|
<h3>This is a custom header using header slot</h3>
|
313
297
|
</article>
|
314
298
|
</template>
|
315
299
|
<template #default>
|
316
|
-
<v-container>
|
300
|
+
<v-container class="py-0 px-1">
|
317
301
|
<v-row
|
318
|
-
:dense="dense"
|
319
302
|
align="center"
|
320
303
|
>
|
321
304
|
<v-col cols="1">
|
@@ -323,7 +306,7 @@
|
|
323
306
|
1
|
324
307
|
</VcsLabel>
|
325
308
|
</v-col>
|
326
|
-
<v-col
|
309
|
+
<v-col>
|
327
310
|
<VcsSelect
|
328
311
|
:items="[
|
329
312
|
{value: 'one', i18n: 'form-inputs-example.numbers.one'},
|
@@ -331,9 +314,10 @@
|
|
331
314
|
{value: 'three', i18n: 'form-inputs-example.numbers.three'}]"
|
332
315
|
:item-text="item => item.i18n"
|
333
316
|
:dense="dense"
|
317
|
+
placeholder="Numbers"
|
334
318
|
/>
|
335
319
|
</v-col>
|
336
|
-
<v-col
|
320
|
+
<v-col>
|
337
321
|
<VcsSelect
|
338
322
|
:items="[
|
339
323
|
{value: 'Anna', fullName: 'Annabella'},
|
@@ -343,35 +327,35 @@
|
|
343
327
|
:dense="dense"
|
344
328
|
multiple
|
345
329
|
v-model="state.selectedMultiple"
|
346
|
-
|
347
|
-
</v-col>
|
348
|
-
<v-col cols="5">
|
349
|
-
<VcsTextField
|
350
|
-
id="textInput"
|
351
|
-
clearable
|
352
|
-
:dense="dense"
|
353
|
-
v-model="state.conditionalInput"
|
330
|
+
:rules="[v => !!v.length || 'Please select at least one option.']"
|
354
331
|
/>
|
355
332
|
</v-col>
|
356
333
|
</v-row>
|
357
334
|
</v-container>
|
358
335
|
</template>
|
359
336
|
</VcsFormSection>
|
360
|
-
<
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
337
|
+
<div class="d-flex justify-space-between px-2">
|
338
|
+
<VcsButton
|
339
|
+
@click="logState(state)"
|
340
|
+
:disabled="!isValid"
|
341
|
+
:tooltip="'Log current state in console'"
|
342
|
+
:has-update="isValid && newUpdate"
|
343
|
+
class="mx-2 mb-2"
|
344
|
+
>
|
345
|
+
Log State
|
346
|
+
</VcsButton>
|
347
|
+
<VcsButton
|
348
|
+
@click="validate();"
|
349
|
+
>
|
350
|
+
Val
|
351
|
+
</VcsButton>
|
352
|
+
<VcsButton
|
353
|
+
@click="resetState();"
|
354
|
+
icon="$vcsReturn"
|
355
|
+
>
|
356
|
+
Reset
|
357
|
+
</VcsButton>
|
358
|
+
</div>
|
375
359
|
</v-form>
|
376
360
|
</template>
|
377
361
|
<script>
|
@@ -385,6 +369,7 @@
|
|
385
369
|
VcsFormattedNumber,
|
386
370
|
VcsFormSection,
|
387
371
|
VcsLabel,
|
372
|
+
VcsTextArea,
|
388
373
|
} from '@vcmap/ui';
|
389
374
|
import { VCol, VContainer, VForm, VRow } from 'vuetify/lib';
|
390
375
|
import packageJSON from './package.json';
|
@@ -401,6 +386,7 @@
|
|
401
386
|
VcsFormattedNumber,
|
402
387
|
VcsFormSection,
|
403
388
|
VcsLabel,
|
389
|
+
VcsTextArea,
|
404
390
|
VForm,
|
405
391
|
VRow,
|
406
392
|
VCol,
|
@@ -425,18 +411,26 @@
|
|
425
411
|
const plugin = app.plugins.getByKey(packageJSON.name);
|
426
412
|
const newUpdate = ref(true);
|
427
413
|
watch(plugin.state, () => { newUpdate.value = true; });
|
414
|
+
const form = ref();
|
428
415
|
|
429
416
|
return {
|
430
417
|
// no object-destruction of reactive objects! or use toRef()
|
431
418
|
state: plugin.state,
|
432
419
|
// do not put the whole config here, since it would become reactive
|
433
420
|
selectOptions: plugin.config.selectOptions,
|
434
|
-
|
435
|
-
isValid:
|
421
|
+
form,
|
422
|
+
isValid: ref(true),
|
436
423
|
isValidText,
|
437
424
|
conditionalTest,
|
438
425
|
isValidEmail,
|
439
426
|
newUpdate,
|
427
|
+
resetState() {
|
428
|
+
plugin.resetState();
|
429
|
+
form.value.resetValidation();
|
430
|
+
},
|
431
|
+
validate() {
|
432
|
+
form.value.validate();
|
433
|
+
},
|
440
434
|
logState() {
|
441
435
|
// eslint-disable-next-line no-console
|
442
436
|
console.log(plugin.getSerializedState());
|
@@ -74,7 +74,7 @@ export default function (config) {
|
|
74
74
|
/**
|
75
75
|
* @type {FormInputsExampleState}
|
76
76
|
*/
|
77
|
-
const pluginState =
|
77
|
+
const pluginState = {
|
78
78
|
selected: pluginConfig.selectOptions.value[0],
|
79
79
|
selectedMultiple: [],
|
80
80
|
conditionalInput: '',
|
@@ -84,7 +84,10 @@ export default function (config) {
|
|
84
84
|
email: '',
|
85
85
|
prependedInput: '',
|
86
86
|
files: [],
|
87
|
-
}
|
87
|
+
};
|
88
|
+
|
89
|
+
/** @type {FormInputsExampleState} */
|
90
|
+
const defaultState = JSON.parse(JSON.stringify(pluginState));
|
88
91
|
|
89
92
|
|
90
93
|
/**
|
@@ -149,7 +152,8 @@ export default function (config) {
|
|
149
152
|
get version() { return packageJSON.version; },
|
150
153
|
get vcMapVersion() { return packageJSON.vcMapVersion; },
|
151
154
|
config: pluginConfig,
|
152
|
-
state: pluginState,
|
155
|
+
state: reactive(pluginState),
|
156
|
+
resetState: () => Object.assign(pluginState, JSON.parse(JSON.stringify(defaultState))),
|
153
157
|
getSerializedState,
|
154
158
|
setSerializedState,
|
155
159
|
onVcsAppMounted(app) {
|
@@ -13,7 +13,7 @@ export function isValidText(value) {
|
|
13
13
|
* @returns {boolean|string}
|
14
14
|
*/
|
15
15
|
export function conditionalTest(value, condition) {
|
16
|
-
if (condition === '
|
16
|
+
if (condition === 'B') {
|
17
17
|
return value === 'test' || `input ${value} must be "test"`;
|
18
18
|
} else {
|
19
19
|
return true;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<v-sheet>
|
3
|
-
<v-sheet class="
|
3
|
+
<v-sheet class="px-2 d-grid">
|
4
4
|
<v-switch
|
5
5
|
v-model="selectable"
|
6
6
|
label="Selectable"
|
@@ -286,5 +286,8 @@
|
|
286
286
|
</script>
|
287
287
|
|
288
288
|
<style lang="scss" scoped>
|
289
|
-
|
289
|
+
.d-grid{
|
290
|
+
display: grid;
|
291
|
+
grid-template-columns: 1fr 1fr;
|
292
|
+
}
|
290
293
|
</style>
|