@kalisio/kdk 1.4.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nyc_output/02a7a308-a8d7-4cc6-8e61-6066a0055a96.json +1 -0
- package/.nyc_output/1900d596-5e87-433a-8fd6-fb7f7ded35ec.json +1 -0
- package/.nyc_output/{2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json → 27401f21-8ccf-42fa-8230-4232189d86b3.json} +0 -0
- package/.nyc_output/{81d21e46-766a-46bc-b1b7-143ca577347a.json → 52278ef5-c337-4724-97be-e2e4416847c5.json} +0 -0
- package/.nyc_output/{aaf3ebbb-f895-4d7b-9255-bc5dee832570.json → 5dd49b8a-4c84-42f9-a3d5-712247a84775.json} +0 -0
- package/.nyc_output/{dbeb2602-0ac2-4e66-978b-0d29548359ca.json → 612b4859-9645-45c1-a41e-1fae420518c4.json} +0 -0
- package/.nyc_output/{e47d1e4c-2fff-4dcb-908f-d3081162547c.json → bab87fe9-d99a-4759-99e6-3fc4622eeca0.json} +0 -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/CHANGELOG.md +69 -10
- package/coverage/core/api/application.js.html +500 -422
- package/coverage/core/api/authentication.js.html +119 -119
- package/coverage/core/api/db.js.html +172 -172
- package/coverage/core/api/hooks/hooks.account.js.html +45 -45
- package/coverage/core/api/hooks/hooks.authentication.js.html +71 -71
- package/coverage/core/api/hooks/hooks.authorisations.js.html +368 -353
- 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 +190 -190
- package/coverage/core/api/hooks/hooks.pusher.js.html +114 -114
- package/coverage/core/api/hooks/hooks.query.js.html +277 -211
- 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 +263 -263
- 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 +76 -76
- package/coverage/core/api/index.js.html +30 -30
- 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 +104 -104
- 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 +156 -132
- 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 +118 -118
- 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 +320 -290
- package/coverage/index.html +181 -181
- package/coverage/lcov-report/core/api/application.js.html +500 -422
- package/coverage/lcov-report/core/api/authentication.js.html +119 -119
- package/coverage/lcov-report/core/api/db.js.html +172 -172
- package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +45 -45
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +71 -71
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +368 -353
- 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 +190 -190
- package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +114 -114
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +277 -211
- 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 +263 -263
- 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 +76 -76
- package/coverage/lcov-report/core/api/index.js.html +30 -30
- 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 +104 -104
- 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 +156 -132
- 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 +118 -118
- 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 +320 -290
- package/coverage/lcov-report/index.html +181 -181
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +25 -7
- 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 +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 +3683 -3825
- package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/map/api/hooks/hooks.query.js.html +25 -7
- 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 +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/navigation-bar.js +49 -1
- package/lib/core/api/application.js +35 -9
- 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/collection/KColumn.vue +29 -28
- package/lib/core/client/components/collection/KFilter.vue +97 -72
- 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/KFileField.vue +14 -36
- 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/frame/KAction.vue +1 -2
- package/lib/core/client/components/frame/KModal.vue +66 -20
- package/lib/core/client/components/frame/KScrollArea.vue +65 -0
- package/lib/core/client/components/frame/index.js +6 -1
- 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 +38 -40
- package/lib/core/client/components/input/KOptionsChooser.vue +2 -2
- package/lib/core/client/components/layout/KAbout.vue +47 -49
- 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/KGroupsActivity.vue +1 -1
- 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/viewer/KModalViewer.vue +10 -9
- package/lib/core/client/i18n/core_en.json +72 -8
- package/lib/core/client/i18n/core_fr.json +66 -8
- package/lib/core/client/index.js +31 -0
- 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.base-widget.js +5 -3
- package/lib/core/client/mixins/mixin.base-widget.js.map +1 -1
- package/lib/core/client/reader.js +85 -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 +54 -0
- package/lib/core/client/readers/reader.csv.js.map +1 -0
- package/lib/core/client/readers/reader.json.js +49 -0
- package/lib/core/client/readers/reader.json.js.map +1 -0
- package/lib/core/client/services/index.js +14 -3
- package/lib/core/client/services/index.js.map +1 -1
- package/lib/core/client/services/local-settings.service.js +6 -4
- package/lib/core/client/services/local-settings.service.js.map +1 -1
- package/lib/core/client/time.js +4 -3
- package/lib/core/client/time.js.map +1 -1
- package/lib/core/client/units.js +195 -0
- package/lib/core/client/units.js.map +1 -0
- 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 +72 -0
- package/lib/map/api/hooks/hooks.query.js +7 -2
- package/lib/map/api/hooks/hooks.query.js.map +1 -1
- package/lib/map/api/models/features.model.mongodb.js +3 -0
- package/lib/map/api/models/features.model.mongodb.js.map +1 -1
- package/lib/map/client/components/KCaptureToolbar.vue +151 -0
- package/lib/map/client/components/KColorLegend.vue +16 -4
- package/lib/map/client/components/KFeaturesChart.vue +10 -11
- package/lib/map/client/components/KFeaturesFilter.vue +40 -39
- package/lib/map/client/components/KFeaturesTable.vue +15 -16
- package/lib/map/client/components/KLayerEditionToolbar.vue +19 -11
- package/lib/map/client/components/KLayerStyleEditor.vue +3 -2
- package/lib/map/client/components/KLayerStyleForm.vue +38 -27
- package/lib/map/client/components/KMeasureTool.vue +337 -0
- package/lib/map/client/components/KTimeline.vue +5 -9
- package/lib/map/client/components/catalog/KAddLayer.vue +3 -2
- package/lib/map/client/components/catalog/KCatalog.vue +26 -7
- package/lib/map/client/components/catalog/KImportLayer.vue +8 -35
- package/lib/map/client/components/catalog/KLayerCategories.vue +3 -2
- package/lib/map/client/components/catalog/KLayersSelector.vue +8 -6
- package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +1 -1
- package/lib/map/client/components/widget/KInformationBox.vue +8 -17
- package/lib/map/client/components/widget/KMapillaryViewer.vue +5 -1
- package/lib/map/client/components/widget/KTimeSeries.vue +92 -9
- package/lib/map/client/i18n/map_en.json +51 -20
- package/lib/map/client/i18n/map_fr.json +51 -20
- package/lib/map/client/init.js +7 -1
- package/lib/map/client/init.js.map +1 -1
- package/lib/map/client/leaflet/MaskLayer.js +9 -0
- package/lib/map/client/leaflet/MaskLayer.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.base-globe.js +3 -5
- package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js +16 -21
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.popup.js +7 -1
- package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.tooltip.js +7 -1
- package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.base-map.js +54 -9
- package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.canvas-layers.js +2 -0
- package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.file-layers.js +51 -97
- package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.geojson-layers.js +43 -11
- package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.popup.js +7 -1
- package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.style.js +1 -1
- package/lib/map/client/mixins/map/mixin.style.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tooltip.js +7 -1
- package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
- package/lib/map/client/mixins/mixin.activity.js +2 -0
- 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-service.js +3 -3
- 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 +7 -5
- package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
- package/lib/map/client/readers/index.js +54 -0
- package/lib/map/client/readers/index.js.map +1 -0
- package/lib/map/client/readers/reader.geojson.js +87 -0
- package/lib/map/client/readers/reader.geojson.js.map +1 -0
- package/lib/map/client/readers/reader.gpx.js +52 -0
- package/lib/map/client/readers/reader.gpx.js.map +1 -0
- package/lib/map/client/readers/reader.kml.js +52 -0
- package/lib/map/client/readers/reader.kml.js.map +1 -0
- 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 +0 -7
- package/lib/map/client/utils.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/runner.js +1 -2
- package/lib/test/client/core/runner.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 +2 -2
- package/lib/test/client/core/utils.js.map +1 -1
- package/lib/test/client/map/catalog.js +50 -49
- package/lib/test/client/map/catalog.js.map +1 -1
- package/package.json +3 -3
- package/.nyc_output/2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json +0 -1
- package/.nyc_output/a762cb58-70dc-4d39-ab69-928635affa98.json +0 -1
- package/.nyc_output/processinfo/2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json +0 -1
- package/.nyc_output/processinfo/2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json +0 -1
- package/.nyc_output/processinfo/81d21e46-766a-46bc-b1b7-143ca577347a.json +0 -1
- package/.nyc_output/processinfo/a762cb58-70dc-4d39-ab69-928635affa98.json +0 -1
- package/.nyc_output/processinfo/aaf3ebbb-f895-4d7b-9255-bc5dee832570.json +0 -1
- package/.nyc_output/processinfo/dbeb2602-0ac2-4e66-978b-0d29548359ca.json +0 -1
- package/.nyc_output/processinfo/e47d1e4c-2fff-4dcb-908f-d3081162547c.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/index.js
CHANGED
|
@@ -89,6 +89,18 @@ Object.keys(_time).forEach(function (key) {
|
|
|
89
89
|
});
|
|
90
90
|
});
|
|
91
91
|
|
|
92
|
+
var _units = require('./units');
|
|
93
|
+
|
|
94
|
+
Object.keys(_units).forEach(function (key) {
|
|
95
|
+
if (key === "default" || key === "__esModule") return;
|
|
96
|
+
Object.defineProperty(exports, key, {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
get: function () {
|
|
99
|
+
return _units[key];
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
|
|
92
104
|
var _filter = require('./filter');
|
|
93
105
|
|
|
94
106
|
Object.keys(_filter).forEach(function (key) {
|
|
@@ -101,6 +113,18 @@ Object.keys(_filter).forEach(function (key) {
|
|
|
101
113
|
});
|
|
102
114
|
});
|
|
103
115
|
|
|
116
|
+
var _reader = require('./reader');
|
|
117
|
+
|
|
118
|
+
Object.keys(_reader).forEach(function (key) {
|
|
119
|
+
if (key === "default" || key === "__esModule") return;
|
|
120
|
+
Object.defineProperty(exports, key, {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function () {
|
|
123
|
+
return _reader[key];
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
|
|
104
128
|
var _sorter = require('./sorter');
|
|
105
129
|
|
|
106
130
|
Object.keys(_sorter).forEach(function (key) {
|
|
@@ -170,6 +194,8 @@ var _hooks = require('./hooks');
|
|
|
170
194
|
|
|
171
195
|
var hooks = _interopRequireWildcard(_hooks);
|
|
172
196
|
|
|
197
|
+
var _readers = require('./readers');
|
|
198
|
+
|
|
173
199
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
|
174
200
|
|
|
175
201
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -192,6 +218,7 @@ function init() {
|
|
|
192
218
|
_loglevel2.default.debug('Initializing core');
|
|
193
219
|
// Initialize singletons that might be used globally first
|
|
194
220
|
_time.Time.initialize();
|
|
221
|
+
_units.Units.initialize();
|
|
195
222
|
// Then services
|
|
196
223
|
api.configure(_services2.default);
|
|
197
224
|
// Last, create the models listened by the main layout/pages components
|
|
@@ -218,6 +245,10 @@ function init() {
|
|
|
218
245
|
}
|
|
219
246
|
});
|
|
220
247
|
|
|
248
|
+
// Register default readers
|
|
249
|
+
_reader.Reader.register('.json', _readers.JSONReader);
|
|
250
|
+
_reader.Reader.register('.csv', _readers.CSVReader);
|
|
251
|
+
|
|
221
252
|
// -----------------------------------------------------------------------
|
|
222
253
|
// | After this we should only have specific cordova initialisation code |
|
|
223
254
|
// -----------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../core/client/index.js"],"names":["init","utils","mixins","hooks","api","logger","debug","Time","initialize","configure","services","Layout","Filter","Sorter","Search","Store","set","content","mode","undefined","filter","visible","current","widgets","actions","users","getService","on","user","_id","get","patch","Platform","is","cordova","document","addEventListener","_","window","device","error","notifier","PushNotification","android","vibrate","sound","forceShow","ios","alert","badge","windows","data","registrationId","devicesService","update","uuid","toast","message","timeout","response"],"mappings":"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","file":"index.js","sourcesContent":["import logger from 'loglevel'\r\nimport { Platform } from 'quasar'\r\nimport { Store } from './store'\r\nimport { Layout } from './layout'\r\nimport { Time } from './time'\r\nimport { Filter } from './filter'\r\nimport { Sorter } from './sorter'\r\nimport { Search } from './search'\r\nimport services from './services'\r\nimport * as utils from './utils'\r\nimport * as mixins from './mixins'\r\nimport * as hooks from './hooks'\r\n\r\n// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code\r\n// Tracked here : https://github.com/babel/babel/issues/2877\r\n// We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far\r\n\r\n// FIXME: we don't build vue component anymore, they are processed by webpack in the application template\r\n// export * from './components'\r\n\r\nexport * from './events'\r\nexport * from './api'\r\nexport * from './services'\r\nexport * from './store'\r\nexport * from './layout'\r\nexport * from './theme'\r\nexport * from './time'\r\nexport * from './filter'\r\nexport * from './sorter'\r\nexport * from './search'\r\nexport * from './guards'\r\nexport * from '../common'\r\nexport { utils }\r\nexport { mixins }\r\nexport { hooks }\r\n\r\nexport default function init () {\r\n const api = this\r\n\r\n logger.debug('Initializing core')\r\n // Initialize singletons that might be used globally first\r\n Time.initialize()\r\n // Then services\r\n api.configure(services)\r\n // Last, create the models listened by the main layout/pages components\r\n // You must use the patch method on the store to update those models\r\n // It is generally done by activity based componentq or through a local settings service\r\n Layout.initialize()\r\n Filter.initialize(api)\r\n Sorter.initialize()\r\n Search.initialize(api)\r\n Store.set('topPane', { content: null, mode: undefined, filter: {}, visible: false })\r\n Store.set('leftPane', { content: null, mode: undefined, filter: {}, visible: false })\r\n Store.set('rightPane', { content: null, mode: undefined, filter: {}, visible: false })\r\n Store.set('bottomPane', { content: null, mode: undefined, filter: {}, visible: false })\r\n Store.set('page', { content: null, mode: undefined, filter: {} })\r\n Store.set('window', { current: '', widgets: [], filter: {} })\r\n Store.set('fab', { actions: [], filter: {} })\r\n\r\n // Listen to the 'patched' event on the users\r\n const users = api.getService('users')\r\n users.on('patched', user => {\r\n // Check whether we need to update the current user\r\n if (user._id === Store.get('user._id')) {\r\n Store.patch('user', user)\r\n }\r\n })\r\n\r\n // -----------------------------------------------------------------------\r\n // | After this we should only have specific cordova initialisation code |\r\n // -----------------------------------------------------------------------\r\n if (!Platform.is.cordova) return\r\n\r\n /* NOT SURE IF THIS IS REQUIRED\r\n let permissionsPlugin = cordova.plugins.permissions\r\n const notificationPermissions = [\r\n permissionsPlugin.INTERNET,\r\n permissionsPlugin.ACCESS_NETWORK_STATE,\r\n permissionsPlugin.WAKE_LOCK,\r\n permissionsPlugin.VIBRATE\r\n ]\r\n\r\n function permissionsError() {\r\n const message = 'Required permissions for push notifications are missing or have been rejected, the application will not work as expected'\r\n logger.error(message)\r\n utils.toast({\r\n message,\r\n timeout: 10000\r\n })\r\n }\r\n function permissionsCheckSuccess(status) {\r\n // Request again if not given\r\n if (!status.hasPermission) {\r\n permissionsPlugin.requestPermissions(notificationPermissions, status => { if (!status.hasPermission) permissionsError() }, permissionsError)\r\n }\r\n }\r\n */\r\n\r\n document.addEventListener('deviceready', _ => {\r\n // Check for permissions, will launch permission request on failure\r\n // NOT SURE IF THIS IS REQUIRED\r\n // permissionsPlugin.hasPermission(notificationPermissions, permissionsCheckSuccess, null)\r\n if (!window.device) {\r\n logger.error('Unable to reach device information')\r\n return\r\n }\r\n\r\n const notifier = window.PushNotification.init({\r\n android: { vibrate: true, sound: true, forceShow: true },\r\n ios: { alert: true, badge: true, sound: true },\r\n windows: { }\r\n })\r\n notifier.on('registration', async (data) => {\r\n logger.debug('Push registrationID changed: ' + data.registrationId)\r\n // Store the registrationId\r\n window.device.registrationId = data.registrationId\r\n // update the user device\r\n const user = Store.get('user')\r\n if (user && window.device && window.device.registrationId) {\r\n const devicesService = api.getService('devices')\r\n const device = await devicesService.update(window.device.registrationId, window.device)\r\n logger.debug(`device ${device.uuid} updated with the id ${device.registrationId}`)\r\n }\r\n })\r\n notifier.on('notification', (data) => {\r\n // data.message,\r\n // data.title,\r\n // data.count,\r\n // data.sound,\r\n // data.image,\r\n // data.additionalData\r\n })\r\n notifier.on('error', (error) => {\r\n logger.error(error)\r\n utils.toast({\r\n message: error.message,\r\n timeout: 10000\r\n })\r\n })\r\n api.on('authenticated', async response => {\r\n const devicesService = api.getService('devices')\r\n // Only possible if registration ID already retrieved\r\n if (window.device && window.device.registrationId) {\r\n const device = await devicesService.update(window.device.registrationId, window.device)\r\n logger.debug(`device ${device.uuid} registered with the id ${device.registrationId}`)\r\n }\r\n })\r\n }, false)\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../core/client/index.js"],"names":["init","utils","mixins","hooks","api","logger","debug","Time","initialize","Units","configure","services","Layout","Filter","Sorter","Search","Store","set","content","mode","undefined","filter","visible","current","widgets","actions","users","getService","on","user","_id","get","patch","Reader","register","JSONReader","CSVReader","Platform","is","cordova","document","addEventListener","_","window","device","error","notifier","PushNotification","android","vibrate","sound","forceShow","ios","alert","badge","windows","data","registrationId","devicesService","update","uuid","toast","message","timeout","response"],"mappings":"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","file":"index.js","sourcesContent":["import logger from 'loglevel'\r\nimport { Platform } from 'quasar'\r\nimport { Store } from './store'\r\nimport { Layout } from './layout'\r\nimport { Time } from './time'\r\nimport { Units } from './units'\r\nimport { Reader } from './reader'\r\nimport { Filter } from './filter'\r\nimport { Sorter } from './sorter'\r\nimport { Search } from './search'\r\nimport services from './services'\r\nimport * as utils from './utils'\r\nimport * as mixins from './mixins'\r\nimport * as hooks from './hooks'\r\nimport { CSVReader, JSONReader } from './readers'\r\n\r\n// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code\r\n// Tracked here : https://github.com/babel/babel/issues/2877\r\n// We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far\r\n\r\n// FIXME: we don't build vue component anymore, they are processed by webpack in the application template\r\n// export * from './components'\r\n\r\nexport * from './events'\r\nexport * from './api'\r\nexport * from './services'\r\nexport * from './store'\r\nexport * from './layout'\r\nexport * from './theme'\r\nexport * from './time'\r\nexport * from './units'\r\nexport * from './filter'\r\nexport * from './reader'\r\nexport * from './sorter'\r\nexport * from './search'\r\nexport * from './guards'\r\nexport * from '../common'\r\nexport { utils }\r\nexport { mixins }\r\nexport { hooks }\r\n\r\nexport default function init () {\r\n const api = this\r\n\r\n logger.debug('Initializing core')\r\n // Initialize singletons that might be used globally first\r\n Time.initialize()\r\n Units.initialize()\r\n // Then services\r\n api.configure(services)\r\n // Last, create the models listened by the main layout/pages components\r\n // You must use the patch method on the store to update those models\r\n // It is generally done by activity based componentq or through a local settings service\r\n Layout.initialize()\r\n Filter.initialize(api)\r\n Sorter.initialize()\r\n Search.initialize(api)\r\n Store.set('topPane', { content: null, mode: undefined, filter: {}, visible: false })\r\n Store.set('leftPane', { content: null, mode: undefined, filter: {}, visible: false })\r\n Store.set('rightPane', { content: null, mode: undefined, filter: {}, visible: false })\r\n Store.set('bottomPane', { content: null, mode: undefined, filter: {}, visible: false })\r\n Store.set('page', { content: null, mode: undefined, filter: {} })\r\n Store.set('window', { current: '', widgets: [], filter: {} })\r\n Store.set('fab', { actions: [], filter: {} })\r\n\r\n // Listen to the 'patched' event on the users\r\n const users = api.getService('users')\r\n users.on('patched', user => {\r\n // Check whether we need to update the current user\r\n if (user._id === Store.get('user._id')) {\r\n Store.patch('user', user)\r\n }\r\n })\r\n\r\n // Register default readers\r\n Reader.register('.json', JSONReader)\r\n Reader.register('.csv', CSVReader)\r\n\r\n // -----------------------------------------------------------------------\r\n // | After this we should only have specific cordova initialisation code |\r\n // -----------------------------------------------------------------------\r\n if (!Platform.is.cordova) return\r\n\r\n /* NOT SURE IF THIS IS REQUIRED\r\n let permissionsPlugin = cordova.plugins.permissions\r\n const notificationPermissions = [\r\n permissionsPlugin.INTERNET,\r\n permissionsPlugin.ACCESS_NETWORK_STATE,\r\n permissionsPlugin.WAKE_LOCK,\r\n permissionsPlugin.VIBRATE\r\n ]\r\n\r\n function permissionsError() {\r\n const message = 'Required permissions for push notifications are missing or have been rejected, the application will not work as expected'\r\n logger.error(message)\r\n utils.toast({\r\n message,\r\n timeout: 10000\r\n })\r\n }\r\n function permissionsCheckSuccess(status) {\r\n // Request again if not given\r\n if (!status.hasPermission) {\r\n permissionsPlugin.requestPermissions(notificationPermissions, status => { if (!status.hasPermission) permissionsError() }, permissionsError)\r\n }\r\n }\r\n */\r\n\r\n document.addEventListener('deviceready', _ => {\r\n // Check for permissions, will launch permission request on failure\r\n // NOT SURE IF THIS IS REQUIRED\r\n // permissionsPlugin.hasPermission(notificationPermissions, permissionsCheckSuccess, null)\r\n if (!window.device) {\r\n logger.error('Unable to reach device information')\r\n return\r\n }\r\n\r\n const notifier = window.PushNotification.init({\r\n android: { vibrate: true, sound: true, forceShow: true },\r\n ios: { alert: true, badge: true, sound: true },\r\n windows: { }\r\n })\r\n notifier.on('registration', async (data) => {\r\n logger.debug('Push registrationID changed: ' + data.registrationId)\r\n // Store the registrationId\r\n window.device.registrationId = data.registrationId\r\n // update the user device\r\n const user = Store.get('user')\r\n if (user && window.device && window.device.registrationId) {\r\n const devicesService = api.getService('devices')\r\n const device = await devicesService.update(window.device.registrationId, window.device)\r\n logger.debug(`device ${device.uuid} updated with the id ${device.registrationId}`)\r\n }\r\n })\r\n notifier.on('notification', (data) => {\r\n // data.message,\r\n // data.title,\r\n // data.count,\r\n // data.sound,\r\n // data.image,\r\n // data.additionalData\r\n })\r\n notifier.on('error', (error) => {\r\n logger.error(error)\r\n utils.toast({\r\n message: error.message,\r\n timeout: 10000\r\n })\r\n })\r\n api.on('authenticated', async response => {\r\n const devicesService = api.getService('devices')\r\n // Only possible if registration ID already retrieved\r\n if (window.device && window.device.registrationId) {\r\n const device = await devicesService.update(window.device.registrationId, window.device)\r\n logger.debug(`device ${device.uuid} registered with the id ${device.registrationId}`)\r\n }\r\n })\r\n }, false)\r\n}\r\n"]}
|
|
@@ -78,8 +78,8 @@ const Layout = exports.Layout = {
|
|
|
78
78
|
const isArray = Array.isArray(content);
|
|
79
79
|
const modes = _lodash2.default.keys(content);
|
|
80
80
|
let filteredContent = content;
|
|
81
|
-
// Recurse ?
|
|
82
81
|
if (!isArray) {
|
|
82
|
+
// Recurse ?
|
|
83
83
|
if (filteredContent.content) {
|
|
84
84
|
filteredContent.content = this.filterContent(filteredContent.content, filter);
|
|
85
85
|
} else {
|
|
@@ -89,6 +89,13 @@ const Layout = exports.Layout = {
|
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
filteredContent = [filteredContent];
|
|
92
|
+
} else {
|
|
93
|
+
filteredContent.forEach(item => {
|
|
94
|
+
// Recurse ?
|
|
95
|
+
if (item.content) {
|
|
96
|
+
item.content = this.filterContent(item.content, filter);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
92
99
|
}
|
|
93
100
|
// Apply filtering
|
|
94
101
|
filteredContent = filteredContent.filter((0, _sift2.default)(filter));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../core/client/layout.js"],"names":["components","handlers","Layout","initialize","forEach","component","Store","set","content","mode","undefined","filter","visible","getHeader","get","setHeader","patch","setHeaderMode","setHeaderVisible","clearHeader","getFooter","setFooter","setFooterMode","setFooterVisible","clearFooter","validateMode","modes","_","keys","isEmpty","includes","filterContent","isArray","Array","filteredContent","contentForMode","getComponents","context","processedComponents","isVisible","componentName","componentKey","kebabCase","path","basename","uid","push","bindParam","param","startsWith","substring","bindParams","params","isNil","map","mapValues","value","key","generateHandler","name","isNot","args","result","handler","bindHandler","h","reduce","logger","debug","bindProperties","item","i","length","forOwn","bindContent","flatMapDeep","binding","bind","props"],"mappings":"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","file":"layout.js","sourcesContent":["import _ from 'lodash'\r\nimport path from 'path'\r\nimport logger from 'loglevel'\r\nimport sift from 'sift'\r\nimport { uid } from 'quasar'\r\nimport { Store } from './store'\r\n\r\nconst components = ['header', 'footer']\r\nconst handlers = ['handler', 'visible', 'on.listener']\r\n\r\n// Export singleton\r\nexport const Layout = {\r\n initialize () {\r\n components.forEach(component => {\r\n Store.set(component, { content: null, mode: undefined, filter: {}, visible: false })\r\n })\r\n },\r\n getHeader () {\r\n return Store.get(components[0])\r\n },\r\n setHeader (content, mode, filter, visible) {\r\n Store.patch(components[0], { content, mode, filter, visible })\r\n },\r\n setHeaderMode (mode) {\r\n Store.patch(components[0], { mode })\r\n },\r\n setHeaderVisible (visible) {\r\n Store.patch(components[0], { visible })\r\n },\r\n clearHeader () {\r\n Store.patch(components[0], { content: null, mode: undefined, visible: false })\r\n },\r\n getFooter () {\r\n return Store.get(components[1])\r\n },\r\n setFooter (content, mode, filter, visible) {\r\n Store.patch(components[1], { content, mode, filter, visible })\r\n },\r\n setFooterMode (mode) {\r\n Store.patch(components[1], { mode })\r\n },\r\n setFooterVisible (visible) {\r\n Store.patch(components[1], { visible })\r\n },\r\n clearFooter () {\r\n Store.patch(components[1], { content: null, mode: undefined, visible: false })\r\n },\r\n validateMode (content, mode) {\r\n const modes = _.keys(content)\r\n if (_.isEmpty(modes)) return undefined\r\n if (modes.includes(mode)) return mode\r\n return modes[0]\r\n },\r\n filterContent (content, filter) {\r\n // Handle array and object case\r\n const isArray = Array.isArray(content)\r\n const modes = _.keys(content)\r\n let filteredContent = content\r\n // Recurse ?\r\n if (!isArray) {\r\n if (filteredContent.content) {\r\n filteredContent.content = this.filterContent(filteredContent.content, filter)\r\n } else {\r\n modes.forEach(mode => {\r\n const contentForMode = filteredContent[mode]\r\n filteredContent[mode] = this.filterContent(contentForMode, filter)\r\n })\r\n }\r\n filteredContent = [filteredContent]\r\n }\r\n // Apply filtering\r\n filteredContent = filteredContent.filter(sift(filter))\r\n return (isArray ? filteredContent : filteredContent[0])\r\n },\r\n getComponents (content, mode, context) {\r\n let components = []\r\n\r\n // Get component config for given mode if any\r\n if (Array.isArray(content)) {\r\n components = content\r\n } else {\r\n mode = this.validateMode(content, mode)\r\n components = _.get(content, mode)\r\n }\r\n // Apply filtering\r\n // components = this.filterContent(components, filter)\r\n const processedComponents = []\r\n // Then create component objects\r\n _.forEach(components, (component) => {\r\n let isVisible = _.get(component, 'visible', true)\r\n // Can be a functional call\r\n if (typeof isVisible === 'function') {\r\n isVisible = isVisible(context)\r\n }\r\n // If not a functional call the target property can be a reactive one\r\n // so that we \"bind\" it to the component instead of \"filter\" the component here\r\n component.isVisible = isVisible\r\n // Define the component key\r\n const componentName = _.get(component, 'component', 'frame/KAction')\r\n const componentKey = _.kebabCase(path.basename(componentName))\r\n // Clone the component and add the required props\r\n component.componentName = componentName\r\n component.componentKey = componentKey\r\n component.uid = uid()\r\n processedComponents.push(component)\r\n })\r\n return processedComponents\r\n },\r\n bindParam (param, context) {\r\n return (typeof param === 'string') ? (param.startsWith(':') ? _.get(context, param.substring(1)) : param) : param\r\n },\r\n bindParams (params, context) {\r\n // A parameter like :xxx means xxx is a property of the component, not a static value\r\n // In that case remove trailing : and get property value dynamically\r\n if (_.isNil(params)) {\r\n return params\r\n } else if (Array.isArray(params)) {\r\n return params.map(param => this.bindParams(param, context))\r\n } else if (typeof params === 'object') {\r\n return _.mapValues(params, (value, key) => this.bindParams(value, context))\r\n } else {\r\n return this.bindParam(params, context)\r\n }\r\n },\r\n generateHandler (context, name, params) {\r\n // When the handler can be a simple getter, eg is visible use case,\r\n // we allow a property value instead of a function and a logical NOT\r\n const isNot = name.startsWith('!')\r\n if (isNot) name = name.substring(1)\r\n return (...args) => {\r\n let result\r\n const handler = _.get(context, name)\r\n // Function call or property value read ?\r\n if (typeof handler === 'function') {\r\n // Provided parameters or simply forward arguments ?\r\n result = (params ? handler(...this.bindParams(params, context)) : handler(...args))\r\n } else {\r\n result = handler\r\n }\r\n // Logical NOT to be performed ?\r\n return (isNot ? !result : result)\r\n }\r\n },\r\n bindHandler (component, path, context) {\r\n const handler = _.get(component, path)\r\n // Could be an array if multiple handlers to be called\r\n if (Array.isArray(handler)) {\r\n // Process all array elements, manage the case where the handler is simply a function/property name\r\n const handlers = handler.map(h => this.generateHandler(context, h.name || h, h.params))\r\n // In that specific case the result is a boolean AND operation\r\n _.set(component, path, (...args) => handlers.reduce((result, h) => result && h(...args), true))\r\n } else if (handler && typeof handler === 'object') {\r\n // Could be a structure with name and possibly params specified\r\n if (handler.name) {\r\n _.set(component, path, this.generateHandler(context, handler.name, handler.params))\r\n } else {\r\n logger.debug(`Invalid handler binding for ${handler}: you must provide the name to the function to be called`)\r\n }\r\n } else if (typeof handler === 'string') { // Or only name if no params are specified\r\n _.set(component, path, this.generateHandler(context, handler))\r\n }\r\n // Get back processed handler function\r\n return _.get(component, path)\r\n },\r\n bindProperties (item, context) {\r\n if (typeof item === 'string') {\r\n if (item.startsWith(':')) return _.get(context, item.substring(1))\r\n } else if (Array.isArray(item)) {\r\n for (let i = 0; i < item.length; i++) {\r\n item[i] = this.bindProperties(item[i], context)\r\n }\r\n } else if (typeof item === 'object') {\r\n _.forOwn(item, (value, key) => {\r\n // Skip 'reserved' property\r\n if ((key !== 'content') && (key !== 'bind')) item[key] = this.bindProperties(value, context)\r\n })\r\n }\r\n return item\r\n },\r\n // Perform binding between a configuration object and a given context object\r\n bindContent (content, context) {\r\n const components = _.flatMapDeep(content)\r\n _.forEach(components, (component) => {\r\n // Process component handlers\r\n handlers.forEach(handler => this.bindHandler(component, handler, context))\r\n // Then process component props\r\n // FIXME: don't know why but this generic binding function does not seem to work\r\n // It should allow to wrote any property like { label: ':xxx' } and bind it\r\n // to a component property from the context like we do for handler\r\n // this.bindProperties(component, context)\r\n // The only way to make it work is to add props at the root level\r\n const binding = component.bind ? component.bind : null\r\n if (binding) component.props = _.get(context, binding)\r\n // Recursively bind the props/handlers on the sub content object\r\n if (component.content) this.bindContent(component.content, context)\r\n })\r\n return content\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../core/client/layout.js"],"names":["components","handlers","Layout","initialize","forEach","component","Store","set","content","mode","undefined","filter","visible","getHeader","get","setHeader","patch","setHeaderMode","setHeaderVisible","clearHeader","getFooter","setFooter","setFooterMode","setFooterVisible","clearFooter","validateMode","modes","_","keys","isEmpty","includes","filterContent","isArray","Array","filteredContent","contentForMode","item","getComponents","context","processedComponents","isVisible","componentName","componentKey","kebabCase","path","basename","uid","push","bindParam","param","startsWith","substring","bindParams","params","isNil","map","mapValues","value","key","generateHandler","name","isNot","args","result","handler","bindHandler","h","reduce","logger","debug","bindProperties","i","length","forOwn","bindContent","flatMapDeep","binding","bind","props"],"mappings":"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","file":"layout.js","sourcesContent":["import _ from 'lodash'\r\nimport path from 'path'\r\nimport logger from 'loglevel'\r\nimport sift from 'sift'\r\nimport { uid } from 'quasar'\r\nimport { Store } from './store'\r\n\r\nconst components = ['header', 'footer']\r\nconst handlers = ['handler', 'visible', 'on.listener']\r\n\r\n// Export singleton\r\nexport const Layout = {\r\n initialize () {\r\n components.forEach(component => {\r\n Store.set(component, { content: null, mode: undefined, filter: {}, visible: false })\r\n })\r\n },\r\n getHeader () {\r\n return Store.get(components[0])\r\n },\r\n setHeader (content, mode, filter, visible) {\r\n Store.patch(components[0], { content, mode, filter, visible })\r\n },\r\n setHeaderMode (mode) {\r\n Store.patch(components[0], { mode })\r\n },\r\n setHeaderVisible (visible) {\r\n Store.patch(components[0], { visible })\r\n },\r\n clearHeader () {\r\n Store.patch(components[0], { content: null, mode: undefined, visible: false })\r\n },\r\n getFooter () {\r\n return Store.get(components[1])\r\n },\r\n setFooter (content, mode, filter, visible) {\r\n Store.patch(components[1], { content, mode, filter, visible })\r\n },\r\n setFooterMode (mode) {\r\n Store.patch(components[1], { mode })\r\n },\r\n setFooterVisible (visible) {\r\n Store.patch(components[1], { visible })\r\n },\r\n clearFooter () {\r\n Store.patch(components[1], { content: null, mode: undefined, visible: false })\r\n },\r\n validateMode (content, mode) {\r\n const modes = _.keys(content)\r\n if (_.isEmpty(modes)) return undefined\r\n if (modes.includes(mode)) return mode\r\n return modes[0]\r\n },\r\n filterContent (content, filter) {\r\n // Handle array and object case\r\n const isArray = Array.isArray(content)\r\n const modes = _.keys(content)\r\n let filteredContent = content\r\n if (!isArray) {\r\n // Recurse ?\r\n if (filteredContent.content) {\r\n filteredContent.content = this.filterContent(filteredContent.content, filter)\r\n } else {\r\n modes.forEach(mode => {\r\n const contentForMode = filteredContent[mode]\r\n filteredContent[mode] = this.filterContent(contentForMode, filter)\r\n })\r\n }\r\n filteredContent = [filteredContent]\r\n } else {\r\n filteredContent.forEach(item => {\r\n // Recurse ?\r\n if (item.content) {\r\n item.content = this.filterContent(item.content, filter)\r\n }\r\n })\r\n }\r\n // Apply filtering\r\n filteredContent = filteredContent.filter(sift(filter))\r\n return (isArray ? filteredContent : filteredContent[0])\r\n },\r\n getComponents (content, mode, context) {\r\n let components = []\r\n\r\n // Get component config for given mode if any\r\n if (Array.isArray(content)) {\r\n components = content\r\n } else {\r\n mode = this.validateMode(content, mode)\r\n components = _.get(content, mode)\r\n }\r\n // Apply filtering\r\n // components = this.filterContent(components, filter)\r\n const processedComponents = []\r\n // Then create component objects\r\n _.forEach(components, (component) => {\r\n let isVisible = _.get(component, 'visible', true)\r\n // Can be a functional call\r\n if (typeof isVisible === 'function') {\r\n isVisible = isVisible(context)\r\n }\r\n // If not a functional call the target property can be a reactive one\r\n // so that we \"bind\" it to the component instead of \"filter\" the component here\r\n component.isVisible = isVisible\r\n // Define the component key\r\n const componentName = _.get(component, 'component', 'frame/KAction')\r\n const componentKey = _.kebabCase(path.basename(componentName))\r\n // Clone the component and add the required props\r\n component.componentName = componentName\r\n component.componentKey = componentKey\r\n component.uid = uid()\r\n processedComponents.push(component)\r\n })\r\n return processedComponents\r\n },\r\n bindParam (param, context) {\r\n return (typeof param === 'string') ? (param.startsWith(':') ? _.get(context, param.substring(1)) : param) : param\r\n },\r\n bindParams (params, context) {\r\n // A parameter like :xxx means xxx is a property of the component, not a static value\r\n // In that case remove trailing : and get property value dynamically\r\n if (_.isNil(params)) {\r\n return params\r\n } else if (Array.isArray(params)) {\r\n return params.map(param => this.bindParams(param, context))\r\n } else if (typeof params === 'object') {\r\n return _.mapValues(params, (value, key) => this.bindParams(value, context))\r\n } else {\r\n return this.bindParam(params, context)\r\n }\r\n },\r\n generateHandler (context, name, params) {\r\n // When the handler can be a simple getter, eg is visible use case,\r\n // we allow a property value instead of a function and a logical NOT\r\n const isNot = name.startsWith('!')\r\n if (isNot) name = name.substring(1)\r\n return (...args) => {\r\n let result\r\n const handler = _.get(context, name)\r\n // Function call or property value read ?\r\n if (typeof handler === 'function') {\r\n // Provided parameters or simply forward arguments ?\r\n result = (params ? handler(...this.bindParams(params, context)) : handler(...args))\r\n } else {\r\n result = handler\r\n }\r\n // Logical NOT to be performed ?\r\n return (isNot ? !result : result)\r\n }\r\n },\r\n bindHandler (component, path, context) {\r\n const handler = _.get(component, path)\r\n // Could be an array if multiple handlers to be called\r\n if (Array.isArray(handler)) {\r\n // Process all array elements, manage the case where the handler is simply a function/property name\r\n const handlers = handler.map(h => this.generateHandler(context, h.name || h, h.params))\r\n // In that specific case the result is a boolean AND operation\r\n _.set(component, path, (...args) => handlers.reduce((result, h) => result && h(...args), true))\r\n } else if (handler && typeof handler === 'object') {\r\n // Could be a structure with name and possibly params specified\r\n if (handler.name) {\r\n _.set(component, path, this.generateHandler(context, handler.name, handler.params))\r\n } else {\r\n logger.debug(`Invalid handler binding for ${handler}: you must provide the name to the function to be called`)\r\n }\r\n } else if (typeof handler === 'string') { // Or only name if no params are specified\r\n _.set(component, path, this.generateHandler(context, handler))\r\n }\r\n // Get back processed handler function\r\n return _.get(component, path)\r\n },\r\n bindProperties (item, context) {\r\n if (typeof item === 'string') {\r\n if (item.startsWith(':')) return _.get(context, item.substring(1))\r\n } else if (Array.isArray(item)) {\r\n for (let i = 0; i < item.length; i++) {\r\n item[i] = this.bindProperties(item[i], context)\r\n }\r\n } else if (typeof item === 'object') {\r\n _.forOwn(item, (value, key) => {\r\n // Skip 'reserved' property\r\n if ((key !== 'content') && (key !== 'bind')) item[key] = this.bindProperties(value, context)\r\n })\r\n }\r\n return item\r\n },\r\n // Perform binding between a configuration object and a given context object\r\n bindContent (content, context) {\r\n const components = _.flatMapDeep(content)\r\n _.forEach(components, (component) => {\r\n // Process component handlers\r\n handlers.forEach(handler => this.bindHandler(component, handler, context))\r\n // Then process component props\r\n // FIXME: don't know why but this generic binding function does not seem to work\r\n // It should allow to wrote any property like { label: ':xxx' } and bind it\r\n // to a component property from the context like we do for handler\r\n // this.bindProperties(component, context)\r\n // The only way to make it work is to add props at the root level\r\n const binding = component.bind ? component.bind : null\r\n if (binding) component.props = _.get(context, binding)\r\n // Recursively bind the props/handlers on the sub content object\r\n if (component.content) this.bindContent(component.content, context)\r\n })\r\n return content\r\n }\r\n}\r\n"]}
|
|
@@ -15,12 +15,14 @@ const baseWidgetMixin = {
|
|
|
15
15
|
},
|
|
16
16
|
data() {
|
|
17
17
|
return {
|
|
18
|
-
widgetHeight:
|
|
18
|
+
widgetHeight: 0
|
|
19
19
|
};
|
|
20
20
|
},
|
|
21
|
-
|
|
21
|
+
computed: {
|
|
22
22
|
widgetStyle() {
|
|
23
|
-
|
|
23
|
+
const screenHeight = this.$q.screen.height;
|
|
24
|
+
this.widgetHeight = this.mode === 'maximized' ? screenHeight : screenHeight * 0.3; // 30vh
|
|
25
|
+
return `height: ${this.widgetHeight}px`;
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../core/client/mixins/mixin.base-widget.js"],"names":["baseWidgetMixin","props","mode","type","String","default","validator","value","includes","data","widgetHeight","
|
|
1
|
+
{"version":3,"sources":["../../../../core/client/mixins/mixin.base-widget.js"],"names":["baseWidgetMixin","props","mode","type","String","default","validator","value","includes","data","widgetHeight","computed","widgetStyle","screenHeight","$q","screen","height"],"mappings":";;;;;AAAA,MAAMA,kBAAkB;AACtBC,SAAO;AACLC,UAAM;AACJC,YAAMC,MADF;AAEJC,eAAS,WAFL;AAGJC,iBAAYC,KAAD,IAAW;AACpB,eAAO,CAAC,WAAD,EAAc,WAAd,EAA2BC,QAA3B,CAAoCD,KAApC,CAAP;AACD;AALG;AADD,GADe;AAUtBE,SAAQ;AACN,WAAO;AACLC,oBAAc;AADT,KAAP;AAGD,GAdqB;AAetBC,YAAU;AACRC,kBAAe;AACb,YAAMC,eAAe,KAAKC,EAAL,CAAQC,MAAR,CAAeC,MAApC;AACA,WAAKN,YAAL,GAAoB,KAAKR,IAAL,KAAc,WAAd,GAA4BW,YAA5B,GAA2CA,eAAe,GAA9E,CAFa,CAEqE;AAClF,aAAQ,WAAU,KAAKH,YAAa,IAApC;AACD;AALO;AAfY,CAAxB;;kBAwBeV,e","file":"mixin.base-widget.js","sourcesContent":["const baseWidgetMixin = {\r\n props: {\r\n mode: {\r\n type: String,\r\n default: 'minimized',\r\n validator: (value) => {\r\n return ['minimized', 'maximized'].includes(value)\r\n }\r\n }\r\n },\r\n data () {\r\n return {\r\n widgetHeight: 0\r\n }\r\n },\r\n computed: {\r\n widgetStyle () {\r\n const screenHeight = this.$q.screen.height\r\n this.widgetHeight = this.mode === 'maximized' ? screenHeight : screenHeight * 0.3 // 30vh\r\n return `height: ${this.widgetHeight}px`\r\n }\r\n }\r\n}\r\n\r\nexport default baseWidgetMixin\r\n"]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Reader = undefined;
|
|
7
|
+
|
|
8
|
+
var _path = require('path');
|
|
9
|
+
|
|
10
|
+
var _path2 = _interopRequireDefault(_path);
|
|
11
|
+
|
|
12
|
+
var _i18next = require('i18next');
|
|
13
|
+
|
|
14
|
+
var _i18next2 = _interopRequireDefault(_i18next);
|
|
15
|
+
|
|
16
|
+
var _events = require('./events');
|
|
17
|
+
|
|
18
|
+
var _quasar = require('quasar');
|
|
19
|
+
|
|
20
|
+
var _lodash = require('lodash');
|
|
21
|
+
|
|
22
|
+
var _lodash2 = _interopRequireDefault(_lodash);
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
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"); }); }; }
|
|
27
|
+
|
|
28
|
+
// Export singleton
|
|
29
|
+
const Reader = exports.Reader = {
|
|
30
|
+
readers: {},
|
|
31
|
+
register(mimeType, reader) {
|
|
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;
|
|
64
|
+
},
|
|
65
|
+
read(file, options) {
|
|
66
|
+
var _this = this;
|
|
67
|
+
|
|
68
|
+
return _asyncToGenerator(function* () {
|
|
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);
|
|
78
|
+
}
|
|
79
|
+
})();
|
|
80
|
+
},
|
|
81
|
+
getSupportedFormats() {
|
|
82
|
+
return Object.keys(this.readers);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _reader = require('./reader.json');
|
|
8
|
+
|
|
9
|
+
Object.keys(_reader).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
Object.defineProperty(exports, key, {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () {
|
|
14
|
+
return _reader[key];
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
var _reader2 = require('./reader.csv');
|
|
20
|
+
|
|
21
|
+
Object.keys(_reader2).forEach(function (key) {
|
|
22
|
+
if (key === "default" || key === "__esModule") return;
|
|
23
|
+
Object.defineProperty(exports, key, {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () {
|
|
26
|
+
return _reader2[key];
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../core/client/readers/index.js"],"names":[],"mappings":";;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","file":"index.js","sourcesContent":["export * from './reader.json'\r\nexport * from './reader.csv'\r\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CSVReader = undefined;
|
|
7
|
+
|
|
8
|
+
var _loglevel = require('loglevel');
|
|
9
|
+
|
|
10
|
+
var _loglevel2 = _interopRequireDefault(_loglevel);
|
|
11
|
+
|
|
12
|
+
var _i18next = require('i18next');
|
|
13
|
+
|
|
14
|
+
var _i18next2 = _interopRequireDefault(_i18next);
|
|
15
|
+
|
|
16
|
+
var _papaparse = require('papaparse');
|
|
17
|
+
|
|
18
|
+
var _papaparse2 = _interopRequireDefault(_papaparse);
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
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
|
+
};
|
|
54
|
+
//# sourceMappingURL=reader.csv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.JSONReader = undefined;
|
|
7
|
+
|
|
8
|
+
var _loglevel = require('loglevel');
|
|
9
|
+
|
|
10
|
+
var _loglevel2 = _interopRequireDefault(_loglevel);
|
|
11
|
+
|
|
12
|
+
var _i18next = require('i18next');
|
|
13
|
+
|
|
14
|
+
var _i18next2 = _interopRequireDefault(_i18next);
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
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 => {
|
|
39
|
+
_loglevel2.default.debug(error);
|
|
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
|
+
};
|
|
49
|
+
//# sourceMappingURL=reader.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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',
|
|
@@ -43,11 +47,18 @@ function init() {
|
|
|
43
47
|
longYear: 'time.format.year.long',
|
|
44
48
|
utc: 'time.format.utc',
|
|
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
|
+
defaultArea: 'units.default.area',
|
|
57
|
+
defaultVelocity: 'units.default.velocity',
|
|
58
|
+
defaultTemperature: 'units.default.temperature',
|
|
59
|
+
defaultAngle: 'units.default.angle',
|
|
60
|
+
defaultPrecision: 'units.default.precision'
|
|
50
61
|
}
|
|
51
|
-
}
|
|
62
|
+
})); // Default options can be overriden from app config
|
|
52
63
|
}
|
|
53
64
|
//# 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","utc","timelineStep","timelineInterval","timeseriesSpan","location","restoreView","restoreLayers","defaultLength","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,WAAK,iBAPU;AAQfC,oBAAc,WARC;AASfC,wBAAkB,eATH;AAUfC,sBAAgB,iBAVD;AAWfC,gBAAU,gBAXK;AAYfC,mBAAa,cAZE;AAafC,qBAAe,gBAbA;AAcfC,qBAAe,sBAdA;AAefC,mBAAa,oBAfE;AAgBfC,uBAAiB,wBAhBF;AAiBfC,0BAAoB,2BAjBL;AAkBfC,oBAAc,qBAlBC;AAmBfC,wBAAkB;AAnBH;AAF0C,GAA/B,CAA9B,EAf8B,CAsC1B;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 utc: 'time.format.utc',\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 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
|
});
|
|
@@ -57,7 +59,7 @@ exports.default = function (name, api, options) {
|
|
|
57
59
|
if (!settings) return;
|
|
58
60
|
settings = JSON.parse(settings);
|
|
59
61
|
_lodash2.default.forOwn(mapping, (value, key) => {
|
|
60
|
-
if (_lodash2.default.has(settings, key)) {
|
|
62
|
+
if (value && _lodash2.default.has(settings, key)) {
|
|
61
63
|
_store.Store.set(value, _lodash2.default.get(settings, key));
|
|
62
64
|
}
|
|
63
65
|
});
|