@kalisio/kdk 1.3.5 → 1.4.2
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/2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json +1 -0
- package/.nyc_output/{0b8aa700-8daa-49ce-85e7-a8f8965d55f0.json → 2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json} +0 -0
- package/.nyc_output/{20df4355-911a-4b16-a8ab-d3392e9f0a7f.json → 81d21e46-766a-46bc-b1b7-143ca577347a.json} +0 -0
- package/.nyc_output/a762cb58-70dc-4d39-ab69-928635affa98.json +1 -0
- package/.nyc_output/{257af0bb-96c3-465a-b5ef-a1df60078d5f.json → aaf3ebbb-f895-4d7b-9255-bc5dee832570.json} +0 -0
- package/.nyc_output/{284aebfa-23fd-425f-9d72-e4b8904dc224.json → dbeb2602-0ac2-4e66-978b-0d29548359ca.json} +0 -0
- package/.nyc_output/{5cbee06e-be6e-468a-bd78-4793ee785fe4.json → e47d1e4c-2fff-4dcb-908f-d3081162547c.json} +0 -0
- package/.nyc_output/processinfo/{2bece194-92f7-4971-a688-10604044a7fa.json → 2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json} +1 -1
- package/.nyc_output/processinfo/2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json +1 -0
- package/.nyc_output/processinfo/81d21e46-766a-46bc-b1b7-143ca577347a.json +1 -0
- package/.nyc_output/processinfo/a762cb58-70dc-4d39-ab69-928635affa98.json +1 -0
- package/.nyc_output/processinfo/aaf3ebbb-f895-4d7b-9255-bc5dee832570.json +1 -0
- package/.nyc_output/processinfo/dbeb2602-0ac2-4e66-978b-0d29548359ca.json +1 -0
- package/.nyc_output/processinfo/e47d1e4c-2fff-4dcb-908f-d3081162547c.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +189 -67
- package/README.md +1 -1
- package/coverage/core/api/application.js.html +145 -145
- package/coverage/core/api/authentication.js.html +37 -37
- package/coverage/core/api/db.js.html +74 -74
- package/coverage/core/api/hooks/hooks.account.js.html +15 -15
- package/coverage/core/api/hooks/hooks.authentication.js.html +16 -16
- package/coverage/core/api/hooks/hooks.authorisations.js.html +112 -121
- package/coverage/core/api/hooks/hooks.devices.js.html +5 -5
- package/coverage/core/api/hooks/hooks.groups.js.html +3 -3
- package/coverage/core/api/hooks/hooks.logger.js.html +7 -7
- package/coverage/core/api/hooks/hooks.model.js.html +149 -149
- package/coverage/core/api/hooks/hooks.organisations.js.html +13 -61
- package/coverage/core/api/hooks/hooks.pusher.js.html +7 -7
- package/coverage/core/api/hooks/hooks.query.js.html +68 -32
- package/coverage/core/api/hooks/hooks.service.js.html +15 -15
- package/coverage/core/api/hooks/hooks.storage.js.html +5 -5
- package/coverage/core/api/hooks/hooks.tags.js.html +7 -7
- package/coverage/core/api/hooks/hooks.users.js.html +111 -63
- package/coverage/core/api/hooks/index.html +72 -72
- package/coverage/core/api/hooks/index.js.html +15 -15
- package/coverage/core/api/index.html +35 -35
- package/coverage/core/api/index.js.html +13 -13
- package/coverage/core/api/marshall.js.html +81 -81
- 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 +7 -7
- package/coverage/core/api/oauth2-handler.js.html +3 -3
- package/coverage/core/api/oauth2-verifier.js.html +5 -5
- package/coverage/core/api/services/account/account.hooks.js.html +1 -1
- package/coverage/core/api/services/account/account.service.js.html +34 -34
- package/coverage/core/api/services/account/index.html +17 -17
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +3 -3
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +40 -37
- package/coverage/core/api/services/authorisations/index.html +17 -17
- 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 +5 -5
- package/coverage/core/api/services/index.js.html +40 -40
- 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 +4 -4
- 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 +12 -12
- package/coverage/core/common/index.html +32 -32
- package/coverage/core/common/index.js.html +27 -27
- package/coverage/core/common/permissions.js.html +135 -75
- package/coverage/index.html +157 -157
- package/coverage/lcov-report/core/api/application.js.html +145 -145
- package/coverage/lcov-report/core/api/authentication.js.html +37 -37
- package/coverage/lcov-report/core/api/db.js.html +74 -74
- package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +15 -15
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +16 -16
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +112 -121
- package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +5 -5
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +3 -3
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +149 -149
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +13 -61
- package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +68 -32
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +15 -15
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +5 -5
- package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +111 -63
- package/coverage/lcov-report/core/api/hooks/index.html +72 -72
- package/coverage/lcov-report/core/api/hooks/index.js.html +15 -15
- package/coverage/lcov-report/core/api/index.html +35 -35
- package/coverage/lcov-report/core/api/index.js.html +13 -13
- package/coverage/lcov-report/core/api/marshall.js.html +81 -81
- 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 +7 -7
- package/coverage/lcov-report/core/api/oauth2-handler.js.html +3 -3
- package/coverage/lcov-report/core/api/oauth2-verifier.js.html +5 -5
- 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 +34 -34
- package/coverage/lcov-report/core/api/services/account/index.html +17 -17
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +3 -3
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +40 -37
- package/coverage/lcov-report/core/api/services/authorisations/index.html +17 -17
- 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 +5 -5
- package/coverage/lcov-report/core/api/services/index.js.html +40 -40
- 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 +4 -4
- 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 +12 -12
- package/coverage/lcov-report/core/common/index.html +32 -32
- package/coverage/lcov-report/core/common/index.js.html +27 -27
- package/coverage/lcov-report/core/common/permissions.js.html +135 -75
- package/coverage/lcov-report/index.html +157 -157
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +55 -55
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +337 -274
- package/coverage/lcov-report/map/api/hooks/index.html +43 -43
- package/coverage/lcov-report/map/api/hooks/index.js.html +12 -12
- package/coverage/lcov-report/map/api/index.html +31 -31
- package/coverage/lcov-report/map/api/index.js.html +24 -24
- package/coverage/lcov-report/map/api/marshall.js.html +39 -39
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +20 -20
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +22 -22
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +24 -24
- package/coverage/lcov-report/map/api/models/index.html +43 -43
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +21 -21
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +156 -156
- package/coverage/lcov-report/map/api/services/alerts/index.html +30 -30
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +19 -19
- package/coverage/lcov-report/map/api/services/catalog/index.html +17 -17
- 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 +20 -20
- package/coverage/lcov-report/map/api/services/features/index.html +21 -21
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +8 -8
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +99 -99
- package/coverage/lcov-report/map/api/services/geocoder/index.html +28 -28
- package/coverage/lcov-report/map/api/services/index.html +21 -21
- package/coverage/lcov-report/map/api/services/index.js.html +71 -71
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/lcov-report/map/common/errors.js.html +9 -9
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +120 -120
- package/coverage/lcov-report/map/common/grid.js.html +268 -268
- package/coverage/lcov-report/map/common/index.html +149 -149
- package/coverage/lcov-report/map/common/index.js.html +31 -31
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +71 -71
- package/coverage/lcov-report/map/common/moment-utils.js.html +14 -14
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +280 -280
- package/coverage/lcov-report/map/common/opendap-utils.js.html +220 -220
- package/coverage/lcov-report/map/common/permissions.js.html +21 -21
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +51 -51
- package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +99 -99
- package/coverage/lcov-report/map/common/wcs-utils.js.html +66 -66
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +196 -196
- package/coverage/lcov-report/map/common/wfs-utils.js.html +8 -5
- package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wmts-utils.js.html +71 -11
- package/coverage/lcov.info +3588 -3659
- package/coverage/map/api/hooks/hooks.catalog.js.html +55 -55
- package/coverage/map/api/hooks/hooks.query.js.html +337 -274
- package/coverage/map/api/hooks/index.html +43 -43
- package/coverage/map/api/hooks/index.js.html +12 -12
- package/coverage/map/api/index.html +31 -31
- package/coverage/map/api/index.js.html +24 -24
- package/coverage/map/api/marshall.js.html +39 -39
- package/coverage/map/api/models/alerts.model.mongodb.js.html +20 -20
- package/coverage/map/api/models/catalog.model.mongodb.js.html +22 -22
- package/coverage/map/api/models/features.model.mongodb.js.html +24 -24
- package/coverage/map/api/models/index.html +43 -43
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +21 -21
- package/coverage/map/api/services/alerts/alerts.service.js.html +156 -156
- package/coverage/map/api/services/alerts/index.html +30 -30
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +19 -19
- package/coverage/map/api/services/catalog/index.html +17 -17
- 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 +20 -20
- package/coverage/map/api/services/features/index.html +21 -21
- package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +8 -8
- package/coverage/map/api/services/geocoder/geocoder.service.js.html +99 -99
- package/coverage/map/api/services/geocoder/index.html +28 -28
- package/coverage/map/api/services/index.html +21 -21
- package/coverage/map/api/services/index.js.html +71 -71
- package/coverage/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/map/common/errors.js.html +9 -9
- package/coverage/map/common/geotiff-grid-source.js.html +120 -120
- package/coverage/map/common/grid.js.html +268 -268
- package/coverage/map/common/index.html +149 -149
- package/coverage/map/common/index.js.html +31 -31
- package/coverage/map/common/meteo-model-grid-source.js.html +71 -71
- package/coverage/map/common/moment-utils.js.html +14 -14
- package/coverage/map/common/opendap-grid-source.js.html +280 -280
- package/coverage/map/common/opendap-utils.js.html +220 -220
- package/coverage/map/common/permissions.js.html +21 -21
- package/coverage/map/common/time-based-grid-source.js.html +51 -51
- package/coverage/map/common/tms-utils.js.html +1 -1
- package/coverage/map/common/wcs-grid-source.js.html +99 -99
- package/coverage/map/common/wcs-utils.js.html +66 -66
- package/coverage/map/common/weacast-grid-source.js.html +196 -196
- package/coverage/map/common/wfs-utils.js.html +8 -5
- package/coverage/map/common/wms-utils.js.html +1 -1
- package/coverage/map/common/wmts-utils.js.html +71 -11
- package/extras/icons/kanban.png +0 -0
- package/extras/testcafe/page-models/map/catalog.js +2 -2
- package/extras/tours/core/add-member.js +10 -1
- package/extras/tours/core/{tag-member.js → edit-member-tags.js} +4 -3
- package/extras/tours/core/groups.js +8 -2
- package/extras/tours/core/members.js +11 -21
- package/extras/tours/core/tags.js +7 -1
- package/extras/tours/map/catalog-categories.js +4 -4
- package/extras/tours/map/catalog-panel.js +16 -16
- package/extras/tours/map/favorite-views.js +3 -3
- package/lib/core/api/hooks/hooks.authorisations.js +149 -140
- package/lib/core/api/hooks/hooks.authorisations.js.map +1 -1
- package/lib/core/api/hooks/hooks.organisations.js +1 -23
- package/lib/core/api/hooks/hooks.organisations.js.map +1 -1
- package/lib/core/api/hooks/hooks.query.js +22 -0
- package/lib/core/api/hooks/hooks.query.js.map +1 -1
- package/lib/core/api/hooks/hooks.users.js +34 -18
- package/lib/core/api/hooks/hooks.users.js.map +1 -1
- package/lib/core/api/services/authorisations/authorisations.service.js +34 -25
- package/lib/core/api/services/authorisations/authorisations.service.js.map +1 -1
- package/lib/core/client/api.js +1 -0
- package/lib/core/client/api.js.map +1 -1
- package/lib/core/client/components/account/KAccountDZ.vue +3 -4
- package/lib/core/client/components/account/KAccountDevices.vue +5 -6
- package/lib/core/client/components/account/KDeviceCard.vue +2 -1
- package/lib/core/client/components/account/KIdentityPanel.vue +1 -7
- package/lib/core/client/components/collection/KBoard.vue +26 -155
- package/lib/core/client/components/collection/KCard.vue +144 -42
- package/lib/core/client/components/collection/KCardSection.vue +52 -0
- package/lib/core/client/components/collection/KColumn.vue +181 -0
- package/lib/core/client/components/collection/KGrid.vue +13 -18
- package/lib/core/client/components/collection/KHistory.vue +61 -89
- package/lib/core/client/components/collection/KHistoryEntry.vue +90 -66
- package/lib/core/client/components/collection/KItem.vue +21 -2
- package/lib/core/client/components/collection/KList.vue +9 -12
- package/lib/core/client/components/collection/KTable.vue +33 -39
- package/lib/core/client/components/collection/index.js +6 -1
- package/lib/core/client/components/collection/index.js.map +1 -1
- package/lib/core/client/components/editor/KEditor.vue +0 -6
- package/lib/core/client/components/editor/KModalEditor.vue +4 -4
- package/lib/core/client/components/editor/KSettingsEditor.vue +49 -0
- package/lib/core/client/components/form/KAttachmentField.vue +10 -10
- package/lib/core/client/components/form/KChipsField.vue +28 -23
- package/lib/core/client/components/form/KColorField.vue +30 -25
- package/lib/core/client/components/form/KForm.vue +0 -12
- package/lib/core/client/components/form/KIconField.vue +1 -0
- package/lib/core/client/components/form/KItemField.vue +8 -4
- package/lib/core/client/components/form/KRoleField.vue +56 -0
- package/lib/core/client/components/form/KSelectField.vue +16 -1
- package/lib/core/client/components/form/KView.vue +5 -14
- package/lib/core/client/components/frame/KAction.vue +18 -12
- package/lib/core/client/components/frame/KAvatar.vue +3 -3
- package/lib/core/client/components/frame/KChart.vue +60 -0
- package/lib/core/client/components/frame/KChipsPane.vue +80 -0
- package/lib/core/client/components/frame/KContent.vue +1 -1
- package/lib/core/client/components/frame/KModal.vue +30 -44
- package/lib/core/client/components/frame/KPanel.vue +1 -1
- package/lib/core/client/components/frame/{KMenu.vue → KPopupAction.vue} +6 -7
- package/lib/core/client/components/frame/KSpot.vue +31 -0
- package/lib/core/client/components/frame/KStamp.vue +62 -0
- package/lib/core/client/components/frame/index.js +56 -1
- package/lib/core/client/components/frame/index.js.map +1 -1
- package/lib/core/client/components/input/KColorChooser.vue +16 -8
- package/lib/core/client/components/input/KIconChooser.vue +2 -1
- package/lib/core/client/components/input/KUploader.vue +14 -5
- package/lib/core/client/components/layout/KAbout.vue +9 -3
- package/lib/core/client/components/layout/KFab.vue +1 -1
- package/lib/core/client/components/layout/KPage.vue +44 -19
- package/lib/core/client/components/layout/KTour.vue +2 -2
- package/lib/core/client/components/layout/KWelcome.vue +13 -12
- package/lib/core/client/components/layout/KWindow.vue +1 -1
- package/lib/core/client/components/media/KImageViewer.vue +9 -7
- package/lib/core/client/components/media/KMediaBrowser.vue +12 -8
- package/lib/core/client/components/menu/KMenu.vue +103 -0
- package/lib/core/client/components/team/KAddMember.vue +17 -9
- package/lib/core/client/components/team/KChangeRole.vue +5 -7
- package/lib/core/client/components/team/KGroupCard.vue +34 -51
- package/lib/core/client/components/team/KGroupsActivity.vue +9 -2
- package/lib/core/client/components/team/KJoinGroup.vue +5 -7
- package/lib/core/client/components/team/KMemberCard.vue +104 -63
- package/lib/core/client/components/team/KMembersActivity.vue +9 -2
- package/lib/core/client/components/team/KOrganisationsActivity.vue +8 -1
- package/lib/core/client/components/team/KTagCard.vue +26 -26
- package/lib/core/client/components/team/KTagsActivity.vue +9 -2
- package/lib/core/client/components/time/KTimeRange.vue +144 -0
- package/lib/core/client/components/viewer/KModalViewer.vue +6 -0
- package/lib/core/client/components/viewer/KViewer.vue +0 -6
- package/lib/core/client/i18n/core_en.json +133 -93
- package/lib/core/client/i18n/core_fr.json +56 -16
- package/lib/core/client/index.js +28 -14
- package/lib/core/client/index.js.map +1 -1
- package/lib/core/client/mixins/mixin.authorisation.js +28 -18
- package/lib/core/client/mixins/mixin.authorisation.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-collection.js +57 -9
- package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-context.js +1 -1
- package/lib/core/client/mixins/mixin.base-context.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-editor.js +26 -16
- package/lib/core/client/mixins/mixin.base-editor.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-field.js +0 -4
- package/lib/core/client/mixins/mixin.base-field.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-item.js +29 -14
- package/lib/core/client/mixins/mixin.base-item.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-viewer.js +0 -2
- package/lib/core/client/mixins/mixin.base-viewer.js.map +1 -1
- package/lib/core/client/mixins/mixin.object-proxy.js +17 -3
- package/lib/core/client/mixins/mixin.object-proxy.js.map +1 -1
- package/lib/core/client/mixins/mixin.schema-proxy.js +31 -0
- package/lib/core/client/mixins/mixin.schema-proxy.js.map +1 -1
- package/lib/core/client/mixins/mixin.service.js +5 -33
- package/lib/core/client/mixins/mixin.service.js.map +1 -1
- package/lib/core/client/services/index.js +23 -0
- package/lib/core/client/services/index.js.map +1 -1
- package/lib/core/client/services/local-settings.service.js +4 -0
- package/lib/core/client/services/local-settings.service.js.map +1 -1
- package/lib/core/client/time.js +131 -0
- package/lib/core/client/time.js.map +1 -0
- package/lib/core/common/permissions.js +65 -23
- package/lib/core/common/permissions.js.map +1 -1
- package/lib/core/common/schemas/groups.create.json +1 -1
- package/lib/core/common/schemas/groups.update.json +1 -1
- package/lib/core/common/schemas/organisations.create.json +1 -1
- package/lib/core/common/schemas/organisations.update.json +2 -2
- package/lib/core/common/schemas/settings.update.json +139 -0
- package/lib/core/common/schemas/tags.update.json +9 -1
- package/lib/map/api/hooks/hooks.query.js +48 -27
- package/lib/map/api/hooks/hooks.query.js.map +1 -1
- package/lib/map/api/services/features/features.hooks.js +1 -1
- package/lib/map/api/services/features/features.hooks.js.map +1 -1
- package/lib/map/client/components/KColorLegend.vue +25 -23
- package/lib/map/client/components/KFavoriteViews.vue +71 -35
- package/lib/map/client/components/KFeaturesChart.vue +11 -9
- package/lib/map/client/components/KFeaturesFilter.vue +15 -7
- package/lib/map/client/components/KFeaturesTable.vue +27 -2
- package/lib/map/client/components/KLayerEditionToolbar.vue +43 -0
- package/lib/map/client/components/KLayerStyleEditor.vue +10 -4
- package/lib/map/client/components/KLayerStyleForm.vue +14 -11
- package/lib/map/client/components/KLocationInput.vue +126 -65
- package/lib/map/client/components/KLocationMap.vue +199 -84
- package/lib/map/client/components/KPositionIndicator.vue +1 -0
- package/lib/map/client/components/KTimeline.vue +41 -36
- package/lib/map/client/components/KUrlLegend.vue +21 -19
- package/lib/map/client/components/catalog/KBaseLayersSelector.vue +105 -0
- package/lib/map/client/components/catalog/KCatalog.vue +14 -2
- package/lib/map/client/components/catalog/KConnectLayer.vue +31 -11
- package/lib/map/client/components/catalog/KCreateLayer.vue +37 -14
- package/lib/map/client/components/catalog/KImportLayer.vue +28 -8
- package/lib/map/client/components/catalog/KLayerCategories.vue +86 -62
- package/lib/map/client/components/catalog/KLayersSelector.vue +42 -42
- package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +3 -3
- package/lib/map/client/components/form/KLocationField.vue +1 -1
- package/lib/map/client/components/form/KOwsLayerField.vue +21 -2
- package/lib/map/client/components/form/KOwsServiceField.vue +1 -0
- package/lib/map/client/components/widget/KInformationBox.vue +10 -16
- package/lib/map/client/components/widget/KMapillaryViewer.vue +59 -49
- package/lib/map/client/components/widget/KTimeSeries.vue +39 -29
- package/lib/map/client/i18n/map_en.json +65 -17
- package/lib/map/client/i18n/map_fr.json +67 -20
- package/lib/map/client/init.js +18 -6
- package/lib/map/client/init.js.map +1 -1
- package/lib/map/client/leaflet/GSMaPLayer.js +4 -9
- package/lib/map/client/leaflet/GSMaPLayer.js.map +1 -1
- package/lib/map/client/leaflet/GradientPath.js.map +1 -1
- package/lib/map/client/leaflet/MaskLayer.js +64 -0
- package/lib/map/client/leaflet/MaskLayer.js.map +1 -0
- package/lib/map/client/mixins/globe/mixin.base-globe.js +4 -1
- package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js +7 -9
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/index.js +8 -13
- package/lib/map/client/mixins/index.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.base-map.js +30 -6
- package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.canvas-layers.js +274 -51
- package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.edit-layers.js +218 -121
- package/lib/map/client/mixins/map/mixin.edit-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.file-layers.js +25 -18
- package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.geojson-layers.js +18 -10
- package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.georaster-layers.js +7 -4
- package/lib/map/client/mixins/map/mixin.georaster-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.gsmap-layers.js +3 -3
- package/lib/map/client/mixins/map/mixin.gsmap-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js +8 -10
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.mapillary-layers.js +25 -40
- package/lib/map/client/mixins/map/mixin.mapillary-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js +5 -3
- package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js +5 -3
- package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js.map +1 -1
- package/lib/map/client/mixins/mixin.activity.js +60 -68
- package/lib/map/client/mixins/mixin.activity.js.map +1 -1
- package/lib/map/client/mixins/mixin.feature-selection.js +8 -10
- package/lib/map/client/mixins/mixin.feature-selection.js.map +1 -1
- package/lib/map/client/mixins/mixin.feature-service.js +7 -5
- package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
- package/lib/map/client/mixins/mixin.weacast.js +6 -4
- package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
- package/lib/map/client/pixi-utils.js +9 -0
- package/lib/map/client/pixi-utils.js.map +1 -1
- package/lib/map/client/utils.js +50 -0
- package/lib/map/client/utils.js.map +1 -1
- package/lib/map/common/wfs-utils.js +1 -1
- package/lib/map/common/wfs-utils.js.map +1 -1
- package/lib/map/common/wmts-utils.js +31 -7
- package/lib/map/common/wmts-utils.js.map +1 -1
- package/lib/test/client/core/account.js +100 -0
- package/lib/test/client/core/account.js.map +1 -0
- package/lib/test/client/core/api.js +400 -0
- package/lib/test/client/core/api.js.map +1 -0
- package/lib/test/client/core/collection.js +109 -0
- package/lib/test/client/core/collection.js.map +1 -0
- package/lib/test/client/core/index.js +90 -0
- package/lib/test/client/core/index.js.map +1 -0
- package/lib/test/client/core/layout.js +221 -0
- package/lib/test/client/core/layout.js.map +1 -0
- package/lib/test/client/core/runner.js +204 -0
- package/lib/test/client/core/runner.js.map +1 -0
- package/lib/test/client/core/screens.js +68 -0
- package/lib/test/client/core/screens.js.map +1 -0
- package/lib/test/client/core/utils.js +304 -0
- package/lib/test/client/core/utils.js.map +1 -0
- package/lib/test/client/index.js +20 -0
- package/lib/test/client/index.js.map +1 -0
- package/lib/test/client/map/catalog.js +191 -0
- package/lib/test/client/map/catalog.js.map +1 -0
- package/lib/test/client/map/controls.js +54 -0
- package/lib/test/client/map/controls.js.map +1 -0
- package/lib/test/client/map/index.js +30 -0
- package/lib/test/client/map/index.js.map +1 -0
- package/package.json +17 -9
- package/test.client.js +1 -0
- package/tests/core/test-log-2021-07-15.log +71 -0
- package/tests/core/test-log-2021-09-02.log +47 -0
- package/tests/map/test-log-%DATE%.logYYYY-07-DD +12 -0
- package/tests/map/test-log-%DATE%.logYYYY-09-DD +6 -0
- package/tests/map/test-log-2021-07-12.log +12 -0
- package/tests/map/test-log-2021-07-15.log +5 -0
- package/tests/map/test-log-2021-09-02.log +3 -0
- package/.nyc_output/11cd93d8-69cb-405c-98a3-d249ea35b6da.json +0 -1
- package/.nyc_output/2bece194-92f7-4971-a688-10604044a7fa.json +0 -1
- package/.nyc_output/5ddee33e-b658-4c8e-a247-54f575ac67e8.json +0 -1
- package/.nyc_output/78760ae4-555f-4d9c-a6a1-acf5e2f0fe45.json +0 -1
- package/.nyc_output/d0bb2559-084e-4c92-b9e6-29a9abd41f7c.json +0 -1
- package/.nyc_output/processinfo/0b8aa700-8daa-49ce-85e7-a8f8965d55f0.json +0 -1
- package/.nyc_output/processinfo/11cd93d8-69cb-405c-98a3-d249ea35b6da.json +0 -1
- package/.nyc_output/processinfo/20df4355-911a-4b16-a8ab-d3392e9f0a7f.json +0 -1
- package/.nyc_output/processinfo/257af0bb-96c3-465a-b5ef-a1df60078d5f.json +0 -1
- package/.nyc_output/processinfo/284aebfa-23fd-425f-9d72-e4b8904dc224.json +0 -1
- package/.nyc_output/processinfo/5cbee06e-be6e-468a-bd78-4793ee785fe4.json +0 -1
- package/.nyc_output/processinfo/5ddee33e-b658-4c8e-a247-54f575ac67e8.json +0 -1
- package/.nyc_output/processinfo/78760ae4-555f-4d9c-a6a1-acf5e2f0fe45.json +0 -1
- package/.nyc_output/processinfo/d0bb2559-084e-4c92-b9e6-29a9abd41f7c.json +0 -1
- package/lib/core/client/components/frame/KLabel.vue +0 -56
- package/lib/core/client/components/team/KTagsPane.vue +0 -35
- package/lib/map/client/leaflet/TiledMapillaryLayer.js +0 -137
- package/lib/map/client/leaflet/TiledMapillaryLayer.js.map +0 -1
- package/lib/map/client/mixins/mixin.time.js +0 -73
- package/lib/map/client/mixins/mixin.time.js.map +0 -1
- package/tests/core/account.test.js +0 -415
- package/tests/core/client.test.js.skip +0 -37
- package/tests/core/config/default.js +0 -97
- package/tests/core/config/email-templates/confirmInvitation/html.ejs +0 -18
- package/tests/core/config/email-templates/identityChange/html.ejs +0 -12
- package/tests/core/config/email-templates/newDevice/html.ejs +0 -7
- package/tests/core/config/email-templates/passwordChange/html.ejs +0 -5
- package/tests/core/config/email-templates/resendVerifySignup/html.ejs +0 -10
- package/tests/core/config/email-templates/resetPwd/html.ejs +0 -5
- package/tests/core/config/email-templates/sendResetPwd/html.ejs +0 -8
- package/tests/core/config/email-templates/verifySignup/html.ejs +0 -3
- package/tests/core/data/10k_most_common_passwords.txt +0 -10000
- package/tests/core/data/logo.png +0 -0
- package/tests/core/hooks.test.js +0 -175
- package/tests/core/index.test.js +0 -418
- package/tests/core/notifications.test.js +0 -465
- package/tests/core/storage.test.js +0 -134
- package/tests/core/team.test.js +0 -610
- package/tests/core/utils.js +0 -59
- package/tests/map/alerts.test.js +0 -554
- package/tests/map/config/default.js +0 -112
- package/tests/map/config/layers.json +0 -37
- package/tests/map/daptiles.test.js +0 -41
- package/tests/map/data/DescribeCoverage.xml +0 -55
- package/tests/map/data/GetCoverage.tif +0 -0
- package/tests/map/data/adsb.observations.json +0 -132
- package/tests/map/data/dataset.grb.das +0 -55
- package/tests/map/data/dataset.grb.dds +0 -17
- package/tests/map/data/dataset.grb.dods +0 -0
- package/tests/map/data/lat_lon_bounds.grb.dods +0 -0
- package/tests/map/data/subdataset.grb.dods +0 -0
- package/tests/map/data/vigicrues.observations.json +0 -47042
- package/tests/map/data/vigicrues.stations.json +0 -15422
- package/tests/map/data/zones.json +0 -1228
- package/tests/map/grid-sources.test.js +0 -304
- package/tests/map/hooks.test.js +0 -96
- package/tests/map/index.test.js +0 -333
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">0% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>0/149</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>0/61</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>0/9</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">0% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>0/139</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
57
|
</div>
|
|
58
|
-
<div class='status-line
|
|
58
|
+
<div class='status-line low'></div>
|
|
59
59
|
<pre><table class="coverage">
|
|
60
60
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
61
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -318,58 +318,58 @@
|
|
|
318
318
|
<a name='L259'></a><a href='#L259'>259</a>
|
|
319
319
|
<a name='L260'></a><a href='#L260'>260</a>
|
|
320
320
|
<a name='L261'></a><a href='#L261'>261</a>
|
|
321
|
-
<a name='L262'></a><a href='#L262'>262</a></td><td class="line-coverage quiet"><span class="cline-any cline-
|
|
322
|
-
<span class="cline-any cline-yes">1x</span>
|
|
323
|
-
<span class="cline-any cline-yes">1x</span>
|
|
321
|
+
<a name='L262'></a><a href='#L262'>262</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
324
322
|
<span class="cline-any cline-neutral"> </span>
|
|
325
323
|
<span class="cline-any cline-neutral"> </span>
|
|
326
324
|
<span class="cline-any cline-neutral"> </span>
|
|
327
325
|
<span class="cline-any cline-neutral"> </span>
|
|
328
326
|
<span class="cline-any cline-neutral"> </span>
|
|
329
327
|
<span class="cline-any cline-neutral"> </span>
|
|
330
|
-
<span class="cline-any cline-yes">1x</span>
|
|
331
328
|
<span class="cline-any cline-neutral"> </span>
|
|
332
329
|
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-no"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
332
|
<span class="cline-any cline-neutral"> </span>
|
|
334
|
-
<span class="cline-any cline-yes">1x</span>
|
|
335
333
|
<span class="cline-any cline-neutral"> </span>
|
|
336
|
-
<span class="cline-any cline-
|
|
334
|
+
<span class="cline-any cline-no"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-no"> </span>
|
|
337
337
|
<span class="cline-any cline-neutral"> </span>
|
|
338
338
|
<span class="cline-any cline-neutral"> </span>
|
|
339
339
|
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-
|
|
340
|
+
<span class="cline-any cline-no"> </span>
|
|
341
341
|
<span class="cline-any cline-neutral"> </span>
|
|
342
342
|
<span class="cline-any cline-neutral"> </span>
|
|
343
343
|
<span class="cline-any cline-neutral"> </span>
|
|
344
344
|
<span class="cline-any cline-no"> </span>
|
|
345
345
|
<span class="cline-any cline-neutral"> </span>
|
|
346
346
|
<span class="cline-any cline-neutral"> </span>
|
|
347
|
-
<span class="cline-any cline-yes">2x</span>
|
|
348
|
-
<span class="cline-any cline-yes">1x</span>
|
|
349
|
-
<span class="cline-any cline-yes">1x</span>
|
|
350
347
|
<span class="cline-any cline-neutral"> </span>
|
|
351
|
-
<span class="cline-any cline-
|
|
352
|
-
<span class="cline-any cline-
|
|
353
|
-
<span class="cline-any cline-
|
|
354
|
-
<span class="cline-any cline-
|
|
355
|
-
<span class="cline-any cline-
|
|
356
|
-
<span class="cline-any cline-
|
|
348
|
+
<span class="cline-any cline-no"> </span>
|
|
349
|
+
<span class="cline-any cline-no"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
352
|
+
<span class="cline-any cline-no"> </span>
|
|
353
|
+
<span class="cline-any cline-no"> </span>
|
|
354
|
+
<span class="cline-any cline-no"> </span>
|
|
355
|
+
<span class="cline-any cline-no"> </span>
|
|
356
|
+
<span class="cline-any cline-no"> </span>
|
|
357
357
|
<span class="cline-any cline-neutral"> </span>
|
|
358
|
-
<span class="cline-any cline-
|
|
359
|
-
<span class="cline-any cline-
|
|
360
|
-
<span class="cline-any cline-
|
|
361
|
-
<span class="cline-any cline-
|
|
362
|
-
<span class="cline-any cline-
|
|
363
|
-
<span class="cline-any cline-
|
|
364
|
-
<span class="cline-any cline-
|
|
358
|
+
<span class="cline-any cline-no"> </span>
|
|
359
|
+
<span class="cline-any cline-no"> </span>
|
|
360
|
+
<span class="cline-any cline-no"> </span>
|
|
361
|
+
<span class="cline-any cline-no"> </span>
|
|
362
|
+
<span class="cline-any cline-no"> </span>
|
|
363
|
+
<span class="cline-any cline-no"> </span>
|
|
364
|
+
<span class="cline-any cline-no"> </span>
|
|
365
365
|
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-
|
|
366
|
+
<span class="cline-any cline-no"> </span>
|
|
367
367
|
<span class="cline-any cline-neutral"> </span>
|
|
368
|
-
<span class="cline-any cline-
|
|
369
|
-
<span class="cline-any cline-
|
|
368
|
+
<span class="cline-any cline-no"> </span>
|
|
369
|
+
<span class="cline-any cline-no"> </span>
|
|
370
370
|
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-
|
|
372
|
-
<span class="cline-any cline-
|
|
371
|
+
<span class="cline-any cline-no"> </span>
|
|
372
|
+
<span class="cline-any cline-no"> </span>
|
|
373
373
|
<span class="cline-any cline-neutral"> </span>
|
|
374
374
|
<span class="cline-any cline-neutral"> </span>
|
|
375
375
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -377,35 +377,35 @@
|
|
|
377
377
|
<span class="cline-any cline-no"> </span>
|
|
378
378
|
<span class="cline-any cline-neutral"> </span>
|
|
379
379
|
<span class="cline-any cline-neutral"> </span>
|
|
380
|
-
<span class="cline-any cline-
|
|
381
|
-
<span class="cline-any cline-
|
|
382
|
-
<span class="cline-any cline-
|
|
383
|
-
<span class="cline-any cline-
|
|
384
|
-
<span class="cline-any cline-
|
|
385
|
-
<span class="cline-any cline-
|
|
386
|
-
<span class="cline-any cline-
|
|
387
|
-
<span class="cline-any cline-
|
|
388
|
-
<span class="cline-any cline-
|
|
380
|
+
<span class="cline-any cline-no"> </span>
|
|
381
|
+
<span class="cline-any cline-no"> </span>
|
|
382
|
+
<span class="cline-any cline-no"> </span>
|
|
383
|
+
<span class="cline-any cline-no"> </span>
|
|
384
|
+
<span class="cline-any cline-no"> </span>
|
|
385
|
+
<span class="cline-any cline-no"> </span>
|
|
386
|
+
<span class="cline-any cline-no"> </span>
|
|
387
|
+
<span class="cline-any cline-no"> </span>
|
|
388
|
+
<span class="cline-any cline-no"> </span>
|
|
389
389
|
<span class="cline-any cline-neutral"> </span>
|
|
390
390
|
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-
|
|
392
|
-
<span class="cline-any cline-
|
|
393
|
-
<span class="cline-any cline-
|
|
394
|
-
<span class="cline-any cline-
|
|
395
|
-
<span class="cline-any cline-
|
|
391
|
+
<span class="cline-any cline-no"> </span>
|
|
392
|
+
<span class="cline-any cline-no"> </span>
|
|
393
|
+
<span class="cline-any cline-no"> </span>
|
|
394
|
+
<span class="cline-any cline-no"> </span>
|
|
395
|
+
<span class="cline-any cline-no"> </span>
|
|
396
396
|
<span class="cline-any cline-neutral"> </span>
|
|
397
397
|
<span class="cline-any cline-neutral"> </span>
|
|
398
|
-
<span class="cline-any cline-
|
|
399
|
-
<span class="cline-any cline-
|
|
398
|
+
<span class="cline-any cline-no"> </span>
|
|
399
|
+
<span class="cline-any cline-no"> </span>
|
|
400
400
|
<span class="cline-any cline-neutral"> </span>
|
|
401
|
-
<span class="cline-any cline-
|
|
401
|
+
<span class="cline-any cline-no"> </span>
|
|
402
402
|
<span class="cline-any cline-neutral"> </span>
|
|
403
403
|
<span class="cline-any cline-neutral"> </span>
|
|
404
404
|
<span class="cline-any cline-neutral"> </span>
|
|
405
|
-
<span class="cline-any cline-
|
|
405
|
+
<span class="cline-any cline-no"> </span>
|
|
406
406
|
<span class="cline-any cline-neutral"> </span>
|
|
407
407
|
<span class="cline-any cline-neutral"> </span>
|
|
408
|
-
<span class="cline-any cline-
|
|
408
|
+
<span class="cline-any cline-no"> </span>
|
|
409
409
|
<span class="cline-any cline-neutral"> </span>
|
|
410
410
|
<span class="cline-any cline-no"> </span>
|
|
411
411
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -416,38 +416,38 @@
|
|
|
416
416
|
<span class="cline-any cline-neutral"> </span>
|
|
417
417
|
<span class="cline-any cline-neutral"> </span>
|
|
418
418
|
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-
|
|
419
|
+
<span class="cline-any cline-no"> </span>
|
|
420
420
|
<span class="cline-any cline-neutral"> </span>
|
|
421
421
|
<span class="cline-any cline-neutral"> </span>
|
|
422
|
-
<span class="cline-any cline-yes">2x</span>
|
|
423
|
-
<span class="cline-any cline-yes">1x</span>
|
|
424
422
|
<span class="cline-any cline-neutral"> </span>
|
|
425
|
-
<span class="cline-any cline-
|
|
426
|
-
<span class="cline-any cline-yes">1x</span>
|
|
423
|
+
<span class="cline-any cline-no"> </span>
|
|
427
424
|
<span class="cline-any cline-neutral"> </span>
|
|
428
|
-
<span class="cline-any cline-
|
|
425
|
+
<span class="cline-any cline-no"> </span>
|
|
426
|
+
<span class="cline-any cline-no"> </span>
|
|
429
427
|
<span class="cline-any cline-neutral"> </span>
|
|
430
|
-
<span class="cline-any cline-
|
|
431
|
-
<span class="cline-any cline-yes">1x</span>
|
|
432
|
-
<span class="cline-any cline-yes">1x</span>
|
|
433
|
-
<span class="cline-any cline-yes">1x</span>
|
|
434
|
-
<span class="cline-any cline-yes">1x</span>
|
|
428
|
+
<span class="cline-any cline-no"> </span>
|
|
435
429
|
<span class="cline-any cline-neutral"> </span>
|
|
436
|
-
<span class="cline-any cline-
|
|
437
|
-
<span class="cline-any cline-
|
|
438
|
-
<span class="cline-any cline-
|
|
439
|
-
<span class="cline-any cline-
|
|
430
|
+
<span class="cline-any cline-no"> </span>
|
|
431
|
+
<span class="cline-any cline-no"> </span>
|
|
432
|
+
<span class="cline-any cline-no"> </span>
|
|
433
|
+
<span class="cline-any cline-no"> </span>
|
|
434
|
+
<span class="cline-any cline-no"> </span>
|
|
435
|
+
<span class="cline-any cline-neutral"> </span>
|
|
436
|
+
<span class="cline-any cline-no"> </span>
|
|
437
|
+
<span class="cline-any cline-no"> </span>
|
|
438
|
+
<span class="cline-any cline-no"> </span>
|
|
439
|
+
<span class="cline-any cline-no"> </span>
|
|
440
440
|
<span class="cline-any cline-neutral"> </span>
|
|
441
441
|
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-
|
|
443
|
-
<span class="cline-any cline-
|
|
444
|
-
<span class="cline-any cline-
|
|
442
|
+
<span class="cline-any cline-no"> </span>
|
|
443
|
+
<span class="cline-any cline-no"> </span>
|
|
444
|
+
<span class="cline-any cline-no"> </span>
|
|
445
445
|
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-
|
|
447
|
-
<span class="cline-any cline-
|
|
448
|
-
<span class="cline-any cline-
|
|
449
|
-
<span class="cline-any cline-
|
|
450
|
-
<span class="cline-any cline-
|
|
446
|
+
<span class="cline-any cline-no"> </span>
|
|
447
|
+
<span class="cline-any cline-no"> </span>
|
|
448
|
+
<span class="cline-any cline-no"> </span>
|
|
449
|
+
<span class="cline-any cline-no"> </span>
|
|
450
|
+
<span class="cline-any cline-no"> </span>
|
|
451
451
|
<span class="cline-any cline-neutral"> </span>
|
|
452
452
|
<span class="cline-any cline-neutral"> </span>
|
|
453
453
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -463,97 +463,97 @@
|
|
|
463
463
|
<span class="cline-any cline-neutral"> </span>
|
|
464
464
|
<span class="cline-any cline-neutral"> </span>
|
|
465
465
|
<span class="cline-any cline-neutral"> </span>
|
|
466
|
-
<span class="cline-any cline-
|
|
467
|
-
<span class="cline-any cline-
|
|
468
|
-
<span class="cline-any cline-
|
|
469
|
-
<span class="cline-any cline-
|
|
466
|
+
<span class="cline-any cline-no"> </span>
|
|
467
|
+
<span class="cline-any cline-no"> </span>
|
|
468
|
+
<span class="cline-any cline-no"> </span>
|
|
469
|
+
<span class="cline-any cline-no"> </span>
|
|
470
470
|
<span class="cline-any cline-neutral"> </span>
|
|
471
471
|
<span class="cline-any cline-neutral"> </span>
|
|
472
|
-
<span class="cline-any cline-
|
|
473
|
-
<span class="cline-any cline-
|
|
474
|
-
<span class="cline-any cline-
|
|
475
|
-
<span class="cline-any cline-
|
|
472
|
+
<span class="cline-any cline-no"> </span>
|
|
473
|
+
<span class="cline-any cline-no"> </span>
|
|
474
|
+
<span class="cline-any cline-no"> </span>
|
|
475
|
+
<span class="cline-any cline-no"> </span>
|
|
476
476
|
<span class="cline-any cline-neutral"> </span>
|
|
477
477
|
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-
|
|
479
|
-
<span class="cline-any cline-
|
|
480
|
-
<span class="cline-any cline-
|
|
481
|
-
<span class="cline-any cline-
|
|
478
|
+
<span class="cline-any cline-no"> </span>
|
|
479
|
+
<span class="cline-any cline-no"> </span>
|
|
480
|
+
<span class="cline-any cline-no"> </span>
|
|
481
|
+
<span class="cline-any cline-no"> </span>
|
|
482
482
|
<span class="cline-any cline-neutral"> </span>
|
|
483
|
-
<span class="cline-any cline-
|
|
484
|
-
<span class="cline-any cline-
|
|
485
|
-
<span class="cline-any cline-
|
|
486
|
-
<span class="cline-any cline-
|
|
483
|
+
<span class="cline-any cline-no"> </span>
|
|
484
|
+
<span class="cline-any cline-no"> </span>
|
|
485
|
+
<span class="cline-any cline-no"> </span>
|
|
486
|
+
<span class="cline-any cline-no"> </span>
|
|
487
487
|
<span class="cline-any cline-neutral"> </span>
|
|
488
|
-
<span class="cline-any cline-
|
|
488
|
+
<span class="cline-any cline-no"> </span>
|
|
489
489
|
<span class="cline-any cline-no"> </span>
|
|
490
490
|
<span class="cline-any cline-no"> </span>
|
|
491
491
|
<span class="cline-any cline-no"> </span>
|
|
492
492
|
<span class="cline-any cline-neutral"> </span>
|
|
493
493
|
<span class="cline-any cline-neutral"> </span>
|
|
494
494
|
<span class="cline-any cline-neutral"> </span>
|
|
495
|
-
<span class="cline-any cline-
|
|
496
|
-
<span class="cline-any cline-
|
|
495
|
+
<span class="cline-any cline-no"> </span>
|
|
496
|
+
<span class="cline-any cline-no"> </span>
|
|
497
497
|
<span class="cline-any cline-neutral"> </span>
|
|
498
498
|
<span class="cline-any cline-neutral"> </span>
|
|
499
499
|
<span class="cline-any cline-neutral"> </span>
|
|
500
500
|
<span class="cline-any cline-neutral"> </span>
|
|
501
|
-
<span class="cline-any cline-
|
|
501
|
+
<span class="cline-any cline-no"> </span>
|
|
502
502
|
<span class="cline-any cline-no"> </span>
|
|
503
503
|
<span class="cline-any cline-neutral"> </span>
|
|
504
|
-
<span class="cline-any cline-
|
|
504
|
+
<span class="cline-any cline-no"> </span>
|
|
505
505
|
<span class="cline-any cline-no"> </span>
|
|
506
506
|
<span class="cline-any cline-neutral"> </span>
|
|
507
507
|
<span class="cline-any cline-neutral"> </span>
|
|
508
508
|
<span class="cline-any cline-neutral"> </span>
|
|
509
509
|
<span class="cline-any cline-neutral"> </span>
|
|
510
510
|
<span class="cline-any cline-neutral"> </span>
|
|
511
|
-
<span class="cline-any cline-
|
|
512
|
-
<span class="cline-any cline-
|
|
513
|
-
<span class="cline-any cline-
|
|
511
|
+
<span class="cline-any cline-no"> </span>
|
|
512
|
+
<span class="cline-any cline-no"> </span>
|
|
513
|
+
<span class="cline-any cline-no"> </span>
|
|
514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
515
|
+
<span class="cline-any cline-no"> </span>
|
|
516
|
+
<span class="cline-any cline-no"> </span>
|
|
517
|
+
<span class="cline-any cline-no"> </span>
|
|
514
518
|
<span class="cline-any cline-neutral"> </span>
|
|
515
|
-
<span class="cline-any cline-yes">1x</span>
|
|
516
|
-
<span class="cline-any cline-yes">1x</span>
|
|
517
|
-
<span class="cline-any cline-yes">1x</span>
|
|
518
519
|
<span class="cline-any cline-neutral"> </span>
|
|
519
520
|
<span class="cline-any cline-neutral"> </span>
|
|
520
|
-
<span class="cline-any cline-yes">2x</span>
|
|
521
521
|
<span class="cline-any cline-neutral"> </span>
|
|
522
|
-
<span class="cline-any cline-
|
|
523
|
-
<span class="cline-any cline-
|
|
524
|
-
<span class="cline-any cline-
|
|
525
|
-
<span class="cline-any cline-
|
|
526
|
-
<span class="cline-any cline-
|
|
522
|
+
<span class="cline-any cline-no"> </span>
|
|
523
|
+
<span class="cline-any cline-no"> </span>
|
|
524
|
+
<span class="cline-any cline-no"> </span>
|
|
525
|
+
<span class="cline-any cline-no"> </span>
|
|
526
|
+
<span class="cline-any cline-no"> </span>
|
|
527
|
+
<span class="cline-any cline-neutral"> </span>
|
|
528
|
+
<span class="cline-any cline-no"> </span>
|
|
529
|
+
<span class="cline-any cline-no"> </span>
|
|
527
530
|
<span class="cline-any cline-neutral"> </span>
|
|
528
|
-
<span class="cline-any cline-
|
|
529
|
-
<span class="cline-any cline-
|
|
531
|
+
<span class="cline-any cline-no"> </span>
|
|
532
|
+
<span class="cline-any cline-no"> </span>
|
|
533
|
+
<span class="cline-any cline-no"> </span>
|
|
534
|
+
<span class="cline-any cline-no"> </span>
|
|
535
|
+
<span class="cline-any cline-no"> </span>
|
|
536
|
+
<span class="cline-any cline-no"> </span>
|
|
530
537
|
<span class="cline-any cline-neutral"> </span>
|
|
531
|
-
<span class="cline-any cline-yes">1x</span>
|
|
532
|
-
<span class="cline-any cline-yes">1x</span>
|
|
533
|
-
<span class="cline-any cline-yes">1x</span>
|
|
534
|
-
<span class="cline-any cline-yes">1x</span>
|
|
535
|
-
<span class="cline-any cline-yes">1x</span>
|
|
536
|
-
<span class="cline-any cline-yes">1x</span>
|
|
537
538
|
<span class="cline-any cline-neutral"> </span>
|
|
539
|
+
<span class="cline-any cline-no"> </span>
|
|
540
|
+
<span class="cline-any cline-no"> </span>
|
|
538
541
|
<span class="cline-any cline-neutral"> </span>
|
|
539
|
-
<span class="cline-any cline-yes">1x</span>
|
|
540
|
-
<span class="cline-any cline-yes">1x</span>
|
|
541
542
|
<span class="cline-any cline-neutral"> </span>
|
|
543
|
+
<span class="cline-any cline-no"> </span>
|
|
544
|
+
<span class="cline-any cline-no"> </span>
|
|
542
545
|
<span class="cline-any cline-neutral"> </span>
|
|
543
|
-
<span class="cline-any cline-yes">1x</span>
|
|
544
|
-
<span class="cline-any cline-yes">1x</span>
|
|
545
546
|
<span class="cline-any cline-neutral"> </span>
|
|
546
547
|
<span class="cline-any cline-neutral"> </span>
|
|
547
|
-
<span class="cline-any cline-yes">2x</span>
|
|
548
548
|
<span class="cline-any cline-neutral"> </span>
|
|
549
549
|
<span class="cline-any cline-neutral"> </span>
|
|
550
550
|
<span class="cline-any cline-neutral"> </span>
|
|
551
551
|
<span class="cline-any cline-neutral"> </span>
|
|
552
|
-
<span class="cline-any cline-
|
|
553
|
-
<span class="cline-any cline-
|
|
554
|
-
<span class="cline-any cline-
|
|
552
|
+
<span class="cline-any cline-no"> </span>
|
|
553
|
+
<span class="cline-any cline-no"> </span>
|
|
554
|
+
<span class="cline-any cline-no"> </span>
|
|
555
555
|
<span class="cline-any cline-neutral"> </span>
|
|
556
|
-
<span class="cline-any cline-
|
|
556
|
+
<span class="cline-any cline-no"> </span>
|
|
557
557
|
<span class="cline-any cline-neutral"> </span>
|
|
558
558
|
<span class="cline-any cline-neutral"> </span>
|
|
559
559
|
<span class="cline-any cline-no"> </span>
|
|
@@ -576,7 +576,7 @@
|
|
|
576
576
|
<span class="cline-any cline-neutral"> </span>
|
|
577
577
|
<span class="cline-any cline-neutral"> </span>
|
|
578
578
|
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-
|
|
579
|
+
<span class="cline-any cline-no"> </span>
|
|
580
580
|
<span class="cline-any cline-neutral"> </span>
|
|
581
581
|
<span class="cline-any cline-neutral"> </span>
|
|
582
582
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
|
|
@@ -587,135 +587,135 @@ import * as dap from './opendap-utils'
|
|
|
587
587
|
|
|
588
588
|
// only assumes grid variable is a regular grid w.r.t lat/lon
|
|
589
589
|
export class OpenDapGridSource extends GridSource {
|
|
590
|
-
|
|
591
|
-
return 'opendap'
|
|
590
|
+
<span class="fstat-no" title="function not covered" > st</span>atic getKey () {
|
|
591
|
+
<span class="cstat-no" title="statement not covered" > return 'opendap'</span>
|
|
592
592
|
}
|
|
593
593
|
|
|
594
|
-
|
|
595
|
-
super(options)
|
|
594
|
+
<span class="fstat-no" title="function not covered" > co</span>nstructor (options) {
|
|
595
|
+
<span class="cstat-no" title="statement not covered" > super(options)</span>
|
|
596
596
|
|
|
597
|
-
this.usable = false
|
|
597
|
+
<span class="cstat-no" title="statement not covered" > this.usable = false</span>
|
|
598
598
|
}
|
|
599
599
|
|
|
600
|
-
|
|
601
|
-
return this.usable ? [this.minMaxLat[0], this.minMaxLon[0], this.minMaxLat[1], this.minMaxLon[1]] :
|
|
600
|
+
<span class="fstat-no" title="function not covered" > ge</span>tBBox () {
|
|
601
|
+
<span class="cstat-no" title="statement not covered" > return this.usable ? [this.minMaxLat[0], this.minMaxLon[0], this.minMaxLat[1], this.minMaxLon[1]] : null</span>
|
|
602
602
|
}
|
|
603
603
|
|
|
604
|
-
<span class="fstat-no" title="function not covered" >
|
|
605
|
-
<span class="cstat-no" title="statement not covered" > return
|
|
604
|
+
<span class="fstat-no" title="function not covered" > ge</span>tDataBounds () {
|
|
605
|
+
<span class="cstat-no" title="statement not covered" > return this.usable ? this.minMaxVal : null</span>
|
|
606
606
|
}
|
|
607
607
|
|
|
608
|
-
|
|
609
|
-
this.usable = false
|
|
610
|
-
++this.sourceKey
|
|
608
|
+
<span class="fstat-no" title="function not covered" > as</span>ync setup (config) {
|
|
609
|
+
<span class="cstat-no" title="statement not covered" > this.usable = false</span>
|
|
610
|
+
<span class="cstat-no" title="statement not covered" > ++this.sourceKey</span>
|
|
611
611
|
|
|
612
|
-
this.descriptor = null
|
|
613
|
-
this.indices = null
|
|
614
|
-
this.latCount = 0
|
|
615
|
-
this.latIndex = 0
|
|
616
|
-
this.lonCount = 0
|
|
617
|
-
this.lonIndex = 0
|
|
612
|
+
<span class="cstat-no" title="statement not covered" > this.descriptor = null</span>
|
|
613
|
+
<span class="cstat-no" title="statement not covered" > this.indices = null</span>
|
|
614
|
+
<span class="cstat-no" title="statement not covered" > this.latCount = 0</span>
|
|
615
|
+
<span class="cstat-no" title="statement not covered" > this.latIndex = 0</span>
|
|
616
|
+
<span class="cstat-no" title="statement not covered" > this.lonCount = 0</span>
|
|
617
|
+
<span class="cstat-no" title="statement not covered" > this.lonIndex = 0</span>
|
|
618
618
|
|
|
619
|
-
this.minMaxLat = null
|
|
620
|
-
this.minMaxLon = null
|
|
621
|
-
this.minMaxVal = null
|
|
622
|
-
this.latStep = 0
|
|
623
|
-
this.lonStep = 0
|
|
624
|
-
this.latSortOrder = SortOrder.ASCENDING
|
|
625
|
-
this.lonSortOrder = SortOrder.ASCENDING
|
|
619
|
+
<span class="cstat-no" title="statement not covered" > this.minMaxLat = null</span>
|
|
620
|
+
<span class="cstat-no" title="statement not covered" > this.minMaxLon = null</span>
|
|
621
|
+
<span class="cstat-no" title="statement not covered" > this.minMaxVal = null</span>
|
|
622
|
+
<span class="cstat-no" title="statement not covered" > this.latStep = 0</span>
|
|
623
|
+
<span class="cstat-no" title="statement not covered" > this.lonStep = 0</span>
|
|
624
|
+
<span class="cstat-no" title="statement not covered" > this.latSortOrder = SortOrder.ASCENDING</span>
|
|
625
|
+
<span class="cstat-no" title="statement not covered" > this.lonSortOrder = SortOrder.ASCENDING</span>
|
|
626
626
|
|
|
627
|
-
this.canUseGrid2D = false
|
|
627
|
+
<span class="cstat-no" title="statement not covered" > this.canUseGrid2D = false</span>
|
|
628
628
|
|
|
629
|
-
this.config = config
|
|
630
|
-
this.converter = unitConverters[this.config.converter]
|
|
629
|
+
<span class="cstat-no" title="statement not covered" > this.config = config</span>
|
|
630
|
+
<span class="cstat-no" title="statement not covered" > this.converter = unitConverters[this.config.converter]</span>
|
|
631
631
|
|
|
632
|
-
try {
|
|
633
|
-
this.descriptor = await dap.fetchDescriptor(this.config.url)
|
|
632
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
633
|
+
<span class="cstat-no" title="statement not covered" > this.descriptor = await dap.fetchDescriptor(this.config.url)</span>
|
|
634
634
|
} catch (error) {
|
|
635
635
|
// fetching may fail, in this case the source
|
|
636
636
|
// will remain in unusable state
|
|
637
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
638
|
-
<span class="cstat-no" title="statement not covered" > console.
|
|
637
|
+
<span class="cstat-no" title="statement not covered" > this.descriptor = null</span>
|
|
638
|
+
<span class="cstat-no" title="statement not covered" > console.log(`Failed fetching opendap descriptor from ${this.config.url}`)</span>
|
|
639
639
|
}
|
|
640
640
|
|
|
641
|
-
|
|
642
|
-
const varIsGrid = dap.variableIsGrid(this.descriptor, this.config.variable)
|
|
643
|
-
const latIsArray = dap.variableIsArray(this.descriptor, this.config.latitude)
|
|
644
|
-
const lonIsArray = dap.variableIsArray(this.descriptor, this.config.longitude)
|
|
645
|
-
|
|
646
|
-
this.latIndex = dap.getGridDimensionIndex(this.descriptor, this.config.variable, this.config.latitude)
|
|
647
|
-
this.latCount = dap.getGridDimensionLength(this.descriptor, this.config.variable, this.latIndex)
|
|
648
|
-
this.lonIndex = dap.getGridDimensionIndex(this.descriptor, this.config.variable, this.config.longitude)
|
|
649
|
-
this.lonCount = dap.getGridDimensionLength(this.descriptor, this.config.variable, this.lonIndex)
|
|
641
|
+
<span class="cstat-no" title="statement not covered" > if (this.descriptor) {</span>
|
|
642
|
+
const varIsGrid = <span class="cstat-no" title="statement not covered" >dap.variableIsGrid(this.descriptor, this.config.variable)</span>
|
|
643
|
+
const latIsArray = <span class="cstat-no" title="statement not covered" >dap.variableIsArray(this.descriptor, this.config.latitude)</span>
|
|
644
|
+
const lonIsArray = <span class="cstat-no" title="statement not covered" >dap.variableIsArray(this.descriptor, this.config.longitude)</span>
|
|
645
|
+
<span class="cstat-no" title="statement not covered" > if (varIsGrid && latIsArray && lonIsArray) {</span>
|
|
646
|
+
<span class="cstat-no" title="statement not covered" > this.latIndex = dap.getGridDimensionIndex(this.descriptor, this.config.variable, this.config.latitude)</span>
|
|
647
|
+
<span class="cstat-no" title="statement not covered" > this.latCount = dap.getGridDimensionLength(this.descriptor, this.config.variable, this.latIndex)</span>
|
|
648
|
+
<span class="cstat-no" title="statement not covered" > this.lonIndex = dap.getGridDimensionIndex(this.descriptor, this.config.variable, this.config.longitude)</span>
|
|
649
|
+
<span class="cstat-no" title="statement not covered" > this.lonCount = dap.getGridDimensionLength(this.descriptor, this.config.variable, this.lonIndex)</span>
|
|
650
650
|
|
|
651
651
|
// build grid indexing array
|
|
652
|
-
const dimensions = await this.getDimensionsAsIndices()
|
|
653
|
-
dimensions[this.config.latitude] = `0:${this.latCount - 1}
|
|
654
|
-
dimensions[this.config.longitude] = `0:${this.lonCount - 1}
|
|
655
|
-
this.indices = dap.makeGridIndices(this.descriptor, this.config.variable, dimensions)
|
|
656
|
-
|
|
652
|
+
const dimensions = <span class="cstat-no" title="statement not covered" >await this.getDimensionsAsIndices()</span>
|
|
653
|
+
<span class="cstat-no" title="statement not covered" > dimensions[this.config.latitude] = `0:${this.latCount - 1}`</span>
|
|
654
|
+
<span class="cstat-no" title="statement not covered" > dimensions[this.config.longitude] = `0:${this.lonCount - 1}`</span>
|
|
655
|
+
<span class="cstat-no" title="statement not covered" > this.indices = dap.makeGridIndices(this.descriptor, this.config.variable, dimensions)</span>
|
|
656
|
+
<span class="cstat-no" title="statement not covered" > if (this.indices.length !== 0) {</span>
|
|
657
657
|
// if lat and lon dimensions are the last in the query, we can
|
|
658
658
|
// use a Grid2D directly (cheaper on cpu)
|
|
659
|
-
const last = this.indices.length - 1
|
|
660
|
-
|
|
659
|
+
const last = <span class="cstat-no" title="statement not covered" >this.indices.length - 1</span>
|
|
660
|
+
<span class="cstat-no" title="statement not covered" > if ((this.latIndex === last && this.lonIndex === (last - 1)) ||</span>
|
|
661
661
|
(this.latIndex === (last - 1) && this.lonIndex === last)) {
|
|
662
|
-
this.canUseGrid2D = true
|
|
662
|
+
<span class="cstat-no" title="statement not covered" > this.canUseGrid2D = true</span>
|
|
663
663
|
}
|
|
664
664
|
|
|
665
665
|
// TODO: store metadata somewhere instead of requesting the whole variable
|
|
666
|
-
await this.computeMetaDataFromData()
|
|
666
|
+
<span class="cstat-no" title="statement not covered" > await this.computeMetaDataFromData()</span>
|
|
667
667
|
|
|
668
668
|
// flag source as usable
|
|
669
|
-
this.usable = true
|
|
669
|
+
<span class="cstat-no" title="statement not covered" > this.usable = true</span>
|
|
670
670
|
} else {
|
|
671
|
-
<span class="cstat-no" title="statement not covered" > console.
|
|
671
|
+
<span class="cstat-no" title="statement not covered" > console.log("Couldn't create index array for grid")</span>
|
|
672
672
|
}
|
|
673
673
|
} else {
|
|
674
|
-
<span class="cstat-no" title="statement not covered" > if (!varIsGrid) <span class="cstat-no" title="statement not covered" >console.
|
|
675
|
-
<span class="cstat-no" title="statement not covered" > if (!latIsArray) <span class="cstat-no" title="statement not covered" >console.
|
|
676
|
-
<span class="cstat-no" title="statement not covered" > if (!lonIsArray) <span class="cstat-no" title="statement not covered" >console.
|
|
674
|
+
<span class="cstat-no" title="statement not covered" > if (!varIsGrid) <span class="cstat-no" title="statement not covered" >console.log(`${this.config.variable} is not a grid variable!`)</span></span>
|
|
675
|
+
<span class="cstat-no" title="statement not covered" > if (!latIsArray) <span class="cstat-no" title="statement not covered" >console.log(`${this.config.latitude} is expected to be an array variable!`)</span></span>
|
|
676
|
+
<span class="cstat-no" title="statement not covered" > if (!lonIsArray) <span class="cstat-no" title="statement not covered" >console.log(`${this.config.longitude} is expected to be an array variable!`)</span></span>
|
|
677
677
|
}
|
|
678
678
|
}
|
|
679
679
|
|
|
680
|
-
this.dataChanged()
|
|
680
|
+
<span class="cstat-no" title="statement not covered" > this.dataChanged()</span>
|
|
681
681
|
}
|
|
682
682
|
|
|
683
|
-
|
|
684
|
-
|
|
683
|
+
<span class="fstat-no" title="function not covered" > as</span>ync fetch (abort, bbox, resolution) {
|
|
684
|
+
<span class="cstat-no" title="statement not covered" > if (!this.usable) { <span class="cstat-no" title="statement not covered" >return null </span>}</span>
|
|
685
685
|
|
|
686
|
-
const query = this.makeQuery(bbox, resolution)
|
|
687
|
-
|
|
686
|
+
const query = <span class="cstat-no" title="statement not covered" >this.makeQuery(bbox, resolution)</span>
|
|
687
|
+
<span class="cstat-no" title="statement not covered" > if (!query) { <span class="cstat-no" title="statement not covered" >return null </span>}</span>
|
|
688
688
|
|
|
689
|
-
const sourceKey = this.sourceKey
|
|
689
|
+
const sourceKey = <span class="cstat-no" title="statement not covered" >this.sourceKey</span>
|
|
690
690
|
|
|
691
|
-
const data = await dap.fetchData(query, abort)
|
|
692
|
-
const req = data[this.config.variable]
|
|
693
|
-
const valData = req[0]
|
|
694
|
-
const latData = req[this.latIndex + 1]
|
|
695
|
-
const lonData = req[this.lonIndex + 1]
|
|
691
|
+
const data = <span class="cstat-no" title="statement not covered" >await dap.fetchData(query, abort)</span>
|
|
692
|
+
const req = <span class="cstat-no" title="statement not covered" >data[this.config.variable]</span>
|
|
693
|
+
const valData = <span class="cstat-no" title="statement not covered" >req[0]</span>
|
|
694
|
+
const latData = <span class="cstat-no" title="statement not covered" >req[this.latIndex + 1]</span>
|
|
695
|
+
const lonData = <span class="cstat-no" title="statement not covered" >req[this.lonIndex + 1]</span>
|
|
696
696
|
|
|
697
|
-
const lat0 = latData[0]
|
|
698
|
-
const lat1 = latData[latData.length - 1]
|
|
699
|
-
let lon0 = lonData[0]
|
|
700
|
-
let lon1 = lonData[lonData.length - 1]
|
|
697
|
+
const lat0 = <span class="cstat-no" title="statement not covered" >latData[0]</span>
|
|
698
|
+
const lat1 = <span class="cstat-no" title="statement not covered" >latData[latData.length - 1]</span>
|
|
699
|
+
let lon0 = <span class="cstat-no" title="statement not covered" >lonData[0]</span>
|
|
700
|
+
let lon1 = <span class="cstat-no" title="statement not covered" >lonData[lonData.length - 1]</span>
|
|
701
701
|
|
|
702
702
|
// normalize bounds
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
const databbox = [Math.min(lat0, lat1), Math.min(lon0, lon1), Math.max(lat0, lat1), Math.max(lon0, lon1)]
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
const indices = this.indices.slice(0, this.indices.length - 2)
|
|
709
|
-
indices.fill(0)
|
|
710
|
-
const subgrid = dap.getGridValue(valData, indices)
|
|
711
|
-
return new Grid2D(
|
|
703
|
+
<span class="cstat-no" title="statement not covered" > if (lon0 > 180.0) <span class="cstat-no" title="statement not covered" >lon0 -= 360.0</span></span>
|
|
704
|
+
<span class="cstat-no" title="statement not covered" > if (lon1 > 180.0) <span class="cstat-no" title="statement not covered" >lon1 -= 360.0</span></span>
|
|
705
|
+
const databbox = <span class="cstat-no" title="statement not covered" >[Math.min(lat0, lat1), Math.min(lon0, lon1), Math.max(lat0, lat1), Math.max(lon0, lon1)]</span>
|
|
706
|
+
|
|
707
|
+
<span class="cstat-no" title="statement not covered" > if (this.canUseGrid2D) {</span>
|
|
708
|
+
const indices = <span class="cstat-no" title="statement not covered" >this.indices.slice(0, this.indices.length - 2)</span>
|
|
709
|
+
<span class="cstat-no" title="statement not covered" > indices.fill(0)</span>
|
|
710
|
+
const subgrid = <span class="cstat-no" title="statement not covered" >dap.getGridValue(valData, indices)</span>
|
|
711
|
+
<span class="cstat-no" title="statement not covered" > return new Grid2D(</span>
|
|
712
712
|
sourceKey,
|
|
713
713
|
databbox, [latData.length, lonData.length],
|
|
714
714
|
subgrid, this.latIndex < this.lonIndex, this.latSortOrder, this.lonSortOrder,
|
|
715
715
|
this.nodata, this.converter)
|
|
716
716
|
}
|
|
717
717
|
|
|
718
|
-
<span class="cstat-no" title="statement not covered" > return
|
|
718
|
+
<span class="cstat-no" title="statement not covered" > return new dap.OpenDAPGrid(</span>
|
|
719
719
|
sourceKey,
|
|
720
720
|
databbox, [latData.length, lonData.length],
|
|
721
721
|
valData, this.indices, this.latIndex, this.lonIndex,
|
|
@@ -723,121 +723,121 @@ export class OpenDapGridSource extends GridSource {
|
|
|
723
723
|
this.nodata, this.converter)
|
|
724
724
|
}
|
|
725
725
|
|
|
726
|
-
|
|
727
|
-
const reqMinLat = bbox[0]
|
|
728
|
-
const reqMinLon = bbox[1]
|
|
729
|
-
const reqMaxLat = bbox[2]
|
|
730
|
-
const reqMaxLon = bbox[3]
|
|
726
|
+
<span class="fstat-no" title="function not covered" > ma</span>keQuery (bbox, resolution) {
|
|
727
|
+
const reqMinLat = <span class="cstat-no" title="statement not covered" >bbox[0]</span>
|
|
728
|
+
const reqMinLon = <span class="cstat-no" title="statement not covered" >bbox[1]</span>
|
|
729
|
+
const reqMaxLat = <span class="cstat-no" title="statement not covered" >bbox[2]</span>
|
|
730
|
+
const reqMaxLon = <span class="cstat-no" title="statement not covered" >bbox[3]</span>
|
|
731
731
|
|
|
732
732
|
// compute coordinates indices (assume lat/lon both ascending)
|
|
733
|
-
let iMinLat = Math.floor((reqMinLat - this.minMaxLat[0]) / this.latStep)
|
|
734
|
-
let iMinLon = Math.floor((reqMinLon - this.minMaxLon[0]) / this.lonStep)
|
|
735
|
-
let iMaxLat = Math.ceil((reqMaxLat - this.minMaxLat[0]) / this.latStep)
|
|
736
|
-
let iMaxLon = Math.ceil((reqMaxLon - this.minMaxLon[0]) / this.lonStep)
|
|
733
|
+
let iMinLat = <span class="cstat-no" title="statement not covered" >Math.floor((reqMinLat - this.minMaxLat[0]) / this.latStep)</span>
|
|
734
|
+
let iMinLon = <span class="cstat-no" title="statement not covered" >Math.floor((reqMinLon - this.minMaxLon[0]) / this.lonStep)</span>
|
|
735
|
+
let iMaxLat = <span class="cstat-no" title="statement not covered" >Math.ceil((reqMaxLat - this.minMaxLat[0]) / this.latStep)</span>
|
|
736
|
+
let iMaxLon = <span class="cstat-no" title="statement not covered" >Math.ceil((reqMaxLon - this.minMaxLon[0]) / this.lonStep)</span>
|
|
737
737
|
|
|
738
738
|
// clamp indices
|
|
739
|
-
iMinLat = Math.min(Math.max(iMinLat, 0), this.latCount - 1)
|
|
740
|
-
iMinLon = Math.min(Math.max(iMinLon, 0), this.lonCount - 1)
|
|
741
|
-
iMaxLat = Math.min(Math.max(iMaxLat, 0), this.latCount - 1)
|
|
742
|
-
iMaxLon = Math.min(Math.max(iMaxLon, 0), this.lonCount - 1)
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
const tmp = iMinLat
|
|
746
|
-
iMinLat = this.latCount - 1 - iMaxLat
|
|
747
|
-
iMaxLat = this.latCount - 1 - tmp
|
|
739
|
+
<span class="cstat-no" title="statement not covered" > iMinLat = Math.min(Math.max(iMinLat, 0), this.latCount - 1)</span>
|
|
740
|
+
<span class="cstat-no" title="statement not covered" > iMinLon = Math.min(Math.max(iMinLon, 0), this.lonCount - 1)</span>
|
|
741
|
+
<span class="cstat-no" title="statement not covered" > iMaxLat = Math.min(Math.max(iMaxLat, 0), this.latCount - 1)</span>
|
|
742
|
+
<span class="cstat-no" title="statement not covered" > iMaxLon = Math.min(Math.max(iMaxLon, 0), this.lonCount - 1)</span>
|
|
743
|
+
|
|
744
|
+
<span class="cstat-no" title="statement not covered" > if (this.latSortOrder === SortOrder.DESCENDING) {</span>
|
|
745
|
+
const tmp = <span class="cstat-no" title="statement not covered" >iMinLat</span>
|
|
746
|
+
<span class="cstat-no" title="statement not covered" > iMinLat = this.latCount - 1 - iMaxLat</span>
|
|
747
|
+
<span class="cstat-no" title="statement not covered" > iMaxLat = this.latCount - 1 - tmp</span>
|
|
748
748
|
}
|
|
749
|
-
|
|
749
|
+
<span class="cstat-no" title="statement not covered" > if (this.lonSortOrder === SortOrder.DESCENDING) {</span>
|
|
750
750
|
const tmp = <span class="cstat-no" title="statement not covered" >iMinLon</span>
|
|
751
|
-
<span class="cstat-no" title="statement not covered" > iMinLon =
|
|
752
|
-
<span class="cstat-no" title="statement not covered" > iMaxLon =
|
|
751
|
+
<span class="cstat-no" title="statement not covered" > iMinLon = this.lonCount - 1 - iMaxLon</span>
|
|
752
|
+
<span class="cstat-no" title="statement not covered" > iMaxLon = this.lonCount - 1 - tmp</span>
|
|
753
753
|
}
|
|
754
754
|
|
|
755
755
|
// compute ideal stride according to requested resolution
|
|
756
|
-
const strideLat = Math.max(1, Math.floor(resolution[0] / this.latStep))
|
|
757
|
-
const strideLon = Math.max(1, Math.floor(resolution[1] / this.lonStep))
|
|
756
|
+
const strideLat = <span class="cstat-no" title="statement not covered" >Math.max(1, Math.floor(resolution[0] / this.latStep))</span>
|
|
757
|
+
const strideLon = <span class="cstat-no" title="statement not covered" >Math.max(1, Math.floor(resolution[1] / this.lonStep))</span>
|
|
758
758
|
|
|
759
759
|
// eventually adjust iMLax{Lat,Lon} when using a stride != 1
|
|
760
760
|
// this ensure we'll get our initial iMin/iMax range no matter
|
|
761
761
|
// what the stride is
|
|
762
|
-
|
|
763
|
-
<span class="cstat-no" title="statement not covered" > iMaxLat =
|
|
762
|
+
<span class="cstat-no" title="statement not covered" > if (strideLat > 1) {</span>
|
|
763
|
+
<span class="cstat-no" title="statement not covered" > iMaxLat = Math.min(this.latCount - 1, iMaxLat + strideLat)</span>
|
|
764
764
|
}
|
|
765
|
-
|
|
766
|
-
<span class="cstat-no" title="statement not covered" > iMaxLon =
|
|
765
|
+
<span class="cstat-no" title="statement not covered" > if (strideLon > 1) {</span>
|
|
766
|
+
<span class="cstat-no" title="statement not covered" > iMaxLon = Math.min(this.lonCount - 1, iMaxLon + strideLon)</span>
|
|
767
767
|
}
|
|
768
768
|
|
|
769
769
|
// These are indices to index in the opendap variable grid, we're filling the
|
|
770
770
|
// latitude/longitude indices with correct values to cover the requested
|
|
771
771
|
// bounding box with the requested resolution
|
|
772
|
-
const indices = [...this.indices]
|
|
773
|
-
indices[this.latIndex] = `${iMinLat}:${strideLat}:${iMaxLat}
|
|
774
|
-
indices[this.lonIndex] = `${iMinLon}:${strideLon}:${iMaxLon}
|
|
772
|
+
const indices = <span class="cstat-no" title="statement not covered" >[...this.indices]</span>
|
|
773
|
+
<span class="cstat-no" title="statement not covered" > indices[this.latIndex] = `${iMinLat}:${strideLat}:${iMaxLat}`</span>
|
|
774
|
+
<span class="cstat-no" title="statement not covered" > indices[this.lonIndex] = `${iMinLon}:${strideLon}:${iMaxLon}`</span>
|
|
775
775
|
|
|
776
|
-
const conf = {}
|
|
777
|
-
conf[this.config.variable] = indices.join('][')
|
|
778
|
-
return dap.makeQuery(this.config.url, conf)
|
|
776
|
+
const conf = <span class="cstat-no" title="statement not covered" >{}</span>
|
|
777
|
+
<span class="cstat-no" title="statement not covered" > conf[this.config.variable] = indices.join('][')</span>
|
|
778
|
+
<span class="cstat-no" title="statement not covered" > return dap.makeQuery(this.config.url, conf)</span>
|
|
779
779
|
}
|
|
780
780
|
|
|
781
|
-
|
|
781
|
+
<span class="fstat-no" title="function not covered" > as</span>ync computeMetaDataFromData () {
|
|
782
782
|
// Query first and last latitude and longitude
|
|
783
|
-
const query = {}
|
|
784
|
-
query[this.config.latitude] = `0:${this.latCount - 1}:${this.latCount - 1}
|
|
785
|
-
query[this.config.longitude] = `0:${this.lonCount - 1}:${this.lonCount - 1}
|
|
786
|
-
const url = dap.makeQuery(this.config.url, query)
|
|
787
|
-
const res = await dap.fetchData(url)
|
|
788
|
-
|
|
789
|
-
const latData = res[this.config.latitude]
|
|
790
|
-
const lonData = res[this.config.longitude]
|
|
791
|
-
|
|
792
|
-
const lat0 = latData[0]
|
|
793
|
-
const lat1 = latData[latData.length - 1]
|
|
794
|
-
this.minMaxLat = [Math.min(lat0, lat1), Math.max(lat0, lat1)]
|
|
795
|
-
const lon0 =
|
|
796
|
-
const lon1 = lonData[lonData.length - 1] > 180.0 ?
|
|
797
|
-
this.minMaxLon = [Math.min(lon0, lon1), Math.max(lon0, lon1)]
|
|
783
|
+
const query = <span class="cstat-no" title="statement not covered" >{}</span>
|
|
784
|
+
<span class="cstat-no" title="statement not covered" > query[this.config.latitude] = `0:${this.latCount - 1}:${this.latCount - 1}`</span>
|
|
785
|
+
<span class="cstat-no" title="statement not covered" > query[this.config.longitude] = `0:${this.lonCount - 1}:${this.lonCount - 1}`</span>
|
|
786
|
+
const url = <span class="cstat-no" title="statement not covered" >dap.makeQuery(this.config.url, query)</span>
|
|
787
|
+
const res = <span class="cstat-no" title="statement not covered" >await dap.fetchData(url)</span>
|
|
788
|
+
|
|
789
|
+
const latData = <span class="cstat-no" title="statement not covered" >res[this.config.latitude]</span>
|
|
790
|
+
const lonData = <span class="cstat-no" title="statement not covered" >res[this.config.longitude]</span>
|
|
791
|
+
|
|
792
|
+
const lat0 = <span class="cstat-no" title="statement not covered" >latData[0]</span>
|
|
793
|
+
const lat1 = <span class="cstat-no" title="statement not covered" >latData[latData.length - 1]</span>
|
|
794
|
+
<span class="cstat-no" title="statement not covered" > this.minMaxLat = [Math.min(lat0, lat1), Math.max(lat0, lat1)]</span>
|
|
795
|
+
const lon0 = <span class="cstat-no" title="statement not covered" >lonData[0] > 180.0 ? lonData[0] - 360.0 : lonData[0]</span>
|
|
796
|
+
const lon1 = <span class="cstat-no" title="statement not covered" >lonData[lonData.length - 1] > 180.0 ? lonData[lonData.length - 1] - 360.0 : lonData[lonData.length - 1]</span>
|
|
797
|
+
<span class="cstat-no" title="statement not covered" > this.minMaxLon = [Math.min(lon0, lon1), Math.max(lon0, lon1)]</span>
|
|
798
798
|
|
|
799
799
|
// grid resolution
|
|
800
|
-
this.latStep = (this.minMaxLat[1] - this.minMaxLat[0]) / (this.latCount - 1)
|
|
801
|
-
this.lonStep = (this.minMaxLon[1] - this.minMaxLon[0]) / (this.lonCount - 1)
|
|
800
|
+
<span class="cstat-no" title="statement not covered" > this.latStep = (this.minMaxLat[1] - this.minMaxLat[0]) / (this.latCount - 1)</span>
|
|
801
|
+
<span class="cstat-no" title="statement not covered" > this.lonStep = (this.minMaxLon[1] - this.minMaxLon[0]) / (this.lonCount - 1)</span>
|
|
802
802
|
|
|
803
803
|
// deduce whether lat/lon dimensions are store in ascending or descending order
|
|
804
|
-
|
|
805
|
-
this.lonSortOrder = lon0 < lon1 ? SortOrder.ASCENDING :
|
|
804
|
+
<span class="cstat-no" title="statement not covered" > this.latSortOrder = lat0 < lat1 ? SortOrder.ASCENDING : SortOrder.DESCENDING</span>
|
|
805
|
+
<span class="cstat-no" title="statement not covered" > this.lonSortOrder = lon0 < lon1 ? SortOrder.ASCENDING : SortOrder.DESCENDING</span>
|
|
806
806
|
}
|
|
807
807
|
|
|
808
|
-
|
|
808
|
+
<span class="fstat-no" title="function not covered" > as</span>ync getDimensionsAsIndices () {
|
|
809
809
|
// config.dimensionsAsIndices contains indices
|
|
810
810
|
// config.dimensionsAsValues contains dimension values for which we
|
|
811
811
|
// need to lookup actual index
|
|
812
812
|
|
|
813
|
-
const dimensions = {}
|
|
814
|
-
|
|
815
|
-
Object.assign(dimensions, this.config.dimensionsAsIndices)
|
|
813
|
+
const dimensions = <span class="cstat-no" title="statement not covered" >{}</span>
|
|
814
|
+
<span class="cstat-no" title="statement not covered" > if (this.config.dimensionsAsIndices) {</span>
|
|
815
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(dimensions, this.config.dimensionsAsIndices)</span>
|
|
816
816
|
}
|
|
817
|
-
|
|
817
|
+
<span class="cstat-no" title="statement not covered" > if (this.config.dimensionsAsValues) {</span>
|
|
818
818
|
// build a request to query the values for each dimension for which we have a value
|
|
819
819
|
// const requested = _.keys(this.config.dimensionsAsValues)
|
|
820
|
-
const variables = <span class="cstat-no" title="statement not covered" >_.
|
|
821
|
-
const query = <span class="cstat-no" title="statement not covered" >dap.
|
|
822
|
-
const data = <span class="cstat-no" title="statement not covered" >await dap.
|
|
820
|
+
const variables = <span class="cstat-no" title="statement not covered" >_.keys(this.config.dimensionsAsValues)</span>
|
|
821
|
+
const query = <span class="cstat-no" title="statement not covered" >dap.makeQuery(this.config.url, variables)</span>
|
|
822
|
+
const data = <span class="cstat-no" title="statement not covered" >await dap.fetchData(query, null)</span>
|
|
823
823
|
// lookup corresponding indices
|
|
824
|
-
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0
|
|
825
|
-
const varValues = <span class="cstat-no" title="statement not covered" >data[
|
|
826
|
-
const varValue = <span class="cstat-no" title="statement not covered" >this.
|
|
824
|
+
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < variables.length; ++i) {</span>
|
|
825
|
+
const varValues = <span class="cstat-no" title="statement not covered" >data[variables[i]]</span>
|
|
826
|
+
const varValue = <span class="cstat-no" title="statement not covered" >this.config.dimensionsAsValues[variables[i]]</span>
|
|
827
827
|
let valueIndex = <span class="cstat-no" title="statement not covered" >-1</span>
|
|
828
|
-
<span class="cstat-no" title="statement not covered" > for (let j = <span class="cstat-no" title="statement not covered" >0
|
|
829
|
-
<span class="cstat-no" title="statement not covered" > if (varValues[j] === varValue) { <span class="cstat-no" title="statement not covered" >valueIndex = j</span>
|
|
828
|
+
<span class="cstat-no" title="statement not covered" > for (let j = <span class="cstat-no" title="statement not covered" >0;</span> j < varValues.length && valueIndex === -1; ++j) {</span>
|
|
829
|
+
<span class="cstat-no" title="statement not covered" > if (varValues[j] === varValue) { <span class="cstat-no" title="statement not covered" >valueIndex = j </span>}</span>
|
|
830
830
|
}
|
|
831
831
|
<span class="cstat-no" title="statement not covered" > if (valueIndex === -1) {</span>
|
|
832
832
|
// value not found :(
|
|
833
|
-
<span class="cstat-no" title="statement not covered" > throw
|
|
833
|
+
<span class="cstat-no" title="statement not covered" > throw new Error(`Failed looking up value '${varValue}' for dimension named '${variables[i]}'`)</span>
|
|
834
834
|
}
|
|
835
835
|
|
|
836
|
-
<span class="cstat-no" title="statement not covered" > dimensions[
|
|
836
|
+
<span class="cstat-no" title="statement not covered" > dimensions[variables[i]] = valueIndex</span>
|
|
837
837
|
}
|
|
838
838
|
}
|
|
839
839
|
|
|
840
|
-
return dimensions
|
|
840
|
+
<span class="cstat-no" title="statement not covered" > return dimensions</span>
|
|
841
841
|
}
|
|
842
842
|
}
|
|
843
843
|
</pre></td></tr></table></pre>
|
|
@@ -847,7 +847,7 @@ export class OpenDapGridSource extends GridSource {
|
|
|
847
847
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
848
848
|
Code coverage generated by
|
|
849
849
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
850
|
-
at
|
|
850
|
+
at Wed Dec 08 2021 20:41:51 GMT+0100 (GMT+01:00)
|
|
851
851
|
</div>
|
|
852
852
|
</div>
|
|
853
853
|
<script src="../../prettify.js"></script>
|