@kalisio/kdk 2.5.3 → 2.6.0
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/.github/workflows/main.yaml +35 -6
- package/client.globe.js +8 -0
- package/client.js +8 -0
- package/client.map.js +8 -0
- package/core/api/hooks/hooks.push.js +3 -2
- package/core/api/hooks/hooks.tags.js +56 -0
- package/core/api/models/tags.model.mongodb.js +8 -0
- package/core/api/services/index.js +33 -2
- package/core/api/services/tags/tags.hooks.js +47 -0
- package/core/client/api.js +5 -5
- package/core/client/components/KActivity.vue +3 -2
- package/core/client/components/KChip.vue +2 -2
- package/core/client/components/KEditor.vue +3 -1
- package/core/client/components/KFollower.vue +4 -4
- package/core/client/components/KStore.vue +1 -1
- package/core/client/components/KTab.vue +20 -7
- package/core/client/components/account/KProfile.vue +9 -25
- package/core/client/components/action/KAction.vue +10 -10
- package/core/client/components/action/KToggleFullscreenAction.vue +2 -11
- package/core/client/components/app/KHome.vue +3 -2
- package/core/client/components/collection/KFilter.vue +5 -4
- package/core/client/components/collection/KGrid.vue +5 -1
- package/core/client/components/collection/KItemsFilter.vue +47 -0
- package/core/client/components/collection/KItemsSorter.vue +42 -0
- package/core/client/components/collection/KScrollDown.vue +2 -2
- package/core/client/components/collection/KSearchFilterControl.vue +3 -2
- package/core/client/components/collection/KSorter.vue +33 -37
- package/core/client/components/collection/KTagsFilterControl.vue +14 -40
- package/core/client/components/collection/KTagsFilterView.vue +10 -45
- package/core/client/components/collection/KTimeFilterControl.vue +6 -7
- package/core/client/components/collection/KTimeFilterView.vue +13 -22
- package/core/client/components/collection/KTimeLine.vue +18 -9
- package/core/client/components/form/KColorField.vue +13 -6
- package/core/client/components/form/KColorScaleField.vue +7 -12
- package/core/client/components/form/KFileField.vue +118 -89
- package/core/client/components/form/KForm.vue +30 -18
- package/core/client/components/form/KIconField.vue +4 -1
- package/core/client/components/form/KNumberField.vue +9 -2
- package/core/client/components/form/KSelectField.vue +1 -4
- package/core/client/components/form/KTagField.vue +229 -0
- package/core/client/components/form/KTextField.vue +4 -0
- package/core/client/components/form/KTextareaField.vue +3 -1
- package/core/client/components/input/KShapePicker.vue +3 -3
- package/core/client/components/layout/KFab.vue +32 -20
- package/core/client/components/layout/KPage.vue +11 -6
- package/core/client/components/layout/KWindow.vue +5 -0
- package/core/client/components/media/index.js +2 -6
- package/core/client/components/menu/KMenu.vue +12 -10
- package/core/client/components/menu/KSubMenu.vue +12 -12
- package/core/client/components/messages/KMessageCard.vue +13 -12
- package/core/client/components/messages/KMessageComposer.vue +13 -9
- package/core/client/components/messages/KMessagesTimeLine.vue +16 -8
- package/core/client/components/tags/KTagFilter.vue +99 -0
- package/core/client/components/tags/KTagItem.vue +65 -0
- package/core/client/components/tags/KTagManager.vue +198 -0
- package/core/client/components/tags/KTagSelection.vue +82 -0
- package/core/client/components/time/KDate.vue +3 -17
- package/core/client/components/time/KDateTime.vue +1 -1
- package/core/client/components/time/KTime.vue +0 -4
- package/core/client/composables/collection-filter.js +41 -2
- package/core/client/composables/collection.js +3 -3
- package/core/client/composables/index.js +1 -0
- package/core/client/composables/pwa.js +13 -0
- package/core/client/composables/session.js +7 -8
- package/core/client/composables/user.js +36 -0
- package/core/client/directives/index.js +1 -0
- package/core/client/directives/v-drop-file.js +174 -0
- package/core/client/document.js +2 -1
- package/core/client/exporter.js +17 -3
- package/core/client/i18n/core_en.json +34 -7
- package/core/client/i18n/core_fr.json +36 -9
- package/core/client/i18n.js +26 -11
- package/core/client/layout.js +5 -5
- package/core/client/mixins/mixin.base-activity.js +8 -5
- package/core/client/mixins/mixin.base-editor.js +2 -1
- package/core/client/mixins/mixin.base-field.js +3 -2
- package/core/client/mixins/mixin.base-item.js +12 -10
- package/core/client/mixins/mixin.service.js +3 -1
- package/core/client/platform.js +0 -3
- package/core/client/readers/reader.json.js +2 -2
- package/core/client/utils/index.js +2 -0
- package/core/client/utils/utils.collection.js +6 -6
- package/core/client/utils/utils.colors.js +46 -19
- package/core/client/utils/utils.files.js +19 -0
- package/core/client/utils/utils.locale.js +13 -17
- package/core/client/utils/utils.services.js +27 -0
- package/core/client/utils/utils.shapes.js +2 -2
- package/core/client/utils/utils.tags.js +17 -0
- package/core/client/utils/utils.tours.js +31 -0
- package/core/common/permissions.js +3 -0
- package/core/common/schemas/tags.update.json +35 -0
- package/core/common/schemas/users.update-profile.json +1 -1
- package/core/common/utils.js +5 -5
- package/extras/configs/panes.top.js +11 -0
- package/extras/configs/stickies.js +1 -1
- package/extras/configs/widgets.left.js +13 -1
- package/extras/libs/jsts.min.js +8 -0
- package/{test/client/core/account.js → extras/tests/core/account.mjs} +4 -4
- package/extras/tests/core/api.mjs +114 -0
- package/{test/client/core/collection.js → extras/tests/core/collection.mjs} +8 -8
- package/{test/client/core/dialogs.js → extras/tests/core/dialogs.mjs} +1 -1
- package/extras/tests/core/index.mjs +9 -0
- package/{test/client/core/layout.js → extras/tests/core/layout.mjs} +7 -3
- package/{test/client/core/runner.js → extras/tests/core/runner.mjs} +3 -3
- package/{test/client/core/screens.js → extras/tests/core/screens.mjs} +1 -1
- package/{test/client/core/utils.js → extras/tests/core/utils.mjs} +79 -26
- package/extras/tests/index.mjs +4 -0
- package/{test/client/map/api.js → extras/tests/map/api.mjs} +1 -1
- package/{test/client/map/catalog.js → extras/tests/map/catalog.mjs} +18 -18
- package/{test/client/map/controls.js → extras/tests/map/controls.mjs} +3 -3
- package/extras/tests/map/index.mjs +5 -0
- package/{test/client/map/time.js → extras/tests/map/time.mjs} +3 -3
- package/{test/client/map/utils.js → extras/tests/map/utils.mjs} +6 -5
- package/extras/tours/fab.js +36 -0
- package/extras/tours/layout.js +49 -0
- package/extras/tours/pane.left.js +78 -0
- package/extras/tours/pane.right.js +145 -0
- package/extras/tours/pane.top.js +239 -0
- package/map/api/config/layers.cjs +28 -13
- package/map/api/hooks/hooks.query.js +12 -7
- package/map/api/models/catalog.model.mongodb.js +17 -6
- package/map/api/services/catalog/catalog.hooks.js +1 -1
- package/map/api/services/index.js +18 -1
- package/map/client/cesium/utils/utils.cesium.js +25 -65
- package/map/client/cesium/utils/utils.features.js +1 -0
- package/map/client/cesium/utils/utils.geojson.js +1 -0
- package/map/client/cesium/utils/utils.style.js +7 -6
- package/map/client/components/KFeatureEditor.vue +3 -3
- package/map/client/components/KFeaturesChart.vue +4 -4
- package/map/client/components/KFeaturesFilterEditor.vue +19 -13
- package/map/client/components/KFeaturesFilterManager.vue +7 -4
- package/map/client/components/KFeaturesTable.vue +2 -2
- package/map/client/components/KLayerEditor.vue +6 -6
- package/map/client/components/KMeasureTool.vue +2 -1
- package/map/client/components/catalog/KBaseLayersSelector.vue +1 -1
- package/map/client/components/catalog/KCategoryItem.vue +15 -1
- package/map/client/components/catalog/KConnectLayer.vue +2 -2
- package/map/client/components/catalog/KCreateView.vue +3 -2
- package/map/client/components/catalog/KFilteredLayerItem.vue +26 -6
- package/map/client/components/catalog/KImportLayer.vue +6 -3
- package/map/client/components/catalog/KLayerCategories.vue +6 -6
- package/map/client/components/catalog/KLayerItem.vue +12 -2
- package/map/client/components/catalog/KLayersList.vue +180 -0
- package/map/client/components/catalog/KLayersPanel.vue +146 -36
- package/map/client/components/catalog/KLayersSelector.vue +96 -48
- package/map/client/components/catalog/KProjectEditor.vue +0 -9
- package/map/client/components/catalog/KProjectSelector.vue +3 -2
- package/map/client/components/catalog/KProjectsPanel.vue +23 -8
- package/map/client/components/catalog/KViewsPanel.vue +18 -8
- package/map/client/components/catalog/KWeatherLayersSelector.vue +3 -3
- package/map/client/components/form/KDirectionField.vue +3 -6
- package/map/client/components/form/KLayerCategoryField.vue +2 -2
- package/map/client/components/form/KOwsServiceField.vue +25 -24
- package/map/client/components/form/KSelectLayersField.vue +4 -4
- package/map/client/components/form/KSelectViewsField.vue +4 -4
- package/map/client/components/legend/KLayerLegend.vue +11 -2
- package/map/client/components/legend/KLegend.vue +44 -51
- package/map/client/components/location/KLocationCardSection.vue +6 -7
- package/map/client/components/location/KLocationMap.vue +23 -13
- package/map/client/components/stickies/KPosition.vue +5 -0
- package/map/client/components/styles/KLayerStyleAction.vue +59 -12
- package/map/client/components/styles/KStyleEditor.vue +71 -8
- package/map/client/components/styles/KStyleEditorSection.vue +82 -33
- package/map/client/components/styles/KStyleManager.vue +119 -59
- package/map/client/components/styles/KStylePreview.vue +9 -25
- package/map/client/components/styles/KStylePreviewItem.vue +22 -1
- package/map/client/components/tools/KSearchTool.vue +1 -1
- package/map/client/components/widget/KElevationProfile.vue +20 -17
- package/map/client/components/widget/KInformationBox.vue +5 -5
- package/map/client/components/widget/KMapillaryViewer.vue +2 -1
- package/map/client/components/widget/KTimeSeries.vue +11 -9
- package/map/client/globe.js +2 -0
- package/map/client/i18n/map_en.json +29 -7
- package/map/client/i18n/map_fr.json +29 -7
- package/map/client/leaflet/GradientPath.js +61 -24
- package/map/client/leaflet/ShapeMarker.js +12 -5
- package/map/client/leaflet/TiledMeshLayer.js +3 -3
- package/map/client/leaflet/utils/utils.geojson.js +66 -8
- package/map/client/leaflet/utils/utils.style.js +14 -15
- package/map/client/mixins/globe/mixin.base-globe.js +181 -34
- package/map/client/mixins/globe/mixin.file-layers.js +3 -0
- package/map/client/mixins/globe/mixin.geojson-layers.js +179 -31
- package/map/client/mixins/globe/mixin.opendap-layers.js +2 -1
- package/map/client/mixins/globe/mixin.style.js +23 -1
- package/map/client/mixins/globe/mixin.tooltip.js +14 -2
- package/map/client/mixins/map/mixin.base-map.js +146 -58
- package/map/client/mixins/map/mixin.edit-layers.js +18 -15
- package/map/client/mixins/map/mixin.geojson-layers.js +181 -106
- package/map/client/mixins/map/mixin.heatmap-layers.js +3 -2
- package/map/client/mixins/map/mixin.map-activity.js +6 -1
- package/map/client/mixins/map/mixin.mapillary-layers.js +2 -1
- package/map/client/mixins/map/mixin.pmtiles-layers.js +3 -3
- package/map/client/mixins/map/mixin.tiled-mesh-layers.js +3 -2
- package/map/client/mixins/map/mixin.tiled-wind-layers.js +3 -2
- package/map/client/mixins/mixin.activity.js +197 -51
- package/map/client/mixins/mixin.context.js +11 -11
- package/map/client/mixins/mixin.feature-service.js +11 -9
- package/map/client/mixins/mixin.weacast.js +5 -3
- package/map/client/readers/reader.geojson.js +3 -1
- package/map/client/utils/utils.capture.js +3 -3
- package/map/client/utils/utils.catalog.js +9 -5
- package/map/client/utils/utils.features.js +120 -54
- package/map/client/utils/utils.js +25 -10
- package/map/client/utils/utils.layers.js +148 -24
- package/map/client/utils/utils.location.js +26 -9
- package/map/client/utils/utils.schema.js +2 -1
- package/map/client/utils/utils.style.js +53 -9
- package/map/common/geotiff-grid-source.js +1 -3
- package/map/common/opendap-utils.js +0 -1
- package/map/common/tms-utils.js +0 -1
- package/map/common/wcs-utils.js +0 -1
- package/map/common/wfs-utils.js +0 -1
- package/map/common/wms-utils.js +7 -1
- package/map/common/wmts-utils.js +0 -1
- package/package.json +12 -12
- package/scripts/init_runner.sh +3 -3
- package/scripts/kash/CHANGELOG.md +27 -0
- package/scripts/kash/kash.sh +556 -237
- package/scripts/kash/scripts/run_tests.sh +44 -5
- package/scripts/setup_workspace.sh +23 -13
- package/test/api/core/config/default.cjs +2 -1
- package/test/api/core/tags.test.js +62 -0
- package/test/api/map/config/default.cjs +2 -1
- package/test/api/map/config/layers.json +9 -0
- package/test/api/map/data/openradiation.json +13811 -0
- package/test/api/map/grid-sources.test.js +1 -3
- package/test/api/map/index.test.js +60 -1
- package/test/api/map/style.test.js +30 -1
- package/test.api.js +1 -1
- package/vite/App.vue +18 -0
- package/vite/AppWithGlobe.vue +84 -0
- package/vite/GlobeActivity.vue +58 -0
- package/vite/MapActivity.vue +63 -0
- package/vite/MapActivityWithGlobe.vue +63 -0
- package/vite/README.md +169 -0
- package/vite/config.js +221 -0
- package/vite/index_with_globe.html +50 -0
- package/vite/index_with_map.html +50 -0
- package/vite/package.json +173 -0
- package/vite/quasar.variables.scss +17 -0
- package/vite/vite.config.js +166 -0
- package/vite/yarn.lock +11641 -0
- package/core/client/components/media/KImageViewer.vue +0 -68
- package/core/client/components/media/KMarkdownViewer.vue +0 -55
- package/core/client/components/media/KMediaBrowser.vue +0 -301
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/core/api/application.js.html +0 -1870
- package/coverage/core/api/authentication.js.html +0 -874
- package/coverage/core/api/db.js.html +0 -793
- package/coverage/core/api/hooks/hooks.authentication.js.html +0 -139
- package/coverage/core/api/hooks/hooks.authorisations.js.html +0 -958
- package/coverage/core/api/hooks/hooks.groups.js.html +0 -229
- package/coverage/core/api/hooks/hooks.logger.js.html +0 -163
- package/coverage/core/api/hooks/hooks.model.js.html +0 -967
- package/coverage/core/api/hooks/hooks.organisations.js.html +0 -541
- package/coverage/core/api/hooks/hooks.push.js.html +0 -265
- package/coverage/core/api/hooks/hooks.query.js.html +0 -862
- package/coverage/core/api/hooks/hooks.schemas.js.html +0 -298
- package/coverage/core/api/hooks/hooks.service.js.html +0 -319
- package/coverage/core/api/hooks/hooks.storage.js.html +0 -193
- package/coverage/core/api/hooks/hooks.users.js.html +0 -595
- package/coverage/core/api/hooks/index.html +0 -266
- package/coverage/core/api/hooks/index.js.html +0 -115
- package/coverage/core/api/index.html +0 -176
- package/coverage/core/api/index.js.html +0 -148
- package/coverage/core/api/marshall.js.html +0 -448
- package/coverage/core/api/models/groups.model.mongodb.js.html +0 -109
- package/coverage/core/api/models/index.html +0 -131
- package/coverage/core/api/models/messages.model.mongodb.js.html +0 -121
- package/coverage/core/api/models/organisations.model.mongodb.js.html +0 -94
- package/coverage/core/api/models/tags.model.mongodb.js.html +0 -115
- package/coverage/core/api/models/users.model.mongodb.js.html +0 -115
- package/coverage/core/api/services/account/account.hooks.js.html +0 -208
- package/coverage/core/api/services/account/account.service.js.html +0 -436
- package/coverage/core/api/services/account/index.html +0 -131
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +0 -184
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +0 -520
- package/coverage/core/api/services/authorisations/index.html +0 -131
- package/coverage/core/api/services/databases/databases.hooks.js.html +0 -193
- package/coverage/core/api/services/databases/databases.service.js.html +0 -100
- package/coverage/core/api/services/databases/index.html +0 -131
- package/coverage/core/api/services/groups/groups.hooks.js.html +0 -178
- package/coverage/core/api/services/groups/index.html +0 -116
- package/coverage/core/api/services/import-export/import-export.hooks.js.html +0 -184
- package/coverage/core/api/services/import-export/import-export.service.js.html +0 -118
- package/coverage/core/api/services/import-export/index.html +0 -131
- package/coverage/core/api/services/index.html +0 -116
- package/coverage/core/api/services/index.js.html +0 -532
- package/coverage/core/api/services/mailer/index.html +0 -131
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +0 -190
- package/coverage/core/api/services/mailer/mailer.service.js.html +0 -118
- package/coverage/core/api/services/messages/index.html +0 -116
- package/coverage/core/api/services/messages/messages.hooks.js.html +0 -202
- package/coverage/core/api/services/organisations/index.html +0 -131
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +0 -178
- package/coverage/core/api/services/organisations/organisations.service.js.html +0 -343
- package/coverage/core/api/services/push/index.html +0 -131
- package/coverage/core/api/services/push/push.hooks.js.html +0 -190
- package/coverage/core/api/services/push/push.service.js.html +0 -121
- package/coverage/core/api/services/storage/index.html +0 -131
- package/coverage/core/api/services/storage/storage.hooks.js.html +0 -190
- package/coverage/core/api/services/storage/storage.service.js.html +0 -172
- package/coverage/core/api/services/tags/index.html +0 -116
- package/coverage/core/api/services/tags/tags.hooks.js.html +0 -178
- package/coverage/core/api/services/users/index.html +0 -131
- package/coverage/core/api/services/users/users.hooks.js.html +0 -310
- package/coverage/core/api/services/users/users.service.js.html +0 -100
- package/coverage/core/api/utils.js.html +0 -118
- package/coverage/core/common/errors.js.html +0 -88
- package/coverage/core/common/index.html +0 -191
- package/coverage/core/common/index.js.html +0 -115
- package/coverage/core/common/permissions.js.html +0 -733
- package/coverage/core/common/schema.js.html +0 -190
- package/coverage/core/common/utils.js.html +0 -226
- package/coverage/core/common/utils.offline.js.html +0 -199
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -476
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/core/api/application.js.html +0 -1870
- package/coverage/lcov-report/core/api/authentication.js.html +0 -874
- package/coverage/lcov-report/core/api/db.js.html +0 -793
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +0 -139
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +0 -958
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +0 -229
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +0 -163
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +0 -967
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +0 -541
- package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +0 -265
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +0 -862
- package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +0 -298
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +0 -319
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +0 -193
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +0 -595
- package/coverage/lcov-report/core/api/hooks/index.html +0 -266
- package/coverage/lcov-report/core/api/hooks/index.js.html +0 -115
- package/coverage/lcov-report/core/api/index.html +0 -176
- package/coverage/lcov-report/core/api/index.js.html +0 -148
- package/coverage/lcov-report/core/api/marshall.js.html +0 -448
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +0 -109
- package/coverage/lcov-report/core/api/models/index.html +0 -131
- package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +0 -121
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +0 -94
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +0 -115
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +0 -115
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +0 -208
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +0 -436
- package/coverage/lcov-report/core/api/services/account/index.html +0 -131
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +0 -184
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +0 -520
- package/coverage/lcov-report/core/api/services/authorisations/index.html +0 -131
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +0 -193
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +0 -100
- package/coverage/lcov-report/core/api/services/databases/index.html +0 -131
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +0 -178
- package/coverage/lcov-report/core/api/services/groups/index.html +0 -116
- package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +0 -184
- package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +0 -118
- package/coverage/lcov-report/core/api/services/import-export/index.html +0 -131
- package/coverage/lcov-report/core/api/services/index.html +0 -116
- package/coverage/lcov-report/core/api/services/index.js.html +0 -532
- package/coverage/lcov-report/core/api/services/mailer/index.html +0 -131
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +0 -190
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +0 -118
- package/coverage/lcov-report/core/api/services/messages/index.html +0 -116
- package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +0 -202
- package/coverage/lcov-report/core/api/services/organisations/index.html +0 -131
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +0 -178
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +0 -343
- package/coverage/lcov-report/core/api/services/push/index.html +0 -131
- package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +0 -190
- package/coverage/lcov-report/core/api/services/push/push.service.js.html +0 -121
- package/coverage/lcov-report/core/api/services/storage/index.html +0 -131
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +0 -190
- package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +0 -172
- package/coverage/lcov-report/core/api/services/tags/index.html +0 -116
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +0 -178
- package/coverage/lcov-report/core/api/services/users/index.html +0 -131
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +0 -310
- package/coverage/lcov-report/core/api/services/users/users.service.js.html +0 -100
- package/coverage/lcov-report/core/api/utils.js.html +0 -118
- package/coverage/lcov-report/core/common/errors.js.html +0 -88
- package/coverage/lcov-report/core/common/index.html +0 -191
- package/coverage/lcov-report/core/common/index.js.html +0 -115
- package/coverage/lcov-report/core/common/permissions.js.html +0 -733
- package/coverage/lcov-report/core/common/schema.js.html +0 -190
- package/coverage/lcov-report/core/common/utils.js.html +0 -226
- package/coverage/lcov-report/core/common/utils.offline.js.html +0 -199
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -476
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +0 -553
- package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +0 -397
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +0 -1294
- package/coverage/lcov-report/map/api/hooks/index.html +0 -161
- package/coverage/lcov-report/map/api/hooks/index.js.html +0 -94
- package/coverage/lcov-report/map/api/index.html +0 -131
- package/coverage/lcov-report/map/api/index.js.html +0 -139
- package/coverage/lcov-report/map/api/marshall.js.html +0 -178
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +0 -106
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +0 -169
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +0 -196
- package/coverage/lcov-report/map/api/models/index.html +0 -176
- package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +0 -109
- package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +0 -112
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +0 -274
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +0 -610
- package/coverage/lcov-report/map/api/services/alerts/index.html +0 -131
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +0 -328
- package/coverage/lcov-report/map/api/services/catalog/index.html +0 -116
- package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +0 -1510
- package/coverage/lcov-report/map/api/services/daptiles/index.html +0 -116
- package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +0 -310
- package/coverage/lcov-report/map/api/services/features/features.service.js.html +0 -544
- package/coverage/lcov-report/map/api/services/features/index.html +0 -131
- package/coverage/lcov-report/map/api/services/index.html +0 -116
- package/coverage/lcov-report/map/api/services/index.js.html +0 -1054
- package/coverage/lcov-report/map/api/services/projects/index.html +0 -116
- package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +0 -439
- package/coverage/lcov-report/map/api/services/styles/index.html +0 -116
- package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +0 -196
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +0 -466
- package/coverage/lcov-report/map/common/errors.js.html +0 -94
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +0 -544
- package/coverage/lcov-report/map/common/grid.js.html +0 -1612
- package/coverage/lcov-report/map/common/index.html +0 -371
- package/coverage/lcov-report/map/common/index.js.html +0 -172
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +0 -556
- package/coverage/lcov-report/map/common/moment-utils.js.html +0 -157
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +0 -868
- package/coverage/lcov-report/map/common/opendap-utils.js.html +0 -826
- package/coverage/lcov-report/map/common/permissions.js.html +0 -130
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +0 -418
- package/coverage/lcov-report/map/common/tms-utils.js.html +0 -274
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +0 -364
- package/coverage/lcov-report/map/common/wcs-utils.js.html +0 -586
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +0 -1033
- package/coverage/lcov-report/map/common/wfs-utils.js.html +0 -574
- package/coverage/lcov-report/map/common/wms-utils.js.html +0 -451
- package/coverage/lcov-report/map/common/wmts-utils.js.html +0 -547
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov.info +0 -11520
- package/coverage/map/api/hooks/hooks.catalog.js.html +0 -553
- package/coverage/map/api/hooks/hooks.features.js.html +0 -397
- package/coverage/map/api/hooks/hooks.query.js.html +0 -1294
- package/coverage/map/api/hooks/index.html +0 -161
- package/coverage/map/api/hooks/index.js.html +0 -94
- package/coverage/map/api/index.html +0 -131
- package/coverage/map/api/index.js.html +0 -139
- package/coverage/map/api/marshall.js.html +0 -178
- package/coverage/map/api/models/alerts.model.mongodb.js.html +0 -106
- package/coverage/map/api/models/catalog.model.mongodb.js.html +0 -169
- package/coverage/map/api/models/features.model.mongodb.js.html +0 -196
- package/coverage/map/api/models/index.html +0 -176
- package/coverage/map/api/models/projects.model.mongodb.js.html +0 -109
- package/coverage/map/api/models/styles.model.mongodb.js.html +0 -112
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +0 -274
- package/coverage/map/api/services/alerts/alerts.service.js.html +0 -610
- package/coverage/map/api/services/alerts/index.html +0 -131
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +0 -328
- package/coverage/map/api/services/catalog/index.html +0 -116
- package/coverage/map/api/services/daptiles/daptiles.service.js.html +0 -1510
- package/coverage/map/api/services/daptiles/index.html +0 -116
- package/coverage/map/api/services/features/features.hooks.js.html +0 -310
- package/coverage/map/api/services/features/features.service.js.html +0 -544
- package/coverage/map/api/services/features/index.html +0 -131
- package/coverage/map/api/services/index.html +0 -116
- package/coverage/map/api/services/index.js.html +0 -1054
- package/coverage/map/api/services/projects/index.html +0 -116
- package/coverage/map/api/services/projects/projects.hooks.js.html +0 -439
- package/coverage/map/api/services/styles/index.html +0 -116
- package/coverage/map/api/services/styles/styles.hooks.js.html +0 -196
- package/coverage/map/common/dynamic-grid-source.js.html +0 -466
- package/coverage/map/common/errors.js.html +0 -94
- package/coverage/map/common/geotiff-grid-source.js.html +0 -544
- package/coverage/map/common/grid.js.html +0 -1612
- package/coverage/map/common/index.html +0 -371
- package/coverage/map/common/index.js.html +0 -172
- package/coverage/map/common/meteo-model-grid-source.js.html +0 -556
- package/coverage/map/common/moment-utils.js.html +0 -157
- package/coverage/map/common/opendap-grid-source.js.html +0 -868
- package/coverage/map/common/opendap-utils.js.html +0 -826
- package/coverage/map/common/permissions.js.html +0 -130
- package/coverage/map/common/time-based-grid-source.js.html +0 -418
- package/coverage/map/common/tms-utils.js.html +0 -274
- package/coverage/map/common/wcs-grid-source.js.html +0 -364
- package/coverage/map/common/wcs-utils.js.html +0 -586
- package/coverage/map/common/weacast-grid-source.js.html +0 -1033
- package/coverage/map/common/wfs-utils.js.html +0 -574
- package/coverage/map/common/wms-utils.js.html +0 -451
- package/coverage/map/common/wmts-utils.js.html +0 -547
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -196
- package/coverage/tmp/coverage-151198-1753351220086-0.json +0 -1
- package/coverage/tmp/coverage-151210-1753351220070-0.json +0 -1
- package/coverage/tmp/coverage-151221-1753351129816-0.json +0 -1
- package/coverage/tmp/coverage-151233-1753351129803-0.json +0 -1
- package/coverage/tmp/coverage-151240-1753351129770-0.json +0 -1
- package/coverage/tmp/coverage-151307-1753351220058-0.json +0 -1
- package/coverage/tmp/coverage-151319-1753351220044-0.json +0 -1
- package/coverage/tmp/coverage-151326-1753351220010-0.json +0 -1
- package/extras/tours/core/account-profile.js +0 -32
- package/extras/tours/core/account.js +0 -143
- package/extras/tours/core/add-member.js +0 -75
- package/extras/tours/core/add-tag.js +0 -13
- package/extras/tours/core/create-group.js +0 -19
- package/extras/tours/core/create-organisation.js +0 -19
- package/extras/tours/core/create-tag.js +0 -26
- package/extras/tours/core/edit-member-role.js +0 -13
- package/extras/tours/core/groups.js +0 -65
- package/extras/tours/core/join-group.js +0 -13
- package/extras/tours/core/login.js +0 -41
- package/extras/tours/core/members.js +0 -108
- package/extras/tours/core/register.js +0 -61
- package/extras/tours/core/send-reset-password.js +0 -14
- package/extras/tours/core/tags.js +0 -65
- package/extras/tours/map/catalog-panel.js +0 -112
- package/extras/tours/map/fab.js +0 -26
- package/extras/tours/map/navigation-bar.js +0 -187
- package/extras/tours/map/side-nav.js +0 -36
- package/test/api/core/test-log-2025-02-05.log +0 -23
- package/test/api/core/test-log-2025-05-21.log +0 -15
- package/test/api/core/test-log-2025-06-25.log +0 -9
- package/test/api/core/test-log-2025-07-24.log +0 -44
- package/test/api/map/test-log-2025-05-27.log +0 -13
- package/test/api/map/test-log-2025-06-23.log +0 -7
- package/test/api/map/test-log-2025-07-24.log +0 -11
- package/test/client/core/api.js +0 -361
- package/test/client/core/index.js +0 -9
- package/test/client/index.js +0 -4
- package/test/client/map/index.js +0 -5
- package/test.client.js +0 -1
- /package/{test/client/core/time.js → extras/tests/core/time.mjs} +0 -0
- /package/extras/tours/{map/add-layer.js → add-layer.js} +0 -0
- /package/extras/tours/{map/catalog-categories.js → catalog-categories.js} +0 -0
- /package/extras/tours/{map/connect-layer.js → connect-layer.js} +0 -0
- /package/extras/tours/{map/create-layer.js → create-layer.js} +0 -0
- /package/extras/tours/{map/create-view.js → create-view.js} +0 -0
- /package/extras/tours/{map/import-layer.js → import-layer.js} +0 -0
- /package/extras/tours/{map/timeline.js → pane.bottom.js} +0 -0
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<KAction
|
|
3
|
-
ref="actionRef"
|
|
4
3
|
v-bind="props"
|
|
4
|
+
:toggled="Fullscreen"
|
|
5
5
|
:handler="toggleFullscreen"
|
|
6
6
|
/>
|
|
7
7
|
</template>
|
|
8
8
|
|
|
9
9
|
<script setup>
|
|
10
10
|
import _ from 'lodash'
|
|
11
|
-
import { ref, watch } from 'vue'
|
|
12
11
|
import { actionProps, Fullscreen, toggleFullscreen } from '../../utils'
|
|
13
12
|
import KAction from './KAction.vue'
|
|
14
13
|
|
|
15
14
|
// Props
|
|
16
|
-
const props = defineProps(_.omit(actionProps, ['url', 'handler', 'dialog', 'route', 'closePopup']))
|
|
17
|
-
|
|
18
|
-
// Data
|
|
19
|
-
const actionRef = ref(null)
|
|
20
|
-
|
|
21
|
-
// Watch
|
|
22
|
-
watch(Fullscreen, () => {
|
|
23
|
-
if (actionRef.value.isToggled !== Fullscreen.value) actionRef.value.toggle()
|
|
24
|
-
})
|
|
15
|
+
const props = defineProps(_.omit(actionProps, ['url', 'handler', 'dialog', 'route', 'closePopup', 'toggled']))
|
|
25
16
|
</script>
|
|
@@ -65,6 +65,7 @@
|
|
|
65
65
|
import _ from 'lodash'
|
|
66
66
|
import { Filter } from '../../filter'
|
|
67
67
|
import { Search } from '../../search'
|
|
68
|
+
import { Store } from '../../store'
|
|
68
69
|
|
|
69
70
|
export default {
|
|
70
71
|
props: {
|
|
@@ -125,18 +126,18 @@ export default {
|
|
|
125
126
|
onItemSelected (item) {
|
|
126
127
|
this.items.push(item)
|
|
127
128
|
this.pattern = ''
|
|
128
|
-
|
|
129
|
+
Store.patch('filter', { items: this.items, pattern: this.pattern })
|
|
129
130
|
},
|
|
130
131
|
onItemRemoved (itemId) {
|
|
131
132
|
this.items = _.filter(this.items, item => { return item._id !== itemId })
|
|
132
|
-
|
|
133
|
+
Store.patch('filter', { items: this.items, pattern: this.pattern })
|
|
133
134
|
},
|
|
134
135
|
async onSearch (pattern) {
|
|
135
136
|
// take about a null pattern received when clearing the input
|
|
136
137
|
if (_.isNull(pattern)) pattern = ''
|
|
137
138
|
// update the pattern
|
|
138
139
|
this.pattern = pattern
|
|
139
|
-
|
|
140
|
+
Store.patch('filter', { pattern: this.pattern })
|
|
140
141
|
// run the search if the pattern is not empty
|
|
141
142
|
if (!_.isEmpty(pattern)) {
|
|
142
143
|
const results = await Search.query(this.services, pattern)
|
|
@@ -150,7 +151,7 @@ export default {
|
|
|
150
151
|
},
|
|
151
152
|
created () {
|
|
152
153
|
// Initialize the filter, we keep track of any existing items previously set by another activity
|
|
153
|
-
|
|
154
|
+
Store.patch('filter', { fields: this.fields || this.field, pattern: '' })
|
|
154
155
|
},
|
|
155
156
|
beforeUnmount () {
|
|
156
157
|
this.items = []
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
<q-infinite-scroll
|
|
22
22
|
@load="onLoad"
|
|
23
23
|
:initial-index="1"
|
|
24
|
-
:offset="
|
|
24
|
+
:offset="scrollOffset"
|
|
25
25
|
v-scroll="onScroll"
|
|
26
26
|
class="col"
|
|
27
27
|
>
|
|
@@ -192,6 +192,10 @@ const props = defineProps({
|
|
|
192
192
|
type: Boolean,
|
|
193
193
|
default: true
|
|
194
194
|
},
|
|
195
|
+
scrollOffset: {
|
|
196
|
+
type: Number,
|
|
197
|
+
default: 300
|
|
198
|
+
},
|
|
195
199
|
header: {
|
|
196
200
|
type: [Array, Object],
|
|
197
201
|
default: () => null
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="q-pa-xs">
|
|
3
|
+
<q-input
|
|
4
|
+
:label="$tie(label)"
|
|
5
|
+
v-model="inputValue"
|
|
6
|
+
clearable
|
|
7
|
+
borderless
|
|
8
|
+
dense
|
|
9
|
+
debounce="500"
|
|
10
|
+
@update:model-value="onSearch"
|
|
11
|
+
>
|
|
12
|
+
<template v-slot:before v-if="!hideIcon">
|
|
13
|
+
<div class="row">
|
|
14
|
+
<q-icon class="q-pl-xs" dense name="search" />
|
|
15
|
+
</div>
|
|
16
|
+
</template>
|
|
17
|
+
</q-input>
|
|
18
|
+
</div>
|
|
19
|
+
</template>
|
|
20
|
+
|
|
21
|
+
<script setup>
|
|
22
|
+
import { ref } from 'vue'
|
|
23
|
+
|
|
24
|
+
// Props
|
|
25
|
+
const props = defineProps({
|
|
26
|
+
value: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: ''
|
|
29
|
+
},
|
|
30
|
+
label: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: 'KFilter.SEARCH_LABEL'
|
|
33
|
+
},
|
|
34
|
+
hideIcon: {
|
|
35
|
+
type: Boolean,
|
|
36
|
+
default: false
|
|
37
|
+
},
|
|
38
|
+
onSearch: {
|
|
39
|
+
type: Function,
|
|
40
|
+
default: () => {}
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
// Data
|
|
45
|
+
const inputValue = ref(props.value)
|
|
46
|
+
|
|
47
|
+
</script>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<KOptionsChooser
|
|
4
|
+
:options="options"
|
|
5
|
+
:tooltip="tooltip"
|
|
6
|
+
@option-chosen="onOptionChosen"
|
|
7
|
+
/>
|
|
8
|
+
</div>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script setup>
|
|
12
|
+
import KOptionsChooser from '../input/KOptionsChooser.vue'
|
|
13
|
+
|
|
14
|
+
// Props
|
|
15
|
+
const props = defineProps({
|
|
16
|
+
options: {
|
|
17
|
+
type: Array,
|
|
18
|
+
default: () => [
|
|
19
|
+
{ icon: 'las la-sort-alpha-down', value: { field: 'name', order: 1 }, default: true },
|
|
20
|
+
{ icon: 'las la-sort-alpha-up', value: { field: 'name', order: -1 } }
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
tooltip: {
|
|
24
|
+
type: String,
|
|
25
|
+
default: 'KSorter.SORT'
|
|
26
|
+
},
|
|
27
|
+
onOptionChanged: {
|
|
28
|
+
type: Function,
|
|
29
|
+
default: () => {}
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
// Emits
|
|
34
|
+
const emit = defineEmits(['option-changed'])
|
|
35
|
+
|
|
36
|
+
// Functions
|
|
37
|
+
function onOptionChosen (value) {
|
|
38
|
+
props.onOptionChanged(value)
|
|
39
|
+
emit('option-changed', value)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
</script>
|
|
@@ -63,7 +63,7 @@ watch(() => [$q.screen.width, $q.screen.height], () => {
|
|
|
63
63
|
const refresh = _.debounce(() => {
|
|
64
64
|
const targetElement = document.getElementById(props.target)
|
|
65
65
|
if (!targetElement) {
|
|
66
|
-
logger.
|
|
66
|
+
logger.warn('[KDK] Cannot find target element')
|
|
67
67
|
return
|
|
68
68
|
}
|
|
69
69
|
const containerHeight = targetElement.offsetHeight
|
|
@@ -80,7 +80,7 @@ const refresh = _.debounce(() => {
|
|
|
80
80
|
function scrollOnce () {
|
|
81
81
|
const targetElement = document.getElementById(props.target)
|
|
82
82
|
if (!targetElement) {
|
|
83
|
-
logger.
|
|
83
|
+
logger.warn('[KDK] Cannot find target element')
|
|
84
84
|
return
|
|
85
85
|
}
|
|
86
86
|
const position = qScrollUtils.getVerticalScrollPosition(targetElement)
|
|
@@ -66,6 +66,7 @@ import _ from 'lodash'
|
|
|
66
66
|
import { ref, computed } from 'vue'
|
|
67
67
|
import { useCurrentActivity } from '../../composables/index.js'
|
|
68
68
|
import { Search } from '../../search.js'
|
|
69
|
+
import { Store } from '../../store.js'
|
|
69
70
|
|
|
70
71
|
// Props
|
|
71
72
|
const props = defineProps({
|
|
@@ -115,7 +116,7 @@ function getItemIcon (item) {
|
|
|
115
116
|
function onItemSelected (item) {
|
|
116
117
|
this.items.push(item)
|
|
117
118
|
this.pattern = ''
|
|
118
|
-
|
|
119
|
+
Store.patch('filter', { items: this.items, pattern: this.pattern })
|
|
119
120
|
}
|
|
120
121
|
function onItemRemoved (itemId) {
|
|
121
122
|
_.set(state.searchFilter, 'items', _.without(items.value, itemId))
|
|
@@ -125,7 +126,7 @@ async function onSearch (pattern) {
|
|
|
125
126
|
if (_.isNull(pattern)) pattern = ''
|
|
126
127
|
// update the pattern
|
|
127
128
|
this.pattern = pattern
|
|
128
|
-
|
|
129
|
+
Store.patch('filter', { pattern: this.pattern })
|
|
129
130
|
// run the search if the pattern is not empty
|
|
130
131
|
if (!_.isEmpty(pattern)) {
|
|
131
132
|
const results = await Search.query(props.services, pattern)
|
|
@@ -1,46 +1,42 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
:options="options"
|
|
4
|
-
:tooltip="tooltip"
|
|
5
|
-
@option-chosen="onOptionChanged"
|
|
6
|
-
/>
|
|
2
|
+
<KItemsSorter v-bind="$props" @option-changed="onOptionChanged" />
|
|
7
3
|
</template>
|
|
8
4
|
|
|
9
|
-
<script>
|
|
5
|
+
<script setup>
|
|
10
6
|
import _ from 'lodash'
|
|
11
|
-
import
|
|
7
|
+
import { onMounted, onBeforeUnmount } from 'vue'
|
|
8
|
+
import { Store } from '../../store.js'
|
|
9
|
+
import KItemsSorter from './KItemsSorter.vue'
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
// Props
|
|
12
|
+
const props = defineProps({
|
|
13
|
+
options: {
|
|
14
|
+
type: Array,
|
|
15
|
+
default: () => [
|
|
16
|
+
{ icon: 'las la-sort-alpha-down', value: { field: 'name', order: 1 }, default: true },
|
|
17
|
+
{ icon: 'las la-sort-alpha-up', value: { field: 'name', order: -1 } }
|
|
18
|
+
]
|
|
16
19
|
},
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
default: () => [
|
|
21
|
-
{ icon: 'las la-sort-alpha-down', value: { field: 'name', order: 1 }, default: true },
|
|
22
|
-
{ icon: 'las la-sort-alpha-up', value: { field: 'name', order: -1 } }
|
|
23
|
-
]
|
|
24
|
-
},
|
|
25
|
-
tooltip: {
|
|
26
|
-
type: String,
|
|
27
|
-
default: 'KSorter.SORT'
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
methods: {
|
|
31
|
-
onOptionChanged (value) {
|
|
32
|
-
this.$store.patch('sorter', value)
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
created () {
|
|
36
|
-
// Initialize the sorter
|
|
37
|
-
let defaultOption = _.find(this.options, { default: true })
|
|
38
|
-
if (!defaultOption) defaultOption = _.head(this.options) || {}
|
|
39
|
-
this.$store.patch('sorter', defaultOption.value)
|
|
40
|
-
},
|
|
41
|
-
beforeUnmount () {
|
|
42
|
-
// Reset the filter, we keep track of any existing items previously set by another activity
|
|
43
|
-
this.$store.patch('sorter', {})
|
|
20
|
+
tooltip: {
|
|
21
|
+
type: String,
|
|
22
|
+
default: 'KSorter.SORT'
|
|
44
23
|
}
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
// Functions
|
|
27
|
+
function onOptionChanged (value) {
|
|
28
|
+
Store.patch('sorter', value)
|
|
45
29
|
}
|
|
30
|
+
|
|
31
|
+
onMounted(() => {
|
|
32
|
+
// Initialize the sorter
|
|
33
|
+
let defaultOption = _.find(props.options, { default: true })
|
|
34
|
+
if (!defaultOption) defaultOption = _.head(props.options) || {}
|
|
35
|
+
Store.patch('sorter', defaultOption.value)
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
onBeforeUnmount(() => {
|
|
39
|
+
// Reset the filter, we keep track of any existing items previously set by another activity
|
|
40
|
+
Store.patch('sorter', {})
|
|
41
|
+
})
|
|
46
42
|
</script>
|
|
@@ -1,38 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
flat
|
|
9
|
-
direction="down"
|
|
10
|
-
:vertical-actions-align="computedAlignment"
|
|
11
|
-
padding="xs"
|
|
12
|
-
@show="showTooltip = false"
|
|
13
|
-
@hide="showTooltip = true"
|
|
14
|
-
>
|
|
15
|
-
<template v-for="tag in options" :key="tag.name">
|
|
16
|
-
<q-fab-action
|
|
17
|
-
:label="$tie(tag.label)"
|
|
18
|
-
:color="tag.color"
|
|
19
|
-
:text-color="tag.textColor"
|
|
20
|
-
padding="1px"
|
|
21
|
-
square
|
|
22
|
-
@click="onTagAdded(tag)"
|
|
23
|
-
/>
|
|
24
|
-
</template>
|
|
25
|
-
</q-fab>
|
|
26
|
-
<q-tooltip v-if="showTooltip">
|
|
27
|
-
{{ $t('KTagsFilterControl.FILTER') }}
|
|
28
|
-
</q-tooltip>
|
|
29
|
-
</div>
|
|
2
|
+
<KTagFilter
|
|
3
|
+
:options="options"
|
|
4
|
+
:selection="selection"
|
|
5
|
+
:alignment="computedAlignment"
|
|
6
|
+
@selection-changed="onSelectionChanged"
|
|
7
|
+
/>
|
|
30
8
|
</template>
|
|
31
9
|
|
|
32
10
|
<script setup>
|
|
33
11
|
import _ from 'lodash'
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
12
|
+
import { computed } from 'vue'
|
|
13
|
+
import { useScreen, useCollectionFilter } from '../../composables'
|
|
14
|
+
import KTagFilter from '../tags/KTagFilter.vue'
|
|
36
15
|
|
|
37
16
|
// Props
|
|
38
17
|
const props = defineProps({
|
|
@@ -44,19 +23,14 @@ const props = defineProps({
|
|
|
44
23
|
|
|
45
24
|
// Data
|
|
46
25
|
const { Screen } = useScreen()
|
|
47
|
-
const {
|
|
48
|
-
const tagsFilter = CurrentActivityContext.state.tagsFilter
|
|
49
|
-
const showTooltip = ref(true)
|
|
26
|
+
const { tagsFilter, setTagsFilter } = useCollectionFilter()
|
|
50
27
|
|
|
51
28
|
// Computed
|
|
52
29
|
const selection = computed(() => {
|
|
53
|
-
return _.get(tagsFilter, 'selection', [])
|
|
30
|
+
return _.get(tagsFilter.value, 'selection', [])
|
|
54
31
|
})
|
|
55
32
|
const options = computed(() => {
|
|
56
|
-
return _.difference(_.get(tagsFilter, 'options'), selection.value)
|
|
57
|
-
})
|
|
58
|
-
const hasOptions = computed(() => {
|
|
59
|
-
return !_.isEmpty(options.value)
|
|
33
|
+
return _.difference(_.get(tagsFilter.value, 'options'), selection.value)
|
|
60
34
|
})
|
|
61
35
|
const computedAlignment = computed(() => {
|
|
62
36
|
if (_.isString(props.alignment)) return props.alignment
|
|
@@ -64,7 +38,7 @@ const computedAlignment = computed(() => {
|
|
|
64
38
|
})
|
|
65
39
|
|
|
66
40
|
// Function
|
|
67
|
-
function
|
|
68
|
-
|
|
41
|
+
function onSelectionChanged (selection) {
|
|
42
|
+
setTagsFilter(selection, 'selection')
|
|
69
43
|
}
|
|
70
44
|
</script>
|
|
@@ -1,61 +1,26 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<template v-for="tag in selection" :key="tag.name">
|
|
7
|
-
<KChip
|
|
8
|
-
v-bind="tag"
|
|
9
|
-
removable
|
|
10
|
-
@remove="onRemoved(tag)"
|
|
11
|
-
square
|
|
12
|
-
:dense="dense"
|
|
13
|
-
/>
|
|
14
|
-
</template>
|
|
15
|
-
<KAction
|
|
16
|
-
id="clear-tags"
|
|
17
|
-
icon="cancel"
|
|
18
|
-
color="grey-7"
|
|
19
|
-
size="12px"
|
|
20
|
-
:handler="onClear"
|
|
21
|
-
/>
|
|
22
|
-
</div>
|
|
2
|
+
<KTagSelection
|
|
3
|
+
:selection="selection"
|
|
4
|
+
@selection-changed="onSelectionChanged"
|
|
5
|
+
/>
|
|
23
6
|
</template>
|
|
24
7
|
|
|
25
8
|
<script setup>
|
|
26
9
|
import _ from 'lodash'
|
|
27
10
|
import { computed } from 'vue'
|
|
28
|
-
import {
|
|
29
|
-
import
|
|
11
|
+
import { useCollectionFilter } from '../../composables'
|
|
12
|
+
import KTagSelection from '../tags/KTagSelection.vue'
|
|
30
13
|
|
|
31
14
|
// Data
|
|
32
|
-
const {
|
|
33
|
-
const { CurrentActivityContext } = useCurrentActivity()
|
|
34
|
-
const { state } = CurrentActivityContext
|
|
15
|
+
const { tagsFilter, setTagsFilter } = useCollectionFilter()
|
|
35
16
|
|
|
36
17
|
// Computed
|
|
37
|
-
const hasSelection = computed(() => {
|
|
38
|
-
return state.tagsFilter && !_.isEmpty(selection.value)
|
|
39
|
-
})
|
|
40
18
|
const selection = computed(() => {
|
|
41
|
-
return
|
|
19
|
+
return _.get(tagsFilter.value, 'selection')
|
|
42
20
|
})
|
|
43
21
|
|
|
44
22
|
// Functions
|
|
45
|
-
function
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
function onClear () {
|
|
49
|
-
_.set(state.tagsFilter, 'selection', [])
|
|
23
|
+
function onSelectionChanged (selection) {
|
|
24
|
+
setTagsFilter(selection, 'selection')
|
|
50
25
|
}
|
|
51
26
|
</script>
|
|
52
|
-
|
|
53
|
-
<style lang="scss" scoped>
|
|
54
|
-
.k-tags-filter {
|
|
55
|
-
padding-left: 8px;
|
|
56
|
-
padding-right: 4px;
|
|
57
|
-
border-radius: 24px;
|
|
58
|
-
border: 1px solid lightgrey;
|
|
59
|
-
background-color: #dedede
|
|
60
|
-
}
|
|
61
|
-
</style>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<script setup>
|
|
12
12
|
import _ from 'lodash'
|
|
13
13
|
import { computed } from 'vue'
|
|
14
|
-
import {
|
|
14
|
+
import { useCollectionFilter } from '../../composables'
|
|
15
15
|
|
|
16
16
|
// Props
|
|
17
17
|
defineProps({
|
|
@@ -22,19 +22,18 @@ defineProps({
|
|
|
22
22
|
})
|
|
23
23
|
|
|
24
24
|
// Data
|
|
25
|
-
const {
|
|
26
|
-
const timeFilter = CurrentActivityContext.state.timeFilter
|
|
25
|
+
const { timeFilter, setTimeFilter } = useCollectionFilter()
|
|
27
26
|
|
|
28
27
|
// Computed
|
|
29
|
-
const min = computed(() => _.get(timeFilter, 'min'))
|
|
30
|
-
const max = computed(() => _.get(timeFilter, 'max'))
|
|
28
|
+
const min = computed(() => _.get(timeFilter.value, 'min'))
|
|
29
|
+
const max = computed(() => _.get(timeFilter.value, 'max'))
|
|
31
30
|
const hasTimeRange = computed(() => {
|
|
32
31
|
return !_.isEmpty(min.value) && !_.isEmpty(max.value) && min.value !== max.value
|
|
33
32
|
})
|
|
34
33
|
|
|
35
34
|
// Functions
|
|
36
35
|
async function showTimeRangeSlider () {
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
setTimeFilter(min.value, 'start')
|
|
37
|
+
setTimeFilter(max.value, 'end')
|
|
39
38
|
}
|
|
40
39
|
</script>
|
|
@@ -26,37 +26,37 @@
|
|
|
26
26
|
</template>
|
|
27
27
|
|
|
28
28
|
<script setup>
|
|
29
|
+
import _ from 'lodash'
|
|
29
30
|
import { computed } from 'vue'
|
|
30
|
-
import {
|
|
31
|
+
import { useScreen, useCollectionFilter } from '../../composables'
|
|
31
32
|
|
|
32
33
|
// Props
|
|
33
34
|
defineProps({
|
|
34
|
-
|
|
35
|
-
type:
|
|
36
|
-
default:
|
|
35
|
+
dateFormat: {
|
|
36
|
+
type: String,
|
|
37
|
+
default: null
|
|
37
38
|
}
|
|
38
39
|
})
|
|
39
40
|
|
|
40
41
|
// Data
|
|
41
42
|
const { dense } = useScreen()
|
|
42
|
-
const {
|
|
43
|
-
const { state } = CurrentActivityContext
|
|
43
|
+
const { timeFilter, setTimeFilter, cleatTimeFilter } = useCollectionFilter()
|
|
44
44
|
|
|
45
45
|
// Computed
|
|
46
46
|
const hasSelection = computed(() => {
|
|
47
|
-
return
|
|
47
|
+
return timeFilter.value && startTimeRange.value && endTimeRange.value
|
|
48
48
|
})
|
|
49
49
|
const startTimeRange = computed(() => {
|
|
50
|
-
return
|
|
50
|
+
return _.get(timeFilter.value, 'start')
|
|
51
51
|
})
|
|
52
52
|
const endTimeRange = computed(() => {
|
|
53
|
-
return
|
|
53
|
+
return _.get(timeFilter.value, 'end')
|
|
54
54
|
})
|
|
55
55
|
const minTimeRange = computed(() => {
|
|
56
|
-
return
|
|
56
|
+
return _.get(timeFilter.value, 'min')
|
|
57
57
|
})
|
|
58
58
|
const maxTimeRange = computed(() => {
|
|
59
|
-
return
|
|
59
|
+
return _.get(timeFilter.value, 'max')
|
|
60
60
|
})
|
|
61
61
|
const timeRangeModel = computed({
|
|
62
62
|
get: function () {
|
|
@@ -66,15 +66,9 @@ const timeRangeModel = computed({
|
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
68
|
set: function (value) {
|
|
69
|
-
|
|
70
|
-
start: value.start,
|
|
71
|
-
end: value.end
|
|
72
|
-
})
|
|
69
|
+
setTimeFilter({ start: value.start, end: value.end })
|
|
73
70
|
}
|
|
74
71
|
})
|
|
75
|
-
const dateFormat = computed(() => {
|
|
76
|
-
return dense.value ? 'DD/MM/YY' : 'DD/MM/YYYY'
|
|
77
|
-
})
|
|
78
72
|
const textClass = computed(() => {
|
|
79
73
|
return dense.value ? 'text-caption' : 'text-body2 text-weight-regular'
|
|
80
74
|
})
|
|
@@ -88,10 +82,7 @@ const slider = computed(() => {
|
|
|
88
82
|
|
|
89
83
|
// Functions
|
|
90
84
|
function onClear () {
|
|
91
|
-
|
|
92
|
-
start: null,
|
|
93
|
-
end: null
|
|
94
|
-
})
|
|
85
|
+
cleatTimeFilter()
|
|
95
86
|
}
|
|
96
87
|
</script>
|
|
97
88
|
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<q-infinite-scroll
|
|
27
27
|
@load="onLoad"
|
|
28
28
|
:initial-index="1"
|
|
29
|
-
:offset="
|
|
29
|
+
:offset="scrollOffset"
|
|
30
30
|
v-scroll="onScroll"
|
|
31
31
|
>
|
|
32
32
|
<template v-for="item in items" :key="item._id">
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
<KPanel
|
|
61
61
|
v-if="getDecoration(item)"
|
|
62
62
|
:content="getDecoration(item)"
|
|
63
|
-
class="q-gutter-xs"
|
|
63
|
+
class="q-gutter-xs k-decoration"
|
|
64
64
|
/>
|
|
65
65
|
</div>
|
|
66
66
|
<div v-else class="column items-end">
|
|
@@ -73,8 +73,7 @@
|
|
|
73
73
|
<KPanel
|
|
74
74
|
v-if="getDecoration(item)"
|
|
75
75
|
:content="getDecoration(item)"
|
|
76
|
-
|
|
77
|
-
class="justify-end q-gutter-xs"
|
|
76
|
+
class="justify-end q-gutter-xs k-decoration"
|
|
78
77
|
/>
|
|
79
78
|
</div>
|
|
80
79
|
</slot>
|
|
@@ -232,6 +231,10 @@ const props = defineProps({
|
|
|
232
231
|
type: Boolean,
|
|
233
232
|
default: true
|
|
234
233
|
},
|
|
234
|
+
scrollOffset: {
|
|
235
|
+
type: Number,
|
|
236
|
+
default: 300
|
|
237
|
+
},
|
|
235
238
|
header: {
|
|
236
239
|
type: [Array, Object],
|
|
237
240
|
default: () => null
|
|
@@ -286,6 +289,10 @@ const comfortSize = computed(() => {
|
|
|
286
289
|
const comfortPadding = computed(() => {
|
|
287
290
|
return props.dense ? '24px' : '32px'
|
|
288
291
|
})
|
|
292
|
+
const decorationSize = computed(() => {
|
|
293
|
+
if (layout.value === 'dense') return '80vw'
|
|
294
|
+
return `${props.sideWidth}vw`
|
|
295
|
+
})
|
|
289
296
|
|
|
290
297
|
// Watch
|
|
291
298
|
watch(items, onCollectionRefreshed)
|
|
@@ -379,10 +386,6 @@ onBeforeUnmount(() => {
|
|
|
379
386
|
padding-top: 8px;
|
|
380
387
|
padding-bottom: 8px;
|
|
381
388
|
}
|
|
382
|
-
.k-timeline-heading {
|
|
383
|
-
font-size: 1.2rem;
|
|
384
|
-
font-weight: bold;
|
|
385
|
-
}
|
|
386
389
|
.q-timeline__title {
|
|
387
390
|
margin-bottom: 4px;
|
|
388
391
|
}
|
|
@@ -409,5 +412,11 @@ onBeforeUnmount(() => {
|
|
|
409
412
|
.q-timeline--dense--right .q-timeline__entry {
|
|
410
413
|
padding-left: v-bind(comfortPadding);
|
|
411
414
|
}
|
|
412
|
-
|
|
415
|
+
.k-timeline-heading {
|
|
416
|
+
font-size: 1.2rem;
|
|
417
|
+
font-weight: bold;
|
|
418
|
+
}
|
|
419
|
+
.k-decoration {
|
|
420
|
+
max-width: v-bind(decorationSize);
|
|
421
|
+
}
|
|
413
422
|
</style>
|