@kalisio/kdk 1.5.0 → 1.7.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/02a7a308-a8d7-4cc6-8e61-6066a0055a96.json +1 -0
- package/.nyc_output/1900d596-5e87-433a-8fd6-fb7f7ded35ec.json +1 -0
- package/.nyc_output/{058fc679-d60a-4501-ac04-71171e5200b8.json → 27401f21-8ccf-42fa-8230-4232189d86b3.json} +0 -0
- package/.nyc_output/{8b1830fa-932e-4a61-9837-4a5b18f83ea9.json → 52278ef5-c337-4724-97be-e2e4416847c5.json} +0 -0
- package/.nyc_output/{afd2d144-3570-4858-b94a-b523dbd023dd.json → 5dd49b8a-4c84-42f9-a3d5-712247a84775.json} +0 -0
- package/.nyc_output/612b4859-9645-45c1-a41e-1fae420518c4.json +1 -0
- package/.nyc_output/bab87fe9-d99a-4759-99e6-3fc4622eeca0.json +1 -0
- package/.nyc_output/processinfo/02a7a308-a8d7-4cc6-8e61-6066a0055a96.json +1 -0
- package/.nyc_output/processinfo/1900d596-5e87-433a-8fd6-fb7f7ded35ec.json +1 -0
- package/.nyc_output/processinfo/27401f21-8ccf-42fa-8230-4232189d86b3.json +1 -0
- package/.nyc_output/processinfo/52278ef5-c337-4724-97be-e2e4416847c5.json +1 -0
- package/.nyc_output/processinfo/5dd49b8a-4c84-42f9-a3d5-712247a84775.json +1 -0
- package/.nyc_output/processinfo/612b4859-9645-45c1-a41e-1fae420518c4.json +1 -0
- package/.nyc_output/processinfo/bab87fe9-d99a-4759-99e6-3fc4622eeca0.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/.travis.test.sh +1 -1
- package/CHANGELOG.md +107 -11
- package/coverage/core/api/application.js.html +323 -245
- package/coverage/core/api/authentication.js.html +1 -1
- package/coverage/core/api/db.js.html +108 -108
- package/coverage/core/api/hooks/hooks.account.js.html +1 -1
- package/coverage/core/api/hooks/hooks.authentication.js.html +1 -1
- package/coverage/core/api/hooks/hooks.authorisations.js.html +21 -6
- package/coverage/core/api/hooks/hooks.devices.js.html +1 -1
- package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/core/api/hooks/hooks.logger.js.html +1 -1
- package/coverage/core/api/hooks/hooks.model.js.html +1 -1
- package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
- package/coverage/core/api/hooks/hooks.pusher.js.html +1 -1
- package/coverage/core/api/hooks/hooks.query.js.html +114 -48
- package/coverage/core/api/hooks/hooks.service.js.html +1 -1
- package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
- package/coverage/core/api/hooks/hooks.tags.js.html +1 -1
- package/coverage/core/api/hooks/hooks.users.js.html +1 -1
- package/coverage/core/api/hooks/index.html +12 -12
- package/coverage/core/api/hooks/index.js.html +1 -1
- package/coverage/core/api/index.html +34 -34
- package/coverage/core/api/index.js.html +26 -26
- package/coverage/core/api/marshall.js.html +1 -1
- package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/index.html +1 -1
- package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/users.model.mongodb.js.html +1 -1
- package/coverage/core/api/oauth2-handler.js.html +1 -1
- package/coverage/core/api/oauth2-verifier.js.html +1 -1
- package/coverage/core/api/services/account/account.hooks.js.html +1 -1
- package/coverage/core/api/services/account/account.service.js.html +1 -1
- package/coverage/core/api/services/account/index.html +1 -1
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +31 -7
- package/coverage/core/api/services/authorisations/index.html +9 -9
- package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/core/api/services/databases/index.html +1 -1
- package/coverage/core/api/services/devices/devices.hooks.js.html +1 -1
- package/coverage/core/api/services/devices/devices.service.js.html +1 -1
- package/coverage/core/api/services/devices/index.html +1 -1
- package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/core/api/services/groups/index.html +1 -1
- package/coverage/core/api/services/index.html +11 -11
- package/coverage/core/api/services/index.js.html +66 -66
- package/coverage/core/api/services/mailer/index.html +1 -1
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/core/api/services/organisations/index.html +1 -1
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/core/api/services/pusher/index.html +1 -1
- package/coverage/core/api/services/pusher/pusher.channels.js.html +1 -1
- package/coverage/core/api/services/pusher/pusher.hooks.js.html +1 -1
- package/coverage/core/api/services/pusher/pusher.service.js.html +1 -1
- package/coverage/core/api/services/storage/index.html +1 -1
- package/coverage/core/api/services/storage/storage.hooks.js.html +1 -1
- package/coverage/core/api/services/tags/index.html +1 -1
- package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/core/api/services/users/index.html +1 -1
- package/coverage/core/api/services/users/users.hooks.js.html +1 -1
- package/coverage/core/common/errors.js.html +1 -1
- package/coverage/core/common/index.html +7 -7
- package/coverage/core/common/index.js.html +1 -1
- package/coverage/core/common/permissions.js.html +81 -51
- package/coverage/index.html +39 -39
- package/coverage/lcov-report/core/api/application.js.html +323 -245
- package/coverage/lcov-report/core/api/authentication.js.html +1 -1
- package/coverage/lcov-report/core/api/db.js.html +108 -108
- package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +21 -6
- package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +114 -48
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/index.html +12 -12
- package/coverage/lcov-report/core/api/hooks/index.js.html +1 -1
- package/coverage/lcov-report/core/api/index.html +34 -34
- package/coverage/lcov-report/core/api/index.js.html +26 -26
- package/coverage/lcov-report/core/api/marshall.js.html +1 -1
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/index.html +1 -1
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/oauth2-handler.js.html +1 -1
- package/coverage/lcov-report/core/api/oauth2-verifier.js.html +1 -1
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/account/index.html +1 -1
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +31 -7
- package/coverage/lcov-report/core/api/services/authorisations/index.html +9 -9
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
- package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/devices/index.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
- package/coverage/lcov-report/core/api/services/index.html +11 -11
- package/coverage/lcov-report/core/api/services/index.js.html +66 -66
- package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/index.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/users/index.html +1 -1
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +1 -1
- package/coverage/lcov-report/core/common/errors.js.html +1 -1
- package/coverage/lcov-report/core/common/index.html +7 -7
- package/coverage/lcov-report/core/common/index.js.html +1 -1
- package/coverage/lcov-report/core/common/permissions.js.html +81 -51
- package/coverage/lcov-report/index.html +39 -39
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +1 -1
- package/coverage/lcov-report/map/api/hooks/index.html +1 -1
- 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 +14 -5
- package/coverage/lcov-report/map/api/models/index.html +7 -7
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
- package/coverage/lcov.info +948 -769
- package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/map/api/hooks/hooks.query.js.html +1 -1
- package/coverage/map/api/hooks/index.html +1 -1
- 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 +14 -5
- package/coverage/map/api/models/index.html +7 -7
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/coverage/map/common/wms-utils.js.html +1 -1
- package/coverage/map/common/wmts-utils.js.html +1 -1
- package/extras/tours/map/catalog-panel.js +61 -10
- package/extras/tours/map/create-view.js +25 -0
- package/extras/tours/map/fab.js +10 -1
- package/extras/tours/map/navigation-bar.js +56 -10
- package/lib/core/api/application.js +44 -10
- package/lib/core/api/application.js.map +1 -1
- package/lib/core/api/hooks/hooks.authorisations.js +8 -1
- package/lib/core/api/hooks/hooks.authorisations.js.map +1 -1
- package/lib/core/api/hooks/hooks.query.js +135 -100
- package/lib/core/api/hooks/hooks.query.js.map +1 -1
- package/lib/core/api/services/authorisations/authorisations.service.js +13 -1
- package/lib/core/api/services/authorisations/authorisations.service.js.map +1 -1
- package/lib/core/api/services/pusher/pusher.service.js +40 -16
- package/lib/core/api/services/pusher/pusher.service.js.map +1 -1
- package/lib/core/client/components/chart/KChart.vue +115 -0
- package/lib/core/client/components/chart/KStatsChart.vue +76 -0
- package/lib/core/client/components/chart/index.js +20 -0
- package/lib/core/client/components/chart/index.js.map +1 -0
- package/lib/core/client/components/collection/KColumn.vue +29 -28
- package/lib/core/client/components/collection/KFilter.vue +103 -72
- package/lib/core/client/components/collection/KHistoryEntry.vue +1 -1
- package/lib/core/client/components/collection/KItem.vue +4 -4
- package/lib/core/client/components/editor/KModalEditor.vue +3 -4
- package/lib/core/client/components/editor/KSettingsEditor.vue +6 -2
- package/lib/core/client/components/form/KChipsField.vue +4 -4
- package/lib/core/client/components/form/KFileField.vue +13 -6
- package/lib/core/client/components/form/KRoleField.vue +5 -2
- package/lib/core/client/components/form/KTextField.vue +12 -2
- package/lib/core/client/components/form/KUnitField.vue +57 -0
- package/lib/core/client/components/form/KUrlField.vue +1 -1
- package/lib/core/client/components/form/KView.vue +1 -1
- package/lib/core/client/components/frame/KAction.vue +41 -7
- package/lib/core/client/components/frame/KBlock.vue +7 -7
- package/lib/core/client/components/frame/KContent.vue +1 -1
- package/lib/core/client/components/frame/KModal.vue +66 -20
- package/lib/core/client/components/frame/KOpener.vue +1 -1
- package/lib/core/client/components/frame/KPanel.vue +8 -7
- package/lib/core/client/components/frame/KPopupAction.vue +6 -0
- package/lib/core/client/components/frame/KScreen.vue +1 -1
- package/lib/core/client/components/frame/KScrollArea.vue +65 -0
- package/lib/core/client/components/frame/KStamp.vue +4 -2
- package/lib/core/client/components/frame/index.js +6 -6
- package/lib/core/client/components/frame/index.js.map +1 -1
- package/lib/core/client/components/input/KColorChooser.vue +3 -5
- package/lib/core/client/components/input/KIconChooser.vue +41 -40
- package/lib/core/client/components/input/KPalette.vue +1 -1
- package/lib/core/client/components/input/index.js +14 -4
- package/lib/core/client/components/input/index.js.map +1 -1
- package/lib/core/client/components/layout/KAbout.vue +47 -49
- package/lib/core/client/components/layout/KFab.vue +1 -1
- package/lib/core/client/components/layout/KLayout.vue +10 -2
- package/lib/core/client/components/layout/KPage.vue +19 -18
- package/lib/core/client/components/layout/KTour.vue +5 -3
- package/lib/core/client/components/layout/KWindow.vue +211 -59
- package/lib/core/client/components/media/KMediaBrowser.vue +6 -6
- package/lib/core/client/components/menu/KMenu.vue +13 -5
- package/lib/core/client/components/menu/KRadialFab.vue +22 -24
- package/lib/core/client/components/menu/KRadialFabItem.vue +17 -18
- package/lib/core/client/components/team/KAddMember.vue +1 -1
- package/lib/core/client/components/team/KChangeRole.vue +11 -14
- package/lib/core/client/components/team/KGroupCard.vue +12 -5
- package/lib/core/client/components/team/KJoinGroup.vue +22 -22
- package/lib/core/client/components/team/KMemberCard.vue +19 -4
- package/lib/core/client/components/time/KAbsoluteTimeRange.vue +190 -0
- package/lib/core/client/components/time/KRelativeTimeRanges.vue +192 -0
- package/lib/core/client/components/time/index.js +20 -0
- package/lib/core/client/components/time/index.js.map +1 -0
- package/lib/core/client/components/viewer/KModalViewer.vue +10 -9
- package/lib/core/client/i18n/core_en.json +99 -17
- package/lib/core/client/i18n/core_fr.json +94 -18
- package/lib/core/client/index.js +16 -3
- package/lib/core/client/index.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-collection.js +11 -1
- package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-widget.js +26 -12
- package/lib/core/client/mixins/mixin.base-widget.js.map +1 -1
- package/lib/core/client/reader.js +46 -15
- package/lib/core/client/reader.js.map +1 -1
- package/lib/core/client/readers/reader.csv.js +33 -22
- package/lib/core/client/readers/reader.csv.js.map +1 -1
- package/lib/core/client/readers/reader.json.js +31 -20
- package/lib/core/client/readers/reader.json.js.map +1 -1
- package/lib/core/client/services/index.js +16 -4
- package/lib/core/client/services/index.js.map +1 -1
- package/lib/core/client/services/local-settings.service.js +10 -4
- package/lib/core/client/services/local-settings.service.js.map +1 -1
- package/lib/core/client/time.js +29 -18
- package/lib/core/client/time.js.map +1 -1
- package/lib/core/client/units.js +207 -0
- package/lib/core/client/units.js.map +1 -0
- package/lib/core/client/utils.js +11 -0
- package/lib/core/client/utils.js.map +1 -1
- package/lib/core/common/permissions.js +44 -34
- package/lib/core/common/permissions.js.map +1 -1
- package/lib/core/common/schemas/settings.update.json +86 -4
- package/lib/map/api/hooks/hooks.catalog.js +20 -0
- package/lib/map/api/hooks/hooks.catalog.js.map +1 -1
- package/lib/map/api/models/catalog.model.mongodb.js +6 -1
- package/lib/map/api/models/catalog.model.mongodb.js.map +1 -1
- package/lib/map/api/models/features.model.mongodb.js +8 -0
- package/lib/map/api/models/features.model.mongodb.js.map +1 -1
- package/lib/map/api/services/catalog/catalog.hooks.js +3 -1
- package/lib/map/api/services/catalog/catalog.hooks.js.map +1 -1
- package/lib/map/client/components/KCaptureToolbar.vue +2 -7
- package/lib/map/client/components/KColorLegend.vue +38 -25
- package/lib/map/client/components/KFeaturesChart.vue +84 -114
- package/lib/map/client/components/KFeaturesFilter.vue +37 -38
- package/lib/map/client/components/KFeaturesTable.vue +15 -16
- package/lib/map/client/components/KLayerStyleEditor.vue +1 -1
- package/lib/map/client/components/KLayerStyleForm.vue +123 -51
- package/lib/map/client/components/KLevelSlider.vue +30 -29
- package/lib/map/client/components/KLocationMap.vue +2 -2
- package/lib/map/client/components/KMeasureTool.vue +49 -28
- package/lib/map/client/components/KPositionIndicator.vue +4 -4
- package/lib/map/client/components/KTimeline.vue +30 -35
- package/lib/map/client/components/KTimezoneMap.vue +156 -0
- package/lib/map/client/components/KUrlLegend.vue +11 -10
- package/lib/map/client/components/catalog/KAddLayer.vue +3 -2
- package/lib/map/client/components/catalog/KBaseLayersSelector.vue +1 -1
- package/lib/map/client/components/catalog/KCatalogLayersPanel.vue +56 -0
- package/lib/map/client/components/catalog/KCreateView.vue +91 -0
- package/lib/map/client/components/catalog/KLayerCategories.vue +5 -3
- package/lib/map/client/components/catalog/{KCatalog.vue → KLayersPanel.vue} +23 -22
- package/lib/map/client/components/catalog/KLayersSelector.vue +3 -3
- package/lib/map/client/components/catalog/KUserLayersPanel.vue +40 -0
- package/lib/map/client/components/catalog/KViewSelector.vue +46 -0
- package/lib/map/client/components/catalog/KViewsPanel.vue +110 -0
- package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +5 -14
- package/lib/map/client/components/form/KTimezoneField.vue +135 -0
- package/lib/map/client/components/widget/KElevationProfile.vue +488 -0
- package/lib/map/client/components/widget/KInformationBox.vue +53 -37
- package/lib/map/client/components/widget/KMapillaryViewer.vue +26 -16
- package/lib/map/client/components/widget/KTimeSeries.vue +283 -358
- package/lib/map/client/i18n/map_en.json +73 -56
- package/lib/map/client/i18n/map_fr.json +75 -58
- package/lib/map/client/init.js +4 -3
- package/lib/map/client/init.js.map +1 -1
- package/lib/map/client/leaflet/GradientPath.js +40 -19
- package/lib/map/client/leaflet/GradientPath.js.map +1 -1
- package/lib/map/client/leaflet/TiledFeatureLayer.js +527 -93
- package/lib/map/client/leaflet/TiledFeatureLayer.js.map +1 -1
- package/lib/map/client/leaflet/TiledMeshLayer.js +58 -35
- package/lib/map/client/leaflet/TiledMeshLayer.js.map +1 -1
- package/lib/map/client/leaflet/utils.js +44 -3
- package/lib/map/client/leaflet/utils.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.base-globe.js +16 -1
- package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.file-layers.js +12 -2
- package/lib/map/client/mixins/globe/mixin.file-layers.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js +23 -27
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.popup.js +7 -3
- package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.style.js +8 -4
- package/lib/map/client/mixins/globe/mixin.style.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.tooltip.js +7 -3
- package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
- package/lib/map/client/mixins/index.js +23 -18
- package/lib/map/client/mixins/index.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.base-map.js +32 -8
- package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.edit-layers.js +8 -4
- package/lib/map/client/mixins/map/mixin.edit-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.file-layers.js +13 -5
- package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.geojson-layers.js +65 -14
- package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js +6 -1
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.popup.js +4 -2
- package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.style.js +9 -5
- package/lib/map/client/mixins/map/mixin.style.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js +4 -11
- 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 +0 -11
- package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tooltip.js +4 -2
- package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
- package/lib/map/client/mixins/mixin.activity.js +150 -150
- package/lib/map/client/mixins/mixin.activity.js.map +1 -1
- package/lib/map/client/mixins/mixin.catalog-panel.js +36 -0
- package/lib/map/client/mixins/mixin.catalog-panel.js.map +1 -0
- package/lib/map/client/mixins/mixin.feature-selection.js +17 -8
- package/lib/map/client/mixins/mixin.feature-selection.js.map +1 -1
- package/lib/map/client/mixins/mixin.feature-service.js +36 -16
- package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
- package/lib/map/client/mixins/mixin.infobox.js +1 -1
- package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
- package/lib/map/client/mixins/mixin.levels.js +26 -12
- package/lib/map/client/mixins/mixin.levels.js.map +1 -1
- package/lib/map/client/mixins/mixin.style.js +1 -0
- package/lib/map/client/mixins/mixin.style.js.map +1 -1
- package/lib/map/client/mixins/mixin.weacast.js +22 -28
- package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
- package/lib/map/client/pixi-utils.js +8 -177
- package/lib/map/client/pixi-utils.js.map +1 -1
- package/lib/map/client/readers/index.js +12 -0
- package/lib/map/client/readers/index.js.map +1 -1
- package/lib/map/client/readers/reader.geojson.js +62 -34
- package/lib/map/client/readers/reader.geojson.js.map +1 -1
- package/lib/map/client/readers/reader.gpx.js +32 -21
- package/lib/map/client/readers/reader.gpx.js.map +1 -1
- package/lib/map/client/readers/reader.kml.js +32 -21
- package/lib/map/client/readers/reader.kml.js.map +1 -1
- package/lib/map/client/readers/reader.shp.js +116 -0
- package/lib/map/client/readers/reader.shp.js.map +1 -0
- package/lib/map/client/utils.js +1 -8
- package/lib/map/client/utils.js.map +1 -1
- package/lib/map/common/grid.js +131 -0
- package/lib/map/common/grid.js.map +1 -1
- package/lib/map/common/index.js +22 -11
- package/lib/map/common/index.js.map +1 -1
- package/lib/map/common/meteo-model-grid-source.js +5 -2
- package/lib/map/common/meteo-model-grid-source.js.map +1 -1
- package/lib/map/common/time-based-grid-source.js +5 -2
- package/lib/map/common/time-based-grid-source.js.map +1 -1
- package/lib/test/client/core/account.js +1 -1
- package/lib/test/client/core/account.js.map +1 -1
- package/lib/test/client/core/collection.js +31 -13
- package/lib/test/client/core/collection.js.map +1 -1
- package/lib/test/client/core/layout.js +137 -49
- package/lib/test/client/core/layout.js.map +1 -1
- package/lib/test/client/core/screens.js +1 -1
- package/lib/test/client/core/screens.js.map +1 -1
- package/lib/test/client/core/utils.js +89 -22
- package/lib/test/client/core/utils.js.map +1 -1
- package/lib/test/client/map/catalog.js +134 -41
- package/lib/test/client/map/catalog.js.map +1 -1
- package/lib/test/client/map/controls.js +7 -4
- package/lib/test/client/map/controls.js.map +1 -1
- package/lib/test/client/map/index.js +12 -0
- package/lib/test/client/map/index.js.map +1 -1
- package/lib/test/client/map/utils.js +67 -0
- package/lib/test/client/map/utils.js.map +1 -0
- package/package.json +5 -6
- package/.nyc_output/2226bcce-9d22-4dad-b9fa-46564b5565c7.json +0 -1
- package/.nyc_output/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +0 -1
- package/.nyc_output/processinfo/058fc679-d60a-4501-ac04-71171e5200b8.json +0 -1
- package/.nyc_output/processinfo/2226bcce-9d22-4dad-b9fa-46564b5565c7.json +0 -1
- package/.nyc_output/processinfo/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +0 -1
- package/.nyc_output/processinfo/8b1830fa-932e-4a61-9837-4a5b18f83ea9.json +0 -1
- package/.nyc_output/processinfo/afd2d144-3570-4858-b94a-b523dbd023dd.json +0 -1
- package/extras/tours/map/favorite-views.js +0 -53
- package/lib/core/client/components/frame/KChart.vue +0 -60
- package/lib/core/client/components/input/KCodeInput.vue +0 -50
- package/lib/core/client/components/input/KTimeRangeChooser.vue +0 -109
- package/lib/core/client/components/time/KTimeRange.vue +0 -144
- package/lib/map/client/components/KFavoriteViews.vue +0 -217
|
@@ -15,6 +15,12 @@ var _i18next2 = _interopRequireDefault(_i18next);
|
|
|
15
15
|
|
|
16
16
|
var _events = require('./events');
|
|
17
17
|
|
|
18
|
+
var _quasar = require('quasar');
|
|
19
|
+
|
|
20
|
+
var _lodash = require('lodash');
|
|
21
|
+
|
|
22
|
+
var _lodash2 = _interopRequireDefault(_lodash);
|
|
23
|
+
|
|
18
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
25
|
|
|
20
26
|
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
|
|
@@ -24,27 +30,52 @@ const Reader = exports.Reader = {
|
|
|
24
30
|
readers: {},
|
|
25
31
|
register(mimeType, reader) {
|
|
26
32
|
this.readers[mimeType] = reader;
|
|
33
|
+
reader.mimeType = mimeType;
|
|
34
|
+
},
|
|
35
|
+
filter(filelist) {
|
|
36
|
+
const acceptedFiles = [];
|
|
37
|
+
const additionnalFiles = [];
|
|
38
|
+
// iterate though the files and sort the files
|
|
39
|
+
for (let i = 0; i < filelist.length; ++i) {
|
|
40
|
+
const file = filelist[i];
|
|
41
|
+
const fileExt = _path2.default.extname(file.name);
|
|
42
|
+
let reader = this.readers[fileExt];
|
|
43
|
+
if (reader) {
|
|
44
|
+
acceptedFiles.push({ reader: fileExt, name: file.name, files: [file] });
|
|
45
|
+
} else {
|
|
46
|
+
reader = _lodash2.default.find(this.readers, reader => reader.getAdditionalFiles().includes(fileExt));
|
|
47
|
+
if (reader) {
|
|
48
|
+
additionnalFiles.push({ reader: reader.mimeType, file });
|
|
49
|
+
} else {
|
|
50
|
+
const error = { message: _i18next2.default.t('errors.UNSUPPORTED_FILE_FORMAT', { file: file.name }) };
|
|
51
|
+
_events.Events.$emit('error', error);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// process the additional files
|
|
56
|
+
_lodash2.default.forEach(additionnalFiles, additionnalFile => {
|
|
57
|
+
const group = _lodash2.default.find(acceptedFiles, acceptedFile => acceptedFile.reader === additionnalFile.reader);
|
|
58
|
+
if (group) group.files.push(additionnalFile.file);else {
|
|
59
|
+
const error = { message: _i18next2.default.t('errors.UNSUPPORTED_FILE_FORMAT', { file: additionnalFile.name }) };
|
|
60
|
+
_events.Events.$emit('error', error);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return acceptedFiles;
|
|
27
64
|
},
|
|
28
65
|
read(file, options) {
|
|
29
66
|
var _this = this;
|
|
30
67
|
|
|
31
68
|
return _asyncToGenerator(function* () {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
69
|
+
const reader = _this.readers[file.reader];
|
|
70
|
+
_quasar.Loading.show({ message: _i18next2.default.t('reader.READING_FILE', { file: file.name }) });
|
|
71
|
+
try {
|
|
72
|
+
const content = yield reader.read(file.files, options);
|
|
73
|
+
_quasar.Loading.hide();
|
|
74
|
+
return content;
|
|
75
|
+
} catch (error) {
|
|
76
|
+
_quasar.Loading.hide();
|
|
77
|
+
_events.Events.$emit('error', error);
|
|
42
78
|
}
|
|
43
|
-
const error = {
|
|
44
|
-
message: _i18next2.default.t('errors.UNSUPPORTED_FILE_FORMAT', { file: file.name })
|
|
45
|
-
};
|
|
46
|
-
_events.Events.$emit('error', error);
|
|
47
|
-
throw new Error(error);
|
|
48
79
|
})();
|
|
49
80
|
},
|
|
50
81
|
getSupportedFormats() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../core/client/reader.js"],"names":["Reader","readers","register","mimeType","reader","
|
|
1
|
+
{"version":3,"sources":["../../../core/client/reader.js"],"names":["Reader","readers","register","mimeType","reader","filter","filelist","acceptedFiles","additionnalFiles","i","length","file","fileExt","path","extname","name","push","files","_","find","getAdditionalFiles","includes","error","message","i18next","t","Events","$emit","forEach","additionnalFile","group","acceptedFile","read","options","Loading","show","content","hide","getSupportedFormats","Object","keys"],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;AACA;;AACA;;;;;;;;AAEA;AACO,MAAMA,0BAAS;AACpBC,WAAS,EADW;AAEpBC,WAAUC,QAAV,EAAoBC,MAApB,EAA4B;AAC1B,SAAKH,OAAL,CAAaE,QAAb,IAAyBC,MAAzB;AACAA,WAAOD,QAAP,GAAkBA,QAAlB;AACD,GALmB;AAMpBE,SAAQC,QAAR,EAAkB;AAChB,UAAMC,gBAAgB,EAAtB;AACA,UAAMC,mBAAmB,EAAzB;AACA;AACA,SAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIH,SAASI,MAA7B,EAAqC,EAAED,CAAvC,EAA0C;AACxC,YAAME,OAAOL,SAASG,CAAT,CAAb;AACA,YAAMG,UAAUC,eAAKC,OAAL,CAAaH,KAAKI,IAAlB,CAAhB;AACA,UAAIX,SAAS,KAAKH,OAAL,CAAaW,OAAb,CAAb;AACA,UAAIR,MAAJ,EAAY;AACVG,sBAAcS,IAAd,CAAmB,EAAEZ,QAAQQ,OAAV,EAAmBG,MAAMJ,KAAKI,IAA9B,EAAoCE,OAAO,CAACN,IAAD,CAA3C,EAAnB;AACD,OAFD,MAEO;AACLP,iBAASc,iBAAEC,IAAF,CAAO,KAAKlB,OAAZ,EAAqBG,UAAUA,OAAOgB,kBAAP,GAA4BC,QAA5B,CAAqCT,OAArC,CAA/B,CAAT;AACA,YAAIR,MAAJ,EAAY;AACVI,2BAAiBQ,IAAjB,CAAsB,EAAEZ,QAAQA,OAAOD,QAAjB,EAA2BQ,IAA3B,EAAtB;AACD,SAFD,MAEO;AACL,gBAAMW,QAAQ,EAAEC,SAASC,kBAAQC,CAAR,CAAU,gCAAV,EAA4C,EAAEd,MAAMA,KAAKI,IAAb,EAA5C,CAAX,EAAd;AACAW,yBAAOC,KAAP,CAAa,OAAb,EAAsBL,KAAtB;AACD;AACF;AACF;AACD;AACAJ,qBAAEU,OAAF,CAAUpB,gBAAV,EAA4BqB,mBAAmB;AAC7C,YAAMC,QAAQZ,iBAAEC,IAAF,CAAOZ,aAAP,EAAsBwB,gBAAgBA,aAAa3B,MAAb,KAAwByB,gBAAgBzB,MAA9E,CAAd;AACA,UAAI0B,KAAJ,EAAWA,MAAMb,KAAN,CAAYD,IAAZ,CAAiBa,gBAAgBlB,IAAjC,EAAX,KACK;AACH,cAAMW,QAAQ,EAAEC,SAASC,kBAAQC,CAAR,CAAU,gCAAV,EAA4C,EAAEd,MAAMkB,gBAAgBd,IAAxB,EAA5C,CAAX,EAAd;AACAW,uBAAOC,KAAP,CAAa,OAAb,EAAsBL,KAAtB;AACD;AACF,KAPD;AAQA,WAAOf,aAAP;AACD,GApCmB;AAqCdyB,MAAN,CAAYrB,IAAZ,EAAkBsB,OAAlB,EAA2B;AAAA;;AAAA;AACzB,YAAM7B,SAAS,MAAKH,OAAL,CAAaU,KAAKP,MAAlB,CAAf;AACA8B,sBAAQC,IAAR,CAAa,EAAEZ,SAASC,kBAAQC,CAAR,CAAU,qBAAV,EAAiC,EAAEd,MAAMA,KAAKI,IAAb,EAAjC,CAAX,EAAb;AACA,UAAI;AACF,cAAMqB,UAAU,MAAMhC,OAAO4B,IAAP,CAAYrB,KAAKM,KAAjB,EAAwBgB,OAAxB,CAAtB;AACAC,wBAAQG,IAAR;AACA,eAAOD,OAAP;AACD,OAJD,CAIE,OAAOd,KAAP,EAAc;AACdY,wBAAQG,IAAR;AACAX,uBAAOC,KAAP,CAAa,OAAb,EAAsBL,KAAtB;AACD;AAVwB;AAW1B,GAhDmB;AAiDpBgB,wBAAuB;AACrB,WAAOC,OAAOC,IAAP,CAAY,KAAKvC,OAAjB,CAAP;AACD;AAnDmB,CAAf","file":"reader.js","sourcesContent":["import path from 'path'\r\nimport i18next from 'i18next'\r\nimport { Events } from './events'\r\nimport { Loading } from 'quasar'\r\nimport _ from 'lodash'\r\n\r\n// Export singleton\r\nexport const Reader = {\r\n readers: {},\r\n register (mimeType, reader) {\r\n this.readers[mimeType] = reader\r\n reader.mimeType = mimeType\r\n },\r\n filter (filelist) {\r\n const acceptedFiles = []\r\n const additionnalFiles = []\r\n // iterate though the files and sort the files\r\n for (let i = 0; i < filelist.length; ++i) {\r\n const file = filelist[i]\r\n const fileExt = path.extname(file.name)\r\n let reader = this.readers[fileExt]\r\n if (reader) {\r\n acceptedFiles.push({ reader: fileExt, name: file.name, files: [file] })\r\n } else {\r\n reader = _.find(this.readers, reader => reader.getAdditionalFiles().includes(fileExt))\r\n if (reader) {\r\n additionnalFiles.push({ reader: reader.mimeType, file })\r\n } else {\r\n const error = { message: i18next.t('errors.UNSUPPORTED_FILE_FORMAT', { file: file.name }) }\r\n Events.$emit('error', error)\r\n }\r\n }\r\n }\r\n // process the additional files\r\n _.forEach(additionnalFiles, additionnalFile => {\r\n const group = _.find(acceptedFiles, acceptedFile => acceptedFile.reader === additionnalFile.reader)\r\n if (group) group.files.push(additionnalFile.file)\r\n else {\r\n const error = { message: i18next.t('errors.UNSUPPORTED_FILE_FORMAT', { file: additionnalFile.name }) }\r\n Events.$emit('error', error)\r\n }\r\n })\r\n return acceptedFiles\r\n },\r\n async read (file, options) {\r\n const reader = this.readers[file.reader]\r\n Loading.show({ message: i18next.t('reader.READING_FILE', { file: file.name }) })\r\n try {\r\n const content = await reader.read(file.files, options)\r\n Loading.hide()\r\n return content\r\n } catch (error) {\r\n Loading.hide()\r\n Events.$emit('error', error)\r\n }\r\n },\r\n getSupportedFormats () {\r\n return Object.keys(this.readers)\r\n }\r\n}\r\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.CSVReader = undefined;
|
|
7
7
|
|
|
8
8
|
var _loglevel = require('loglevel');
|
|
9
9
|
|
|
@@ -19,25 +19,36 @@ var _papaparse2 = _interopRequireDefault(_papaparse);
|
|
|
19
19
|
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
22
|
+
const CSVReader = exports.CSVReader = {
|
|
23
|
+
read(files, options) {
|
|
24
|
+
if (files.length !== 1) {
|
|
25
|
+
_loglevel2.default.debug('invlaid \'fields\' arguments');
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const file = files[0];
|
|
29
|
+
_loglevel2.default.debug(`reading CSV file ${file.name}`);
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
const reader = new FileReader();
|
|
32
|
+
reader.onloadend = () => {
|
|
33
|
+
let content = reader.result;
|
|
34
|
+
const papaParseOptions = Object.assign({ skipEmptyLines: true }, options);
|
|
35
|
+
content = _papaparse2.default.parse(content, papaParseOptions);
|
|
36
|
+
if (content.errors.length > 0) {
|
|
37
|
+
_loglevel2.default.debug(content.errors);
|
|
38
|
+
reject(new Error(_i18next2.default.t('errors.INVALID_CSV_FILE', { file: file.name }), { errors: content.errors }));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
resolve(content);
|
|
42
|
+
};
|
|
43
|
+
reader.onerror = error => {
|
|
44
|
+
_loglevel2.default.debug(error);
|
|
45
|
+
reject(new Error(_i18next2.default.t('errors.CANNOT_READ_FILE', { file: file.name }), { errors: error }));
|
|
46
|
+
};
|
|
47
|
+
reader.readAsText(file);
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
getAdditionalFiles() {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
};
|
|
43
54
|
//# sourceMappingURL=reader.csv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../core/client/readers/reader.csv.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../../core/client/readers/reader.csv.js"],"names":["CSVReader","read","files","options","length","logger","debug","file","name","Promise","resolve","reject","reader","FileReader","onloadend","content","result","papaParseOptions","Object","assign","skipEmptyLines","Papa","parse","errors","Error","i18next","t","onerror","error","readAsText","getAdditionalFiles"],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;;;;;AAEO,MAAMA,gCAAY;AACvBC,OAAMC,KAAN,EAAaC,OAAb,EAAsB;AACpB,QAAID,MAAME,MAAN,KAAiB,CAArB,EAAwB;AACtBC,yBAAOC,KAAP,CAAa,8BAAb;AACA;AACD;AACD,UAAMC,OAAOL,MAAM,CAAN,CAAb;AACAG,uBAAOC,KAAP,CAAc,oBAAmBC,KAAKC,IAAK,EAA3C;AACA,WAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtC,YAAMC,SAAS,IAAIC,UAAJ,EAAf;AACAD,aAAOE,SAAP,GAAmB,MAAM;AACvB,YAAIC,UAAUH,OAAOI,MAArB;AACA,cAAMC,mBAAmBC,OAAOC,MAAP,CAAc,EAAEC,gBAAgB,IAAlB,EAAd,EAAwCjB,OAAxC,CAAzB;AACAY,kBAAUM,oBAAKC,KAAL,CAAWP,OAAX,EAAoBE,gBAApB,CAAV;AACA,YAAIF,QAAQQ,MAAR,CAAenB,MAAf,GAAwB,CAA5B,EAA+B;AAC7BC,6BAAOC,KAAP,CAAaS,QAAQQ,MAArB;AACAZ,iBAAO,IAAIa,KAAJ,CAAUC,kBAAQC,CAAR,CAAU,yBAAV,EAAqC,EAAEnB,MAAMA,KAAKC,IAAb,EAArC,CAAV,EAAqE,EAAEe,QAAQR,QAAQQ,MAAlB,EAArE,CAAP;AACA;AACD;AACDb,gBAAQK,OAAR;AACD,OAVD;AAWAH,aAAOe,OAAP,GAAkBC,KAAD,IAAW;AAC1BvB,2BAAOC,KAAP,CAAasB,KAAb;AACAjB,eAAO,IAAIa,KAAJ,CAAUC,kBAAQC,CAAR,CAAU,yBAAV,EAAqC,EAAEnB,MAAMA,KAAKC,IAAb,EAArC,CAAV,EAAqE,EAAEe,QAAQK,KAAV,EAArE,CAAP;AACD,OAHD;AAIAhB,aAAOiB,UAAP,CAAkBtB,IAAlB;AACD,KAlBM,CAAP;AAmBD,GA3BsB;AA4BvBuB,uBAAsB;AACpB,WAAO,EAAP;AACD;AA9BsB,CAAlB","file":"reader.csv.js","sourcesContent":["import logger from 'loglevel'\r\nimport i18next from 'i18next'\r\nimport Papa from 'papaparse'\r\n\r\nexport const CSVReader = {\r\n read (files, options) {\r\n if (files.length !== 1) {\r\n logger.debug('invlaid \\'fields\\' arguments')\r\n return\r\n }\r\n const file = files[0]\r\n logger.debug(`reading CSV file ${file.name}`)\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.onloadend = () => {\r\n let content = reader.result\r\n const papaParseOptions = Object.assign({ skipEmptyLines: true }, options)\r\n content = Papa.parse(content, papaParseOptions)\r\n if (content.errors.length > 0) {\r\n logger.debug(content.errors)\r\n reject(new Error(i18next.t('errors.INVALID_CSV_FILE', { file: file.name }), { errors: content.errors }))\r\n return\r\n }\r\n resolve(content)\r\n }\r\n reader.onerror = (error) => {\r\n logger.debug(error)\r\n reject(new Error(i18next.t('errors.CANNOT_READ_FILE', { file: file.name }), { errors: error }))\r\n }\r\n reader.readAsText(file)\r\n })\r\n },\r\n getAdditionalFiles () {\r\n return []\r\n }\r\n}\r\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.JSONReader = undefined;
|
|
7
7
|
|
|
8
8
|
var _loglevel = require('loglevel');
|
|
9
9
|
|
|
@@ -15,24 +15,35 @@ var _i18next2 = _interopRequireDefault(_i18next);
|
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
const JSONReader = exports.JSONReader = {
|
|
19
|
+
read(files, options) {
|
|
20
|
+
if (files.length !== 1) {
|
|
21
|
+
_loglevel2.default.debug('invlaid \'fields\' arguments');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const file = files[0];
|
|
25
|
+
_loglevel2.default.debug(`reading JSON file ${file.name}`);
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
const reader = new FileReader();
|
|
28
|
+
reader.onloadend = () => {
|
|
29
|
+
let content = reader.result;
|
|
30
|
+
try {
|
|
31
|
+
content = JSON.parse(content);
|
|
32
|
+
} catch (error) {
|
|
33
|
+
_loglevel2.default.debug(error);
|
|
34
|
+
reject(new Error(_i18next2.default.t('errors.INVALID_JSON_FILE', { file }), { errors: error }));
|
|
35
|
+
}
|
|
36
|
+
resolve(content);
|
|
37
|
+
};
|
|
38
|
+
reader.onerror = error => {
|
|
26
39
|
_loglevel2.default.debug(error);
|
|
27
|
-
reject(new Error(_i18next2.default.t('errors.
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
});
|
|
37
|
-
}
|
|
40
|
+
reject(new Error(_i18next2.default.t('errors.CANNOT_READ_FILE', { file }), { errors: error }));
|
|
41
|
+
};
|
|
42
|
+
reader.readAsText(file);
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
getAdditionalFiles() {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
};
|
|
38
49
|
//# sourceMappingURL=reader.json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../core/client/readers/reader.json.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../../core/client/readers/reader.json.js"],"names":["JSONReader","read","files","options","length","logger","debug","file","name","Promise","resolve","reject","reader","FileReader","onloadend","content","result","JSON","parse","error","Error","i18next","t","errors","onerror","readAsText","getAdditionalFiles"],"mappings":";;;;;;;AAAA;;;;AACA;;;;;;AAEO,MAAMA,kCAAa;AACxBC,OAAMC,KAAN,EAAaC,OAAb,EAAsB;AACpB,QAAID,MAAME,MAAN,KAAiB,CAArB,EAAwB;AACtBC,yBAAOC,KAAP,CAAa,8BAAb;AACA;AACD;AACD,UAAMC,OAAOL,MAAM,CAAN,CAAb;AACAG,uBAAOC,KAAP,CAAc,qBAAoBC,KAAKC,IAAK,EAA5C;AACA,WAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtC,YAAMC,SAAS,IAAIC,UAAJ,EAAf;AACAD,aAAOE,SAAP,GAAmB,MAAM;AACvB,YAAIC,UAAUH,OAAOI,MAArB;AACA,YAAI;AACFD,oBAAUE,KAAKC,KAAL,CAAWH,OAAX,CAAV;AACD,SAFD,CAEE,OAAOI,KAAP,EAAc;AACdd,6BAAOC,KAAP,CAAaa,KAAb;AACAR,iBAAO,IAAIS,KAAJ,CAAUC,kBAAQC,CAAR,CAAU,0BAAV,EAAsC,EAAEf,IAAF,EAAtC,CAAV,EAA2D,EAAEgB,QAAQJ,KAAV,EAA3D,CAAP;AACD;AACDT,gBAAQK,OAAR;AACD,OATD;AAUAH,aAAOY,OAAP,GAAkBL,KAAD,IAAW;AAC1Bd,2BAAOC,KAAP,CAAaa,KAAb;AACAR,eAAO,IAAIS,KAAJ,CAAUC,kBAAQC,CAAR,CAAU,yBAAV,EAAqC,EAAEf,IAAF,EAArC,CAAV,EAA0D,EAAEgB,QAAQJ,KAAV,EAA1D,CAAP;AACD,OAHD;AAIAP,aAAOa,UAAP,CAAkBlB,IAAlB;AACD,KAjBM,CAAP;AAkBD,GA1BuB;AA2BxBmB,uBAAsB;AACpB,WAAO,EAAP;AACD;AA7BuB,CAAnB","file":"reader.json.js","sourcesContent":["import logger from 'loglevel'\r\nimport i18next from 'i18next'\r\n\r\nexport const JSONReader = {\r\n read (files, options) {\r\n if (files.length !== 1) {\r\n logger.debug('invlaid \\'fields\\' arguments')\r\n return\r\n }\r\n const file = files[0]\r\n logger.debug(`reading JSON file ${file.name}`)\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.onloadend = () => {\r\n let content = reader.result\r\n try {\r\n content = JSON.parse(content)\r\n } catch (error) {\r\n logger.debug(error)\r\n reject(new Error(i18next.t('errors.INVALID_JSON_FILE', { file }), { errors: error }))\r\n }\r\n resolve(content)\r\n }\r\n reader.onerror = (error) => {\r\n logger.debug(error)\r\n reject(new Error(i18next.t('errors.CANNOT_READ_FILE', { file }), { errors: error }))\r\n }\r\n reader.readAsText(file)\r\n })\r\n },\r\n getAdditionalFiles () {\r\n return []\r\n }\r\n}\r\n"]}
|
|
@@ -6,6 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.LocalSettingsService = undefined;
|
|
7
7
|
exports.default = init;
|
|
8
8
|
|
|
9
|
+
var _lodash = require('lodash');
|
|
10
|
+
|
|
11
|
+
var _lodash2 = _interopRequireDefault(_lodash);
|
|
12
|
+
|
|
9
13
|
var _localSettings = require('./local-settings.service');
|
|
10
14
|
|
|
11
15
|
var _localSettings2 = _interopRequireDefault(_localSettings);
|
|
@@ -32,7 +36,7 @@ function init() {
|
|
|
32
36
|
api.declareService('devices');
|
|
33
37
|
|
|
34
38
|
// Setup service for settings edition
|
|
35
|
-
api.createService('settings',
|
|
39
|
+
api.createService('settings', _lodash2.default.merge(_config2.default.settings || {}, {
|
|
36
40
|
service: _localSettings2.default,
|
|
37
41
|
propertyMapping: {
|
|
38
42
|
shortTime: 'time.format.time.short',
|
|
@@ -41,13 +45,21 @@ function init() {
|
|
|
41
45
|
longDate: 'time.format.date.long',
|
|
42
46
|
shortYear: 'time.format.year.short',
|
|
43
47
|
longYear: 'time.format.year.long',
|
|
44
|
-
|
|
48
|
+
timezone: 'time.format.timezone',
|
|
45
49
|
timelineStep: 'time.step',
|
|
50
|
+
timelineInterval: 'time.interval',
|
|
46
51
|
timeseriesSpan: 'timeseries.span',
|
|
47
52
|
location: 'locationFormat',
|
|
48
53
|
restoreView: 'restore.view',
|
|
49
|
-
restoreLayers: 'restore.layers'
|
|
54
|
+
restoreLayers: 'restore.layers',
|
|
55
|
+
defaultLength: 'units.default.length',
|
|
56
|
+
defaultAltitude: 'units.default.altitude',
|
|
57
|
+
defaultArea: 'units.default.area',
|
|
58
|
+
defaultVelocity: 'units.default.velocity',
|
|
59
|
+
defaultTemperature: 'units.default.temperature',
|
|
60
|
+
defaultAngle: 'units.default.angle',
|
|
61
|
+
defaultPrecision: 'units.default.precision'
|
|
50
62
|
}
|
|
51
|
-
}
|
|
63
|
+
})); // Default options can be overriden from app config
|
|
52
64
|
}
|
|
53
65
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../core/client/services/index.js"],"names":["init","LocalSettingsService","api","declareService","context","createService","
|
|
1
|
+
{"version":3,"sources":["../../../../core/client/services/index.js"],"names":["init","LocalSettingsService","api","declareService","context","createService","_","merge","config","settings","service","propertyMapping","shortTime","longTime","shortDate","longDate","shortYear","longYear","timezone","timelineStep","timelineInterval","timeseriesSpan","location","restoreView","restoreLayers","defaultLength","defaultAltitude","defaultArea","defaultVelocity","defaultTemperature","defaultAngle","defaultPrecision"],"mappings":";;;;;;kBAMwBA,I;;AANxB;;;;AACA;;;;AACA;;;;;;QAESC,oB,GAAAA,uB;AAEM,SAASD,IAAT,GAAiB;AAC9B,QAAME,MAAM,IAAZ;;AAEA;AACAA,MAAIC,cAAJ,CAAmB,OAAnB;AACAD,MAAIC,cAAJ,CAAmB,gBAAnB;AACAD,MAAIC,cAAJ,CAAmB,MAAnB,EAA2B,EAAEC,SAAS,IAAX,EAA3B;AACAF,MAAIC,cAAJ,CAAmB,eAAnB;AACAD,MAAIC,cAAJ,CAAmB,SAAnB,EAA8B,EAAEC,SAAS,IAAX,EAA9B;AACAF,MAAIC,cAAJ,CAAmB,QAAnB,EAA6B,EAAEC,SAAS,IAAX,EAA7B;AACAF,MAAIC,cAAJ,CAAmB,SAAnB,EAA8B,EAAEC,SAAS,IAAX,EAA9B;AACAF,MAAIC,cAAJ,CAAmB,SAAnB;AACAD,MAAIC,cAAJ,CAAmB,SAAnB;;AAEA;AACAD,MAAIG,aAAJ,CAAkB,UAAlB,EAA8BC,iBAAEC,KAAF,CAAQC,iBAAOC,QAAP,IAAmB,EAA3B,EAA+B;AAC3DC,aAAST,uBADkD;AAE3DU,qBAAiB;AACfC,iBAAW,wBADI;AAEfC,gBAAU,uBAFK;AAGfC,iBAAW,wBAHI;AAIfC,gBAAU,uBAJK;AAKfC,iBAAW,wBALI;AAMfC,gBAAU,uBANK;AAOfC,gBAAU,sBAPK;AAQfC,oBAAc,WARC;AASfC,wBAAkB,eATH;AAUfC,sBAAgB,iBAVD;AAWfC,gBAAU,gBAXK;AAYfC,mBAAa,cAZE;AAafC,qBAAe,gBAbA;AAcfC,qBAAe,sBAdA;AAefC,uBAAiB,wBAfF;AAgBfC,mBAAa,oBAhBE;AAiBfC,uBAAiB,wBAjBF;AAkBfC,0BAAoB,2BAlBL;AAmBfC,oBAAc,qBAnBC;AAoBfC,wBAAkB;AApBH;AAF0C,GAA/B,CAA9B,EAf8B,CAuC1B;AACL","file":"index.js","sourcesContent":["import _ from 'lodash'\r\nimport LocalSettingsService from './local-settings.service'\r\nimport config from 'config'\r\n\r\nexport { LocalSettingsService }\r\n\r\nexport default function init () {\r\n const api = this\r\n\r\n // Declare the built-in services, others are optional\r\n api.declareService('users')\r\n api.declareService('authorisations')\r\n api.declareService('tags', { context: true })\r\n api.declareService('organisations')\r\n api.declareService('members', { context: true })\r\n api.declareService('groups', { context: true })\r\n api.declareService('storage', { context: true })\r\n api.declareService('account')\r\n api.declareService('devices')\r\n\r\n // Setup service for settings edition\r\n api.createService('settings', _.merge(config.settings || {}, {\r\n service: LocalSettingsService,\r\n propertyMapping: {\r\n shortTime: 'time.format.time.short',\r\n longTime: 'time.format.time.long',\r\n shortDate: 'time.format.date.short',\r\n longDate: 'time.format.date.long',\r\n shortYear: 'time.format.year.short',\r\n longYear: 'time.format.year.long',\r\n timezone: 'time.format.timezone',\r\n timelineStep: 'time.step',\r\n timelineInterval: 'time.interval',\r\n timeseriesSpan: 'timeseries.span',\r\n location: 'locationFormat',\r\n restoreView: 'restore.view',\r\n restoreLayers: 'restore.layers',\r\n defaultLength: 'units.default.length',\r\n defaultAltitude: 'units.default.altitude',\r\n defaultArea: 'units.default.area',\r\n defaultVelocity: 'units.default.velocity',\r\n defaultTemperature: 'units.default.temperature',\r\n defaultAngle: 'units.default.angle',\r\n defaultPrecision: 'units.default.precision'\r\n }\r\n })) // Default options can be overriden from app config\r\n}\r\n"]}
|
|
@@ -16,7 +16,9 @@ exports.default = function (name, api, options) {
|
|
|
16
16
|
return _asyncToGenerator(function* () {
|
|
17
17
|
const data = {};
|
|
18
18
|
_lodash2.default.forOwn(mapping, function (value, key) {
|
|
19
|
-
|
|
19
|
+
if (value) {
|
|
20
|
+
_lodash2.default.set(data, key, _store.Store.get(value));
|
|
21
|
+
}
|
|
20
22
|
});
|
|
21
23
|
return data;
|
|
22
24
|
})();
|
|
@@ -30,7 +32,7 @@ exports.default = function (name, api, options) {
|
|
|
30
32
|
return _store.Store.get(rootPath);
|
|
31
33
|
});
|
|
32
34
|
_lodash2.default.forOwn(data, function (value, key) {
|
|
33
|
-
if (_lodash2.default.
|
|
35
|
+
if (_lodash2.default.get(mapping, key)) {
|
|
34
36
|
_store.Store.set(mapping[key], value);
|
|
35
37
|
}
|
|
36
38
|
});
|
|
@@ -45,7 +47,7 @@ exports.default = function (name, api, options) {
|
|
|
45
47
|
saveSettings() {
|
|
46
48
|
const data = {};
|
|
47
49
|
_lodash2.default.forOwn(mapping, (value, key) => {
|
|
48
|
-
if (_store.Store.has(value)) {
|
|
50
|
+
if (value && _store.Store.has(value)) {
|
|
49
51
|
_lodash2.default.set(data, key, _store.Store.get(value));
|
|
50
52
|
}
|
|
51
53
|
});
|
|
@@ -56,8 +58,12 @@ exports.default = function (name, api, options) {
|
|
|
56
58
|
let settings = window.localStorage.getItem(settingsKey);
|
|
57
59
|
if (!settings) return;
|
|
58
60
|
settings = JSON.parse(settings);
|
|
61
|
+
// Backward compatibility when changed utc mode to timezone setting
|
|
62
|
+
if (_lodash2.default.get(settings, 'utc') && _lodash2.default.has(mapping, 'timezone') && !_lodash2.default.get(settings, 'timezone')) {
|
|
63
|
+
_lodash2.default.set(settings, 'timezone', 'UTC');
|
|
64
|
+
}
|
|
59
65
|
_lodash2.default.forOwn(mapping, (value, key) => {
|
|
60
|
-
if (_lodash2.default.has(settings, key)) {
|
|
66
|
+
if (value && _lodash2.default.has(settings, key)) {
|
|
61
67
|
_store.Store.set(value, _lodash2.default.get(settings, key));
|
|
62
68
|
}
|
|
63
69
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../core/client/services/local-settings.service.js"],"names":["name","api","options","mapping","propertyMapping","rootPaths","_","uniq","values","map","path","split","settingsKey","config","appName","toLowerCase","get","id","data","forOwn","value","key","set","Store","patch","previousRootValues","rootPath","
|
|
1
|
+
{"version":3,"sources":["../../../../core/client/services/local-settings.service.js"],"names":["name","api","options","mapping","propertyMapping","rootPaths","_","uniq","values","map","path","split","settingsKey","config","appName","toLowerCase","get","id","data","forOwn","value","key","set","Store","patch","previousRootValues","rootPath","forEach","index","eventName","kebabCase","Events","$emit","saveSettings","has","window","localStorage","setItem","JSON","stringify","restoreSettings","settings","getItem","parse","getSettingsMapping"],"mappings":"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","file":"local-settings.service.js","sourcesContent":["import _ from 'lodash'\r\nimport config from 'config'\r\nimport { Store } from '../store'\r\nimport { Events } from '../events'\r\n\r\nexport default function (name, api, options) {\r\n const mapping = options.propertyMapping\r\n // We will emit also an event for all top level properties in case of nested ones\r\n // This simplifies event management for some listeners instead of listening to all nested properties\r\n const rootPaths = _.uniq(_.values(mapping).map(path => path.split('.')[0]))\r\n const settingsKey = config.appName.toLowerCase() + '-' + (options.settingsKey || 'settings')\r\n return {\r\n\r\n async get (id) {\r\n const data = {}\r\n _.forOwn(mapping, (value, key) => {\r\n if (value) {\r\n _.set(data, key, Store.get(value))\r\n }\r\n })\r\n return data\r\n },\r\n\r\n async patch (id, data) {\r\n const previousRootValues = rootPaths.map(rootPath => Store.get(rootPath))\r\n _.forOwn(data, (value, key) => {\r\n if (_.get(mapping, key)) {\r\n Store.set(mapping[key], value)\r\n }\r\n })\r\n rootPaths.forEach((rootPath, index) => {\r\n const eventName = _.kebabCase(`${rootPath}-changed`)\r\n Events.$emit(eventName, Store.get(rootPath), previousRootValues[index])\r\n })\r\n this.saveSettings()\r\n },\r\n\r\n saveSettings () {\r\n const data = {}\r\n _.forOwn(mapping, (value, key) => {\r\n if (value && Store.has(value)) {\r\n _.set(data, key, Store.get(value))\r\n }\r\n })\r\n window.localStorage.setItem(settingsKey, JSON.stringify(data))\r\n },\r\n\r\n restoreSettings () {\r\n let settings = window.localStorage.getItem(settingsKey)\r\n if (!settings) return\r\n settings = JSON.parse(settings)\r\n // Backward compatibility when changed utc mode to timezone setting\r\n if (_.get(settings, 'utc') && _.has(mapping, 'timezone') && !_.get(settings, 'timezone')) {\r\n _.set(settings, 'timezone', 'UTC')\r\n }\r\n _.forOwn(mapping, (value, key) => {\r\n if (value && _.has(settings, key)) {\r\n Store.set(value, _.get(settings, key))\r\n }\r\n })\r\n },\r\n\r\n getSettingsMapping () {\r\n return mapping\r\n }\r\n }\r\n}\r\n"]}
|
package/lib/core/client/time.js
CHANGED
|
@@ -9,9 +9,13 @@ var _lodash = require('lodash');
|
|
|
9
9
|
|
|
10
10
|
var _lodash2 = _interopRequireDefault(_lodash);
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _momentTimezoneWithData10YearRange = require('moment-timezone/builds/moment-timezone-with-data-10-year-range');
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _momentTimezoneWithData10YearRange2 = _interopRequireDefault(_momentTimezoneWithData10YearRange);
|
|
15
|
+
|
|
16
|
+
var _config = require('config');
|
|
17
|
+
|
|
18
|
+
var _config2 = _interopRequireDefault(_config);
|
|
15
19
|
|
|
16
20
|
var _events = require('./events');
|
|
17
21
|
|
|
@@ -25,10 +29,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
25
29
|
const Time = exports.Time = {
|
|
26
30
|
initialize() {
|
|
27
31
|
// Set locale globally
|
|
28
|
-
|
|
32
|
+
_momentTimezoneWithData10YearRange2.default.locale((0, _utils.getLocale)());
|
|
29
33
|
// Set the time object within the store
|
|
30
|
-
const now =
|
|
31
|
-
|
|
34
|
+
const now = _momentTimezoneWithData10YearRange2.default.utc();
|
|
35
|
+
// Try to guess user timezone
|
|
36
|
+
const timezone = _momentTimezoneWithData10YearRange2.default.tz.guess() || '';
|
|
37
|
+
_store.Store.set('time', _lodash2.default.merge(_config2.default.time || {}, {
|
|
32
38
|
range: {
|
|
33
39
|
start: now.clone().subtract(1, 'months').startOf('day'),
|
|
34
40
|
end: now.clone().endOf('day'),
|
|
@@ -48,22 +54,24 @@ const Time = exports.Time = {
|
|
|
48
54
|
short: 'YY',
|
|
49
55
|
long: 'YYYY'
|
|
50
56
|
},
|
|
51
|
-
|
|
57
|
+
timezone
|
|
52
58
|
},
|
|
53
59
|
currentTime: now,
|
|
54
|
-
step: 60 // 1H
|
|
55
|
-
|
|
60
|
+
step: 60, // 1H
|
|
61
|
+
interval: 60 // 1m
|
|
62
|
+
}));
|
|
56
63
|
this.updateTimeRangeQuery();
|
|
57
64
|
// Make filter react to external changes to update the query
|
|
58
65
|
_events.Events.$on('time-range-changed', () => this.updateTimeRangeQuery());
|
|
59
66
|
},
|
|
60
67
|
convertToMoment(datetime) {
|
|
61
|
-
if (
|
|
68
|
+
if (_momentTimezoneWithData10YearRange2.default.isMoment(datetime)) {
|
|
62
69
|
// Clone to avoid mutating and force UTC mode
|
|
63
|
-
return
|
|
70
|
+
return _momentTimezoneWithData10YearRange2.default.utc(datetime.valueOf());
|
|
64
71
|
} else {
|
|
65
72
|
// Convert from Date, string or milliseconds (ie EPOCH)
|
|
66
|
-
|
|
73
|
+
// Check for ambiguous input as ISO 8601 consider it as locale and not UTC
|
|
74
|
+
if (typeof datetime === 'string' && !datetime.endsWith('Z')) return (0, _momentTimezoneWithData10YearRange2.default)(datetime).utc();else return _momentTimezoneWithData10YearRange2.default.utc(datetime);
|
|
67
75
|
}
|
|
68
76
|
},
|
|
69
77
|
get() {
|
|
@@ -88,15 +96,18 @@ const Time = exports.Time = {
|
|
|
88
96
|
getFormat() {
|
|
89
97
|
return this.get().format;
|
|
90
98
|
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
99
|
+
getFormatTimezone() {
|
|
100
|
+
return this.getFormat().timezone;
|
|
101
|
+
},
|
|
102
|
+
format(datetime, format, options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: '2-digit', minute: '2-digit' }) {
|
|
103
|
+
const currentTime = this.convertToMoment(datetime);
|
|
104
|
+
// Convert to local time
|
|
105
|
+
if (this.getFormatTimezone()) {
|
|
106
|
+
currentTime.tz(this.getFormatTimezone());
|
|
96
107
|
}
|
|
97
|
-
if (format === 'iso') return currentTime.format();
|
|
108
|
+
if (format === 'iso') return currentTime.format();else if (format === 'locale') return currentTime.toDate().toLocaleString((0, _utils.getLocale)(), options);
|
|
98
109
|
// Defaults to long mode if not given
|
|
99
|
-
else return currentTime.format(_lodash2.default.get(this.getFormat(), format
|
|
110
|
+
else return currentTime.format(_lodash2.default.get(this.getFormat(), format));
|
|
100
111
|
},
|
|
101
112
|
getCurrentTime() {
|
|
102
113
|
return this.get().currentTime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../core/client/time.js"],"names":["Time","initialize","moment","locale","now","utc","Store","set","range","start","clone","subtract","startOf","end","endOf","field","query","format","
|
|
1
|
+
{"version":3,"sources":["../../../core/client/time.js"],"names":["Time","initialize","moment","locale","now","utc","timezone","tz","guess","Store","set","_","merge","config","time","range","start","clone","subtract","startOf","end","endOf","field","query","format","short","long","date","year","currentTime","step","interval","updateTimeRangeQuery","Events","$on","convertToMoment","datetime","isMoment","valueOf","endsWith","get","getRange","patchRange","patch","getRangeQuery","$gte","$lte","isEqual","getFormat","getFormatTimezone","options","month","day","hour","minute","toDate","toLocaleString","getCurrentTime","setCurrentTime","isSame","getCurrentFormattedTime","iso","getStep"],"mappings":"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","file":"time.js","sourcesContent":["import _ from 'lodash'\r\nimport moment from 'moment-timezone/builds/moment-timezone-with-data-10-year-range'\r\nimport config from 'config'\r\nimport { Events } from './events'\r\nimport { Store } from './store'\r\nimport { getLocale } from './utils'\r\n\r\n// Export singleton\r\nexport const Time = {\r\n initialize () {\r\n // Set locale globally\r\n moment.locale(getLocale())\r\n // Set the time object within the store\r\n const now = moment.utc()\r\n // Try to guess user timezone\r\n const timezone = moment.tz.guess() || ''\r\n Store.set('time', _.merge(config.time || {}, {\r\n range: {\r\n start: now.clone().subtract(1, 'months').startOf('day'),\r\n end: now.clone().endOf('day'),\r\n field: 'createdAt',\r\n query: {}\r\n },\r\n format: {\r\n time: {\r\n short: 'H[h]',\r\n long: 'HH:mm'\r\n },\r\n date: {\r\n short: 'DD/MM',\r\n long: 'dddd D'\r\n },\r\n year: {\r\n short: 'YY',\r\n long: 'YYYY'\r\n },\r\n timezone\r\n },\r\n currentTime: now,\r\n step: 60, // 1H\r\n interval: 60 // 1m\r\n }))\r\n this.updateTimeRangeQuery()\r\n // Make filter react to external changes to update the query\r\n Events.$on('time-range-changed', () => this.updateTimeRangeQuery())\r\n },\r\n convertToMoment (datetime) {\r\n if (moment.isMoment(datetime)) {\r\n // Clone to avoid mutating and force UTC mode\r\n return moment.utc(datetime.valueOf())\r\n } else { // Convert from Date, string or milliseconds (ie EPOCH)\r\n // Check for ambiguous input as ISO 8601 consider it as locale and not UTC\r\n if ((typeof datetime === 'string') && !datetime.endsWith('Z')) return moment(datetime).utc()\r\n else return moment.utc(datetime)\r\n }\r\n },\r\n get () {\r\n return Store.get('time')\r\n },\r\n getRange () {\r\n return this.get().range\r\n },\r\n patchRange (range) {\r\n Store.patch('time.range', range)\r\n },\r\n getRangeQuery () {\r\n return Store.get('time.range.query')\r\n },\r\n // Build sort query\r\n updateTimeRangeQuery () {\r\n const query = {}\r\n query[this.getRange().field] = { $gte: this.getRange().start.format(), $lte: this.getRange().end.format() }\r\n // Avoid reentrance as we listen to other filter property changes\r\n if (!_.isEqual(query, this.getRangeQuery())) Store.patch('time.range', { query })\r\n },\r\n getFormat () {\r\n return this.get().format\r\n },\r\n getFormatTimezone () {\r\n return this.getFormat().timezone\r\n },\r\n format (datetime, format, options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: '2-digit', minute: '2-digit' }) {\r\n const currentTime = this.convertToMoment(datetime)\r\n // Convert to local time\r\n if (this.getFormatTimezone()) {\r\n currentTime.tz(this.getFormatTimezone())\r\n }\r\n if (format === 'iso') return currentTime.format()\r\n else if (format === 'locale') return currentTime.toDate().toLocaleString(getLocale(), options)\r\n // Defaults to long mode if not given\r\n else return currentTime.format(_.get(this.getFormat(), format))\r\n },\r\n getCurrentTime () {\r\n return this.get().currentTime\r\n },\r\n setCurrentTime (datetime) {\r\n const now = this.convertToMoment(datetime)\r\n if (this.getCurrentTime().isSame(now)) return\r\n Store.patch('time.currentTime', now)\r\n },\r\n getCurrentFormattedTime () {\r\n const currentTime = this.getCurrentTime()\r\n return {\r\n time: {\r\n short: this.format(currentTime, 'time.short'),\r\n long: this.format(currentTime, 'time.long')\r\n },\r\n date: {\r\n short: this.format(currentTime, 'date.short'),\r\n long: this.format(currentTime, 'date.long')\r\n },\r\n year: {\r\n short: this.format(currentTime, 'year.short'),\r\n long: this.format(currentTime, 'year.long')\r\n },\r\n iso: this.format(currentTime, 'iso')\r\n }\r\n },\r\n getStep () {\r\n return this.get().step\r\n }\r\n}\r\n"]}
|