@kalisio/kdk 1.3.6 → 1.5.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/.nyc_output/{0d403586-0c7c-4336-94d1-a49e9f02a905.json → 058fc679-d60a-4501-ac04-71171e5200b8.json} +0 -0
- package/.nyc_output/2226bcce-9d22-4dad-b9fa-46564b5565c7.json +1 -0
- package/.nyc_output/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +1 -0
- package/.nyc_output/{21dd57bd-48c5-41c8-8800-252db32a9366.json → 8b1830fa-932e-4a61-9837-4a5b18f83ea9.json} +0 -0
- package/.nyc_output/{3eb3a2ca-53c2-4551-ba6b-adf70f9a53cd.json → afd2d144-3570-4858-b94a-b523dbd023dd.json} +0 -0
- package/.nyc_output/processinfo/058fc679-d60a-4501-ac04-71171e5200b8.json +1 -0
- package/.nyc_output/processinfo/2226bcce-9d22-4dad-b9fa-46564b5565c7.json +1 -0
- package/.nyc_output/processinfo/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +1 -0
- package/.nyc_output/processinfo/8b1830fa-932e-4a61-9837-4a5b18f83ea9.json +1 -0
- package/.nyc_output/processinfo/afd2d144-3570-4858-b94a-b523dbd023dd.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +167 -79
- package/README.md +1 -1
- package/coverage/core/api/application.js.html +436 -436
- package/coverage/core/api/authentication.js.html +119 -119
- package/coverage/core/api/db.js.html +201 -201
- package/coverage/core/api/hooks/hooks.account.js.html +48 -48
- package/coverage/core/api/hooks/hooks.authentication.js.html +64 -64
- package/coverage/core/api/hooks/hooks.authorisations.js.html +369 -378
- package/coverage/core/api/hooks/hooks.devices.js.html +49 -49
- package/coverage/core/api/hooks/hooks.groups.js.html +37 -37
- package/coverage/core/api/hooks/hooks.logger.js.html +27 -27
- package/coverage/core/api/hooks/hooks.model.js.html +269 -269
- package/coverage/core/api/hooks/hooks.organisations.js.html +183 -231
- package/coverage/core/api/hooks/hooks.pusher.js.html +114 -114
- package/coverage/core/api/hooks/hooks.query.js.html +234 -198
- package/coverage/core/api/hooks/hooks.service.js.html +82 -82
- package/coverage/core/api/hooks/hooks.storage.js.html +121 -121
- package/coverage/core/api/hooks/hooks.tags.js.html +232 -232
- package/coverage/core/api/hooks/hooks.users.js.html +304 -256
- package/coverage/core/api/hooks/index.html +172 -172
- package/coverage/core/api/hooks/index.js.html +24 -24
- package/coverage/core/api/index.html +75 -75
- package/coverage/core/api/index.js.html +26 -26
- package/coverage/core/api/marshall.js.html +57 -57
- package/coverage/core/api/models/groups.model.mongodb.js.html +20 -20
- package/coverage/core/api/models/index.html +50 -50
- package/coverage/core/api/models/organisations.model.mongodb.js.html +12 -12
- package/coverage/core/api/models/tags.model.mongodb.js.html +22 -22
- package/coverage/core/api/models/users.model.mongodb.js.html +20 -20
- package/coverage/core/api/oauth2-handler.js.html +18 -18
- package/coverage/core/api/oauth2-verifier.js.html +38 -38
- package/coverage/core/api/services/account/account.hooks.js.html +16 -16
- package/coverage/core/api/services/account/account.service.js.html +108 -108
- package/coverage/core/api/services/account/index.html +32 -32
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +132 -129
- package/coverage/core/api/services/authorisations/index.html +28 -28
- package/coverage/core/api/services/databases/databases.hooks.js.html +9 -9
- package/coverage/core/api/services/databases/databases.service.js.html +12 -12
- package/coverage/core/api/services/databases/index.html +24 -24
- package/coverage/core/api/services/devices/devices.hooks.js.html +9 -9
- package/coverage/core/api/services/devices/devices.service.js.html +121 -121
- package/coverage/core/api/services/devices/index.html +28 -28
- package/coverage/core/api/services/groups/groups.hooks.js.html +9 -9
- package/coverage/core/api/services/groups/index.html +13 -13
- package/coverage/core/api/services/index.html +21 -21
- package/coverage/core/api/services/index.js.html +137 -137
- package/coverage/core/api/services/mailer/index.html +24 -24
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +9 -9
- package/coverage/core/api/services/mailer/mailer.service.js.html +19 -19
- package/coverage/core/api/services/organisations/index.html +24 -24
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +8 -8
- package/coverage/core/api/services/organisations/organisations.service.js.html +67 -67
- package/coverage/core/api/services/pusher/index.html +34 -34
- package/coverage/core/api/services/pusher/pusher.channels.js.html +8 -8
- package/coverage/core/api/services/pusher/pusher.hooks.js.html +10 -10
- package/coverage/core/api/services/pusher/pusher.service.js.html +414 -414
- package/coverage/core/api/services/storage/index.html +21 -21
- package/coverage/core/api/services/storage/storage.hooks.js.html +35 -35
- package/coverage/core/api/services/tags/index.html +21 -21
- package/coverage/core/api/services/tags/tags.hooks.js.html +25 -25
- package/coverage/core/api/services/users/index.html +21 -21
- package/coverage/core/api/services/users/users.hooks.js.html +33 -33
- package/coverage/core/common/errors.js.html +1 -1
- package/coverage/core/common/index.html +42 -27
- package/coverage/core/common/index.js.html +16 -16
- package/coverage/core/common/permissions.js.html +325 -265
- package/coverage/index.html +182 -182
- package/coverage/lcov-report/core/api/application.js.html +436 -436
- package/coverage/lcov-report/core/api/authentication.js.html +119 -119
- package/coverage/lcov-report/core/api/db.js.html +201 -201
- package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +48 -48
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +64 -64
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +369 -378
- package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +49 -49
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +37 -37
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +27 -27
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +269 -269
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +183 -231
- package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +114 -114
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +234 -198
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +82 -82
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +121 -121
- package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +232 -232
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +304 -256
- package/coverage/lcov-report/core/api/hooks/index.html +172 -172
- package/coverage/lcov-report/core/api/hooks/index.js.html +24 -24
- package/coverage/lcov-report/core/api/index.html +75 -75
- package/coverage/lcov-report/core/api/index.js.html +26 -26
- package/coverage/lcov-report/core/api/marshall.js.html +57 -57
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +20 -20
- package/coverage/lcov-report/core/api/models/index.html +50 -50
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +12 -12
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +22 -22
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +20 -20
- package/coverage/lcov-report/core/api/oauth2-handler.js.html +18 -18
- package/coverage/lcov-report/core/api/oauth2-verifier.js.html +38 -38
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +16 -16
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +108 -108
- package/coverage/lcov-report/core/api/services/account/index.html +32 -32
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +132 -129
- package/coverage/lcov-report/core/api/services/authorisations/index.html +28 -28
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +12 -12
- package/coverage/lcov-report/core/api/services/databases/index.html +24 -24
- package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +121 -121
- package/coverage/lcov-report/core/api/services/devices/index.html +28 -28
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/groups/index.html +13 -13
- package/coverage/lcov-report/core/api/services/index.html +21 -21
- package/coverage/lcov-report/core/api/services/index.js.html +137 -137
- package/coverage/lcov-report/core/api/services/mailer/index.html +24 -24
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +19 -19
- package/coverage/lcov-report/core/api/services/organisations/index.html +24 -24
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +8 -8
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +67 -67
- package/coverage/lcov-report/core/api/services/pusher/index.html +34 -34
- package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +8 -8
- package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +10 -10
- package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +414 -414
- package/coverage/lcov-report/core/api/services/storage/index.html +21 -21
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +35 -35
- package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +25 -25
- package/coverage/lcov-report/core/api/services/users/index.html +21 -21
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +33 -33
- package/coverage/lcov-report/core/common/errors.js.html +1 -1
- package/coverage/lcov-report/core/common/index.html +42 -27
- package/coverage/lcov-report/core/common/index.js.html +16 -16
- package/coverage/lcov-report/core/common/permissions.js.html +325 -265
- package/coverage/lcov-report/index.html +182 -182
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +118 -37
- package/coverage/lcov-report/map/api/hooks/index.html +7 -7
- package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
- package/coverage/lcov-report/map/api/index.html +1 -1
- package/coverage/lcov-report/map/api/index.js.html +1 -1
- package/coverage/lcov-report/map/api/marshall.js.html +1 -1
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/index.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/catalog/index.html +1 -1
- package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
- package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +2 -2
- package/coverage/lcov-report/map/api/services/features/index.html +1 -1
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/geocoder/index.html +1 -1
- package/coverage/lcov-report/map/api/services/index.html +1 -1
- package/coverage/lcov-report/map/api/services/index.js.html +1 -1
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/errors.js.html +1 -1
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/grid.js.html +1 -1
- package/coverage/lcov-report/map/common/index.html +12 -12
- package/coverage/lcov-report/map/common/index.js.html +1 -1
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/permissions.js.html +1 -1
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/wfs-utils.js.html +8 -5
- package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wmts-utils.js.html +71 -11
- package/coverage/lcov.info +3742 -3949
- package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/map/api/hooks/hooks.query.js.html +118 -37
- package/coverage/map/api/hooks/index.html +7 -7
- package/coverage/map/api/hooks/index.js.html +1 -1
- package/coverage/map/api/index.html +1 -1
- package/coverage/map/api/index.js.html +1 -1
- package/coverage/map/api/marshall.js.html +1 -1
- package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/index.html +1 -1
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
- package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
- package/coverage/map/api/services/alerts/index.html +1 -1
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +1 -1
- package/coverage/map/api/services/catalog/index.html +1 -1
- package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/map/api/services/daptiles/index.html +1 -1
- package/coverage/map/api/services/features/features.hooks.js.html +2 -2
- package/coverage/map/api/services/features/index.html +1 -1
- package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
- package/coverage/map/api/services/geocoder/geocoder.service.js.html +1 -1
- package/coverage/map/api/services/geocoder/index.html +1 -1
- package/coverage/map/api/services/index.html +1 -1
- package/coverage/map/api/services/index.js.html +1 -1
- package/coverage/map/common/dynamic-grid-source.js.html +1 -1
- package/coverage/map/common/errors.js.html +1 -1
- package/coverage/map/common/geotiff-grid-source.js.html +1 -1
- package/coverage/map/common/grid.js.html +1 -1
- package/coverage/map/common/index.html +12 -12
- package/coverage/map/common/index.js.html +1 -1
- package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
- package/coverage/map/common/moment-utils.js.html +1 -1
- package/coverage/map/common/opendap-grid-source.js.html +1 -1
- package/coverage/map/common/opendap-utils.js.html +1 -1
- package/coverage/map/common/permissions.js.html +1 -1
- package/coverage/map/common/time-based-grid-source.js.html +1 -1
- package/coverage/map/common/tms-utils.js.html +1 -1
- package/coverage/map/common/wcs-grid-source.js.html +1 -1
- package/coverage/map/common/wcs-utils.js.html +1 -1
- package/coverage/map/common/weacast-grid-source.js.html +1 -1
- package/coverage/map/common/wfs-utils.js.html +8 -5
- package/coverage/map/common/wms-utils.js.html +1 -1
- package/coverage/map/common/wmts-utils.js.html +71 -11
- package/extras/icons/kanban.png +0 -0
- package/extras/tours/core/add-member.js +10 -1
- package/extras/tours/core/{tag-member.js → edit-member-tags.js} +4 -3
- package/extras/tours/core/groups.js +8 -2
- package/extras/tours/core/members.js +11 -21
- package/extras/tours/core/tags.js +7 -1
- package/extras/tours/map/catalog-categories.js +4 -4
- package/extras/tours/map/catalog-panel.js +16 -16
- package/extras/tours/map/favorite-views.js +3 -3
- package/lib/core/api/hooks/hooks.authorisations.js +149 -140
- package/lib/core/api/hooks/hooks.authorisations.js.map +1 -1
- package/lib/core/api/hooks/hooks.organisations.js +1 -23
- package/lib/core/api/hooks/hooks.organisations.js.map +1 -1
- package/lib/core/api/hooks/hooks.query.js +22 -0
- package/lib/core/api/hooks/hooks.query.js.map +1 -1
- package/lib/core/api/hooks/hooks.users.js +34 -18
- package/lib/core/api/hooks/hooks.users.js.map +1 -1
- package/lib/core/api/services/authorisations/authorisations.service.js +34 -25
- package/lib/core/api/services/authorisations/authorisations.service.js.map +1 -1
- package/lib/core/client/api.js +1 -0
- package/lib/core/client/api.js.map +1 -1
- package/lib/core/client/components/account/KAccountDZ.vue +3 -4
- package/lib/core/client/components/account/KAccountDevices.vue +5 -6
- package/lib/core/client/components/account/KDeviceCard.vue +2 -1
- package/lib/core/client/components/account/KIdentityPanel.vue +1 -7
- package/lib/core/client/components/collection/KBoard.vue +26 -155
- package/lib/core/client/components/collection/KCard.vue +144 -42
- package/lib/core/client/components/collection/KCardSection.vue +52 -0
- package/lib/core/client/components/collection/KColumn.vue +181 -0
- package/lib/core/client/components/collection/KGrid.vue +13 -18
- package/lib/core/client/components/collection/KHistory.vue +61 -89
- package/lib/core/client/components/collection/KHistoryEntry.vue +90 -66
- package/lib/core/client/components/collection/KItem.vue +21 -2
- package/lib/core/client/components/collection/KList.vue +9 -12
- package/lib/core/client/components/collection/KTable.vue +33 -39
- package/lib/core/client/components/collection/index.js +6 -1
- package/lib/core/client/components/collection/index.js.map +1 -1
- package/lib/core/client/components/editor/KEditor.vue +0 -6
- package/lib/core/client/components/editor/KModalEditor.vue +4 -4
- package/lib/core/client/components/editor/KSettingsEditor.vue +49 -0
- package/lib/core/client/components/form/KAttachmentField.vue +10 -10
- package/lib/core/client/components/form/KChipsField.vue +28 -23
- package/lib/core/client/components/form/KColorField.vue +30 -25
- package/lib/core/client/components/form/KFileField.vue +11 -40
- package/lib/core/client/components/form/KForm.vue +0 -12
- package/lib/core/client/components/form/KIconField.vue +1 -0
- package/lib/core/client/components/form/KItemField.vue +6 -2
- package/lib/core/client/components/form/KRoleField.vue +56 -0
- package/lib/core/client/components/form/KSelectField.vue +16 -1
- package/lib/core/client/components/form/KView.vue +5 -14
- package/lib/core/client/components/frame/KAction.vue +18 -12
- package/lib/core/client/components/frame/KAvatar.vue +3 -3
- package/lib/core/client/components/frame/KChart.vue +60 -0
- package/lib/core/client/components/frame/KChipsPane.vue +80 -0
- package/lib/core/client/components/frame/KContent.vue +1 -1
- package/lib/core/client/components/frame/KModal.vue +30 -44
- package/lib/core/client/components/frame/KPanel.vue +1 -1
- package/lib/core/client/components/frame/{KMenu.vue → KPopupAction.vue} +6 -7
- package/lib/core/client/components/frame/KSpot.vue +31 -0
- package/lib/core/client/components/frame/KStamp.vue +62 -0
- package/lib/core/client/components/frame/index.js +56 -1
- package/lib/core/client/components/frame/index.js.map +1 -1
- package/lib/core/client/components/input/KColorChooser.vue +16 -8
- package/lib/core/client/components/input/KIconChooser.vue +2 -1
- package/lib/core/client/components/input/KOptionsChooser.vue +2 -2
- package/lib/core/client/components/input/KUploader.vue +14 -5
- package/lib/core/client/components/layout/KAbout.vue +9 -3
- package/lib/core/client/components/layout/KFab.vue +1 -1
- package/lib/core/client/components/layout/KPage.vue +44 -19
- package/lib/core/client/components/layout/KTour.vue +2 -2
- package/lib/core/client/components/layout/KWelcome.vue +13 -12
- package/lib/core/client/components/layout/KWindow.vue +1 -1
- package/lib/core/client/components/media/KImageViewer.vue +9 -7
- package/lib/core/client/components/media/KMediaBrowser.vue +12 -8
- package/lib/core/client/components/menu/KMenu.vue +103 -0
- package/lib/core/client/components/team/KAddMember.vue +17 -9
- package/lib/core/client/components/team/KChangeRole.vue +5 -7
- package/lib/core/client/components/team/KGroupCard.vue +34 -51
- package/lib/core/client/components/team/KGroupsActivity.vue +9 -2
- package/lib/core/client/components/team/KJoinGroup.vue +5 -7
- package/lib/core/client/components/team/KMemberCard.vue +104 -63
- package/lib/core/client/components/team/KMembersActivity.vue +9 -2
- package/lib/core/client/components/team/KOrganisationsActivity.vue +8 -1
- package/lib/core/client/components/team/KTagCard.vue +26 -26
- package/lib/core/client/components/team/KTagsActivity.vue +9 -2
- package/lib/core/client/components/time/KTimeRange.vue +144 -0
- package/lib/core/client/components/viewer/KModalViewer.vue +6 -0
- package/lib/core/client/components/viewer/KViewer.vue +0 -6
- package/lib/core/client/i18n/core_en.json +138 -94
- package/lib/core/client/i18n/core_fr.json +61 -17
- package/lib/core/client/index.js +46 -14
- package/lib/core/client/index.js.map +1 -1
- package/lib/core/client/layout.js +8 -1
- package/lib/core/client/layout.js.map +1 -1
- package/lib/core/client/mixins/mixin.authorisation.js +28 -18
- package/lib/core/client/mixins/mixin.authorisation.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-collection.js +57 -9
- package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-context.js +1 -1
- package/lib/core/client/mixins/mixin.base-context.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-editor.js +26 -16
- package/lib/core/client/mixins/mixin.base-editor.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-field.js +0 -4
- package/lib/core/client/mixins/mixin.base-field.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-item.js +29 -14
- package/lib/core/client/mixins/mixin.base-item.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-viewer.js +0 -2
- package/lib/core/client/mixins/mixin.base-viewer.js.map +1 -1
- package/lib/core/client/mixins/mixin.object-proxy.js +17 -3
- package/lib/core/client/mixins/mixin.object-proxy.js.map +1 -1
- package/lib/core/client/mixins/mixin.schema-proxy.js +31 -0
- package/lib/core/client/mixins/mixin.schema-proxy.js.map +1 -1
- package/lib/core/client/mixins/mixin.service.js +5 -33
- package/lib/core/client/mixins/mixin.service.js.map +1 -1
- package/lib/core/client/reader.js +54 -0
- package/lib/core/client/reader.js.map +1 -0
- package/lib/core/client/readers/index.js +30 -0
- package/lib/core/client/readers/index.js.map +1 -0
- package/lib/core/client/readers/reader.csv.js +43 -0
- package/lib/core/client/readers/reader.csv.js.map +1 -0
- package/lib/core/client/readers/reader.json.js +38 -0
- package/lib/core/client/readers/reader.json.js.map +1 -0
- package/lib/core/client/services/index.js +23 -0
- package/lib/core/client/services/index.js.map +1 -1
- package/lib/core/client/services/local-settings.service.js +4 -0
- package/lib/core/client/services/local-settings.service.js.map +1 -1
- package/lib/core/client/time.js +131 -0
- package/lib/core/client/time.js.map +1 -0
- package/lib/core/common/permissions.js +65 -23
- package/lib/core/common/permissions.js.map +1 -1
- package/lib/core/common/schemas/groups.create.json +1 -1
- package/lib/core/common/schemas/groups.update.json +1 -1
- package/lib/core/common/schemas/organisations.create.json +1 -1
- package/lib/core/common/schemas/organisations.update.json +2 -2
- package/lib/core/common/schemas/settings.update.json +139 -0
- package/lib/core/common/schemas/tags.update.json +9 -1
- package/lib/map/api/hooks/hooks.query.js +55 -29
- package/lib/map/api/hooks/hooks.query.js.map +1 -1
- package/lib/map/api/services/features/features.hooks.js +1 -1
- package/lib/map/api/services/features/features.hooks.js.map +1 -1
- package/lib/map/client/components/KCaptureToolbar.vue +156 -0
- package/lib/map/client/components/KColorLegend.vue +25 -23
- package/lib/map/client/components/KFavoriteViews.vue +71 -35
- package/lib/map/client/components/KFeaturesChart.vue +11 -9
- package/lib/map/client/components/KFeaturesFilter.vue +18 -8
- package/lib/map/client/components/KFeaturesTable.vue +27 -2
- package/lib/map/client/components/KLayerEditionToolbar.vue +51 -0
- package/lib/map/client/components/KLayerStyleEditor.vue +12 -5
- package/lib/map/client/components/KLayerStyleForm.vue +44 -33
- package/lib/map/client/components/KLocationInput.vue +126 -65
- package/lib/map/client/components/KLocationMap.vue +199 -84
- package/lib/map/client/components/KMeasureTool.vue +340 -0
- package/lib/map/client/components/KPositionIndicator.vue +1 -0
- package/lib/map/client/components/KTimeline.vue +41 -37
- package/lib/map/client/components/KUrlLegend.vue +21 -19
- package/lib/map/client/components/catalog/KBaseLayersSelector.vue +105 -0
- package/lib/map/client/components/catalog/KCatalog.vue +14 -2
- package/lib/map/client/components/catalog/KConnectLayer.vue +31 -11
- package/lib/map/client/components/catalog/KCreateLayer.vue +37 -14
- package/lib/map/client/components/catalog/KImportLayer.vue +33 -40
- package/lib/map/client/components/catalog/KLayerCategories.vue +86 -62
- package/lib/map/client/components/catalog/KLayersSelector.vue +44 -42
- package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +3 -3
- package/lib/map/client/components/form/KLocationField.vue +1 -1
- package/lib/map/client/components/form/KOwsLayerField.vue +7 -0
- package/lib/map/client/components/form/KOwsServiceField.vue +1 -0
- package/lib/map/client/components/widget/KInformationBox.vue +10 -16
- package/lib/map/client/components/widget/KMapillaryViewer.vue +59 -49
- package/lib/map/client/components/widget/KTimeSeries.vue +119 -31
- package/lib/map/client/i18n/map_en.json +105 -20
- package/lib/map/client/i18n/map_fr.json +107 -23
- package/lib/map/client/init.js +24 -7
- package/lib/map/client/init.js.map +1 -1
- package/lib/map/client/leaflet/GSMaPLayer.js +4 -9
- package/lib/map/client/leaflet/GSMaPLayer.js.map +1 -1
- package/lib/map/client/leaflet/MaskLayer.js +73 -0
- package/lib/map/client/leaflet/MaskLayer.js.map +1 -0
- package/lib/map/client/mixins/globe/mixin.base-globe.js +7 -6
- package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js +7 -9
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.popup.js +4 -0
- package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.tooltip.js +4 -0
- package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
- package/lib/map/client/mixins/index.js +8 -13
- package/lib/map/client/mixins/index.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.base-map.js +71 -8
- package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.canvas-layers.js +276 -51
- package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.edit-layers.js +218 -121
- package/lib/map/client/mixins/map/mixin.edit-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.file-layers.js +46 -93
- package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.geojson-layers.js +22 -11
- package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.georaster-layers.js +7 -4
- package/lib/map/client/mixins/map/mixin.georaster-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.gsmap-layers.js +3 -3
- package/lib/map/client/mixins/map/mixin.gsmap-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js +8 -10
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.mapillary-layers.js +25 -40
- package/lib/map/client/mixins/map/mixin.mapillary-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.popup.js +4 -0
- package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js +5 -3
- package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js +5 -3
- package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tooltip.js +4 -0
- package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
- package/lib/map/client/mixins/mixin.activity.js +62 -68
- package/lib/map/client/mixins/mixin.activity.js.map +1 -1
- package/lib/map/client/mixins/mixin.context.js +26 -3
- package/lib/map/client/mixins/mixin.context.js.map +1 -1
- package/lib/map/client/mixins/mixin.feature-selection.js +8 -10
- package/lib/map/client/mixins/mixin.feature-selection.js.map +1 -1
- package/lib/map/client/mixins/mixin.feature-service.js +9 -7
- package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
- package/lib/map/client/mixins/mixin.infobox.js +4 -0
- package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
- package/lib/map/client/mixins/mixin.weacast.js +6 -4
- package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
- package/lib/map/client/pixi-utils.js +9 -0
- package/lib/map/client/pixi-utils.js.map +1 -1
- package/lib/map/client/readers/index.js +42 -0
- package/lib/map/client/readers/index.js.map +1 -0
- package/lib/map/client/readers/reader.geojson.js +59 -0
- package/lib/map/client/readers/reader.geojson.js.map +1 -0
- package/lib/map/client/readers/reader.gpx.js +41 -0
- package/lib/map/client/readers/reader.gpx.js.map +1 -0
- package/lib/map/client/readers/reader.kml.js +41 -0
- package/lib/map/client/readers/reader.kml.js.map +1 -0
- package/lib/map/client/utils.js +52 -1
- package/lib/map/client/utils.js.map +1 -1
- package/lib/map/common/wfs-utils.js +1 -1
- package/lib/map/common/wfs-utils.js.map +1 -1
- package/lib/map/common/wmts-utils.js +31 -7
- package/lib/map/common/wmts-utils.js.map +1 -1
- package/lib/test/client/core/account.js +100 -0
- package/lib/test/client/core/account.js.map +1 -0
- package/lib/test/client/core/api.js +400 -0
- package/lib/test/client/core/api.js.map +1 -0
- package/lib/test/client/core/collection.js +109 -0
- package/lib/test/client/core/collection.js.map +1 -0
- package/lib/test/client/core/index.js +90 -0
- package/lib/test/client/core/index.js.map +1 -0
- package/lib/test/client/core/layout.js +221 -0
- package/lib/test/client/core/layout.js.map +1 -0
- package/lib/test/client/core/runner.js +203 -0
- package/lib/test/client/core/runner.js.map +1 -0
- package/lib/test/client/core/screens.js +68 -0
- package/lib/test/client/core/screens.js.map +1 -0
- package/lib/test/client/core/utils.js +304 -0
- package/lib/test/client/core/utils.js.map +1 -0
- package/lib/test/client/index.js +20 -0
- package/lib/test/client/index.js.map +1 -0
- package/lib/test/client/map/catalog.js +192 -0
- package/lib/test/client/map/catalog.js.map +1 -0
- package/lib/test/client/map/controls.js +54 -0
- package/lib/test/client/map/controls.js.map +1 -0
- package/lib/test/client/map/index.js +30 -0
- package/lib/test/client/map/index.js.map +1 -0
- package/package.json +18 -9
- package/test.client.js +1 -0
- package/tests/core/test-log-2021-09-02.log +47 -0
- package/tests/map/test-log-%DATE%.logYYYY-09-DD +6 -0
- package/tests/map/test-log-2021-09-02.log +3 -0
- package/.nyc_output/5baea3f8-cf8e-4c76-8ccf-0e48b6f16fa4.json +0 -1
- package/.nyc_output/dddde6b5-9024-4b0e-8d8b-4502d437b8a4.json +0 -1
- package/.nyc_output/ef5e94ba-9a99-4fb6-ab1d-1a974112bb83.json +0 -1
- package/.nyc_output/fd4681f8-5f41-4f17-b393-9f399b24c128.json +0 -1
- package/.nyc_output/processinfo/0d403586-0c7c-4336-94d1-a49e9f02a905.json +0 -1
- package/.nyc_output/processinfo/21dd57bd-48c5-41c8-8800-252db32a9366.json +0 -1
- package/.nyc_output/processinfo/3eb3a2ca-53c2-4551-ba6b-adf70f9a53cd.json +0 -1
- package/.nyc_output/processinfo/5baea3f8-cf8e-4c76-8ccf-0e48b6f16fa4.json +0 -1
- package/.nyc_output/processinfo/dddde6b5-9024-4b0e-8d8b-4502d437b8a4.json +0 -1
- package/.nyc_output/processinfo/ef5e94ba-9a99-4fb6-ab1d-1a974112bb83.json +0 -1
- package/.nyc_output/processinfo/fd4681f8-5f41-4f17-b393-9f399b24c128.json +0 -1
- package/extras/testcafe/Dockerfile +0 -48
- package/extras/testcafe/docker-entrypoint.sh +0 -27
- package/extras/testcafe/page-models/core/account.js +0 -75
- package/extras/testcafe/page-models/core/base-collection.js +0 -41
- package/extras/testcafe/page-models/core/base-page.js +0 -25
- package/extras/testcafe/page-models/core/groups.js +0 -36
- package/extras/testcafe/page-models/core/index.js +0 -140
- package/extras/testcafe/page-models/core/layout.js +0 -145
- package/extras/testcafe/page-models/core/members.js +0 -98
- package/extras/testcafe/page-models/core/organisations.js +0 -76
- package/extras/testcafe/page-models/core/screens.js +0 -99
- package/extras/testcafe/page-models/core/tags.js +0 -21
- package/extras/testcafe/page-models/map/add-layer.js +0 -51
- package/extras/testcafe/page-models/map/catalog.js +0 -132
- package/extras/testcafe/page-models/map/index.js +0 -36
- package/extras/testcafe/page-models/map/map-activity.js +0 -42
- package/extras/testcafe/page-models/map/timeline.js +0 -67
- package/lib/core/client/components/frame/KLabel.vue +0 -56
- package/lib/core/client/components/team/KTagsPane.vue +0 -35
- package/lib/map/client/leaflet/TiledMapillaryLayer.js +0 -137
- package/lib/map/client/leaflet/TiledMapillaryLayer.js.map +0 -1
- package/lib/map/client/mixins/mixin.time.js +0 -73
- package/lib/map/client/mixins/mixin.time.js.map +0 -1
- package/tests/core/account.test.js +0 -423
- package/tests/core/client.test.js.skip +0 -37
- package/tests/core/config/default.js +0 -96
- package/tests/core/config/email-templates/confirmInvitation/html.ejs +0 -18
- package/tests/core/config/email-templates/identityChange/html.ejs +0 -12
- package/tests/core/config/email-templates/newDevice/html.ejs +0 -7
- package/tests/core/config/email-templates/passwordChange/html.ejs +0 -5
- package/tests/core/config/email-templates/resendVerifySignup/html.ejs +0 -10
- package/tests/core/config/email-templates/resetPwd/html.ejs +0 -5
- package/tests/core/config/email-templates/sendResetPwd/html.ejs +0 -8
- package/tests/core/config/email-templates/verifySignup/html.ejs +0 -3
- package/tests/core/data/10k_most_common_passwords.txt +0 -10000
- package/tests/core/data/logo.png +0 -0
- package/tests/core/hooks.test.js +0 -175
- package/tests/core/index.test.js +0 -432
- package/tests/core/notifications.test.js +0 -465
- package/tests/core/storage.test.js +0 -134
- package/tests/core/team.test.js +0 -610
- package/tests/core/utils.js +0 -62
- package/tests/map/alerts.test.js +0 -554
- package/tests/map/config/default.js +0 -112
- package/tests/map/config/layers.json +0 -37
- package/tests/map/daptiles.test.js +0 -41
- package/tests/map/data/DescribeCoverage.xml +0 -55
- package/tests/map/data/GetCoverage.tif +0 -0
- package/tests/map/data/adsb.observations.json +0 -132
- package/tests/map/data/dataset.grb.das +0 -55
- package/tests/map/data/dataset.grb.dds +0 -17
- package/tests/map/data/dataset.grb.dods +0 -0
- package/tests/map/data/lat_lon_bounds.grb.dods +0 -0
- package/tests/map/data/subdataset.grb.dods +0 -0
- package/tests/map/data/vigicrues.observations.json +0 -47042
- package/tests/map/data/vigicrues.stations.json +0 -15422
- package/tests/map/data/zones.json +0 -1228
- package/tests/map/forecast-data/gfs-world/u-wind/2021-07-15_12-00-00_2021-07-15_12-00-00.grib +0 -0
- package/tests/map/forecast-data/gfs-world/v-wind/2021-07-15_12-00-00_2021-07-15_12-00-00.grib +0 -0
- package/tests/map/grid-sources.test.js +0 -304
- package/tests/map/hooks.test.js +0 -96
- package/tests/map/index.test.js +0 -333
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
</div>
|
|
19
19
|
</div>
|
|
20
20
|
<div v-else class="absolute-center">
|
|
21
|
-
<k-
|
|
21
|
+
<k-stamp icon="las la-exclamation-circle" icon-size="3rem" :text="$t('KTimeSeries.NO_DATA_AVAILABLE')" text-size="1rem" />
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
24
24
|
</div>
|
|
@@ -32,7 +32,10 @@ import centroid from '@turf/centroid'
|
|
|
32
32
|
import chroma from 'chroma-js'
|
|
33
33
|
import Chart from 'chart.js'
|
|
34
34
|
import 'chartjs-plugin-annotation'
|
|
35
|
+
import Papa from 'papaparse'
|
|
35
36
|
import { getTimeInterval } from '../../utils'
|
|
37
|
+
import { downloadAsBlob } from '../../../../core/client/utils'
|
|
38
|
+
import { Time } from '../../../../core/client/time'
|
|
36
39
|
import { baseWidget } from '../../../../core/client/mixins'
|
|
37
40
|
|
|
38
41
|
export default {
|
|
@@ -100,6 +103,10 @@ export default {
|
|
|
100
103
|
hasVariable (name, properties) {
|
|
101
104
|
return (properties[name] && Array.isArray(properties[name]))
|
|
102
105
|
},
|
|
106
|
+
getSelectedRunTime () {
|
|
107
|
+
// Set default run as latest
|
|
108
|
+
return this.runTime || _.last(this.runTimes)
|
|
109
|
+
},
|
|
103
110
|
setupTimeTicks () {
|
|
104
111
|
if (!this.times || !this.graphWidth) return
|
|
105
112
|
// Choose the right step size to ensure we have almost 100px between hour ticks
|
|
@@ -144,9 +151,27 @@ export default {
|
|
|
144
151
|
this.timeRange = null
|
|
145
152
|
}
|
|
146
153
|
},
|
|
154
|
+
setupAvailableRunTimes () {
|
|
155
|
+
this.runTimes = []
|
|
156
|
+
// FIXME: to be used when all issues are correctly fixed in weacast
|
|
157
|
+
|
|
158
|
+
/*
|
|
159
|
+
const runTime = this.probedLocation.runTime
|
|
160
|
+
|
|
161
|
+
this.probedVariables.forEach(variable => {
|
|
162
|
+
// Check if we are targetting a specific level
|
|
163
|
+
const name = (this.kActivity.selectedLevel ? `${variable.name}-${this.kActivity.selectedLevel}` : variable.name)
|
|
164
|
+
|
|
165
|
+
if (runTime && runTime[name]) this.runTimes.push(runTime[name])
|
|
166
|
+
})
|
|
167
|
+
// Make union of all available run times
|
|
168
|
+
this.runTimes = _.union(...this.runTimes).map(time => moment.utc(time)).sort((a, b) => a - b)
|
|
169
|
+
*/
|
|
170
|
+
},
|
|
147
171
|
setupAvailableDatasets () {
|
|
148
172
|
this.datasets = []
|
|
149
173
|
const time = this.probedLocation.time || this.probedLocation.forecastTime
|
|
174
|
+
const runTime = this.probedLocation.runTime
|
|
150
175
|
const properties = this.probedLocation.properties
|
|
151
176
|
// Generate a color palette in case the variables does not provide it
|
|
152
177
|
const colors = _.shuffle(chroma.scale('Spectral').colors(this.probedVariables.length))
|
|
@@ -157,11 +182,19 @@ export default {
|
|
|
157
182
|
const label = this.$t(variable.label) || variable.label
|
|
158
183
|
// Aggregated variable available for feature ?
|
|
159
184
|
if (this.hasVariable(name, properties)) {
|
|
185
|
+
// Build data structure as expected by visualisation
|
|
186
|
+
let values = properties[name].map((value, index) => ({ x: time[name][index], y: value }))
|
|
187
|
+
// Keep only selected value if multiple are provided for the same time (eg different forecasts)
|
|
188
|
+
if (!_.isEmpty(_.get(runTime, name)) && this.getSelectedRunTime()) {
|
|
189
|
+
values = values.filter((value, index) => (runTime[name][index] === this.getSelectedRunTime().toISOString()))
|
|
190
|
+
} else values = _.uniqBy(values, 'x')
|
|
191
|
+
// Then transform to date object as expected by visualisation
|
|
192
|
+
values = values.map((value) => Object.assign(value, { x: new Date(value.x) })).filter(this.filter)
|
|
160
193
|
this.datasets.push(_.merge({
|
|
161
194
|
label: `${label} (${unit})`,
|
|
162
195
|
borderColor: colors[index],
|
|
163
196
|
backgroundColor: colors[index],
|
|
164
|
-
data:
|
|
197
|
+
data: values,
|
|
165
198
|
yAxisID: unit
|
|
166
199
|
}, _.omit(variable.chartjs, 'yAxis')))
|
|
167
200
|
}
|
|
@@ -275,13 +308,14 @@ export default {
|
|
|
275
308
|
// Setup the graph
|
|
276
309
|
this.setupAvailableTimes()
|
|
277
310
|
this.setupTimeTicks()
|
|
311
|
+
this.setupAvailableRunTimes()
|
|
278
312
|
this.setupAvailableDatasets()
|
|
279
313
|
this.setupAvailableYAxes()
|
|
280
314
|
|
|
281
|
-
const date = _.get(
|
|
282
|
-
const time = _.get(
|
|
283
|
-
const dateFormat = _.get(
|
|
284
|
-
const timeFormat = _.get(
|
|
315
|
+
const date = _.get(Time.getCurrentFormattedTime(), 'date.short')
|
|
316
|
+
const time = _.get(Time.getCurrentFormattedTime(), 'time.long')
|
|
317
|
+
const dateFormat = _.get(Time.getFormat(), 'date.short')
|
|
318
|
+
const timeFormat = _.get(Time.getFormat(), 'time.long')
|
|
285
319
|
|
|
286
320
|
this.config = {
|
|
287
321
|
type: 'line',
|
|
@@ -333,7 +367,7 @@ export default {
|
|
|
333
367
|
}
|
|
334
368
|
}
|
|
335
369
|
// Is current time visible in data time range ?
|
|
336
|
-
const currentTime = moment.utc(
|
|
370
|
+
const currentTime = moment.utc(Time.getCurrentFormattedTime().iso)
|
|
337
371
|
if (this.timeRange && currentTime.isBetween(...this.timeRange)) {
|
|
338
372
|
this.config.options.annotation = {
|
|
339
373
|
drawTime: 'afterDatasetsDraw',
|
|
@@ -380,6 +414,14 @@ export default {
|
|
|
380
414
|
onUpdateSpan (span) {
|
|
381
415
|
this.$store.set('timeseries.span', span)
|
|
382
416
|
},
|
|
417
|
+
onUpdateRun (runTime) {
|
|
418
|
+
this.runTime = runTime
|
|
419
|
+
// Update tooltip action
|
|
420
|
+
const action = _.find(this.actions, { id: 'run-options' })
|
|
421
|
+
action.tooltip = this.$t('KTimeSeries.RUN') + ' (' + Time.format(this.getSelectedRunTime(), 'date.short') +
|
|
422
|
+
' - ' + Time.format(this.getSelectedRunTime(), 'time.short') + ')'
|
|
423
|
+
this.setupGraph()
|
|
424
|
+
},
|
|
383
425
|
updateProbedLocationHighlight () {
|
|
384
426
|
if (!this.probedLocation) return
|
|
385
427
|
const windDirection = (this.kActivity.selectedLevel ? `windDirection-${this.kActivity.selectedLevel}` : 'windDirection')
|
|
@@ -396,6 +438,20 @@ export default {
|
|
|
396
438
|
onCenterOn () {
|
|
397
439
|
this.kActivity.centerOnSelection()
|
|
398
440
|
},
|
|
441
|
+
onExportSeries () {
|
|
442
|
+
const json = this.times.map(time => {
|
|
443
|
+
const row = {
|
|
444
|
+
[this.$t('KTimeSeries.TIME_LABEL')]: time.toISOString()
|
|
445
|
+
}
|
|
446
|
+
this.datasets.forEach(dataset => {
|
|
447
|
+
const value = _.find(dataset.data, item => item.x.toISOString() === time.toISOString())
|
|
448
|
+
row[dataset.label] = value ? value.y : null
|
|
449
|
+
})
|
|
450
|
+
return row
|
|
451
|
+
})
|
|
452
|
+
const csv = Papa.unparse(json)
|
|
453
|
+
downloadAsBlob(csv, this.$t('KTimeSeries.SERIES_EXPORT_FILE'), 'text/csv;charset=utf-8;')
|
|
454
|
+
},
|
|
399
455
|
updateProbedLocationName () {
|
|
400
456
|
this.probedLocationName = ''
|
|
401
457
|
if (!this.probedLocation) return
|
|
@@ -403,6 +459,38 @@ export default {
|
|
|
403
459
|
if (name) this.probedLocationName = name
|
|
404
460
|
},
|
|
405
461
|
async refresh () {
|
|
462
|
+
// Select the current span as default option in UX
|
|
463
|
+
const span = this.$store.get('timeseries.span')
|
|
464
|
+
const spanOptions = [
|
|
465
|
+
{ badge: '3H', value: 180 },
|
|
466
|
+
{ badge: '6H', value: 360 },
|
|
467
|
+
{ badge: '12H', value: 720 },
|
|
468
|
+
{ badge: '24H', value: 1440 },
|
|
469
|
+
{ badge: '48H', value: 2880 },
|
|
470
|
+
{ badge: '72H', value: 4320 },
|
|
471
|
+
{ badge: '96H', value: 5760 }
|
|
472
|
+
]
|
|
473
|
+
spanOptions.forEach(option => {
|
|
474
|
+
if (option.value === span) {
|
|
475
|
+
option.default = true
|
|
476
|
+
}
|
|
477
|
+
})
|
|
478
|
+
// Registers the base actions
|
|
479
|
+
this.actions = [
|
|
480
|
+
{ id: 'center-view', icon: 'las la-eye', tooltip: 'KTimeSeries.CENTER_ON', handler: this.onCenterOn },
|
|
481
|
+
{ id: 'export-feature', icon: 'las la-file-download', tooltip: this.$t('KTimeSeries.EXPORT_SERIES'), handler: this.onExportSeries },
|
|
482
|
+
{
|
|
483
|
+
component: 'input/KOptionsChooser',
|
|
484
|
+
id: 'timespan-options',
|
|
485
|
+
icon: 'las la-history',
|
|
486
|
+
tooltip: 'KTimeSeries.SPAN',
|
|
487
|
+
options: spanOptions,
|
|
488
|
+
on: { event: 'option-chosen', listener: this.onUpdateSpan }
|
|
489
|
+
}
|
|
490
|
+
]
|
|
491
|
+
// Clear previous run timle setup if any
|
|
492
|
+
this.runTime = null
|
|
493
|
+
// Then manage selection
|
|
406
494
|
this.kActivity.addSelectionHighlight('time-series')
|
|
407
495
|
this.kActivity.centerOnSelection()
|
|
408
496
|
// Update timeseries data if required
|
|
@@ -429,46 +517,46 @@ export default {
|
|
|
429
517
|
(name ? ` (${name})` : ` (${longitude.toFixed(2)}°, ${latitude.toFixed(2)}°)`))
|
|
430
518
|
}
|
|
431
519
|
this.updateProbedLocationName()
|
|
432
|
-
this.setupGraph()
|
|
520
|
+
await this.setupGraph()
|
|
433
521
|
this.updateProbedLocationHighlight()
|
|
522
|
+
|
|
523
|
+
// When forecast data are available allow to select wich run to use
|
|
524
|
+
if (this.runTimes && (this.runTimes.length > 1)) {
|
|
525
|
+
// Select latest runTime as default option
|
|
526
|
+
const runOptions = this.runTimes.map(runTime => ({
|
|
527
|
+
label: Time.format(runTime, 'date.short') + ' - ' + Time.format(runTime, 'time.short'),
|
|
528
|
+
value: runTime
|
|
529
|
+
}))
|
|
530
|
+
_.last(runOptions).default = true
|
|
531
|
+
// Registers the action
|
|
532
|
+
this.actions.push({
|
|
533
|
+
component: 'input/KOptionsChooser',
|
|
534
|
+
id: 'run-options',
|
|
535
|
+
icon: 'las la-clock',
|
|
536
|
+
tooltip: this.$t('KTimeSeries.RUN') + ' (' + Time.format(this.getSelectedRunTime(), 'date.short') +
|
|
537
|
+
' - ' + Time.format(this.getSelectedRunTime(), 'time.short') + ')',
|
|
538
|
+
options: runOptions,
|
|
539
|
+
on: { event: 'option-chosen', listener: this.onUpdateRun }
|
|
540
|
+
})
|
|
541
|
+
}
|
|
434
542
|
}
|
|
435
543
|
},
|
|
436
544
|
created () {
|
|
437
545
|
// Load the required components
|
|
438
546
|
this.$options.components['k-panel'] = this.$load('frame/KPanel')
|
|
439
|
-
this.$options.components['k-
|
|
440
|
-
// Registers the actions
|
|
441
|
-
this.actions = [
|
|
442
|
-
{ id: 'center-view', icon: 'las la-eye', tooltip: 'KTimeSeries.CENTER_ON', handler: this.onCenterOn },
|
|
443
|
-
{
|
|
444
|
-
component: 'input/KOptionsChooser',
|
|
445
|
-
id: 'timespan-options',
|
|
446
|
-
icon: 'las la-history',
|
|
447
|
-
tooltip: 'KTimeSeries.SPAN',
|
|
448
|
-
options: [
|
|
449
|
-
{ badge: '3H', value: 180 },
|
|
450
|
-
{ badge: '6H', value: 360 },
|
|
451
|
-
{ badge: '12H', value: 720, default: true },
|
|
452
|
-
{ badge: '24H', value: 1440 },
|
|
453
|
-
{ badge: '48H', value: 2880 },
|
|
454
|
-
{ badge: '72H', value: 4320 },
|
|
455
|
-
{ badge: '96H', value: 5760 }
|
|
456
|
-
],
|
|
457
|
-
on: { event: 'option-chosen', listener: this.onUpdateSpan }
|
|
458
|
-
}
|
|
459
|
-
]
|
|
547
|
+
this.$options.components['k-stamp'] = this.$load('frame/KStamp')
|
|
460
548
|
// Refresh the component
|
|
461
549
|
this.refresh()
|
|
462
550
|
},
|
|
463
551
|
mounted () {
|
|
464
|
-
this
|
|
552
|
+
this.$events.$on('time-current-time-changed', this.refresh)
|
|
465
553
|
this.$events.$on('time-format-changed', this.refresh)
|
|
466
554
|
this.$events.$on('timeseries-span-changed', this.refresh)
|
|
467
555
|
this.kActivity.$on('forecast-model-changed', this.refresh)
|
|
468
556
|
this.kActivity.$on('forecast-level-changed', this.refresh)
|
|
469
557
|
},
|
|
470
558
|
beforeDestroy () {
|
|
471
|
-
this
|
|
559
|
+
this.$events.$off('time-current-time-changed', this.refresh)
|
|
472
560
|
this.$events.$off('time-format-changed', this.refresh)
|
|
473
561
|
this.$events.$off('timeseries-span-changed', this.refresh)
|
|
474
562
|
this.kActivity.$off('forecast-model-changed', this.refresh)
|
|
@@ -11,7 +11,10 @@
|
|
|
11
11
|
"ALERTS_LIMIT": "Too much alerts to display all of them",
|
|
12
12
|
"FILE_IMPORT_ERROR": "File import has failed",
|
|
13
13
|
"CANNOT_CHECK_ALERT_MISSING_SERVICE": "Last check failed due to unavailable service",
|
|
14
|
-
"CANNOT_CHECK_ALERT_MISSING_DATA": "Last check failed due to unavailable data"
|
|
14
|
+
"CANNOT_CHECK_ALERT_MISSING_DATA": "Last check failed due to unavailable data",
|
|
15
|
+
"INVALID_GEOJSON_FILE": "{{file}} is not a valid GeoJSON file",
|
|
16
|
+
"INVALID_GPX_FILE": "{{file}} is not a valid GPX file",
|
|
17
|
+
"INVALID_KML_FILE": "{{file}} is not a valid KML file"
|
|
15
18
|
},
|
|
16
19
|
"mixins": {
|
|
17
20
|
"navigator": {
|
|
@@ -63,7 +66,10 @@
|
|
|
63
66
|
"SEARCH_LOCATION": "Search a location",
|
|
64
67
|
"ADD_FAVORITE": "Add to favorite views",
|
|
65
68
|
"SYNCHRONIZE_TIMELINE_LABEL": "Synchronize with timeline",
|
|
66
|
-
"TOOLS": "Tools"
|
|
69
|
+
"TOOLS": "Tools",
|
|
70
|
+
"SAVE_LAYER_EDITION_CHANGES": "Save edition changes",
|
|
71
|
+
"DISCARD_LAYER_EDITION_CHANGES": "Discard edition changes",
|
|
72
|
+
"CAPTURE_VIEW": "Capture the view"
|
|
67
73
|
},
|
|
68
74
|
"timeseries": {
|
|
69
75
|
"FORECAST_PROBE": "Forecast"
|
|
@@ -199,7 +205,31 @@
|
|
|
199
205
|
"LAYER_CATEGORY_NAME_FIELD_LABEL": "Enter the name of this category",
|
|
200
206
|
"LAYER_CATEGORY_ICON_FIELD_LABEL": "Select an icon for this category",
|
|
201
207
|
"LAYER_CATEGORY_LAYERS_FIELD_LABEL": "Select the layers in this category",
|
|
202
|
-
"LAYER_CATEGORY_EXCLUSIVE_FIELD_LABEL": "Make selection exclusive within this category"
|
|
208
|
+
"LAYER_CATEGORY_EXCLUSIVE_FIELD_LABEL": "Make selection exclusive within this category",
|
|
209
|
+
"UPDATE_SETTINGS_TITLE": "Your settings",
|
|
210
|
+
"TIME_FORMAT_SETTINGS": "Time/Date format",
|
|
211
|
+
"TIME_FORMAT_SHORT_TIME_FIELD_LABEL": "Short time format",
|
|
212
|
+
"TIME_FORMAT_SHORT_TIME_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>🛈</a>",
|
|
213
|
+
"TIME_FORMAT_LONG_TIME_FIELD_LABEL": "Long time format",
|
|
214
|
+
"TIME_FORMAT_LONG_TIME_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>🛈</a>",
|
|
215
|
+
"TIME_FORMAT_SHORT_DATE_FIELD_LABEL": "Short date format",
|
|
216
|
+
"TIME_FORMAT_SHORT_DATE_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>🛈</a>",
|
|
217
|
+
"TIME_FORMAT_LONG_DATE_FIELD_LABEL": "Long date format",
|
|
218
|
+
"TIME_FORMAT_LONG_DATE_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>🛈</a>",
|
|
219
|
+
"TIME_FORMAT_SHORT_YEAR_FIELD_LABEL": "Short year format",
|
|
220
|
+
"TIME_FORMAT_SHORT_YEAR_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>🛈</a>",
|
|
221
|
+
"TIME_FORMAT_LONG_YEAR_FIELD_LABEL": "Long year format",
|
|
222
|
+
"TIME_FORMAT_LONG_YEAR_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>🛈</a>",
|
|
223
|
+
"TIME_FORMAT_UTC_FIELD_LABEL": "UTC time display mode",
|
|
224
|
+
"MAP_SETTINGS": "Map parameters",
|
|
225
|
+
"RESTORE_VIEW_FIELD_LABEL": "Save current extent",
|
|
226
|
+
"RESTORE_LAYERS_FIELD_LABEL": "Save active layers",
|
|
227
|
+
"LOCATION_FORMAT_LABEL": "Location format",
|
|
228
|
+
"LOCATION_FORMAT_HELPER": "<a target='_blank' href='https://github.com/nerik/formatcoords#formatting'>🛈</a>",
|
|
229
|
+
"TIMELINE_SETTINGS": "Timeline parameters",
|
|
230
|
+
"TIMELINE_STEP": "Timeline step (in minutes)",
|
|
231
|
+
"TIMESERIES_SETTINGS": "Timeseries parameters",
|
|
232
|
+
"TIMESERIES_SPAN": "Timeseries span (in hours)"
|
|
203
233
|
},
|
|
204
234
|
"tours": {
|
|
205
235
|
"navigation-bar": {
|
|
@@ -223,7 +253,7 @@
|
|
|
223
253
|
"TOGGLE_CATALOG_LABEL": "Open the catalog with this button."
|
|
224
254
|
},
|
|
225
255
|
"favorite-views": {
|
|
226
|
-
"FAVORITE_VIEWS_LIST_LABEL": "
|
|
256
|
+
"FAVORITE_VIEWS_LIST_LABEL": "When you have defined some favorite views they are listed here, otherwise you can directly create your first one.",
|
|
227
257
|
"FAVORITE_VIEWS_LIST_ACTIONS_LABEL": "Sort your views by name or update time and seek for a target one.",
|
|
228
258
|
"FAVORITE_VIEW_ACTIONS_LABEL": "Remove a view by using this button.",
|
|
229
259
|
"ADD_FAVORITE_VIEW_LABEL": "Add a new views using this button.",
|
|
@@ -243,7 +273,7 @@
|
|
|
243
273
|
"METEO_LAYERS_LABEL": "Each layer will then target data of a specific meteorological element from this model.",
|
|
244
274
|
"MANAGE_LAYER_CATEGORIES_LABEL": "You can manage the categories of your own data layers.",
|
|
245
275
|
"MANAGE_LAYER_CATEGORIES_LINK_LABEL": "How to manage the categories",
|
|
246
|
-
"CATEGORIES_LIST_LABEL": "
|
|
276
|
+
"CATEGORIES_LIST_LABEL": "When you have defined some categories they are listed here, otherwise you can directly create your first one.",
|
|
247
277
|
"CATEGORIES_LIST_ACTIONS_LABEL": "Sort your categories by name or update time and seek for a target one.",
|
|
248
278
|
"CATEGORY_ACTIONS_LABEL": "Update or remove a category by using these buttons.",
|
|
249
279
|
"ADD_CATEGORY_LABEL": "Add a new category using this button.",
|
|
@@ -281,9 +311,9 @@
|
|
|
281
311
|
"SERVICE_LAYER_LABEL": "Select the target OGC service layer to connect to.",
|
|
282
312
|
"LAYER_NAME_LABEL": "Enter the name of your new data layer.",
|
|
283
313
|
"LAYER_DESCRIPTION_LABEL": "Then provide a description for your new data layer.",
|
|
284
|
-
"LAYER_FEATURE_ID_LABEL": "
|
|
314
|
+
"LAYER_FEATURE_ID_LABEL": "Last, choose an identifier to uniquely identify the features of your layer.",
|
|
285
315
|
"LAYER_STYLE_LABEL": "Select the style to be used for your layer.",
|
|
286
|
-
"LAYER_SCHEMA_LABEL": "
|
|
316
|
+
"LAYER_SCHEMA_LABEL": "Select the data schema of your features (JSON schema file).",
|
|
287
317
|
"IMPORT_LAYER_LABEL": "Import existing data as a new data layer.",
|
|
288
318
|
"IMPORT_LAYER_LINK_LABEL": "How to import map data",
|
|
289
319
|
"IMPORT_NEW_LAYER_LABEL": "Confirm the creation of your new layer and the map will be centered on your new layer.",
|
|
@@ -302,19 +332,26 @@
|
|
|
302
332
|
},
|
|
303
333
|
"KOwsLayerField": {
|
|
304
334
|
"UNABLE_TO_DESCRIBE_FEATURE_TYPE": "Failed fetching layer's description.",
|
|
305
|
-
"UNSUPPORTED_LAYER_CRS": "The projection used by this layer is not supported."
|
|
335
|
+
"UNSUPPORTED_LAYER_CRS": "The projection used by this layer is not supported.",
|
|
336
|
+
"UNSUPPORTED_LAYER_FORMAT": "The data format used by this layer is not supported."
|
|
306
337
|
},
|
|
307
338
|
"KLocationField": {
|
|
308
339
|
"SEARCH": "$t(SEARCH)",
|
|
309
340
|
"NO_RESULTS": "$t(EMPTY)"
|
|
310
341
|
},
|
|
311
342
|
"KLocationMap": {
|
|
312
|
-
"
|
|
313
|
-
"
|
|
343
|
+
"DRAW_LINE": "Draw a line",
|
|
344
|
+
"DRAW_POLYGON": "Draw a polygon",
|
|
345
|
+
"LOCATE_BUTTON": "Locate me",
|
|
346
|
+
"RECENTER_BUTTON": "Recenter map",
|
|
347
|
+
"CLOSE_BUTTON": "Close map"
|
|
314
348
|
},
|
|
315
349
|
"KLocationInput": {
|
|
316
|
-
"
|
|
317
|
-
"
|
|
350
|
+
"SEARCH_LOCATION": "Seek for an address",
|
|
351
|
+
"GEOLOCATE": "Locate me",
|
|
352
|
+
"MY_LOCATION": "My location",
|
|
353
|
+
"LOCATION_MAP": "Pick on a map",
|
|
354
|
+
"DRAW_MAP": "Draw on a map"
|
|
318
355
|
},
|
|
319
356
|
"KPositionIndicator": {
|
|
320
357
|
"PLACEHOLDER": "Navigate the see the coordinates",
|
|
@@ -326,16 +363,23 @@
|
|
|
326
363
|
"KTimeSeries": {
|
|
327
364
|
"NO_DATA_AVAILABLE": "No data available",
|
|
328
365
|
"CENTER_ON": "Center the view on the probed location",
|
|
329
|
-
"SPAN": "Timeseries span"
|
|
366
|
+
"SPAN": "Timeseries span",
|
|
367
|
+
"RUN": "Forecast run",
|
|
368
|
+
"TIME_LABEL": "Time",
|
|
369
|
+
"EXPORT_SERIES": "Export data",
|
|
370
|
+
"SERIES_EXPORT_FILE": "Series.csv"
|
|
330
371
|
},
|
|
331
372
|
"KCatalogPanel": {
|
|
332
373
|
"BASE_LAYERS": "Base Layers",
|
|
333
374
|
"TERRAIN_LAYERS": "Terrain layers",
|
|
334
375
|
"OVERLAY_LAYERS": "My layers",
|
|
335
376
|
"MEASURE_LAYERS": "Measure layers",
|
|
377
|
+
"INFRASTRUCTURE_LAYERS": "Infrastructures",
|
|
378
|
+
"ADMINISTRATIVE_LAYERS": "Administrative",
|
|
336
379
|
"METEO_LAYERS": "Meteo forecasts",
|
|
337
380
|
"BUSINESS_LAYERS": "Business layers",
|
|
338
|
-
"CAPTURED_LAYERS": "Captured views"
|
|
381
|
+
"CAPTURED_LAYERS": "Captured views",
|
|
382
|
+
"DEMOGRAPHY_LAYERS": "Demography layers"
|
|
339
383
|
},
|
|
340
384
|
"KFeaturesFilter": {
|
|
341
385
|
"TITLE": "Data filter for layer {{layer}}",
|
|
@@ -376,9 +420,10 @@
|
|
|
376
420
|
},
|
|
377
421
|
"KLayerStyleForm": {
|
|
378
422
|
"BASE": "Base properties",
|
|
379
|
-
"DEFAULT_VISIBILITY": "
|
|
423
|
+
"DEFAULT_VISIBILITY": "Visible by default",
|
|
380
424
|
"MIN_ZOOM": "Visible from level",
|
|
381
425
|
"MAX_ZOOM": "Visible until level",
|
|
426
|
+
"SELECTABLE": "Selectable",
|
|
382
427
|
"LAYER_OPACITY": "Transparent layer",
|
|
383
428
|
"OPACITY": "Opacity",
|
|
384
429
|
"POINTS": "Markers",
|
|
@@ -452,19 +497,23 @@
|
|
|
452
497
|
},
|
|
453
498
|
"KFavoriteViews": {
|
|
454
499
|
"FAVORITE_VIEWS_LABEL": "Favorite views",
|
|
455
|
-
"
|
|
500
|
+
"SORT": "Sort views",
|
|
456
501
|
"CREATE_VIEW": "Create a new view",
|
|
457
|
-
"
|
|
502
|
+
"ADD_BUTTON": "Add",
|
|
503
|
+
"BACK_BUTTON": "Back",
|
|
458
504
|
"VIEW_LIST": "Back to list",
|
|
459
505
|
"REMOVE_VIEW": "$t(REMOVE)"
|
|
460
506
|
},
|
|
461
507
|
"KLayerCategories": {
|
|
462
508
|
"LAYER_CATEGORIES_LABEL": "Manage my categories",
|
|
509
|
+
"ADD_TITLE": "Add a new layer category",
|
|
510
|
+
"UPDATE_TITLE": "Update a layer category",
|
|
463
511
|
"TITLE": "Manage layer categories",
|
|
464
|
-
"
|
|
512
|
+
"SORT": "Sort categories",
|
|
465
513
|
"CREATE_CATEGORY": "Create a new category",
|
|
466
|
-
"
|
|
467
|
-
"
|
|
514
|
+
"BACK_BUTTON": "Back",
|
|
515
|
+
"ADD_BUTTON": "Add",
|
|
516
|
+
"EDIT_BUTTON": "Update",
|
|
468
517
|
"CATEGORY_LIST": "Back to list",
|
|
469
518
|
"EDIT_CATEGORY": "$t(EDIT)",
|
|
470
519
|
"REMOVE_CATEGORY": "$t(REMOVE)"
|
|
@@ -501,5 +550,41 @@
|
|
|
501
550
|
"FEATURE_ID_FIELD_LABEL": "$t(KAddLayer.FEATURE_ID_FIELD_LABEL)",
|
|
502
551
|
"CATEGORY_FIELD_LABEL": "$t(KAddLayer.CATEGORY_FIELD_LABEL)",
|
|
503
552
|
"CREATE_BUTTON": "Create"
|
|
553
|
+
},
|
|
554
|
+
"KLayerEditionToolbar": {
|
|
555
|
+
"ADD_POLYGON_FEATURES": "Add polygon features",
|
|
556
|
+
"ADD_RECTANGLE_FEATURES": "Add rectangle features",
|
|
557
|
+
"ADD_LINE_FEATURES": "Add linear features",
|
|
558
|
+
"ADD_POINT_FEATURES": "Add point features",
|
|
559
|
+
"EDIT_GEOMETRY": "Edit feature geometry",
|
|
560
|
+
"EDIT_PROPERTIES": "Edit feature properties",
|
|
561
|
+
"DRAG_FEATURES": "Move features",
|
|
562
|
+
"REMOVE_FEATURES": "Remove features"
|
|
563
|
+
},
|
|
564
|
+
"KCaptureToolbar": {
|
|
565
|
+
"SD_LABEL": "Standard Definition",
|
|
566
|
+
"SD_DESCRIPTION": "4:3, 640 x 480",
|
|
567
|
+
"HD_LABEL": "High Definition",
|
|
568
|
+
"HD_DESCRIPTION": "16:9, 1280 x 720",
|
|
569
|
+
"FHD_LABEL": "Full HD",
|
|
570
|
+
"FHD_DESCRIPTION": "16:9, 1920 x 1080",
|
|
571
|
+
"QHD_LABEL": "Quad HD",
|
|
572
|
+
"QHD_DESCRIPTION": "16:9, 2560 x 1440",
|
|
573
|
+
"2K_LABEL": "2K",
|
|
574
|
+
"2K_DESCRIPTION": "1:1.77, 2048 x 1080",
|
|
575
|
+
"4K_LABEL": "4K or Ultra HD",
|
|
576
|
+
"4K_DESCRIPTION": "1:1.9, 3840 x 2160",
|
|
577
|
+
"8K_LABEL": "8K or Full Ultra HD",
|
|
578
|
+
"8K_DESCRIPTION": "16∶9, 7680 x 4320",
|
|
579
|
+
"CAPTURE_ACTION": "Capture view",
|
|
580
|
+
"CAPTURING_VIEW": "Waiting for capturing view"
|
|
581
|
+
},
|
|
582
|
+
"KMeasureTool": {
|
|
583
|
+
"TOOL_BUTTON_LABEL": "Display the measure tool",
|
|
584
|
+
"CLEAR": "Clear all measurements",
|
|
585
|
+
"MEASURE_DISTANCE": "Measure a distance",
|
|
586
|
+
"MEASURE_AREA": "Measure an area",
|
|
587
|
+
"DISPLAY_MEASURE_VALUE": "Display measure values",
|
|
588
|
+
"CLICK_TO_CHANGE_UNIT": "Click to change unit"
|
|
504
589
|
}
|
|
505
590
|
}
|