graphdb-workbench 3.2.0-TR1 → 3.2.0-TR2
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/dist/10142.dae0223e0a1d85ad72fe.bundle.js +2 -0
- package/dist/10142.dae0223e0a1d85ad72fe.bundle.js.map +1 -0
- package/dist/{10376.e89fa63ff898d45f45fd.bundle.js → 10376.2723c52982b51c64bffb.bundle.js} +2 -2
- package/dist/10376.2723c52982b51c64bffb.bundle.js.map +1 -0
- package/dist/{12396.4c26c8da50c790b0f39a.bundle.js → 12396.9a7f2862146b6f9adcb1.bundle.js} +2 -2
- package/dist/{12396.4c26c8da50c790b0f39a.bundle.js.map → 12396.9a7f2862146b6f9adcb1.bundle.js.map} +1 -1
- package/dist/12940.7a45ae43d5f3ba6e7d83.bundle.js +2 -0
- package/dist/12940.7a45ae43d5f3ba6e7d83.bundle.js.map +1 -0
- package/dist/14824.a3bc164c5bf4313f5276.bundle.js +2 -0
- package/dist/14824.a3bc164c5bf4313f5276.bundle.js.map +1 -0
- package/dist/{15535.ce8d657c04f3401b9539.bundle.js → 15535.7b170e17ee0a58970ab6.bundle.js} +2 -2
- package/dist/{15535.ce8d657c04f3401b9539.bundle.js.map → 15535.7b170e17ee0a58970ab6.bundle.js.map} +1 -1
- package/dist/{16162.8f482628d1b34d41d496.bundle.js → 16162.67e7c1f5f313481b1e80.bundle.js} +2 -2
- package/dist/{16162.8f482628d1b34d41d496.bundle.js.map → 16162.67e7c1f5f313481b1e80.bundle.js.map} +1 -1
- package/dist/18961.5e34171366c281038fe5.bundle.js +2 -0
- package/dist/18961.5e34171366c281038fe5.bundle.js.map +1 -0
- package/dist/20227.a9333aa1320edea7264b.bundle.js +2 -0
- package/dist/20227.a9333aa1320edea7264b.bundle.js.map +1 -0
- package/dist/{20287.c42f9d1d913c36e46931.bundle.js → 20287.dd5bc263fe26adf34965.bundle.js} +2 -2
- package/dist/{20287.c42f9d1d913c36e46931.bundle.js.map → 20287.dd5bc263fe26adf34965.bundle.js.map} +1 -1
- package/dist/{21136.199caea09a1c9ad90393.bundle.js → 21136.b7efcb40fb956ff1109c.bundle.js} +2 -2
- package/dist/{21136.199caea09a1c9ad90393.bundle.js.map → 21136.b7efcb40fb956ff1109c.bundle.js.map} +1 -1
- package/dist/{21142.b690e00c8884fddb2bb3.bundle.js → 21142.ec45fad4d52b36961d17.bundle.js} +2 -2
- package/dist/{21142.b690e00c8884fddb2bb3.bundle.js.map → 21142.ec45fad4d52b36961d17.bundle.js.map} +1 -1
- package/dist/{21170.d5e3041241741d21080c.bundle.js → 21170.7832554eab9eaade6ffb.bundle.js} +2 -2
- package/dist/{21170.d5e3041241741d21080c.bundle.js.map → 21170.7832554eab9eaade6ffb.bundle.js.map} +1 -1
- package/dist/{21195.267abc9d42b711d0f17a.bundle.js → 21195.caae6cc33d755ad52df4.bundle.js} +2 -2
- package/dist/{21195.267abc9d42b711d0f17a.bundle.js.map → 21195.caae6cc33d755ad52df4.bundle.js.map} +1 -1
- package/dist/{25747.4e00941ec221c4d6ce8f.bundle.js → 25747.c01110e23b922cdd3d9e.bundle.js} +2 -2
- package/dist/{25747.4e00941ec221c4d6ce8f.bundle.js.map → 25747.c01110e23b922cdd3d9e.bundle.js.map} +1 -1
- package/dist/{27580.f71ebbc69dd1c7785ef3.bundle.js → 27580.5a421770ab66d2dedc37.bundle.js} +2 -2
- package/dist/{27580.f71ebbc69dd1c7785ef3.bundle.js.map → 27580.5a421770ab66d2dedc37.bundle.js.map} +1 -1
- package/dist/{28050.8ca1fa760c892bfc5466.bundle.js → 28050.6960a4a0961a07a94743.bundle.js} +2 -2
- package/dist/28050.6960a4a0961a07a94743.bundle.js.map +1 -0
- package/dist/{31636.e34ccc2d6f2dec577446.bundle.js → 31636.54e2817f8ae3998a34b3.bundle.js} +2 -2
- package/dist/{31636.e34ccc2d6f2dec577446.bundle.js.map → 31636.54e2817f8ae3998a34b3.bundle.js.map} +1 -1
- package/dist/{32489.97fac2c3daa49b143d13.bundle.js → 32489.f7a2dc39cd61c2cd8874.bundle.js} +2 -2
- package/dist/{32489.97fac2c3daa49b143d13.bundle.js.map → 32489.f7a2dc39cd61c2cd8874.bundle.js.map} +1 -1
- package/dist/33524.79f7e98ef89a46d4aa58.bundle.js +2 -0
- package/dist/33524.79f7e98ef89a46d4aa58.bundle.js.map +1 -0
- package/dist/{34495.cfa15bda8009fa37c6ff.bundle.js → 34495.be67c06c39909114bbe4.bundle.js} +2 -2
- package/dist/{34495.cfa15bda8009fa37c6ff.bundle.js.map → 34495.be67c06c39909114bbe4.bundle.js.map} +1 -1
- package/dist/{38360.0a90e77042876c86b279.bundle.js → 38360.efec913bb97c3b8588a4.bundle.js} +2 -2
- package/dist/{38360.0a90e77042876c86b279.bundle.js.map → 38360.efec913bb97c3b8588a4.bundle.js.map} +1 -1
- package/dist/{38644.3a0954c798ec413a3810.bundle.js → 38644.800252af49cd67310834.bundle.js} +2 -2
- package/dist/{38644.3a0954c798ec413a3810.bundle.js.map → 38644.800252af49cd67310834.bundle.js.map} +1 -1
- package/dist/{38843.5ef7a063337524ce3bb2.bundle.js → 38843.29e34a5e5293cee51566.bundle.js} +2 -2
- package/dist/{38843.5ef7a063337524ce3bb2.bundle.js.map → 38843.29e34a5e5293cee51566.bundle.js.map} +1 -1
- package/dist/{39518.4199684f3273d29d9105.bundle.js → 39518.0ca97879b92271d7c5e2.bundle.js} +2 -2
- package/dist/{39518.4199684f3273d29d9105.bundle.js.map → 39518.0ca97879b92271d7c5e2.bundle.js.map} +1 -1
- package/dist/{39539.c23e4878044d73f2505b.bundle.js → 39539.7cea6717cc3a5ba91617.bundle.js} +2 -2
- package/dist/{39539.c23e4878044d73f2505b.bundle.js.map → 39539.7cea6717cc3a5ba91617.bundle.js.map} +1 -1
- package/dist/{41453.8bb4c783da2c5077a6e9.bundle.js → 41453.4ae219d972a187c36bfc.bundle.js} +2 -2
- package/dist/{41453.8bb4c783da2c5077a6e9.bundle.js.map → 41453.4ae219d972a187c36bfc.bundle.js.map} +1 -1
- package/dist/41621.624ba3d867bc05b5c3cc.bundle.js +2 -0
- package/dist/41621.624ba3d867bc05b5c3cc.bundle.js.map +1 -0
- package/dist/{42129.f44b7b20f9cd376c6e59.bundle.js → 42129.0314e45b4b818b01b71f.bundle.js} +2 -2
- package/dist/{42129.f44b7b20f9cd376c6e59.bundle.js.map → 42129.0314e45b4b818b01b71f.bundle.js.map} +1 -1
- package/dist/{44444.ad66c8256bc5b653de1a.bundle.js → 44444.02026ff20e2a843dc05b.bundle.js} +2 -2
- package/dist/{44444.ad66c8256bc5b653de1a.bundle.js.map → 44444.02026ff20e2a843dc05b.bundle.js.map} +1 -1
- package/dist/45069.82993bf600a550fac275.bundle.js +2 -0
- package/dist/45069.82993bf600a550fac275.bundle.js.map +1 -0
- package/dist/{456.6118cb99d130f4c0410c.bundle.js → 456.634597f220a97bfbeab8.bundle.js} +2 -2
- package/dist/456.634597f220a97bfbeab8.bundle.js.map +1 -0
- package/dist/45758.9ffd8e7d5f99e2c394a2.bundle.js +2 -0
- package/dist/45758.9ffd8e7d5f99e2c394a2.bundle.js.map +1 -0
- package/dist/{52264.99261393a7f6e631da3b.bundle.js → 52264.4cf2f1a18d16484f0af1.bundle.js} +2 -2
- package/dist/52264.4cf2f1a18d16484f0af1.bundle.js.map +1 -0
- package/dist/54419.aec242a64c27ceda6e02.bundle.js +2 -0
- package/dist/54419.aec242a64c27ceda6e02.bundle.js.map +1 -0
- package/dist/5470.58e107e4c61ae7c22d48.bundle.js +2 -0
- package/dist/5470.58e107e4c61ae7c22d48.bundle.js.map +1 -0
- package/dist/{55862.1fb5abd075ba11a7e93c.bundle.js → 55862.5e8602827fbf72e60cc2.bundle.js} +2 -2
- package/dist/{55862.1fb5abd075ba11a7e93c.bundle.js.map → 55862.5e8602827fbf72e60cc2.bundle.js.map} +1 -1
- package/dist/{58306.ba9545cbaee021ebcbce.bundle.js → 58306.94b9336f68d11bdd72f0.bundle.js} +2 -2
- package/dist/{58306.ba9545cbaee021ebcbce.bundle.js.map → 58306.94b9336f68d11bdd72f0.bundle.js.map} +1 -1
- package/dist/58334.8a2bdb0560e0ce23f792.bundle.js +2 -0
- package/dist/58334.8a2bdb0560e0ce23f792.bundle.js.map +1 -0
- package/dist/60560.2ef51d3e2d9674450419.bundle.js +2 -0
- package/dist/60560.2ef51d3e2d9674450419.bundle.js.map +1 -0
- package/dist/64118.fb6952c8ef6fc9117f35.bundle.js +2 -0
- package/dist/64118.fb6952c8ef6fc9117f35.bundle.js.map +1 -0
- package/dist/66014.d9f7b86d6829ebfe9d0e.bundle.js +2 -0
- package/dist/66014.d9f7b86d6829ebfe9d0e.bundle.js.map +1 -0
- package/dist/{67888.7d4966e0a22ba655f1b8.bundle.js → 67888.772326168aed83cbad9c.bundle.js} +2 -2
- package/dist/67888.772326168aed83cbad9c.bundle.js.map +1 -0
- package/dist/69724.56df2d5b2ba312cb8118.bundle.js +2 -0
- package/dist/69724.56df2d5b2ba312cb8118.bundle.js.map +1 -0
- package/dist/{72379.bac50d0011665a85b6cd.bundle.js → 72379.8a3290df05f18f8c65bd.bundle.js} +2 -2
- package/dist/{72379.bac50d0011665a85b6cd.bundle.js.map → 72379.8a3290df05f18f8c65bd.bundle.js.map} +1 -1
- package/dist/{73667.3dd4f377e7ef54fd8758.bundle.js → 73667.52fdbdadddafe9e9559b.bundle.js} +2 -2
- package/dist/{73667.3dd4f377e7ef54fd8758.bundle.js.map → 73667.52fdbdadddafe9e9559b.bundle.js.map} +1 -1
- package/dist/{73793.6d80d47c26ed60a587fd.bundle.js → 73793.7e812bab1754ddd5efb5.bundle.js} +2 -2
- package/dist/{73793.6d80d47c26ed60a587fd.bundle.js.map → 73793.7e812bab1754ddd5efb5.bundle.js.map} +1 -1
- package/dist/{75282.88819e851ed18720b275.bundle.js → 75282.2f97d3a7d7f3fdd7aebf.bundle.js} +2 -2
- package/dist/{75282.88819e851ed18720b275.bundle.js.map → 75282.2f97d3a7d7f3fdd7aebf.bundle.js.map} +1 -1
- package/dist/{75849.51ade15bf0074eab76f3.bundle.js → 75849.bd0bdefa903741034a71.bundle.js} +2 -2
- package/dist/{75849.51ade15bf0074eab76f3.bundle.js.map → 75849.bd0bdefa903741034a71.bundle.js.map} +1 -1
- package/dist/77143.e0cb9ab61d798d7b5e0b.bundle.js +2 -0
- package/dist/77143.e0cb9ab61d798d7b5e0b.bundle.js.map +1 -0
- package/dist/78070.21b221881c2b49603eb9.bundle.js +2 -0
- package/dist/78070.21b221881c2b49603eb9.bundle.js.map +1 -0
- package/dist/{78250.6db42146a120459280e4.bundle.js → 78250.73e3013c5b2ebdddbf38.bundle.js} +2 -2
- package/dist/{78250.6db42146a120459280e4.bundle.js.map → 78250.73e3013c5b2ebdddbf38.bundle.js.map} +1 -1
- package/dist/78681.7b1c9100e03c2346550a.bundle.js +2 -0
- package/dist/78681.7b1c9100e03c2346550a.bundle.js.map +1 -0
- package/dist/{79329.5a5cbfa466d1c62af915.bundle.js → 79329.3d912887ba7e96090fb4.bundle.js} +2 -2
- package/dist/{79329.5a5cbfa466d1c62af915.bundle.js.map → 79329.3d912887ba7e96090fb4.bundle.js.map} +1 -1
- package/dist/81837.a989b5e255a0ce6176b2.bundle.js +2 -0
- package/dist/81837.a989b5e255a0ce6176b2.bundle.js.map +1 -0
- package/dist/82206.fd868720394b9dc2adac.bundle.js +2 -0
- package/dist/82206.fd868720394b9dc2adac.bundle.js.map +1 -0
- package/dist/82293.5e41c8378272aabf99f6.bundle.js +2 -0
- package/dist/82293.5e41c8378272aabf99f6.bundle.js.map +1 -0
- package/dist/82896.4787d205b19befaf263a.bundle.js +2 -0
- package/dist/82896.4787d205b19befaf263a.bundle.js.map +1 -0
- package/dist/{82926.93dbf44f2bcccba34e9b.bundle.js → 82926.93a59d42bf8d49aaac8e.bundle.js} +2 -2
- package/dist/{82926.93dbf44f2bcccba34e9b.bundle.js.map → 82926.93a59d42bf8d49aaac8e.bundle.js.map} +1 -1
- package/dist/{83136.56d692623cbc60048e03.bundle.js → 83136.4941a19a85eb34ca370a.bundle.js} +2 -2
- package/dist/83136.4941a19a85eb34ca370a.bundle.js.map +1 -0
- package/dist/{84727.b93b2f9857352d39b241.bundle.js → 84727.2e3214ad60bd59f435e2.bundle.js} +2 -2
- package/dist/84727.2e3214ad60bd59f435e2.bundle.js.map +1 -0
- package/dist/85281.76d06e1c26137bb4b417.bundle.js +2 -0
- package/dist/85281.76d06e1c26137bb4b417.bundle.js.map +1 -0
- package/dist/{86639.ab85108411ef0f006e10.bundle.js → 86639.d28da26b8f138f5eb19b.bundle.js} +2 -2
- package/dist/86639.d28da26b8f138f5eb19b.bundle.js.map +1 -0
- package/dist/89647.219c4eb306757647ae1c.bundle.js +2 -0
- package/dist/89647.219c4eb306757647ae1c.bundle.js.map +1 -0
- package/dist/{9062.d9049833d076191d3e1a.bundle.js → 9062.3541de664710a36fdac7.bundle.js} +2 -2
- package/dist/{9062.d9049833d076191d3e1a.bundle.js.map → 9062.3541de664710a36fdac7.bundle.js.map} +1 -1
- package/dist/95953.44049d81dd4879f745f9.bundle.js +2 -0
- package/dist/95953.44049d81dd4879f745f9.bundle.js.map +1 -0
- package/dist/96248.83e4f0c66a9f58161a66.bundle.js +2 -0
- package/dist/96248.83e4f0c66a9f58161a66.bundle.js.map +1 -0
- package/dist/98494.969124a68766ebbdee3c.bundle.js +3 -0
- package/dist/98494.969124a68766ebbdee3c.bundle.js.map +1 -0
- package/dist/99379.1b108abf4421ccee2973.bundle.js +2 -0
- package/dist/99379.1b108abf4421ccee2973.bundle.js.map +1 -0
- package/dist/{99448.314018d0afb1af150ddf.bundle.js → 99448.384b74c734331e5f8909.bundle.js} +2 -2
- package/dist/{99448.314018d0afb1af150ddf.bundle.js.map → 99448.384b74c734331e5f8909.bundle.js.map} +1 -1
- package/dist/99893.6ac254ca3f59996b2a52.bundle.js +2 -0
- package/dist/99893.6ac254ca3f59996b2a52.bundle.js.map +1 -0
- package/dist/api/models/configuration/configuration.d.ts +5 -0
- package/dist/api/models/logging/log-level.d.ts +7 -0
- package/dist/api/models/logging/logger-config.d.ts +19 -0
- package/dist/api/models/logging/logger-definitions.d.ts +7 -0
- package/dist/api/models/logging/logger-type.d.ts +3 -0
- package/dist/api/models/logging/logger.d.ts +15 -0
- package/dist/api/models/storage/storage-data.d.ts +1 -0
- package/dist/api/ontotext-workbench-api.d.ts +1 -0
- package/dist/api/ontotext-workbench-api.js +1 -1
- package/dist/api/ontotext-workbench-api.js.map +1 -1
- package/dist/api/services/logging/console/console-logger.service.d.ts +19 -0
- package/dist/api/services/logging/index.d.ts +2 -0
- package/dist/api/services/logging/logger-provider.d.ts +11 -0
- package/dist/api/services/logging/logger-service.d.ts +63 -0
- package/dist/api/services/logging/loggers.d.ts +15 -0
- package/dist/api/services/logging/test/loggers.spec.d.ts +1 -0
- package/dist/api/services/plugins/plugins-rest.service.d.ts +1 -0
- package/dist/api/services/plugins/plugins.service.d.ts +1 -0
- package/dist/api/services/repository/repository-storage.service.d.ts +1 -0
- package/dist/api/services/storage/local-storage-subscription-handler.service.d.ts +1 -0
- package/dist/api/services/utils/routing-utils.d.ts +1 -1
- package/dist/assets/configuration.default.json +5 -1
- package/dist/index.html +10 -8
- package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
- package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
- package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
- package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
- package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
- package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
- package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
- package/dist/js/angular/core/templates/search-resource-input.html +1 -1
- package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
- package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
- package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
- package/dist/js/angular/security/templates/user.html +2 -2
- package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +2 -2
- package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
- package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
- package/dist/legacyWorkbench.2bd696723af2573e8bb7.js +3 -0
- package/dist/{legacyWorkbench.57fc12c172f6350ac4c5.js.map → legacyWorkbench.2bd696723af2573e8bb7.js.map} +1 -1
- package/dist/{main.b9a83da68ffc43c91de0.js → main.be51ba05166a17f051a0.js} +3 -3
- package/dist/main.be51ba05166a17f051a0.js.map +1 -0
- package/dist/pages/aclmanagement.html +2 -2
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +1 -1
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +8 -8
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/import.html +2 -2
- package/dist/pages/jdbc-create.html +1 -1
- package/dist/pages/login.html +1 -1
- package/dist/pages/monitor/backup-and-restore.html +1 -1
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +1 -1
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/plugins.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +1 -1
- package/dist/pages/repository.html +1 -1
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-editor.html +1 -1
- package/dist/pages/sparql-template-create.html +1 -1
- package/dist/pages/ux-test1.html +2 -2
- package/dist/pages/webapi.html +2 -2
- package/dist/plugins.js +1 -1
- package/dist/res/swagger5/index.html +11 -11
- package/dist/shared-components/cjs/onto-cookie-consent_2.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-dialog_2.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-dropdown.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-footer_6.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-language-selector_9.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/translate-label.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/translation.service-CC6jY4U-.js +1 -0
- package/dist/shared-components/collection/components/dialogs/onto-cookie-policy-dialog/onto-cookie-policy-dialog.js +1 -1
- package/dist/shared-components/collection/components/onto-dropdown/onto-dropdown.js +1 -1
- package/dist/shared-components/collection/components/onto-navbar/navbar-service.js +1 -1
- package/dist/shared-components/collection/services/logger-provider.js +1 -0
- package/dist/shared-components/collection/services/translation.service.js +1 -1
- package/dist/shared-components/esm/onto-cookie-consent_2.entry.js +1 -1
- package/dist/shared-components/esm/onto-dialog_2.entry.js +1 -1
- package/dist/shared-components/esm/onto-dropdown.entry.js +1 -1
- package/dist/shared-components/esm/onto-footer_6.entry.js +1 -1
- package/dist/shared-components/esm/onto-language-selector_9.entry.js +1 -1
- package/dist/shared-components/esm/translate-label.entry.js +1 -1
- package/dist/shared-components/esm/translation.service-nljGIprK.js +1 -0
- package/dist/shared-components/shared-components/p-09a97d11.entry.js +1 -0
- package/dist/shared-components/shared-components/p-21b82a97.entry.js +1 -0
- package/dist/shared-components/shared-components/p-8d20ae56.entry.js +1 -0
- package/dist/shared-components/shared-components/{p-91ad7f7f.entry.js → p-9131b137.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-1bc2ac8e.entry.js → p-e454ffc9.entry.js} +1 -1
- package/dist/shared-components/shared-components/{p-17bac1e3.entry.js → p-f9aa2123.entry.js} +1 -1
- package/dist/shared-components/shared-components/p-nljGIprK.js +1 -0
- package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
- package/dist/shared-components/types/components/dialogs/onto-cookie-policy-dialog/onto-cookie-policy-dialog.d.ts +1 -0
- package/dist/shared-components/types/components/onto-dropdown/onto-dropdown.d.ts +1 -0
- package/dist/shared-components/types/services/logger-provider.d.ts +11 -0
- package/dist/shared-components/types/services/translation.service.d.ts +1 -0
- package/dist/styleguide.9451f25d197464f4079c.js +2 -0
- package/dist/styleguide.9451f25d197464f4079c.js.map +1 -0
- package/dist/workbench/workbench/workbenchApp.js +1 -1
- package/package.json +1 -1
- package/dist/10142.f47cd2aec05492fce7ce.bundle.js +0 -2
- package/dist/10142.f47cd2aec05492fce7ce.bundle.js.map +0 -1
- package/dist/10376.e89fa63ff898d45f45fd.bundle.js.map +0 -1
- package/dist/12940.5b35c2cf5958d8769c0a.bundle.js +0 -2
- package/dist/12940.5b35c2cf5958d8769c0a.bundle.js.map +0 -1
- package/dist/14824.5d5041c05fca4c0373fa.bundle.js +0 -2
- package/dist/14824.5d5041c05fca4c0373fa.bundle.js.map +0 -1
- package/dist/18961.c6505525fb0491b48f8b.bundle.js +0 -2
- package/dist/18961.c6505525fb0491b48f8b.bundle.js.map +0 -1
- package/dist/19968.fdb823f9a12e11a633ec.bundle.js +0 -2
- package/dist/19968.fdb823f9a12e11a633ec.bundle.js.map +0 -1
- package/dist/20227.ab5dfaab392dbb16ba31.bundle.js +0 -2
- package/dist/20227.ab5dfaab392dbb16ba31.bundle.js.map +0 -1
- package/dist/28050.8ca1fa760c892bfc5466.bundle.js.map +0 -1
- package/dist/33524.35fe079bcb99a78babaf.bundle.js +0 -2
- package/dist/33524.35fe079bcb99a78babaf.bundle.js.map +0 -1
- package/dist/41621.68c5ebc2104a62e2b41d.bundle.js +0 -2
- package/dist/41621.68c5ebc2104a62e2b41d.bundle.js.map +0 -1
- package/dist/456.6118cb99d130f4c0410c.bundle.js.map +0 -1
- package/dist/45758.6ceb731cbe0576149f31.bundle.js +0 -2
- package/dist/45758.6ceb731cbe0576149f31.bundle.js.map +0 -1
- package/dist/52264.99261393a7f6e631da3b.bundle.js.map +0 -1
- package/dist/54419.f09240da9349be115ab3.bundle.js +0 -2
- package/dist/54419.f09240da9349be115ab3.bundle.js.map +0 -1
- package/dist/5470.7c17c7d3b58c8c0d0786.bundle.js +0 -2
- package/dist/5470.7c17c7d3b58c8c0d0786.bundle.js.map +0 -1
- package/dist/58334.6fdc74532b5f755916d8.bundle.js +0 -2
- package/dist/58334.6fdc74532b5f755916d8.bundle.js.map +0 -1
- package/dist/60560.37740d97b418899a5d21.bundle.js +0 -2
- package/dist/60560.37740d97b418899a5d21.bundle.js.map +0 -1
- package/dist/64118.9841bd3b9724868b8a63.bundle.js +0 -2
- package/dist/64118.9841bd3b9724868b8a63.bundle.js.map +0 -1
- package/dist/66014.336bc4291da2fbc96cd1.bundle.js +0 -2
- package/dist/66014.336bc4291da2fbc96cd1.bundle.js.map +0 -1
- package/dist/67888.7d4966e0a22ba655f1b8.bundle.js.map +0 -1
- package/dist/69724.1a97fa707ee1379409e9.bundle.js +0 -2
- package/dist/69724.1a97fa707ee1379409e9.bundle.js.map +0 -1
- package/dist/77143.f23d8a7fa51df083741c.bundle.js +0 -2
- package/dist/77143.f23d8a7fa51df083741c.bundle.js.map +0 -1
- package/dist/78070.b5e22ffae27cc3ca7a6f.bundle.js +0 -2
- package/dist/78070.b5e22ffae27cc3ca7a6f.bundle.js.map +0 -1
- package/dist/78681.39694d37c0f75ea04df6.bundle.js +0 -2
- package/dist/78681.39694d37c0f75ea04df6.bundle.js.map +0 -1
- package/dist/81837.f10e22eaf72a0642b50e.bundle.js +0 -2
- package/dist/81837.f10e22eaf72a0642b50e.bundle.js.map +0 -1
- package/dist/82206.8ec983edcf675cfd4531.bundle.js +0 -2
- package/dist/82206.8ec983edcf675cfd4531.bundle.js.map +0 -1
- package/dist/82293.a9bb9cd640c007cc1e91.bundle.js +0 -2
- package/dist/82293.a9bb9cd640c007cc1e91.bundle.js.map +0 -1
- package/dist/82896.9aed45baf67510717c6f.bundle.js +0 -2
- package/dist/82896.9aed45baf67510717c6f.bundle.js.map +0 -1
- package/dist/83136.56d692623cbc60048e03.bundle.js.map +0 -1
- package/dist/84727.b93b2f9857352d39b241.bundle.js.map +0 -1
- package/dist/85281.27b5a1eb8e7ac2cf8459.bundle.js +0 -2
- package/dist/85281.27b5a1eb8e7ac2cf8459.bundle.js.map +0 -1
- package/dist/86639.ab85108411ef0f006e10.bundle.js.map +0 -1
- package/dist/89647.b1a4e522d685f0b5d60f.bundle.js +0 -2
- package/dist/89647.b1a4e522d685f0b5d60f.bundle.js.map +0 -1
- package/dist/95953.4ea6a7c68a22779ba299.bundle.js +0 -2
- package/dist/95953.4ea6a7c68a22779ba299.bundle.js.map +0 -1
- package/dist/96248.1b85f989b0a7852c9b7b.bundle.js +0 -2
- package/dist/96248.1b85f989b0a7852c9b7b.bundle.js.map +0 -1
- package/dist/98494.a2cdb2a1c5d32d0094f3.bundle.js +0 -3
- package/dist/98494.a2cdb2a1c5d32d0094f3.bundle.js.map +0 -1
- package/dist/99379.be6c85ef305af6667dc1.bundle.js +0 -2
- package/dist/99379.be6c85ef305af6667dc1.bundle.js.map +0 -1
- package/dist/99893.2537d77ee1f4df0c846b.bundle.js +0 -2
- package/dist/99893.2537d77ee1f4df0c846b.bundle.js.map +0 -1
- package/dist/legacyWorkbench.57fc12c172f6350ac4c5.js +0 -3
- package/dist/main.b9a83da68ffc43c91de0.js.map +0 -1
- package/dist/shared-components/cjs/translation.service-DjdwDpXN.js +0 -1
- package/dist/shared-components/esm/translation.service-Hf6024E7.js +0 -1
- package/dist/shared-components/shared-components/p-2433b25f.entry.js +0 -1
- package/dist/shared-components/shared-components/p-25fa0ee5.entry.js +0 -1
- package/dist/shared-components/shared-components/p-6266be98.entry.js +0 -1
- package/dist/shared-components/shared-components/p-Hf6024E7.js +0 -1
- /package/dist/{98494.a2cdb2a1c5d32d0094f3.bundle.js.LICENSE.txt → 98494.969124a68766ebbdee3c.bundle.js.LICENSE.txt} +0 -0
- /package/dist/{legacyWorkbench.57fc12c172f6350ac4c5.js.LICENSE.txt → legacyWorkbench.2bd696723af2573e8bb7.js.LICENSE.txt} +0 -0
- /package/dist/{main.b9a83da68ffc43c91de0.js.LICENSE.txt → main.be51ba05166a17f051a0.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_id__=39539;export const __webpack_ids__=[39539];export const __webpack_modules__={39539:(e,i,d)=>{d.r(i),d.d(i,{default:()=>l});const l='<link href="css/dynamic-form.css?v=3.2.0-
|
|
2
|
-
//# sourceMappingURL=39539.
|
|
1
|
+
export const __webpack_id__=39539;export const __webpack_ids__=[39539];export const __webpack_modules__={39539:(e,i,d)=>{d.r(i),d.d(i,{default:()=>l});const l='<link href="css/dynamic-form.css?v=3.2.0-TR2" rel="stylesheet"/> <div class="dynamic-form-container"> <form name="dynamicForm" novalidate class="dynamic-form"> <div ng-repeat="model in formModel.models"> <div ng-if="model.groupId && (model.fields.length > 0 || showAllFields)" class="form-group"> <h5 class="group-title"> <span gdb-tooltip="{{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + \'.tooltip\') : null) | translate}}"> {{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + \'.label\') : model.groupId) | translate}} </span> </h5> <dynamic-form-field ng-repeat="field in model.fields" field="field" form="dynamicForm" translation-key-prefix="translationKeyPrefix"> </dynamic-form-field> <div class="hidden-fields"> <dynamic-form-field ng-if="showAllFields" ng-repeat="field in model.hiddenFields" field="field" form="dynamicForm" translation-key-prefix="translationKeyPrefix"> </dynamic-form-field> </div> </div> <dynamic-form-field ng-if="!model.groupId" field="model" form-name="dynamicForm" translation-key-prefix="translationKeyPrefix"> </dynamic-form-field> </div> </form> </div> '}};
|
|
2
|
+
//# sourceMappingURL=39539.7cea6717cc3a5ba91617.bundle.js.map
|
package/dist/{39539.c23e4878044d73f2505b.bundle.js.map → 39539.7cea6717cc3a5ba91617.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"39539.
|
|
1
|
+
{"version":3,"file":"39539.7cea6717cc3a5ba91617.bundle.js","mappings":"uJAGA,QAFW,omC","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/core/directives/dynamic-form/templates/dynamic-form.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/dynamic-form.css?v=3.2.0-TR2\" rel=\"stylesheet\"/> <div class=\"dynamic-form-container\"> <form name=\"dynamicForm\" novalidate class=\"dynamic-form\"> <div ng-repeat=\"model in formModel.models\"> <div ng-if=\"model.groupId && (model.fields.length > 0 || showAllFields)\" class=\"form-group\"> <h5 class=\"group-title\"> <span gdb-tooltip=\"{{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + '.tooltip') : null) | translate}}\"> {{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + '.label') : model.groupId) | translate}} </span> </h5> <dynamic-form-field ng-repeat=\"field in model.fields\" field=\"field\" form=\"dynamicForm\" translation-key-prefix=\"translationKeyPrefix\"> </dynamic-form-field> <div class=\"hidden-fields\"> <dynamic-form-field ng-if=\"showAllFields\" ng-repeat=\"field in model.hiddenFields\" field=\"field\" form=\"dynamicForm\" translation-key-prefix=\"translationKeyPrefix\"> </dynamic-form-field> </div> </div> <dynamic-form-field ng-if=\"!model.groupId\" field=\"model\" form-name=\"dynamicForm\" translation-key-prefix=\"translationKeyPrefix\"> </dynamic-form-field> </div> </form> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_id__=41453;export const __webpack_ids__=[41453];export const __webpack_modules__={41453:(n,t,a)=>{a.r(t),a.d(t,{default:()=>e});const e='<link href="css/graphql/graphql-endpoint-configuration-modal.css?v=3.2.0-
|
|
2
|
-
//# sourceMappingURL=41453.
|
|
1
|
+
export const __webpack_id__=41453;export const __webpack_ids__=[41453];export const __webpack_modules__={41453:(n,t,a)=>{a.r(t),a.d(t,{default:()=>e});const e='<link href="css/graphql/graphql-endpoint-configuration-modal.css?v=3.2.0-TR2" rel="stylesheet"/> <div class="modal-header"> <h3 class="modal-title">{{\'graphql.endpoints_management.endpoint_configuration_modal.title\' | translate}}</h3> <span ng-click="toggleAdvancedSettings()" class="toggle-advanced-settings"> <input type="checkbox" class="switch" ng-checked="showAdvancedSettings"/> <label></label> <span>{{\'graphql.endpoints_management.endpoint_configuration_modal.actions.show_advanced_settings.label\' | translate}}</span> </span> </div> <div class="modal-body graphql-endpoint-configuration-modal-body"> <div class="graphql-endpoint-configuration-loader" onto-loader-new hide-message="true" size="100" ng-show="loadingEndpointConfigurationSettings"></div> <dynamic-form ng-if="!loadingEndpointConfigurationSettings" form-model="endpointConfigurationSettings.settings" on-validity-change="handleValidityChange(valid)" show-all-fields="showAdvancedSettings" translation-key-prefix="graphql.endpoints_management.endpoint_configuration_modal.settings." form-ctrl="formCtrl"> </dynamic-form> </div> <div class="modal-footer mt-0"> <button type="button" class="btn btn-secondary cancel-btn" ng-click="cancel()">{{\'common.cancel.btn\' | translate}} </button> <button id="graphql-endpoint-configuration-modal-submit" class="btn btn-primary" ng-disabled="!endpointConfigurationSettingsValid || savingEndpointSettings || formCtrl.$pristine" ng-click="ok()" type="submit"> <span>{{\'save.changes.label\' | translate}}</span> <span class="saving-endpoint-settings" ng-if="savingEndpointSettings" onto-loader-fancy hide-message="true" size="15"></span> </button> </div> '}};
|
|
2
|
+
//# sourceMappingURL=41453.4ae219d972a187c36bfc.bundle.js.map
|
package/dist/{41453.8bb4c783da2c5077a6e9.bundle.js.map → 41453.4ae219d972a187c36bfc.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"41453.
|
|
1
|
+
{"version":3,"file":"41453.4ae219d972a187c36bfc.bundle.js","mappings":"uJAGA,QAFW,qoD","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/graphql/templates/modal/endpoint-configuration-modal.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/graphql/graphql-endpoint-configuration-modal.css?v=3.2.0-TR2\" rel=\"stylesheet\"/> <div class=\"modal-header\"> <h3 class=\"modal-title\">{{'graphql.endpoints_management.endpoint_configuration_modal.title' | translate}}</h3> <span ng-click=\"toggleAdvancedSettings()\" class=\"toggle-advanced-settings\"> <input type=\"checkbox\" class=\"switch\" ng-checked=\"showAdvancedSettings\"/> <label></label> <span>{{'graphql.endpoints_management.endpoint_configuration_modal.actions.show_advanced_settings.label' | translate}}</span> </span> </div> <div class=\"modal-body graphql-endpoint-configuration-modal-body\"> <div class=\"graphql-endpoint-configuration-loader\" onto-loader-new hide-message=\"true\" size=\"100\" ng-show=\"loadingEndpointConfigurationSettings\"></div> <dynamic-form ng-if=\"!loadingEndpointConfigurationSettings\" form-model=\"endpointConfigurationSettings.settings\" on-validity-change=\"handleValidityChange(valid)\" show-all-fields=\"showAdvancedSettings\" translation-key-prefix=\"graphql.endpoints_management.endpoint_configuration_modal.settings.\" form-ctrl=\"formCtrl\"> </dynamic-form> </div> <div class=\"modal-footer mt-0\"> <button type=\"button\" class=\"btn btn-secondary cancel-btn\" ng-click=\"cancel()\">{{'common.cancel.btn' | translate}} </button> <button id=\"graphql-endpoint-configuration-modal-submit\" class=\"btn btn-primary\" ng-disabled=\"!endpointConfigurationSettingsValid || savingEndpointSettings || formCtrl.\\$pristine\" ng-click=\"ok()\" type=\"submit\"> <span>{{'save.changes.label' | translate}}</span> <span class=\"saving-endpoint-settings\" ng-if=\"savingEndpointSettings\" onto-loader-fancy hide-message=\"true\" size=\"15\"></span> </button> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_id__=41621;export const __webpack_ids__=[12098,14824,41621,44207,46570,47775,54159,62677,64803,69112,94003];export const __webpack_modules__={12098:(e,r,o)=>{o.r(r),o.d(r,{JdbcDriverType:()=>t});const t={GENERIC:"generic",MY_SQL:"mySQL",POSTGRESS:"postgreSQL",ORACLE:"oracle",MS_SQL:"msSQL",DB2:"DB2",DREMIO:"dremio",DATABRICKS:"databricks",SNOWFLAKE:"snowflake"}},14824:(e,r,o)=>{o.r(r);var t=o(46591),n=o(64803),i=o(54159),s=o(44207),a=o(94003),c=o(47775),p=o(12098);const l=o(304).LoggerProvider.logger;function d(e,r,o,d,m){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(f){f.isGenericDriver=!0,f.defaultUrlTemplate="jdbc:database://localhost:port/database_name",f.ontopProperiesLink="https://ontop-vkg.org/guide/advanced/configuration.html",f.ontopFileType=n.OntopFileType,f.selectedDriver=new c.OntopDriverData,f.supportedDriversData=[],f.formData={connectionInformation:new i.OntopConnectionInformation,settings:{additionalProperties:"",ontopFiles:[]}},f.selectDriver=e=>{f.selectedDriver=f.supportedDriversData.find(r=>r.driverType===e),f.isGenericDriver=c.OntopDriverData.isGenericDriver(f.selectedDriver.driverType),f.editRepoPage&&f.currentOntopRepoInfo&&f.currentOntopRepoInfo.connectionInformation.driverType===e?f.formData=_.cloneDeep(f.currentOntopRepoInfo):(k(),f.formData.connectionInformation.driverType=f.selectedDriver.driverType),f.formData.connectionInformation.driverClass=f.selectedDriver.driverClass,f.updateUrl()},f.getOntopFileInfo=e=>f.formData.settings.ontopFiles.find(r=>e===r.type),f.getHostNameLabel=()=>{const e=c.OntopDriverData.isSnowflakeDriver(f.selectedDriver.driverType)?"ontop.repo.database.snowflake.host_name":"ontop.repo.database.host_name";return m.instant(e)+"*"},f.getDatabaseNameLabel=()=>{let e="";switch(f.selectedDriver.driverType){case p.JdbcDriverType.SNOWFLAKE:e="ontop.repo.database.warehouse.database_name";break;case p.JdbcDriverType.DATABRICKS:e="ontop.repo.database.http_path.database_name";break;case p.JdbcDriverType.DREMIO:e="ontop.repo.database.schema.database_name";break;default:e="ontop.repo.database.database_name"}return m.instant(e)},f.updateUrl=()=>{const e=v()||"";f.formData.connectionInformation.url=e+f.formData.connectionInformation.urlUserInput},f.isTestConnectionDisabled=()=>{const e=f.formData.connectionInformation,r=f.selectedDriver;return!(e.driverClass&&e.url&&(!r.portRequired||e.port)&&(c.OntopDriverData.isGenericDriver(r.driverType)||e.hostName&&e.databaseName))},f.testConnection=()=>{w().then(O).then(I).then(N).then(R).then(h).then(()=>r.validateOntopPropertiesConnection(f.repositoryInfo)).then(()=>o.success(m.instant("ontop.repo.successful.connection.msg"))).catch(e=>{e instanceof a.OntopRepositoryError?o.error(e.message):D(m.instant("ontop.repo.failed.to.connect"),e)})},f.editFile=o=>{const n=f.repositoryInfo.params[o.type].label,i=m.instant("update.file.edit.content.header",{fileName:n});e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",windowClass:"update-ontop-repo-dialog",resolve:{file:()=>{const e=f.repositoryInfo.params[o.type];return e?e.value:""},dialogTitle:()=>i,location:()=>f.repositoryInfo.location}}).result.then(e=>{r.updateRepositoryFileContent(e.fileLocation,e.content,f.repositoryInfo.location).success(e=>{o.fileName=(0,t.getFileName)(e.fileLocation),f.repositoryInfo.params[o.type].value=e.fileLocation}).error(e=>{D(m.instant("common.error"),e)})})},f.uploadOntopFile=(e,r)=>{if(e&&e.length){const t=e[0];r.loading=!0;const n={url:"rest/repositories/file/upload",data:{file:t,location:f.repositoryInfo.location}};d.upload(n).success(e=>{e.success?(r.fileName=t.name,f.repositoryInfo.params[r.type].value=e.fileLocation):o.error(e.errorMessage)}).error(e=>{D(m.instant("common.error"),e),f.uploadFile=""}).finally(()=>{r.loading=!1})}},f.updateOntopRepo=()=>{const e=f.editRepoPage?f.editRepository:f.createRepo;S().then(w).then(O).then(I).then(N).then(R).then(T).then(h).then(e).catch(e=>{e instanceof a.OntopRepositoryError?o.error(e.message):l.info(e)})},f.onKeyDownInUrlInput=e=>{const r=e.keyCode;if(37===r||39===r||36===r||35===r)return;const o=v();if(!o)return;const t=e.ctrlKey||e.metaKey;if(t&&65===r||t&&67===r)return;const n=e.target.selectionStart;8===r&&n-1<o.length&&(e.preventDefault(),e.stopPropagation()),n<o.length&&(e.preventDefault(),e.stopPropagation())},f.onKeyUpInUrlInput=()=>{u()};const u=()=>{const e=v();e&&f.formData.connectionInformation.url.startsWith(e)?f.formData.connectionInformation.urlUserInput=f.formData.connectionInformation.url.substring(e.length):f.formData.connectionInformation.urlUserInput=f.formData.connectionInformation.url},v=()=>c.OntopDriverData.isSnowflakeDriver(f.selectedDriver.driverType)?y():g(),y=()=>{let e=f.selectedDriver.urlTemplate;const r=f.formData.connectionInformation;return r.hostName&&(e=e.replace("{identifier}",r.hostName)),r.port&&(e=e.replace(".snowflakecomputing.com/?",`.snowflakecomputing.com:${r.port}/?`)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},g=()=>{let e=f.selectedDriver.urlTemplate;const r=f.formData.connectionInformation;return r.hostName&&(e=r.port?e.replace("{hostport}",`${r.hostName}:${r.port}`):e.replace("{hostport}",`${r.hostName}`)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},b=e=>{f.formData.settings.ontopFiles.forEach(r=>{r.loading=e})},h=()=>{b(!0);const e=f.formData.connectionInformation,o={hostName:e.hostName,port:e.port,databaseName:e.databaseName,userName:e.username,password:e.password,driverClass:e.driverClass,url:e.url,additionalProperties:f.formData.settings.additionalProperties};return r.updatePropertiesFile(f.repositoryInfo.params.propertiesFile.value,o,f.repositoryInfo.location,f.selectedDriver.driverType).success(e=>{f.repositoryInfo.params.propertiesFile.value=e.fileLocation}).error(e=>{D(m.instant("common.error"),e)}).finally(()=>b(!1))},D=(e,r)=>{const t=getError(r);o.error(t,e)},w=()=>c.OntopDriverData.isGenericDriver(f.selectedDriver.driverType)||f.formData.connectionInformation.hostName?Promise.resolve():Promise.reject(new a.OntopRepositoryError(m.instant("missing.required.field",{fieldName:m.instant("ontop.repo.database.host_name")}))),I=()=>c.OntopDriverData.isGenericDriver(f.selectedDriver.driverType)||f.formData.connectionInformation.databaseName?Promise.resolve():Promise.reject(new a.OntopRepositoryError(m.instant("missing.required.field",{fieldName:m.instant("ontop.repo.database.database_name")}))),N=()=>f.formData.connectionInformation.driverClass?Promise.resolve():Promise.reject(new a.OntopRepositoryError(m.instant("missing.required.field",{fieldName:m.instant("ontop.repo.database.driver_class")}))),R=()=>f.formData.connectionInformation.url?Promise.resolve():Promise.reject(new a.OntopRepositoryError(m.instant("missing.required.field",{fieldName:m.instant("ontop.repo.database.url")}))),S=()=>f.repositoryInfo.id?Promise.resolve():Promise.reject(new a.OntopRepositoryError(m.instant("empty.repoid.warning"))),T=()=>f.getOntopFileInfo(n.OntopFileType.OBDA).fileName?Promise.resolve():Promise.reject(new a.OntopRepositoryError(m.instant("ontop.repo.missing.required.file",{fileName:f.repositoryInfo.params[n.OntopFileType.OBDA].label}))),O=()=>f.selectedDriver.portRequired&&!f.formData.connectionInformation.port?Promise.reject(new a.OntopRepositoryError(m.instant("missing.required.field",{fieldName:m.instant("ontop.repo.database.port")}))):Promise.resolve(),k=()=>{f.formData={connectionInformation:new i.OntopConnectionInformation,settings:{additionalProperties:"",ontopFiles:[]}},Object.values(n.OntopFileType).forEach(e=>{const r=new s.OntopFileInfo(e);f.formData.settings.ontopFiles.push(r)}),f.getOntopFileInfo(n.OntopFileType.OBDA).required=!0};r.getSupportedDriversData(f.repositoryInfo).success(e=>{f.supportedDriversData=e}).error(e=>{D(m.instant("common.error"),e)}).then(()=>{f.editRepoPage?(b(!0),r.loadPropertiesFile(f.repositoryInfo.params.propertiesFile.value,f.repositoryInfo.location,f.selectedDriver.driverType).success(e=>{let r=f.supportedDriversData.find(r=>r.driverClass===e.driverClass);r&&e.hostName||(r=f.supportedDriversData.find(e=>c.OntopDriverData.isGenericDriver(e.driverType))),f.selectDriver(r.driverType),f.formData.connectionInformation.driverType=r.driverType,f.formData.connectionInformation.driverClass=e.driverClass,f.formData.connectionInformation.password=e.password,f.formData.connectionInformation.username=e.userName,f.formData.connectionInformation.url=e.url,f.formData.settings.additionalProperties=e.additionalProperties,c.OntopDriverData.isGenericDriver(r.driverType)||(f.formData.connectionInformation.hostName=e.hostName,f.formData.connectionInformation.databaseName=e.databaseName,f.formData.connectionInformation.port=e.port?parseInt(e.port,10):void 0),u(),f.updateUrl(),Object.values(n.OntopFileType).forEach(e=>{const r=f.repositoryInfo.params[e],o=f.getOntopFileInfo(e);r&&(o.fileName=(0,t.getFileName)(r.value))}),f.currentOntopRepoInfo=_.cloneDeep(f.formData)}).error(e=>{D(m.instant("common.error"),e)}).finally(()=>{b(!1)})):f.selectDriver(p.JdbcDriverType.GENERIC)})}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",d),d.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]},41621:(e,r,o)=>{o.r(r),o(82493),o(5687),o(60116),o(46591),o(14824),o(62677),o(76933),o(69112),o(47195),o(56669),angular.module("graphdb.framework.repositories",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.repositories.controllers","graphdb.framework.repositories.ontop-repo.directive","graphdb.framework.repositories.fedx-repo.directive","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers","graphdb.framework.settings"])},44207:(e,r,o)=>{o.r(r),o.d(r,{OntopFileInfo:()=>t});class t{constructor(e,r=!1){this.type=e,this.fileName="",this.loading=!1,this.required=r}}},46570:(e,r,o)=>{function t(e,r,o,t,n){e.supportsStatistics=!0,e.settings={statistics:!1},e.getSettings=function(){e.loader=!0,t.getStatistics().then(function(r){e.settings.statistics="true"===r.data,e.supportsStatistics=!0},function(o){if(404===o.status)e.supportsStatistics=!1;else{const e=getError(o.data);r.error(e,n.instant("error.getting.settings"))}})},e.getSettings(),e.setSettings=function(){e.loader=!0,t.toggleStatistics(e.settings.statistics).then(function(){o.close(),r.success(n.instant("saving.settings.success"))},function(e){const o=getError(e.data);r.error(o,n.instant("saving.settings.error"))})},e.submitForm=function(){e.setSettings()},e.cancel=function(){o.dismiss("cancel")}}function n(e,r,o,t,n,i,s,a){e.loadingLicense=function(){return o.loadingLicense()},o.checkLicenseStatus(),e.removeLicense=function(){i.openSimpleModal({title:s.instant("confirm.operation"),message:s.instant("remove.license.warning.msg"),warning:!0}).result.then(function(){r.unregisterLicense().success(function(){o.checkLicenseStatus().then(()=>a.applyTrackingConsent()).catch(e=>{const r=getError(e.data,e.status);t.error(r,s.instant("common.error"))})})})}}function i(e,r,o,t,n,i,s,a){e.$on("securityInit",function(){s.isAdmin()||o.path("/license")}),e.sendLicenseToValidateAndActivate=p;const c=$(".license-textarea");function p(e){r.sendLicenseToValidate(e).success(function(o){o.present?(c.val(e),function(e,o){t.open({templateUrl:"js/angular/settings/modal/validate-license.html",controller:"ValidateLicenseModalCtrl",size:"lg",resolve:{license:function(){return e}}}).result.then(function(){!function(e){if(e||(e=c.val()),e){const o=atob(e.replace(/\s/g,""));r.registerLicense(o).success(function(){i.history.back()}).error(function(e){n.error(e,a.instant("license.register.error"))})}else n.error(a.instant("no.license.code.error"))}(o)})}(o,e)):(c.val(""),n.error(o.message))}).error(function(){n.error(a.instant("invalid.license"))})}e.$watch("currentFile",function(){if(e.currentFile){const o=e.currentFile;r.extractFromLicenseFile(o).success(function(e){p(e)}).error(function(){n.error(a.instant("could.not.upload.file.error"))})}}),e.getBackToPreviousPage=function(){i.history.back()}}function s(e,r,o){e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")},e.license=o}function a(e){e.loader=!0,e.setLoader=function(r){e.loader=r}}o.r(r),o(82493),o(98599),angular.module("graphdb.framework.settings.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","toastr"]).controller("ActiveLocationSettingsCtrl",t).controller("ValidateLicenseModalCtrl",s).controller("LicenseCtrl",n).controller("RegisterLicenseCtrl",i).controller("LoaderSamplesCtrl",a),t.$inject=["$scope","toastr","$uibModalInstance","LicenseRestService","$translate"],n.$inject=["$scope","LicenseRestService","$licenseService","toastr","$rootScope","ModalService","$translate","TrackingService"],i.$inject=["$scope","LicenseRestService","$location","$uibModal","toastr","$window","$jwtAuth","$translate"],s.$inject=["$scope","$uibModalInstance","license"],a.$inject=["$scope"]},47775:(e,r,o)=>{o.r(r),o.d(r,{OntopDriverData:()=>n});var t=o(12098);class n{constructor(){this.classAvailable=!1,this.downloadDriverUrl="",this.driverClass="",this.driverName="",this.driverType="",this.portRequired=!1,this.urlTemplate=""}static isGenericDriver(e){return e===t.JdbcDriverType.GENERIC}static isSnowflakeDriver(e){return e===t.JdbcDriverType.SNOWFLAKE}}},54159:(e,r,o)=>{o.r(r),o.d(r,{OntopConnectionInformation:()=>t});class t{constructor(e="generic"){this.driverType=e,this.hostName="",this.port=void 0,this.databaseName="",this.username="",this.password="",this.driverClass="",this.url="",this.urlUserInput=""}}},62677:()=>{function e(e,r,o,t){return{restrict:"E",scope:!0,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(n){const i="ResolvableRepository",s="RemoteRepository",a="SPARQLEndpoint",c="NativeStore";function p(){for(const e of n.fedxMembers)n.knownRepos=n.knownRepos.filter(function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local})}function l(){r.getRepositories(n.repositoryInfo.location).success(function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),n.allAttachedRepos=_.cloneDeep(r)}).error(function(e){const r=getError(e);o.error(r,t.instant("common.error"))}).then(function(){n.knownRepos=n.allAttachedRepos.slice(),p()})}n.fedxMembers=[],n.knownRepos=[],n.allAttachedRepos=[],n.editRepoPage&&(n.fedxMembers=n.repositoryInfo.params.member.value.slice()),n.setWritableRepo=function(e){let r=n.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==i||e.store===i&&r.repositoryName===e.repositoryName)&&(r.store!==s||e.store===s&&r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)||(r.writable="false")),e.writable=JSON.stringify("false"===e.writable)},n.getActiveClass=function(e){return"true"===e.writable?" active":""},n.checkIfRepoExist=function(e){return!n.allAttachedRepos.length||(e.store===i?n.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):e.store!==s||n.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},n.getRepositoryServer=function(e){return e.local?"Local":e.location};const d=setInterval(function(){l()},5e3);function m(e){n.fedxMembers.push(e),n.repositoryInfo.params.member.value=n.fedxMembers}function f(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function u(){return n.editRepoPage&&!n.editRepoPage||!n.model.editMode}n.$on("$destroy",function(){clearInterval(d)}),n.addMember=function(e){let r;r="Local"===n.getRepositoryServer(e)?{store:i,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:s,repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},n.knownRepos=n.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),m(r)},n.removeMember=function(e){e.store&&e.store===i?(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),l()):e.store&&e.store===a?n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&e.store===c?n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&e.store===s&&(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),l()),n.repositoryInfo.params.member.value=n.fedxMembers},n.addRemoteMember=function(){n.mode="remote",n.model={editMode:!1,store:s,repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:e.store===c?"icon-warning":"icon-link"},n.editFedXRepository=function(r){r.store===i?(n.mode="local",n.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(n.mode="remote",n.model={editMode:!0,store:r.store,repositoryName:r.repositoryName,repositoryServer:r.repositoryServer,sparqlEndpoint:r.store===a?r.endpoint:r.repositoryLocation,username:r.username,password:r.password,supportsASKQueries:r.supportsASKQueries,writable:r.writable}),n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.resolveName=function(e){switch(e.store){case i:return e.repositoryName;case s:return e.repositoryName+"@"+e.repositoryServer;case a:return e.endpoint;case c:return e.repositoryLocation;default:return""}},n.cancel=function(){n.$uibModalInstance.dismiss("cancel")},n.ok=function(){let e;if(n.model.repositoryName&&n.model.store===i)e={store:i,repositoryName:n.model.repositoryName,repoType:n.model.repoType,respectRights:n.model.respectRights,writable:n.model.writable},n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(n.model.repositoryName&&n.model.store===s){if(e={store:s,repositoryName:n.model.repositoryName,repositoryServer:f(n.model.repositoryServer),username:n.model.username,password:n.model.password,writable:n.model.writable},u()&&n.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=n.resolveName(e);return o.error(t.instant("fedx.repo.already.added.member.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:a,endpoint:f(n.model.sparqlEndpoint),username:n.model.username,password:n.model.password,supportsASKQueries:n.model.supportsASKQueries,writable:n.model.writable},u()&&n.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=n.resolveName(e);return o.error(t.instant("fedx.repo.already.added.sparql.endpoint.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}m(e),p(),n.$uibModalInstance.close()},n.$on("changedLocation",function(){n.fedxMembers=[],l()}),l()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",e),e.$inject=["$uibModal","RepositoriesRestService","toastr","$translate"]},64803:(e,r,o)=>{o.r(r),o.d(r,{OntopFileType:()=>t});const t={OBDA:"obdaFile",OWL:"owlFile",CONSTRAINT:"constraintFile",LENSES:"lensesFile",DB_METADATA:"dbMetadataFile"}},69112:(e,r,o)=>{function t(e){e.interceptors.push("$authenticationInterceptor")}function n(e,r,o){e.$on("$locationChangeStart",function(){o.isLicenseHardcoded()&&"/license/register"===r.url()&&r.path("license")})}o.r(r),o(82493),o(5687),o(21774),o(46570),o(9619),o(35805),o(98599),o(47195),o(56669),angular.module("graphdb.framework.settings",["toastr","ui.bootstrap","graphdb.framework.rest.license.service","graphdb.framework.settings.controllers","graphdb.framework.core.interceptors.unauthorized","graphdb.framework.core.interceptors.authentication","graphdb.framework.core.services.jwtauth"]).config(t).run(n),t.$inject=["$httpProvider","$routeProvider"],n.$inject=["$rootScope","$location","$licenseService"]},94003:(e,r,o)=>{o.r(r),o.d(r,{OntopRepositoryError:()=>t});class t extends Error{}}};
|
|
2
|
+
//# sourceMappingURL=41621.624ba3d867bc05b5c3cc.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"41621.624ba3d867bc05b5c3cc.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/jdbc-driver-type.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/repositories/ontop-repo.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/repositories/app.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-file-info.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/settings/controllers.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-driver-data.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-connection-information.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/repositories/fedx-repo.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-file-type.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/settings/app.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ontop/ontop-repository-error.js"],"sourcesContent":["export const JdbcDriverType = {\n 'GENERIC': 'generic',\n 'MY_SQL': 'mySQL',\n 'POSTGRESS': 'postgreSQL',\n 'ORACLE': 'oracle',\n 'MS_SQL': 'msSQL',\n 'DB2': 'DB2',\n 'DREMIO': 'dremio',\n 'DATABRICKS': 'databricks',\n 'SNOWFLAKE': 'snowflake'\n};\n","import {getFileName} from \"./controllers\";\nimport {OntopFileType} from \"../models/ontop/ontop-file-type\";\nimport {OntopConnectionInformation} from \"../models/ontop/ontop-connection-information\";\nimport {OntopFileInfo} from \"../models/ontop/ontop-file-info\";\nimport {OntopRepositoryError} from \"../models/ontop/ontop-repository-error\";\nimport {OntopDriverData} from \"../models/ontop/ontop-driver-data\";\nimport {JdbcDriverType} from \"../models/ontop/jdbc-driver-type\";\nimport {LoggerProvider} from \"../core/services/logger-provider\";\n\nconst logger = LoggerProvider.logger;\n// A link to Ontop's website with all Ontop configuration keys\nconst ONTOP_PROPERTIES_LINK = 'https://ontop-vkg.org/guide/advanced/configuration.html';\n\nangular\n .module('graphdb.framework.repositories.ontop-repo.directive', [])\n .directive('ontopRepo', ontopRepoDirective);\n\nontopRepoDirective.$inject = ['$uibModal', 'RepositoriesRestService', 'toastr', 'Upload', '$translate'];\n\nfunction ontopRepoDirective($uibModal, RepositoriesRestService, toastr, Upload, $translate) {\n return {\n restrict: 'E',\n scope: false,\n templateUrl: 'js/angular/repositories/templates/ontop-repo.html',\n\n link: linkFunc,\n };\n\n function linkFunc($scope) {\n const HOME_KEY = 36;\n const END_KEY = 35;\n const LEFT_ARROW = 37;\n const RIGHT_ARROW = 39;\n const BACKSPACE = 8;\n const KEY_C = 67;\n const KEY_A = 65;\n $scope.isGenericDriver = true;\n $scope.defaultUrlTemplate = 'jdbc:database://localhost:port/database_name';\n $scope.ontopProperiesLink = ONTOP_PROPERTIES_LINK;\n $scope.ontopFileType = OntopFileType;\n\n /**\n * Holds reference to selected driver.\n *\n * @type {OntopDriverData}\n */\n $scope.selectedDriver = new OntopDriverData();\n\n /**\n * Holds all supported jdbc drivers.\n * @type {OntopDriverData[]}\n */\n $scope.supportedDriversData = [];\n $scope.formData = {\n connectionInformation: new OntopConnectionInformation(),\n settings: {\n additionalProperties: '',\n /**\n * Holds information about repository files.\n */\n ontopFiles: [],\n },\n };\n\n // =========================\n\n /**\n * Changes selected driver and updates url field.\n * @param {string} driverType - the type of driver.\n */\n $scope.selectDriver = (driverType) => {\n $scope.selectedDriver = $scope.supportedDriversData.find((driver) => driver.driverType === driverType);\n $scope.isGenericDriver = OntopDriverData.isGenericDriver($scope.selectedDriver.driverType);\n if ($scope.editRepoPage && $scope.currentOntopRepoInfo && $scope.currentOntopRepoInfo.connectionInformation.driverType === driverType) {\n $scope.formData = _.cloneDeep($scope.currentOntopRepoInfo);\n } else {\n clearFormData();\n $scope.formData.connectionInformation.driverType = $scope.selectedDriver.driverType;\n }\n $scope.formData.connectionInformation.driverClass = $scope.selectedDriver.driverClass;\n $scope.updateUrl();\n };\n\n /**\n * Finds ontop file depends on file type <code>ontopFileType</code>\n * @param {OntopFileType} ontopFileType - the type of searched ontop file.\n * @return {OntopFileInfo} found ontop file.\n */\n $scope.getOntopFileInfo = (ontopFileType) => {\n return $scope.formData.settings.ontopFiles.find((ontopFileInfo) => ontopFileType === ontopFileInfo.type);\n };\n\n $scope.getHostNameLabel = () => {\n const hostNameLabel = OntopDriverData.isSnowflakeDriver($scope.selectedDriver.driverType) ? 'ontop.repo.database.snowflake.host_name' : 'ontop.repo.database.host_name';\n return $translate.instant(hostNameLabel) + '*';\n };\n\n $scope.getDatabaseNameLabel = () => {\n let dataBaseNameLabelKey = '';\n switch ($scope.selectedDriver.driverType) {\n case JdbcDriverType.SNOWFLAKE:\n dataBaseNameLabelKey = 'ontop.repo.database.warehouse.database_name';\n break;\n case JdbcDriverType.DATABRICKS:\n dataBaseNameLabelKey = 'ontop.repo.database.http_path.database_name';\n break;\n case JdbcDriverType.DREMIO:\n dataBaseNameLabelKey = 'ontop.repo.database.schema.database_name';\n break;\n default:\n dataBaseNameLabelKey = 'ontop.repo.database.database_name';\n }\n return $translate.instant(dataBaseNameLabelKey);\n };\n\n /**\n * Updates value of <code>$scope.formData.connectionInformation.url</code> depends on other connection information: Host name, Port...\n */\n $scope.updateUrl = () => {\n const templateUrl = calculateTemplateUrl() || '';\n $scope.formData.connectionInformation.url = templateUrl + $scope.formData.connectionInformation.urlUserInput;\n };\n\n /**\n * Checks if test connection can be executed.\n * @return {boolean} true if all needed data is filled by the user.\n */\n $scope.isTestConnectionDisabled = () => {\n const connectionInformation = $scope.formData.connectionInformation;\n const selectedDriver = $scope.selectedDriver;\n if (!connectionInformation.driverClass || !connectionInformation.url || selectedDriver.portRequired && !connectionInformation.port) {\n return true;\n }\n return !OntopDriverData.isGenericDriver(selectedDriver.driverType) && (!connectionInformation.hostName || !connectionInformation.databaseName);\n };\n\n /**\n * Performs a test connection.\n */\n $scope.testConnection = () => {\n validateHostName()\n .then(validatePort)\n .then(validateDatabaseName)\n .then(validateDriverClass)\n .then(validateUrl)\n .then(updatePropertiesFile)\n .then(() => RepositoriesRestService.validateOntopPropertiesConnection($scope.repositoryInfo))\n .then(() => toastr.success($translate.instant('ontop.repo.successful.connection.msg')))\n .catch((error) => {\n if (error instanceof OntopRepositoryError) {\n toastr.error(error.message);\n } else {\n showErrorMsg($translate.instant('ontop.repo.failed.to.connect'), error);\n }\n });\n };\n\n /**\n * Updates the file with type <code>ontopFileType</code>.\n *\n * @param {OntopFileInfo} ontopFileInfo\n */\n $scope.editFile = (ontopFileInfo) => {\n const fileName = $scope.repositoryInfo.params[ontopFileInfo.type].label;\n const title = $translate.instant('update.file.edit.content.header', {fileName});\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/editRepoFile.html',\n controller: 'EditRepositoryFileCtrl',\n windowClass: 'update-ontop-repo-dialog',\n resolve: {\n file: () => {\n const ontopFile = $scope.repositoryInfo.params[ontopFileInfo.type];\n return ontopFile ? ontopFile.value : '';\n },\n dialogTitle: () => {\n return title;\n },\n location: () => {\n return $scope.repositoryInfo.location;\n },\n },\n });\n\n modalInstance.result.then((data) => {\n // send data to backend\n RepositoriesRestService.updateRepositoryFileContent(data.fileLocation, data.content, $scope.repositoryInfo.location)\n .success((result) => {\n ontopFileInfo.fileName = getFileName(result.fileLocation);\n $scope.repositoryInfo.params[ontopFileInfo.type].value = result.fileLocation;\n }).error((error) => {\n showErrorMsg($translate.instant('common.error'), error);\n });\n });\n };\n\n $scope.uploadOntopFile = (files, ontopFileInfo) => {\n if (files && files.length) {\n const uploadFile = files[0];\n ontopFileInfo.loading = true;\n const uploadData = {\n url: 'rest/repositories/file/upload',\n data: {file: uploadFile, location: $scope.repositoryInfo.location},\n };\n Upload.upload(uploadData)\n .success((data) => {\n if (!data.success) {\n toastr.error(data.errorMessage);\n } else {\n ontopFileInfo.fileName = uploadFile.name;\n $scope.repositoryInfo.params[ontopFileInfo.type].value = data.fileLocation;\n }\n })\n .error((data) => {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFile = '';\n })\n .finally(() => {\n ontopFileInfo.loading = false;\n });\n }\n };\n\n $scope.updateOntopRepo = () => {\n const createOrUpdate = $scope.editRepoPage ? $scope.editRepository : $scope.createRepo;\n validateRepositoryId()\n .then(validateHostName)\n .then(validatePort)\n .then(validateDatabaseName)\n .then(validateDriverClass)\n .then(validateUrl)\n .then(validateOntopFiles)\n .then(updatePropertiesFile)\n .then(createOrUpdate)\n .catch((error) => {\n if (error instanceof OntopRepositoryError) {\n toastr.error(error.message);\n } else {\n logger.info(error);\n }\n });\n };\n\n /**\n * Some databases expect additional properties than hostname, port, database name in order to establish the connection.\n * So url is not readonly and user can modify it. Every driver instead generic one has template tha can't be changed by the user, it\n * is filled automatically when user writes hostname, port, and database name.\n *\n * This function prevent modification of driver template.\n *\n * @param {*} event - event fired by key down.\n */\n $scope.onKeyDownInUrlInput = (event) => {\n const keyCode = event.keyCode;\n // We don't prevent event if user clicked on left, right arrow, home or end key,\n // the client can move cursor without matter where the cursor is.\n if (keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW || keyCode === HOME_KEY || keyCode === END_KEY) {\n return;\n }\n\n const templateUrl = calculateTemplateUrl();\n // If templateUrl is empty this means that chosen driver is generic or user is not filled hostname, port, or database name.\n // So user can type any characters into url input.\n if (!templateUrl) {\n return;\n }\n\n // Allows user to select all and copy the url value regardless that cursor position is in url template area.\n // event.metaKey -> Mac support\n const ctrlDown = event.ctrlKey || event.metaKey;\n if (ctrlDown && KEY_A === keyCode || ctrlDown && KEY_C === keyCode) {\n return;\n }\n\n const cursorPosition = event.target.selectionStart;\n\n if (keyCode === BACKSPACE && cursorPosition - 1 < templateUrl.length) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (cursorPosition < templateUrl.length) {\n // If templateUrl is not empty and cursor is in the middle of it, we will prevent the event and not allow to modify the url.\n event.preventDefault();\n event.stopPropagation();\n }\n\n // If templateUrl is not empty and cursor is after it, the user can write any character into the url input.\n };\n\n $scope.onKeyUpInUrlInput = () => {\n extractExtraUrl();\n };\n\n // =========================\n // Private functions\n // =========================\n\n /**\n * Extracts manual user input from url input element.\n */\n const extractExtraUrl = () => {\n const templateUrl = calculateTemplateUrl();\n if (templateUrl) {\n if ($scope.formData.connectionInformation.url.startsWith(templateUrl)) {\n // If templateUrl is not empty and url input value starts with the templateUrl, the text entered by user is part after the templateUrl.\n $scope.formData.connectionInformation.urlUserInput = $scope.formData.connectionInformation.url.substring(templateUrl.length);\n } else {\n // If templateUrl is not empty and url input value don't start with the templateUrl, all url is entered by the user.\n $scope.formData.connectionInformation.urlUserInput = $scope.formData.connectionInformation.url;\n }\n } else {\n // If templateUrl is empty this means that chosen driver is generic or user is not filled hostname, port, or database name.\n // So all characters in url input are entered by user.\n $scope.formData.connectionInformation.urlUserInput = $scope.formData.connectionInformation.url;\n }\n };\n\n const calculateTemplateUrl = () => {\n if (OntopDriverData.isSnowflakeDriver($scope.selectedDriver.driverType)) {\n return calculateSnowflakeTemplateUrl();\n }\n return calculateDefaultTemplateUrl();\n };\n\n const calculateSnowflakeTemplateUrl = () => {\n let url = $scope.selectedDriver.urlTemplate;\n const connectionInformation = $scope.formData.connectionInformation;\n\n if (connectionInformation.hostName) {\n url = url.replace('{identifier}', connectionInformation.hostName);\n }\n\n if (connectionInformation.port) {\n url = url.replace('.snowflakecomputing.com/?', `.snowflakecomputing.com:${connectionInformation.port}/?`);\n }\n\n if (connectionInformation.databaseName) {\n url = url.replace('{database}', connectionInformation.databaseName);\n }\n return url;\n };\n\n const calculateDefaultTemplateUrl = () => {\n let url = $scope.selectedDriver.urlTemplate;\n const connectionInformation = $scope.formData.connectionInformation;\n if (connectionInformation.hostName) {\n if (connectionInformation.port) {\n url = url.replace('{hostport}', `${connectionInformation.hostName}:${connectionInformation.port}`);\n } else {\n url = url.replace('{hostport}', `${connectionInformation.hostName}`);\n }\n }\n if (connectionInformation.databaseName) {\n url = url.replace('{database}', connectionInformation.databaseName);\n }\n return url;\n };\n\n const loadSupportedDriversData = () => {\n return RepositoriesRestService.getSupportedDriversData($scope.repositoryInfo)\n .success((response) => {\n $scope.supportedDriversData = response;\n }).error((response) => {\n showErrorMsg($translate.instant('common.error'), response);\n });\n };\n\n const setLoading = (loading) => {\n $scope.formData.settings.ontopFiles.forEach((ontopFile) => {\n ontopFile.loading = loading;\n });\n };\n\n const loadPropertiesFile = () => {\n setLoading(true);\n RepositoriesRestService.loadPropertiesFile($scope.repositoryInfo.params.propertiesFile.value, $scope.repositoryInfo.location, $scope.selectedDriver.driverType)\n .success((driverData) => {\n let driver = $scope.supportedDriversData.find((driver) => driver.driverClass === driverData.driverClass);\n // If driver not found this means that driver is generic.\n // If the driver is found, but the data returned by the server does not contain a hostname,\n // it means that the driver class (which we support) is filled in as the driver class of a generic type.\n if (!driver || !driverData.hostName) {\n driver = $scope.supportedDriversData.find((driver) => OntopDriverData.isGenericDriver(driver.driverType));\n }\n $scope.selectDriver(driver.driverType);\n $scope.formData.connectionInformation.driverType = driver.driverType;\n $scope.formData.connectionInformation.driverClass = driverData.driverClass;\n $scope.formData.connectionInformation.password = driverData.password;\n $scope.formData.connectionInformation.username = driverData.userName;\n $scope.formData.connectionInformation.url = driverData.url;\n $scope.formData.settings.additionalProperties = driverData.additionalProperties;\n\n if (!OntopDriverData.isGenericDriver(driver.driverType)) {\n $scope.formData.connectionInformation.hostName = driverData.hostName;\n $scope.formData.connectionInformation.databaseName = driverData.databaseName;\n $scope.formData.connectionInformation.port = driverData.port ? parseInt(driverData.port, 10) : undefined;\n }\n\n extractExtraUrl();\n $scope.updateUrl();\n\n Object.values(OntopFileType)\n .forEach((ontopFileType) => {\n const ontopFileInfo = $scope.repositoryInfo.params[ontopFileType];\n const ontopFile = $scope.getOntopFileInfo(ontopFileType);\n if (ontopFileInfo) {\n ontopFile.fileName = getFileName(ontopFileInfo.value);\n }\n });\n $scope.currentOntopRepoInfo = _.cloneDeep($scope.formData);\n })\n .error((data) => {\n showErrorMsg($translate.instant('common.error'), data);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const updatePropertiesFile = () => {\n setLoading(true);\n const connectionInformation = $scope.formData.connectionInformation;\n\n const jdbc = {\n hostName: connectionInformation.hostName,\n port: connectionInformation.port,\n databaseName: connectionInformation.databaseName,\n userName: connectionInformation.username,\n password: connectionInformation.password,\n driverClass: connectionInformation.driverClass,\n url: connectionInformation.url,\n additionalProperties: $scope.formData.settings.additionalProperties,\n };\n\n return RepositoriesRestService\n .updatePropertiesFile($scope.repositoryInfo.params.propertiesFile.value, jdbc, $scope.repositoryInfo.location, $scope.selectedDriver.driverType)\n .success((data) => {\n $scope.repositoryInfo.params.propertiesFile.value = data.fileLocation;\n }).error((data) => {\n showErrorMsg($translate.instant('common.error'), data);\n })\n .finally(() => setLoading(false));\n };\n\n const showErrorMsg = (title, data) => {\n const msg = getError(data);\n toastr.error(msg, title);\n };\n\n const validateHostName = () => {\n if (!OntopDriverData.isGenericDriver($scope.selectedDriver.driverType)) {\n if (!$scope.formData.connectionInformation.hostName) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.host_name')})));\n }\n }\n return Promise.resolve();\n };\n\n const validateDatabaseName = () => {\n if (!OntopDriverData.isGenericDriver($scope.selectedDriver.driverType)) {\n if (!$scope.formData.connectionInformation.databaseName) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.database_name')})));\n }\n }\n return Promise.resolve();\n };\n\n const validateDriverClass = () => {\n if (!$scope.formData.connectionInformation.driverClass) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.driver_class')})));\n }\n return Promise.resolve();\n };\n\n const validateUrl = () => {\n if (!$scope.formData.connectionInformation.url) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.url')})));\n }\n return Promise.resolve();\n };\n\n const validateRepositoryId = () => {\n if (!$scope.repositoryInfo.id) {\n return Promise.reject(new OntopRepositoryError($translate.instant('empty.repoid.warning')));\n }\n return Promise.resolve();\n };\n\n const validateOntopFiles = () => {\n if (!$scope.getOntopFileInfo(OntopFileType.OBDA).fileName) {\n return Promise.reject(new OntopRepositoryError($translate.instant('ontop.repo.missing.required.file', {fileName: $scope.repositoryInfo.params[OntopFileType.OBDA].label})));\n }\n return Promise.resolve();\n };\n\n const validatePort = () => {\n if ($scope.selectedDriver.portRequired && !$scope.formData.connectionInformation.port) {\n return Promise.reject(new OntopRepositoryError($translate.instant('missing.required.field', {fieldName: $translate.instant('ontop.repo.database.port')})));\n }\n return Promise.resolve();\n };\n\n const clearFormData = () => {\n $scope.formData = {\n connectionInformation: new OntopConnectionInformation(),\n settings: {\n additionalProperties: '',\n ontopFiles: [],\n },\n };\n\n Object.values(OntopFileType)\n .forEach((ontopFileType) => {\n const ontopFileInfo = new OntopFileInfo(ontopFileType);\n $scope.formData.settings.ontopFiles.push(ontopFileInfo);\n });\n\n $scope.getOntopFileInfo(OntopFileType.OBDA).required = true;\n };\n\n // =========================\n // Initialize component data\n // =========================\n loadSupportedDriversData()\n .then(() => {\n if ($scope.editRepoPage) {\n loadPropertiesFile();\n } else {\n $scope.selectDriver(JdbcDriverType.GENERIC);\n }\n });\n }\n}\n","import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/controllers';\nimport 'angular/repositories/controllers';\nimport 'angular/repositories/ontop-repo.directive';\nimport 'angular/repositories/fedx-repo.directive';\nimport 'angular/core/services/repositories.service';\nimport 'angular/settings/app';\nimport 'ng-file-upload/dist/ng-file-upload.min';\nimport 'ng-file-upload/dist/ng-file-upload-shim.min';\n\nconst modules = [\n 'ui.bootstrap',\n 'toastr',\n 'ngCookies',\n 'ngRoute',\n 'graphdb.framework.repositories.controllers',\n 'graphdb.framework.repositories.ontop-repo.directive',\n 'graphdb.framework.repositories.fedx-repo.directive',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.core.controllers',\n 'graphdb.framework.settings'\n];\n\nangular.module('graphdb.framework.repositories', modules);\n","export class OntopFileInfo {\n\n /**\n * Initializes ontop file info object.\n * @param {string} type - the type of ontop file. It's value have to be one of {@link OntopFileType};\n * @param {boolean} required - true if file is required.\n */\n constructor(type, required = false) {\n this.type = type;\n this.fileName = '';\n this.loading = false;\n this.required = required;\n }\n}\n","import 'angular/core/services';\nimport 'angular/core/services/jwt-auth.service';\n\nangular\n .module('graphdb.framework.settings.controllers', [\n 'ngCookies',\n 'ui.bootstrap',\n 'graphdb.framework.core.services.jwtauth',\n 'toastr'\n ])\n .controller('ActiveLocationSettingsCtrl', ActiveLocationSettingsCtrl)\n .controller('ValidateLicenseModalCtrl', ValidateLicenseModalCtrl)\n .controller('LicenseCtrl', LicenseCtrl)\n .controller('RegisterLicenseCtrl', RegisterLicenseCtrl)\n .controller('LoaderSamplesCtrl', LoaderSamplesCtrl);\n\nActiveLocationSettingsCtrl.$inject = ['$scope', 'toastr', '$uibModalInstance', 'LicenseRestService', '$translate'];\n\nfunction ActiveLocationSettingsCtrl($scope, toastr, $uibModalInstance, LicenseRestService, $translate) {\n $scope.supportsStatistics = true;\n $scope.settings = {statistics: false};\n $scope.getSettings = getSettings;\n\n function getSettings() {\n $scope.loader = true;\n LicenseRestService.getStatistics().then(function (response) {\n $scope.settings.statistics = response.data === 'true';\n $scope.supportsStatistics = true;\n }, function (response) {\n if (response.status === 404) {\n $scope.supportsStatistics = false;\n } else {\n const msg = getError(response.data);\n toastr.error(msg, $translate.instant('error.getting.settings'));\n }\n });\n }\n\n $scope.getSettings();\n\n $scope.setSettings = function () {\n $scope.loader = true;\n LicenseRestService.toggleStatistics($scope.settings.statistics).then(function () {\n $uibModalInstance.close();\n toastr.success($translate.instant('saving.settings.success'));\n }, function (response) {\n const msg = getError(response.data);\n toastr.error(msg, $translate.instant('saving.settings.error'));\n });\n };\n\n $scope.submitForm = function () {\n $scope.setSettings();\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}\n\nLicenseCtrl.$inject = ['$scope', 'LicenseRestService', '$licenseService', 'toastr', '$rootScope', 'ModalService', '$translate', 'TrackingService'];\n\nfunction LicenseCtrl($scope, LicenseRestService, $licenseService, toastr, $rootScope, ModalService, $translate, TrackingService) {\n\n $scope.loadingLicense = function() {\n return $licenseService.loadingLicense();\n };\n\n // TODO - Check if redundant call and remove\n $licenseService.checkLicenseStatus();\n\n $scope.removeLicense = function () {\n ModalService.openSimpleModal({\n title: $translate.instant('confirm.operation'),\n message: $translate.instant(\"remove.license.warning.msg\"),\n warning: true\n }).result\n .then(function () {\n LicenseRestService.unregisterLicense()\n .success(function () {\n $licenseService.checkLicenseStatus()\n .then(() => TrackingService.applyTrackingConsent())\n .catch((error) => {\n const msg = getError(error.data, error.status);\n toastr.error(msg, $translate.instant('common.error'));\n });\n });\n });\n };\n}\n\nRegisterLicenseCtrl.$inject = ['$scope', 'LicenseRestService', '$location', '$uibModal', 'toastr', '$window', '$jwtAuth', '$translate'];\n\nfunction RegisterLicenseCtrl($scope, LicenseRestService, $location, $uibModal, toastr, $window, $jwtAuth, $translate) {\n $scope.$on('securityInit', function () {\n if (!$jwtAuth.isAdmin()) {\n $location.path('/license');\n }\n });\n\n $scope.sendLicenseToValidateAndActivate = sendLicenseToValidateAndActivate;\n\n const textAreaSel = $('.license-textarea');\n\n // watch for uploaded license file\n $scope.$watch('currentFile', function () {\n if ($scope.currentFile) {\n const file = $scope.currentFile;\n LicenseRestService.extractFromLicenseFile(file)\n .success(function (licenseCode) {\n sendLicenseToValidateAndActivate(licenseCode);\n }).error(function () {\n toastr.error($translate.instant('could.not.upload.file.error'));\n });\n }\n });\n\n $scope.getBackToPreviousPage = function () {\n $window.history.back();\n };\n\n // send license code for validation and activation\n function sendLicenseToValidateAndActivate(licenseCode) {\n LicenseRestService.sendLicenseToValidate(licenseCode)\n .success(function (validatedLicense) {\n if (validatedLicense.present) {\n // write code to textarea\n textAreaSel.val(licenseCode);\n // pop dialog for license details confirmation\n confirmWantedNewLicenseDetails(validatedLicense, licenseCode);\n } else {\n // clear textarea on invalid license\n textAreaSel.val('');\n // show error\n toastr.error(validatedLicense.message);\n }\n })\n .error(function () {\n toastr.error($translate.instant('invalid.license'));\n });\n }\n\n\n // pops a modal dialog which asks you if your expected license details are correct\n // and sends license to GraphDB upon confirmation\n function confirmWantedNewLicenseDetails(license, licenseCode) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/settings/modal/validate-license.html',\n controller: 'ValidateLicenseModalCtrl',\n size: 'lg',\n resolve: {\n license: function () {\n return license;\n }\n }\n });\n\n modalInstance.result.then(function () {\n registerLicense(licenseCode);\n });\n }\n\n // send license code to GraphDB for activation\n function registerLicense(licenseCode) {\n if (!licenseCode) {\n licenseCode = textAreaSel.val();\n }\n\n if (licenseCode) {\n // replacing whitespace makes this work on Safari too,\n // whereas other browser happily ignore the whitespace\n const decodedLicense = atob(licenseCode.replace(/\\s/g, ''));\n LicenseRestService.registerLicense(decodedLicense)\n .success(function () {\n $window.history.back();\n }).error(function (error) {\n toastr.error(error, $translate.instant('license.register.error'));\n });\n } else {\n toastr.error($translate.instant('no.license.code.error'));\n }\n }\n}\n\nValidateLicenseModalCtrl.$inject = ['$scope', '$uibModalInstance', 'license'];\n\nfunction ValidateLicenseModalCtrl($scope, $uibModalInstance, license) {\n $scope.ok = ok;\n $scope.cancel = cancel;\n $scope.license = license;\n\n function ok() {\n $uibModalInstance.close();\n }\n\n function cancel() {\n $uibModalInstance.dismiss('cancel');\n }\n}\n\nLoaderSamplesCtrl.$inject = ['$scope'];\n\nfunction LoaderSamplesCtrl($scope) {\n $scope.loader = true;\n $scope.setLoader = function (loader) {\n $scope.loader = loader;\n };\n}\n","import {JdbcDriverType} from \"./jdbc-driver-type\";\n\nexport class OntopDriverData {\n constructor() {\n this.classAvailable = false;\n this.downloadDriverUrl = '';\n this.driverClass = '';\n this.driverName = '';\n this.driverType = '';\n this.portRequired = false;\n this.urlTemplate = '';\n }\n\n static isGenericDriver(type) {\n return type === JdbcDriverType.GENERIC;\n }\n\n static isSnowflakeDriver(type) {\n return type === JdbcDriverType.SNOWFLAKE;\n }\n}\n","export class OntopConnectionInformation {\n constructor(driverType = 'generic') {\n this.driverType = driverType;\n this.hostName = '';\n this.port = undefined;\n this.databaseName = '';\n this.username = '';\n this.password = '';\n this.driverClass = '';\n this.url = '';\n this.urlUserInput = '';\n }\n}\n","angular\n .module('graphdb.framework.repositories.fedx-repo.directive', [])\n .directive('fedxRepo', fedxRepoDirective);\n\nfedxRepoDirective.$inject = ['$uibModal', 'RepositoriesRestService', 'toastr', '$translate'];\n\nfunction fedxRepoDirective($uibModal, RepositoriesRestService, toastr, $translate) {\n return {\n restrict: 'E',\n scope: true,\n templateUrl: 'js/angular/repositories/templates/fedx-repo.html',\n\n link: linkFunc\n };\n\n function linkFunc($scope) {\n\n const LOCAL_REPO_STORE = 'ResolvableRepository';\n const REMOTE_REPO_STORE = 'RemoteRepository';\n const SPARQL_ENDPOINT_STORE = 'SPARQLEndpoint';\n const NATIVE_STORE = 'NativeStore';\n\n $scope.fedxMembers = [];\n $scope.knownRepos = [];\n $scope.allAttachedRepos = [];\n\n if ($scope.editRepoPage) {\n $scope.fedxMembers = $scope.repositoryInfo.params.member.value.slice();\n }\n\n function getRepositories() {\n return RepositoriesRestService.getRepositories($scope.repositoryInfo.location)\n .success(function (response) {\n let repos = [];\n _.values(response).forEach((value) => {\n repos.push.apply(repos, value);\n });\n $scope.allAttachedRepos = _.cloneDeep(repos);\n }).error(function (response) {\n const msg = getError(response);\n toastr.error(msg, $translate.instant('common.error'));\n });\n }\n\n function populateKnownRepos() {\n for (const member of $scope.fedxMembers) {\n $scope.knownRepos = $scope.knownRepos.filter(function (repo) {\n if (member.repositoryServer) {\n // if the member is a remote attached member\n return repo.id !== member.repositoryName || repo.location !== member.repositoryServer;\n } else {\n // if the member is a local one\n return repo.id !== member.repositoryName || !repo.local;\n }\n });\n }\n }\n\n $scope.setWritableRepo = function (member) {\n let currentWritable = getWritableRepo();\n if (currentWritable) {\n if (currentWritable.store === LOCAL_REPO_STORE && (member.store !== LOCAL_REPO_STORE || currentWritable.repositoryName !== member.repositoryName) ) {\n currentWritable.writable = 'false';\n } else if (currentWritable.store === REMOTE_REPO_STORE && (member.store !== REMOTE_REPO_STORE || currentWritable.repositoryName !== member.repositoryName || currentWritable.repositoryServer !== member.repositoryServer)) {\n currentWritable.writable = 'false';\n }\n }\n member.writable = JSON.stringify(member.writable === 'false');\n }\n\n $scope.getActiveClass = function (member) {\n return member.writable === 'true' ? ' active' : '';\n }\n\n function getWritableRepo() {\n return $scope.fedxMembers.find(member => member.writable === \"true\");\n }\n\n function getKnownRepos() {\n getRepositories()\n .then(function () {\n $scope.knownRepos = $scope.allAttachedRepos.slice();\n populateKnownRepos();\n });\n }\n\n $scope.checkIfRepoExist = function (member) {\n if (!$scope.allAttachedRepos.length) {\n return true;\n }\n if (member.store === LOCAL_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && !repo.location);\n } else if (member.store === REMOTE_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && repo.location === member.repositoryServer);\n } else {\n return true;\n }\n }\n\n $scope.getRepositoryServer = function (repo) {\n if (repo.local) {\n return \"Local\";\n } else {\n return repo.location;\n }\n }\n\n const localReposTimer = setInterval(function () {\n getKnownRepos();\n }, 5000);\n\n $scope.$on('$destroy', function () {\n clearInterval(localReposTimer);\n });\n\n $scope.addMember = function(repository) {\n let member;\n if ($scope.getRepositoryServer(repository) === \"Local\") {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: repository.id,\n repoType: repository.type,\n respectRights: \"true\",\n writable: \"false\"\n };\n } else {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: repository.id,\n repositoryServer: repository.location,\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n };\n }\n $scope.knownRepos = $scope.knownRepos.filter(repo => repo.id !== repository.id || repo.location !== repository.location);\n updateMembers(member);\n }\n\n $scope.removeMember = function (member) {\n if (member.store && member.store === LOCAL_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName && !el.repositoryServer);\n getKnownRepos();\n } else if (member.store && member.store === SPARQL_ENDPOINT_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n } else if (member.store && member.store === NATIVE_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryLocation !== member.repositoryLocation);\n } else if (member.store && member.store === REMOTE_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n getKnownRepos();\n }\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n $scope.addRemoteMember = function () {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: false,\n store: REMOTE_REPO_STORE,\n repositoryName: '',\n repositoryServer: '',\n sparqlEndpoint: '',\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n }\n\n $scope.$uibModalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope,\n });\n };\n\n $scope.getMemberIcon = function (member) {\n if (member.repoType) {\n return 'icon-repo-' + member.repoType;\n } else if (member.store === NATIVE_STORE) {\n return 'icon-warning';\n } else {\n return 'icon-link';\n }\n }\n\n $scope.editFedXRepository = function (member) {\n if (member.store === LOCAL_REPO_STORE) {\n $scope.mode = 'local';\n $scope.model = {\n editMode: true,\n store: member.store,\n respectRights: member.respectRights,\n repositoryName: member.repositoryName,\n repoType: member.repoType,\n writable: member.writable\n }\n } else {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: true,\n store: member.store,\n repositoryName: member.repositoryName,\n repositoryServer: member.repositoryServer,\n sparqlEndpoint: member.store === SPARQL_ENDPOINT_STORE ? member.endpoint : member.repositoryLocation,\n username: member.username,\n password: member.password,\n supportsASKQueries: member.supportsASKQueries,\n writable: member.writable\n }\n }\n\n $scope.$uibModalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope\n });\n };\n\n $scope.resolveName = function (member) {\n switch (member.store) {\n case LOCAL_REPO_STORE : {\n return member.repositoryName;\n }\n case REMOTE_REPO_STORE : {\n return member.repositoryName + '@' + member.repositoryServer;\n }\n case SPARQL_ENDPOINT_STORE : {\n return member.endpoint;\n }\n case NATIVE_STORE : {\n return member.repositoryLocation;\n }\n default :\n return \"\";\n }\n }\n\n $scope.cancel = function () {\n $scope.$uibModalInstance.dismiss('cancel');\n };\n\n function updateMembers(member) {\n $scope.fedxMembers.push(member);\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n function removeEndingSlash(url) {\n return url.slice(-1) === '/' ? url.slice(0, -1) : url\n }\n\n function checkEditMode() {\n return $scope.editRepoPage && !$scope.editRepoPage || !$scope.model.editMode;\n }\n\n $scope.ok = function () {\n let member;\n if ($scope.model.repositoryName && $scope.model.store === LOCAL_REPO_STORE) {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repoType: $scope.model.repoType,\n respectRights: $scope.model.respectRights,\n writable: $scope.model.writable\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName || el.store !== member.store );\n } else if ($scope.model.repositoryName && $scope.model.store === REMOTE_REPO_STORE) {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repositoryServer: removeEndingSlash($scope.model.repositoryServer),\n username: $scope.model.username,\n password: $scope.model.password,\n writable: $scope.model.writable\n };\n if (checkEditMode() && $scope.fedxMembers.find(el => el.repositoryName === member.repositoryName\n && el.repositoryServer === member.repositoryServer)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.member.error', {name: resolvedName}));\n $scope.$uibModalInstance.close();\n return;\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n } else {\n member = {\n store: SPARQL_ENDPOINT_STORE,\n endpoint: removeEndingSlash($scope.model.sparqlEndpoint),\n username: $scope.model.username,\n password: $scope.model.password,\n supportsASKQueries: $scope.model.supportsASKQueries,\n writable: $scope.model.writable\n };\n\n if (checkEditMode() && $scope.fedxMembers.find(el => el.endpoint === member.endpoint)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.sparql.endpoint.error', {name: resolvedName}));\n $scope.$uibModalInstance.close();\n return;\n }\n\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n }\n\n updateMembers(member);\n populateKnownRepos();\n $scope.$uibModalInstance.close();\n };\n\n $scope.$on('changedLocation', function () {\n $scope.fedxMembers = [];\n getKnownRepos();\n });\n\n getKnownRepos();\n }\n}\n","export const OntopFileType = {\n 'OBDA': 'obdaFile',\n 'OWL': 'owlFile',\n 'CONSTRAINT': 'constraintFile',\n 'LENSES': 'lensesFile',\n 'DB_METADATA': 'dbMetadataFile'\n};\n","import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/rest/license.rest.service';\nimport 'angular/settings/controllers';\nimport 'angular/core/interceptors/unauthorized.interceptor';\nimport 'angular/core/interceptors/authentication.interceptor';\nimport 'angular/core/services/jwt-auth.service';\nimport 'ng-file-upload/dist/ng-file-upload.min';\nimport 'ng-file-upload/dist/ng-file-upload-shim.min';\n\nangular.module('graphdb.framework.settings', [\n 'toastr',\n 'ui.bootstrap',\n 'graphdb.framework.rest.license.service',\n 'graphdb.framework.settings.controllers',\n 'graphdb.framework.core.interceptors.unauthorized',\n 'graphdb.framework.core.interceptors.authentication',\n 'graphdb.framework.core.services.jwtauth'\n])\n .config(config)\n .run(run);\n\nconfig.$inject = ['$httpProvider', '$routeProvider'];\n\nfunction config($httpProvider) {\n $httpProvider.interceptors.push('$authenticationInterceptor');\n}\n\nrun.$inject = ['$rootScope', '$location', '$licenseService'];\n\nfunction run($rootScope, $location, $licenseService) {\n $rootScope.$on('$locationChangeStart', function () {\n if ($licenseService.isLicenseHardcoded() && $location.url() === '/license/register') {\n $location.path('license');\n }\n });\n}\n","export class OntopRepositoryError extends Error {\n}\n"],"names":["JdbcDriverType","logger","LoggerProvider","ontopRepoDirective","$uibModal","RepositoriesRestService","toastr","Upload","$translate","restrict","scope","templateUrl","link","$scope","isGenericDriver","defaultUrlTemplate","ontopProperiesLink","ontopFileType","OntopFileType","selectedDriver","OntopDriverData","supportedDriversData","formData","connectionInformation","OntopConnectionInformation","settings","additionalProperties","ontopFiles","selectDriver","driverType","find","driver","editRepoPage","currentOntopRepoInfo","_","cloneDeep","clearFormData","driverClass","updateUrl","getOntopFileInfo","ontopFileInfo","type","getHostNameLabel","hostNameLabel","isSnowflakeDriver","instant","getDatabaseNameLabel","dataBaseNameLabelKey","SNOWFLAKE","DATABRICKS","DREMIO","calculateTemplateUrl","url","urlUserInput","isTestConnectionDisabled","portRequired","port","hostName","databaseName","testConnection","validateHostName","then","validatePort","validateDatabaseName","validateDriverClass","validateUrl","updatePropertiesFile","validateOntopPropertiesConnection","repositoryInfo","success","catch","error","OntopRepositoryError","message","showErrorMsg","editFile","fileName","params","label","title","open","controller","windowClass","resolve","file","ontopFile","value","dialogTitle","location","result","data","updateRepositoryFileContent","fileLocation","content","getFileName","uploadOntopFile","files","length","uploadFile","loading","uploadData","upload","name","errorMessage","finally","updateOntopRepo","createOrUpdate","editRepository","createRepo","validateRepositoryId","validateOntopFiles","info","onKeyDownInUrlInput","event","keyCode","ctrlDown","ctrlKey","metaKey","cursorPosition","target","selectionStart","preventDefault","stopPropagation","onKeyUpInUrlInput","extractExtraUrl","startsWith","substring","calculateSnowflakeTemplateUrl","calculateDefaultTemplateUrl","urlTemplate","replace","setLoading","forEach","jdbc","userName","username","password","propertiesFile","msg","getError","Promise","reject","fieldName","id","OBDA","Object","values","OntopFileInfo","push","required","getSupportedDriversData","response","loadPropertiesFile","driverData","parseInt","undefined","GENERIC","angular","module","directive","$inject","constructor","this","ActiveLocationSettingsCtrl","$uibModalInstance","LicenseRestService","supportsStatistics","statistics","getSettings","loader","getStatistics","status","setSettings","toggleStatistics","close","submitForm","cancel","dismiss","LicenseCtrl","$licenseService","$rootScope","ModalService","TrackingService","loadingLicense","checkLicenseStatus","removeLicense","openSimpleModal","warning","unregisterLicense","applyTrackingConsent","RegisterLicenseCtrl","$location","$window","$jwtAuth","$on","isAdmin","path","sendLicenseToValidateAndActivate","textAreaSel","$","licenseCode","sendLicenseToValidate","validatedLicense","present","val","license","size","decodedLicense","atob","registerLicense","history","back","confirmWantedNewLicenseDetails","$watch","currentFile","extractFromLicenseFile","getBackToPreviousPage","ValidateLicenseModalCtrl","ok","LoaderSamplesCtrl","setLoader","classAvailable","downloadDriverUrl","driverName","fedxRepoDirective","LOCAL_REPO_STORE","REMOTE_REPO_STORE","SPARQL_ENDPOINT_STORE","NATIVE_STORE","populateKnownRepos","member","fedxMembers","knownRepos","filter","repo","repositoryServer","repositoryName","local","getKnownRepos","getRepositories","repos","apply","allAttachedRepos","slice","setWritableRepo","currentWritable","writable","store","JSON","stringify","getActiveClass","checkIfRepoExist","getRepositoryServer","localReposTimer","setInterval","updateMembers","removeEndingSlash","checkEditMode","model","editMode","clearInterval","addMember","repository","repoType","respectRights","supportsASKQueries","removeMember","el","endpoint","repositoryLocation","addRemoteMember","mode","sparqlEndpoint","getMemberIcon","editFedXRepository","resolveName","resolvedName","config","$httpProvider","interceptors","run","isLicenseHardcoded","Error"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_id__=42129;export const __webpack_ids__=[42129];export const __webpack_modules__={42129:(e,l,t)=>{t.r(l),t.d(l,{default:()=>s});const s='<link href="css/shuttle-multiselect.css?v=3.2.0-
|
|
2
|
-
//# sourceMappingURL=42129.
|
|
1
|
+
export const __webpack_id__=42129;export const __webpack_ids__=[42129];export const __webpack_modules__={42129:(e,l,t)=>{t.r(l),t.d(l,{default:()=>s});const s='<link href="css/shuttle-multiselect.css?v=3.2.0-TR2" rel="stylesheet"/> <div class="shuttle-multiselect"> <div class="shuttle-panel available-options"> <div class="shuttle-panel-header"> <h5>{{labels.availableOptionsTitle | translate}}</h5> </div> <div class="shuttle-panel-toolbar toolbar-left"> <input type="text" class="form-control filter-selected" placeholder="{{labels.availableOptionsFilter | translate}}" ng-model="searchLeft"> <a href="#" ng-click="selectAll()" class="btn-link secondary add-all-btn" gdb-tooltip="{{labels.selectAllTooltip | translate}}" tooltip-placement="top">{{labels.selectAllLabel | translate}}</a> </div> <div class="options-list"> <div class="option-item" ng-repeat="item in availableOptions | searchFilter:searchLeft | orderBy:\'label\' track by $index"> <span>{{item.label}}</span> <a href="#" ng-click="selectOption(item)" class="btn-link secondary item-action add-btn" gdb-tooltip="{{labels.selectTooltip | translate}}" tooltip-placement="top"> <span class="fa fa-plus-circle"></span> </a> </div> </div> </div> <div class="shuttle-panel selected-options"> <div class="shuttle-panel-header"> <h5>{{labels.selectedOptionsTitle | translate}}</h5> </div> <div class="shuttle-panel-toolbar toolbar-right"> <div ng-if="selectedOptions.length" class="selected-items-message"> {{labels.selectedOptionsCount | translate:{count: selectedOptions.length} }} </div> <a href="#" ng-click="deselectAll()" class="btn-link secondary remove-all-btn" gdb-tooltip="{{labels.deselectAllTooltip | translate}}" tooltip-placement="top">{{labels.deselectAllLabel | translate}}</a> </div> <div class="options-list"> <div class="option-item" ng-repeat="item in selectedOptions | orderBy:\'label\' track by $index"> <span>{{item.label}}</span> <a href="#" ng-click="deselectOption(item)" class="btn-link secondary item-action remove-btn" gdb-tooltip="{{labels.deselectTooltip | translate}}" tooltip-placement="top"> <span class="fa fa-minus-circle"></span> </a> </div> </div> </div> </div> '}};
|
|
2
|
+
//# sourceMappingURL=42129.0314e45b4b818b01b71f.bundle.js.map
|
package/dist/{42129.f44b7b20f9cd376c6e59.bundle.js.map → 42129.0314e45b4b818b01b71f.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"42129.
|
|
1
|
+
{"version":3,"file":"42129.0314e45b4b818b01b71f.bundle.js","mappings":"uJAGA,QAFW,i9D","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/shuttle-multiselect.css?v=3.2.0-TR2\" rel=\"stylesheet\"/> <div class=\"shuttle-multiselect\"> <div class=\"shuttle-panel available-options\"> <div class=\"shuttle-panel-header\"> <h5>{{labels.availableOptionsTitle | translate}}</h5> </div> <div class=\"shuttle-panel-toolbar toolbar-left\"> <input type=\"text\" class=\"form-control filter-selected\" placeholder=\"{{labels.availableOptionsFilter | translate}}\" ng-model=\"searchLeft\"> <a href=\"#\" ng-click=\"selectAll()\" class=\"btn-link secondary add-all-btn\" gdb-tooltip=\"{{labels.selectAllTooltip | translate}}\" tooltip-placement=\"top\">{{labels.selectAllLabel | translate}}</a> </div> <div class=\"options-list\"> <div class=\"option-item\" ng-repeat=\"item in availableOptions | searchFilter:searchLeft | orderBy:'label' track by \\$index\"> <span>{{item.label}}</span> <a href=\"#\" ng-click=\"selectOption(item)\" class=\"btn-link secondary item-action add-btn\" gdb-tooltip=\"{{labels.selectTooltip | translate}}\" tooltip-placement=\"top\"> <span class=\"fa fa-plus-circle\"></span> </a> </div> </div> </div> <div class=\"shuttle-panel selected-options\"> <div class=\"shuttle-panel-header\"> <h5>{{labels.selectedOptionsTitle | translate}}</h5> </div> <div class=\"shuttle-panel-toolbar toolbar-right\"> <div ng-if=\"selectedOptions.length\" class=\"selected-items-message\"> {{labels.selectedOptionsCount | translate:{count: selectedOptions.length} }} </div> <a href=\"#\" ng-click=\"deselectAll()\" class=\"btn-link secondary remove-all-btn\" gdb-tooltip=\"{{labels.deselectAllTooltip | translate}}\" tooltip-placement=\"top\">{{labels.deselectAllLabel | translate}}</a> </div> <div class=\"options-list\"> <div class=\"option-item\" ng-repeat=\"item in selectedOptions | orderBy:'label' track by \\$index\"> <span>{{item.label}}</span> <a href=\"#\" ng-click=\"deselectOption(item)\" class=\"btn-link secondary item-action remove-btn\" gdb-tooltip=\"{{labels.deselectTooltip | translate}}\" tooltip-placement=\"top\"> <span class=\"fa fa-minus-circle\"></span> </a> </div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __webpack_id__=44444;export const __webpack_ids__=[44444];export const __webpack_modules__={44444:(t,e,a)=>{a.r(e),a.d(e,{default:()=>s});const s='<link href="css/ttyg/no-agents-view.css?v=3.2.0-
|
|
2
|
-
//# sourceMappingURL=44444.
|
|
1
|
+
export const __webpack_id__=44444;export const __webpack_ids__=[44444];export const __webpack_modules__={44444:(t,e,a)=>{a.r(e),a.d(e,{default:()=>s});const s='<link href="css/ttyg/no-agents-view.css?v=3.2.0-TR2" rel="stylesheet"/> <div class="no-agents-view-component" data-test="no-agents-view-component"> <div class="content"> <div class="alert alert-help mb-3" data-test="ttyg-info-message" ng-bind-html="\'ttyg.agent.messages.help_1\' | translate | trustAsHtml"></div> <div class="alert alert-help mb-3" data-test="ttyg-agent-message" ng-bind-html="\'ttyg.agent.messages.help_2\' | translate | trustAsHtml"></div> <div class="actions"> <button class="btn btn-outline-primary btn-lg text-xs-left create-agent-btn" gdb-tooltip="{{!canModifyAgent ? (\'ttyg.agent.fat_btn.create_agent.tooltip_disabled\' | translate) : \'\'}}" ng-disabled="!canModifyAgent" ng-click="onCreateAgent()" guide-selector="create-agent-btn"> <i class="fa fa-message-bot fa-xl"></i> <span class="text">{{\'ttyg.agent.fat_btn.create_agent.label\' | translate}}</span> </button> </div> <div class="alert alert-warning mt-3" data-test="ttyg-api-key-message"> <div ng-bind-html="\'ttyg.agent.messages.help_config\' | translate: {talkToGraphDocumentationLink: talkToGraphDocumentationLink} | trustAsHtml"></div> </div> </div> </div> '}};
|
|
2
|
+
//# sourceMappingURL=44444.02026ff20e2a843dc05b.bundle.js.map
|
package/dist/{44444.ad66c8256bc5b653de1a.bundle.js.map → 44444.02026ff20e2a843dc05b.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"44444.
|
|
1
|
+
{"version":3,"file":"44444.02026ff20e2a843dc05b.bundle.js","mappings":"uJAGA,QAFW,2nC","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/no-agents-view.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/no-agents-view.css?v=3.2.0-TR2\" rel=\"stylesheet\"/> <div class=\"no-agents-view-component\" data-test=\"no-agents-view-component\"> <div class=\"content\"> <div class=\"alert alert-help mb-3\" data-test=\"ttyg-info-message\" ng-bind-html=\"'ttyg.agent.messages.help_1' | translate | trustAsHtml\"></div> <div class=\"alert alert-help mb-3\" data-test=\"ttyg-agent-message\" ng-bind-html=\"'ttyg.agent.messages.help_2' | translate | trustAsHtml\"></div> <div class=\"actions\"> <button class=\"btn btn-outline-primary btn-lg text-xs-left create-agent-btn\" gdb-tooltip=\"{{!canModifyAgent ? ('ttyg.agent.fat_btn.create_agent.tooltip_disabled' | translate) : ''}}\" ng-disabled=\"!canModifyAgent\" ng-click=\"onCreateAgent()\" guide-selector=\"create-agent-btn\"> <i class=\"fa fa-message-bot fa-xl\"></i> <span class=\"text\">{{'ttyg.agent.fat_btn.create_agent.label' | translate}}</span> </button> </div> <div class=\"alert alert-warning mt-3\" data-test=\"ttyg-api-key-message\"> <div ng-bind-html=\"'ttyg.agent.messages.help_config' | translate: {talkToGraphDocumentationLink: talkToGraphDocumentationLink} | trustAsHtml\"></div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const __webpack_id__=45069;export const __webpack_ids__=[45069];export const __webpack_modules__={44123:(e,t,n)=>{var r;n.d(t,{O:()=>r}),function(e){e.LEFT="left",e.RIGHT="right",e.TOP="top",e.BOTTOM="bottom",e.AUTO="auto"}(r||(r={}))},79939:(e,t,n)=>{n.d(t,{L:()=>o,T:()=>s,s:()=>i});var r=n(57154);function i(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value}class o{static get logger(){return r.Loggers.getLoggerInstance("SharedComponents")}}class a{constructor(){this.languageContextService=r.ServiceProvider.get(r.LanguageContextService),this.translationChangedObservers={},this.logger=o.logger,this.defaultBundle=this.languageContextService.getDefaultBundle(),this.subscribeToBundleChange()}onTranslate(e,t=[],n=()=>{}){this.translationChangedObservers[e]=this.translationChangedObservers[e]||[];const r={parameters:t,callback:n};return this.translationChangedObservers[e].push(r),n(this.translate(e,t)),()=>{const t=this.translationChangedObservers[e].indexOf(r);-1!==t&&this.translationChangedObservers[e].splice(t,1)}}translate(e,t){return this.translateInLocale(e,t)}translateInLocale(e,t){let n=this.translateFromBundle(this.currentBundle,e);return n||(n=this.translateFromBundle(this.defaultBundle,e)),n?(n=this.applyParameters(n,t),i(n)):(this.logger.warn(`Missing translation for key: [${e}]`),e)}translateFromBundle(e,t){if(!e)return;let n=e[t];return"string"!=typeof n&&(n=this.translateAsJsonObject(e,t)),n}translateAsJsonObject(e,t){let n=t.split(".");return this.getTranslation(e,n)}getTranslation(e,t){if(!t||!e)return;const n=e[t.splice(0,1)[0]];return 0===t.length?n:"string"!=typeof n?t.length>0?this.getTranslation(n,t):n:void 0}applyParameters(e,t){return t?t.reduce((e,t)=>a.replaceAll(e,t),e):e}static replaceAll(e,t){return t?e.split(`{{${t.key}}}`).join(t.value):e}notifyTranslationsChanged(){Object.keys(this.translationChangedObservers).forEach(e=>{(this.translationChangedObservers[e]||[]).forEach(t=>t.callback(this.translate(e,t.parameters)))})}subscribeToBundleChange(){this.languageChangeSubscription=this.languageContextService.onLanguageBundleChanged(e=>{e&&(this.currentBundle=e,this.notifyTranslationsChanged())})}destroy(){this.languageChangeSubscription&&this.languageChangeSubscription()}}const s=new a},90835:(e,t,n)=>{n.d(t,{T:()=>nt});var r=n(44123);class i{constructor(){this.hideOnClick=!1,this.interactive=!0,this.appendTo=()=>document.body,this.trigger="manual",this.allowHTML=!0,this.theme="onto-tooltip",this.onShow=()=>document.querySelectorAll(".jfk-tooltip").forEach(e=>e.classList.add("hidden")),this.onHide=()=>document.querySelectorAll(".jfk-tooltip").forEach(e=>e.classList.remove("hidden"))}setHideOnClick(e){return this.hideOnClick=e,this}setContent(e){return this.content=e,this}setTrigger(e){return this.trigger=e||"manual",this}setPlacement(e){return this.placement=e||r.O.RIGHT,this}setAllowHTML(e){return this.allowHTML=e,this}setTheme(e){return this.theme=e||"onto-tooltip",this}setAppendTo(e){return this.appendTo=this.getAppendToTarget(e),this}getAppendToTarget(e){return"parent"===e?e:()=>document.body}}var o="top",a="bottom",s="right",c="left",u="auto",p=[o,a,s,c],f="start",l="end",d="viewport",h="popper",m=p.reduce(function(e,t){return e.concat([t+"-"+f,t+"-"+l])},[]),v=[].concat(p,[u]).reduce(function(e,t){return e.concat([t,t+"-"+f,t+"-"+l])},[]),g=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function b(e){return e?(e.nodeName||"").toLowerCase():null}function y(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w(e){return e instanceof y(e).Element||e instanceof Element}function x(e){return e instanceof y(e).HTMLElement||e instanceof HTMLElement}function O(e){return"undefined"!=typeof ShadowRoot&&(e instanceof y(e).ShadowRoot||e instanceof ShadowRoot)}var T={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];x(i)&&b(i)&&(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)}))})},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});x(r)&&b(r)&&(Object.assign(r.style,o),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}},requires:["computeStyles"]};function A(e){return e.split("-")[0]}var E=Math.max,C=Math.min,L=Math.round;function j(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function D(){return!/^((?!chrome|android).)*safari/i.test(j())}function k(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&x(e)&&(i=e.offsetWidth>0&&L(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&L(r.height)/e.offsetHeight||1);var a=(w(e)?y(e):window).visualViewport,s=!D()&&n,c=(r.left+(s&&a?a.offsetLeft:0))/i,u=(r.top+(s&&a?a.offsetTop:0))/o,p=r.width/i,f=r.height/o;return{width:p,height:f,top:u,right:c+p,bottom:u+f,left:c,x:c,y:u}}function S(e){var t=k(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function M(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&O(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function _(e){return y(e).getComputedStyle(e)}function P(e){return["table","td","th"].indexOf(b(e))>=0}function R(e){return((w(e)?e.ownerDocument:e.document)||window.document).documentElement}function B(e){return"html"===b(e)?e:e.assignedSlot||e.parentNode||(O(e)?e.host:null)||R(e)}function H(e){return x(e)&&"fixed"!==_(e).position?e.offsetParent:null}function I(e){for(var t=y(e),n=H(e);n&&P(n)&&"static"===_(n).position;)n=H(n);return n&&("html"===b(n)||"body"===b(n)&&"static"===_(n).position)?t:n||function(e){var t=/firefox/i.test(j());if(/Trident/i.test(j())&&x(e)&&"fixed"===_(e).position)return null;var n=B(e);for(O(n)&&(n=n.host);x(n)&&["html","body"].indexOf(b(n))<0;){var r=_(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}function N(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function V(e,t,n){return E(e,C(t,n))}function W(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function q(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var U={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,i=e.options,u=n.elements.arrow,f=n.modifiersData.popperOffsets,l=A(n.placement),d=N(l),h=[c,s].indexOf(l)>=0?"height":"width";if(u&&f){var m=function(e,t){return W("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:q(e,p))}(i.padding,n),v=S(u),g="y"===d?o:c,b="y"===d?a:s,y=n.rects.reference[h]+n.rects.reference[d]-f[d]-n.rects.popper[h],w=f[d]-n.rects.reference[d],x=I(u),O=x?"y"===d?x.clientHeight||0:x.clientWidth||0:0,T=y/2-w/2,E=m[g],C=O-v[h]-m[b],L=O/2-v[h]/2+T,j=V(E,L,C),D=d;n.modifiersData[r]=((t={})[D]=j,t.centerOffset=j-L,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&M(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function F(e){return e.split("-")[1]}var $={top:"auto",right:"auto",bottom:"auto",left:"auto"};function z(e){var t,n=e.popper,r=e.popperRect,i=e.placement,u=e.variation,p=e.offsets,f=e.position,d=e.gpuAcceleration,h=e.adaptive,m=e.roundOffsets,v=e.isFixed,g=p.x,b=void 0===g?0:g,w=p.y,x=void 0===w?0:w,O="function"==typeof m?m({x:b,y:x}):{x:b,y:x};b=O.x,x=O.y;var T=p.hasOwnProperty("x"),A=p.hasOwnProperty("y"),E=c,C=o,j=window;if(h){var D=I(n),k="clientHeight",S="clientWidth";D===y(n)&&"static"!==_(D=R(n)).position&&"absolute"===f&&(k="scrollHeight",S="scrollWidth"),(i===o||(i===c||i===s)&&u===l)&&(C=a,x-=(v&&D===j&&j.visualViewport?j.visualViewport.height:D[k])-r.height,x*=d?1:-1),i!==c&&(i!==o&&i!==a||u!==l)||(E=s,b-=(v&&D===j&&j.visualViewport?j.visualViewport.width:D[S])-r.width,b*=d?1:-1)}var M,P=Object.assign({position:f},h&&$),B=!0===m?function(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:L(n*i)/i||0,y:L(r*i)/i||0}}({x:b,y:x},y(n)):{x:b,y:x};return b=B.x,x=B.y,d?Object.assign({},P,((M={})[C]=A?"0":"",M[E]=T?"0":"",M.transform=(j.devicePixelRatio||1)<=1?"translate("+b+"px, "+x+"px)":"translate3d("+b+"px, "+x+"px, 0)",M)):Object.assign({},P,((t={})[C]=A?x+"px":"",t[E]=T?b+"px":"",t.transform="",t))}var G={passive:!0},J={left:"right",right:"left",bottom:"top",top:"bottom"};function X(e){return e.replace(/left|right|bottom|top/g,function(e){return J[e]})}var Y={start:"end",end:"start"};function K(e){return e.replace(/start|end/g,function(e){return Y[e]})}function Q(e){var t=y(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Z(e){return k(R(e)).left+Q(e).scrollLeft}function ee(e){var t=_(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function te(e){return["html","body","#document"].indexOf(b(e))>=0?e.ownerDocument.body:x(e)&&ee(e)?e:te(B(e))}function ne(e,t){var n;void 0===t&&(t=[]);var r=te(e),i=r===(null==(n=e.ownerDocument)?void 0:n.body),o=y(r),a=i?[o].concat(o.visualViewport||[],ee(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(ne(B(a)))}function re(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ie(e,t,n){return t===d?re(function(e,t){var n=y(e),r=R(e),i=n.visualViewport,o=r.clientWidth,a=r.clientHeight,s=0,c=0;if(i){o=i.width,a=i.height;var u=D();(u||!u&&"fixed"===t)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:o,height:a,x:s+Z(e),y:c}}(e,n)):w(t)?function(e,t){var n=k(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):re(function(e){var t,n=R(e),r=Q(e),i=null==(t=e.ownerDocument)?void 0:t.body,o=E(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=E(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-r.scrollLeft+Z(e),c=-r.scrollTop;return"rtl"===_(i||n).direction&&(s+=E(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:c}}(R(e)))}function oe(e){var t,n=e.reference,r=e.element,i=e.placement,u=i?A(i):null,p=i?F(i):null,d=n.x+n.width/2-r.width/2,h=n.y+n.height/2-r.height/2;switch(u){case o:t={x:d,y:n.y-r.height};break;case a:t={x:d,y:n.y+n.height};break;case s:t={x:n.x+n.width,y:h};break;case c:t={x:n.x-r.width,y:h};break;default:t={x:n.x,y:n.y}}var m=u?N(u):null;if(null!=m){var v="y"===m?"height":"width";switch(p){case f:t[m]=t[m]-(n[v]/2-r[v]/2);break;case l:t[m]=t[m]+(n[v]/2-r[v]/2)}}return t}function ae(e,t){void 0===t&&(t={});var n=t,r=n.placement,i=void 0===r?e.placement:r,c=n.strategy,u=void 0===c?e.strategy:c,f=n.boundary,l=void 0===f?"clippingParents":f,m=n.rootBoundary,v=void 0===m?d:m,g=n.elementContext,y=void 0===g?h:g,O=n.altBoundary,T=void 0!==O&&O,A=n.padding,L=void 0===A?0:A,j=W("number"!=typeof L?L:q(L,p)),D=y===h?"reference":h,S=e.rects.popper,P=e.elements[T?D:y],H=function(e,t,n,r){var i="clippingParents"===t?function(e){var t=ne(B(e)),n=["absolute","fixed"].indexOf(_(e).position)>=0&&x(e)?I(e):e;return w(n)?t.filter(function(e){return w(e)&&M(e,n)&&"body"!==b(e)}):[]}(e):[].concat(t),o=[].concat(i,[n]),a=o[0],s=o.reduce(function(t,n){var i=ie(e,n,r);return t.top=E(i.top,t.top),t.right=C(i.right,t.right),t.bottom=C(i.bottom,t.bottom),t.left=E(i.left,t.left),t},ie(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}(w(P)?P:P.contextElement||R(e.elements.popper),l,v,u),N=k(e.elements.reference),V=oe({reference:N,element:S,placement:i}),U=re(Object.assign({},S,V)),F=y===h?U:N,$={top:H.top-F.top+j.top,bottom:F.bottom-H.bottom+j.bottom,left:H.left-F.left+j.left,right:F.right-H.right+j.right},z=e.modifiersData.offset;if(y===h&&z){var G=z[i];Object.keys($).forEach(function(e){var t=[s,a].indexOf(e)>=0?1:-1,n=[o,a].indexOf(e)>=0?"y":"x";$[e]+=G[n]*t})}return $}function se(e,t){void 0===t&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,u=void 0===c?v:c,f=F(r),l=f?s?m:m.filter(function(e){return F(e)===f}):p,d=l.filter(function(e){return u.indexOf(e)>=0});0===d.length&&(d=l);var h=d.reduce(function(t,n){return t[n]=ae(e,{placement:n,boundary:i,rootBoundary:o,padding:a})[A(n)],t},{});return Object.keys(h).sort(function(e,t){return h[e]-h[t]})}var ce={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,p=void 0===i||i,l=n.altAxis,d=void 0===l||l,h=n.fallbackPlacements,m=n.padding,v=n.boundary,g=n.rootBoundary,b=n.altBoundary,y=n.flipVariations,w=void 0===y||y,x=n.allowedAutoPlacements,O=t.options.placement,T=A(O),E=h||(T!==O&&w?function(e){if(A(e)===u)return[];var t=X(e);return[K(e),t,K(t)]}(O):[X(O)]),C=[O].concat(E).reduce(function(e,n){return e.concat(A(n)===u?se(t,{placement:n,boundary:v,rootBoundary:g,padding:m,flipVariations:w,allowedAutoPlacements:x}):n)},[]),L=t.rects.reference,j=t.rects.popper,D=new Map,k=!0,S=C[0],M=0;M<C.length;M++){var _=C[M],P=A(_),R=F(_)===f,B=[o,a].indexOf(P)>=0,H=B?"width":"height",I=ae(t,{placement:_,boundary:v,rootBoundary:g,altBoundary:b,padding:m}),N=B?R?s:c:R?a:o;L[H]>j[H]&&(N=X(N));var V=X(N),W=[];if(p&&W.push(I[P]<=0),d&&W.push(I[N]<=0,I[V]<=0),W.every(function(e){return e})){S=_,k=!1;break}D.set(_,W)}if(k)for(var q=function(e){var t=C.find(function(t){var n=D.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return S=t,"break"},U=w?3:1;U>0&&"break"!==q(U);U--);t.placement!==S&&(t.modifiersData[r]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ue(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function pe(e){return[o,s,a,c].some(function(t){return e[t]>=0})}function fe(e,t,n){void 0===n&&(n=!1);var r,i,o=x(t),a=x(t)&&function(e){var t=e.getBoundingClientRect(),n=L(t.width)/e.offsetWidth||1,r=L(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),s=R(t),c=k(e,a,n),u={scrollLeft:0,scrollTop:0},p={x:0,y:0};return(o||!o&&!n)&&(("body"!==b(t)||ee(s))&&(u=(r=t)!==y(r)&&x(r)?{scrollLeft:(i=r).scrollLeft,scrollTop:i.scrollTop}:Q(r)),x(t)?((p=k(t,!0)).x+=t.clientLeft,p.y+=t.clientTop):s&&(p.x=Z(s))),{x:c.left+u.scrollLeft-p.x,y:c.top+u.scrollTop-p.y,width:c.width,height:c.height}}function le(e){var t=new Map,n=new Set,r=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||i(e)}),r}var de={placement:"bottom",modifiers:[],strategy:"absolute"};function he(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(e){return!(e&&"function"==typeof e.getBoundingClientRect)})}function me(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,r=void 0===n?[]:n,i=t.defaultOptions,o=void 0===i?de:i;return function(e,t,n){void 0===n&&(n=o);var i,a,s={placement:"bottom",orderedModifiers:[],options:Object.assign({},de,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},c=[],u=!1,p={state:s,setOptions:function(n){var i="function"==typeof n?n(s.options):n;f(),s.options=Object.assign({},o,s.options,i),s.scrollParents={reference:w(e)?ne(e):e.contextElement?ne(e.contextElement):[],popper:ne(t)};var a,u,l=function(e){var t=le(e);return g.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}((a=[].concat(r,s.options.modifiers),u=a.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{}),Object.keys(u).map(function(e){return u[e]})));return s.orderedModifiers=l.filter(function(e){return e.enabled}),s.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,i=e.effect;if("function"==typeof i){var o=i({state:s,name:t,instance:p,options:r});c.push(o||function(){})}}),p.update()},forceUpdate:function(){if(!u){var e=s.elements,t=e.reference,n=e.popper;if(he(t,n)){s.rects={reference:fe(t,I(n),"fixed"===s.options.strategy),popper:S(n)},s.reset=!1,s.placement=s.options.placement,s.orderedModifiers.forEach(function(e){return s.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r<s.orderedModifiers.length;r++)if(!0!==s.reset){var i=s.orderedModifiers[r],o=i.fn,a=i.options,c=void 0===a?{}:a,f=i.name;"function"==typeof o&&(s=o({state:s,options:c,name:f,instance:p})||s)}else s.reset=!1,r=-1}}},update:(i=function(){return new Promise(function(e){p.forceUpdate(),e(s)})},function(){return a||(a=new Promise(function(e){Promise.resolve().then(function(){a=void 0,e(i())})})),a}),destroy:function(){f(),u=!0}};if(!he(e,t))return p;function f(){c.forEach(function(e){return e()}),c=[]}return p.setOptions(n).then(function(e){!u&&n.onFirstUpdate&&n.onFirstUpdate(e)}),p}}var ve=me({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=void 0===i||i,a=r.resize,s=void 0===a||a,c=y(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(e){e.addEventListener("scroll",n.update,G)}),s&&c.addEventListener("resize",n.update,G),function(){o&&u.forEach(function(e){e.removeEventListener("scroll",n.update,G)}),s&&c.removeEventListener("resize",n.update,G)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=void 0===r||r,o=n.adaptive,a=void 0===o||o,s=n.roundOffsets,c=void 0===s||s,u={placement:A(t.placement),variation:F(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,z(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,z(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},T,{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=void 0===i?[0,0]:i,u=v.reduce(function(e,n){return e[n]=function(e,t,n){var r=A(e),i=[c,o].indexOf(r)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,u=a[0],p=a[1];return u=u||0,p=(p||0)*i,[c,s].indexOf(r)>=0?{x:p,y:u}:{x:u,y:p}}(n,t.rects,a),e},{}),p=u[t.placement],f=p.x,l=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=u}},ce,{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,u=void 0===i||i,p=n.altAxis,l=void 0!==p&&p,d=n.boundary,h=n.rootBoundary,m=n.altBoundary,v=n.padding,g=n.tether,b=void 0===g||g,y=n.tetherOffset,w=void 0===y?0:y,x=ae(t,{boundary:d,rootBoundary:h,padding:v,altBoundary:m}),O=A(t.placement),T=F(t.placement),L=!T,j=N(O),D="x"===j?"y":"x",k=t.modifiersData.popperOffsets,M=t.rects.reference,_=t.rects.popper,P="function"==typeof w?w(Object.assign({},t.rects,{placement:t.placement})):w,R="number"==typeof P?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),B=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,H={x:0,y:0};if(k){if(u){var W,q="y"===j?o:c,U="y"===j?a:s,$="y"===j?"height":"width",z=k[j],G=z+x[q],J=z-x[U],X=b?-_[$]/2:0,Y=T===f?M[$]:_[$],K=T===f?-_[$]:-M[$],Q=t.elements.arrow,Z=b&&Q?S(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[q],ne=ee[U],re=V(0,M[$],Z[$]),ie=L?M[$]/2-X-re-te-R.mainAxis:Y-re-te-R.mainAxis,oe=L?-M[$]/2+X+re+ne+R.mainAxis:K+re+ne+R.mainAxis,se=t.elements.arrow&&I(t.elements.arrow),ce=se?"y"===j?se.clientTop||0:se.clientLeft||0:0,ue=null!=(W=null==B?void 0:B[j])?W:0,pe=z+oe-ue,fe=V(b?C(G,z+ie-ue-ce):G,z,b?E(J,pe):J);k[j]=fe,H[j]=fe-z}if(l){var le,de="x"===j?o:c,he="x"===j?a:s,me=k[D],ve="y"===D?"height":"width",ge=me+x[de],be=me-x[he],ye=-1!==[o,c].indexOf(O),we=null!=(le=null==B?void 0:B[D])?le:0,xe=ye?ge:me-M[ve]-_[ve]-we+R.altAxis,Oe=ye?me+M[ve]+_[ve]-we-R.altAxis:be,Te=b&&ye?function(e,t,n){var r=V(e,t,n);return r>n?n:r}(xe,me,Oe):V(b?xe:ge,me,b?Oe:be);k[D]=Te,H[D]=Te-me}t.modifiersData[r]=H}},requiresIfExists:["offset"]},U,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=ae(t,{elementContext:"reference"}),s=ae(t,{altBoundary:!0}),c=ue(a,r),u=ue(s,i,o),p=pe(c),f=pe(u);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:u,isReferenceHidden:p,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":f})}}]}),ge="tippy-content",be="tippy-arrow",ye="tippy-svg-arrow",we={passive:!0,capture:!0},xe=function(){return document.body};function Oe(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function Te(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function Ae(e,t){return"function"==typeof e?e.apply(void 0,t):e}function Ee(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)};var n}function Ce(e){return[].concat(e)}function Le(e,t){-1===e.indexOf(t)&&e.push(t)}function je(e){return[].slice.call(e)}function De(e){return Object.keys(e).reduce(function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t},{})}function ke(){return document.createElement("div")}function Se(e){return["Element","Fragment"].some(function(t){return Te(e,t)})}function Me(e,t){e.forEach(function(e){e&&(e.style.transitionDuration=t+"ms")})}function _e(e,t){e.forEach(function(e){e&&e.setAttribute("data-state",t)})}function Pe(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(t){e[r](t,n)})}function Re(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var Be={isTouch:!1},He=0;function Ie(){Be.isTouch||(Be.isTouch=!0,window.performance&&document.addEventListener("mousemove",Ne))}function Ne(){var e=performance.now();e-He<20&&(Be.isTouch=!1,document.removeEventListener("mousemove",Ne)),He=e}function Ve(){var e,t=document.activeElement;if((e=t)&&e._tippy&&e._tippy.reference===e){var n=t._tippy;t.blur&&!n.state.isVisible&&t.blur()}}var We=!("undefined"==typeof window||"undefined"==typeof document||!window.msCrypto),qe=Object.assign({appendTo:xe,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),Ue=Object.keys(qe);function Fe(e){var t=(e.plugins||[]).reduce(function(t,n){var r,i=n.name,o=n.defaultValue;return i&&(t[i]=void 0!==e[i]?e[i]:null!=(r=qe[i])?r:o),t},{});return Object.assign({},e,t)}function $e(e,t){var n=Object.assign({},t,{content:Ae(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(Fe(Object.assign({},qe,{plugins:t}))):Ue).reduce(function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t},{})}(e,t.plugins));return n.aria=Object.assign({},qe.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function ze(e,t){e.innerHTML=t}function Ge(e){var t=ke();return!0===e?t.className=be:(t.className=ye,Se(e)?t.appendChild(e):ze(t,e)),t}function Je(e,t){Se(t.content)?(ze(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?ze(e,t.content):e.textContent=t.content)}function Xe(e){var t=e.firstElementChild,n=je(t.children);return{box:t,content:n.find(function(e){return e.classList.contains(ge)}),arrow:n.find(function(e){return e.classList.contains(be)||e.classList.contains(ye)}),backdrop:n.find(function(e){return e.classList.contains("tippy-backdrop")})}}function Ye(e){var t=ke(),n=ke();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=ke();function i(n,r){var i=Xe(t),o=i.box,a=i.content,s=i.arrow;r.theme?o.setAttribute("data-theme",r.theme):o.removeAttribute("data-theme"),"string"==typeof r.animation?o.setAttribute("data-animation",r.animation):o.removeAttribute("data-animation"),r.inertia?o.setAttribute("data-inertia",""):o.removeAttribute("data-inertia"),o.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?o.setAttribute("role",r.role):o.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||Je(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(o.removeChild(s),o.appendChild(Ge(r.arrow))):o.appendChild(Ge(r.arrow)):s&&o.removeChild(s)}return r.className=ge,r.setAttribute("data-state","hidden"),Je(r,e.props),t.appendChild(n),n.appendChild(r),i(e.props,e.props),{popper:t,onUpdate:i}}Ye.$$tippy=!0;var Ke=1,Qe=[],Ze=[];function et(e,t){var n,r,i,o,a,s,c,u,p=$e(e,Object.assign({},qe,Fe(De(t)))),f=!1,l=!1,d=!1,h=!1,m=[],v=Ee(G,p.interactiveDebounce),g=Ke++,b=(u=p.plugins).filter(function(e,t){return u.indexOf(e)===t}),y={id:g,reference:e,popper:ke(),popperInstance:null,props:p,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:b,clearDelayTimeouts:function(){clearTimeout(n),clearTimeout(r),cancelAnimationFrame(i)},setProps:function(t){if(!y.state.isDestroyed){_("onBeforeUpdate",[y,t]),$();var n=y.props,r=$e(e,Object.assign({},n,De(t),{ignoreAttributes:!0}));y.props=r,F(),n.interactiveDebounce!==r.interactiveDebounce&&(B(),v=Ee(G,r.interactiveDebounce)),n.triggerTarget&&!r.triggerTarget?Ce(n.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):r.triggerTarget&&e.removeAttribute("aria-expanded"),R(),M(),O&&O(n,r),y.popperInstance&&(K(),Z().forEach(function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})),_("onAfterUpdate",[y,t])}},setContent:function(e){y.setProps({content:e})},show:function(){var e=y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=Be.isTouch&&!y.props.touch,i=Oe(y.props.duration,0,qe.duration);if(!(e||t||n||r||j().hasAttribute("disabled")||(_("onShow",[y],!1),!1===y.props.onShow(y)))){if(y.state.isVisible=!0,L()&&(x.style.visibility="visible"),M(),V(),y.state.isMounted||(x.style.transition="none"),L()){var o=k();Me([o.box,o.content],0)}var a,c,u;s=function(){var e;if(y.state.isVisible&&!h){if(h=!0,x.style.transition=y.props.moveTransition,L()&&y.props.animation){var t=k(),n=t.box,r=t.content;Me([n,r],i),_e([n,r],"visible")}P(),R(),Le(Ze,y),null==(e=y.popperInstance)||e.forceUpdate(),_("onMount",[y]),y.props.animation&&L()&&function(e){q(e,function(){y.state.isShown=!0,_("onShown",[y])})}(i)}},c=y.props.appendTo,u=j(),(a=y.props.interactive&&c===xe||"parent"===c?u.parentNode:Ae(c,[u])).contains(x)||a.appendChild(x),y.state.isMounted=!0,K()}},hide:function(){var e=!y.state.isVisible,t=y.state.isDestroyed,n=!y.state.isEnabled,r=Oe(y.props.duration,1,qe.duration);if(!(e||t||n)&&(_("onHide",[y],!1),!1!==y.props.onHide(y))){if(y.state.isVisible=!1,y.state.isShown=!1,h=!1,f=!1,L()&&(x.style.visibility="hidden"),B(),W(),M(!0),L()){var i=k(),o=i.box,a=i.content;y.props.animation&&(Me([o,a],r),_e([o,a],"hidden"))}P(),R(),y.props.animation?L()&&function(e,t){q(e,function(){!y.state.isVisible&&x.parentNode&&x.parentNode.contains(x)&&t()})}(r,y.unmount):y.unmount()}},hideWithInteractivity:function(e){D().addEventListener("mousemove",v),Le(Qe,v),v(e)},enable:function(){y.state.isEnabled=!0},disable:function(){y.hide(),y.state.isEnabled=!1},unmount:function(){y.state.isVisible&&y.hide(),y.state.isMounted&&(Q(),Z().forEach(function(e){e._tippy.unmount()}),x.parentNode&&x.parentNode.removeChild(x),Ze=Ze.filter(function(e){return e!==y}),y.state.isMounted=!1,_("onHidden",[y]))},destroy:function(){y.state.isDestroyed||(y.clearDelayTimeouts(),y.unmount(),$(),delete e._tippy,y.state.isDestroyed=!0,_("onDestroy",[y]))}};if(!p.render)return y;var w=p.render(y),x=w.popper,O=w.onUpdate;x.setAttribute("data-tippy-root",""),x.id="tippy-"+y.id,y.popper=x,e._tippy=y,x._tippy=y;var T=b.map(function(e){return e.fn(y)}),A=e.hasAttribute("aria-expanded");return F(),R(),M(),_("onCreate",[y]),p.showOnCreate&&ee(),x.addEventListener("mouseenter",function(){y.props.interactive&&y.state.isVisible&&y.clearDelayTimeouts()}),x.addEventListener("mouseleave",function(){y.props.interactive&&y.props.trigger.indexOf("mouseenter")>=0&&D().addEventListener("mousemove",v)}),y;function E(){var e=y.props.touch;return Array.isArray(e)?e:[e,0]}function C(){return"hold"===E()[0]}function L(){var e;return!(null==(e=y.props.render)||!e.$$tippy)}function j(){return c||e}function D(){var e,t,n=j().parentNode;return n&&null!=(t=Ce(n)[0])&&null!=(e=t.ownerDocument)&&e.body?t.ownerDocument:document}function k(){return Xe(x)}function S(e){return y.state.isMounted&&!y.state.isVisible||Be.isTouch||o&&"focus"===o.type?0:Oe(y.props.delay,e?0:1,qe.delay)}function M(e){void 0===e&&(e=!1),x.style.pointerEvents=y.props.interactive&&!e?"":"none",x.style.zIndex=""+y.props.zIndex}function _(e,t,n){var r;void 0===n&&(n=!0),T.forEach(function(n){n[e]&&n[e].apply(n,t)}),n&&(r=y.props)[e].apply(r,t)}function P(){var t=y.props.aria;if(t.content){var n="aria-"+t.content,r=x.id;Ce(y.props.triggerTarget||e).forEach(function(e){var t=e.getAttribute(n);if(y.state.isVisible)e.setAttribute(n,t?t+" "+r:r);else{var i=t&&t.replace(r,"").trim();i?e.setAttribute(n,i):e.removeAttribute(n)}})}}function R(){!A&&y.props.aria.expanded&&Ce(y.props.triggerTarget||e).forEach(function(e){y.props.interactive?e.setAttribute("aria-expanded",y.state.isVisible&&e===j()?"true":"false"):e.removeAttribute("aria-expanded")})}function B(){D().removeEventListener("mousemove",v),Qe=Qe.filter(function(e){return e!==v})}function H(t){if(!Be.isTouch||!d&&"mousedown"!==t.type){var n=t.composedPath&&t.composedPath()[0]||t.target;if(!y.props.interactive||!Re(x,n)){if(Ce(y.props.triggerTarget||e).some(function(e){return Re(e,n)})){if(Be.isTouch)return;if(y.state.isVisible&&y.props.trigger.indexOf("click")>=0)return}else _("onClickOutside",[y,t]);!0===y.props.hideOnClick&&(y.clearDelayTimeouts(),y.hide(),l=!0,setTimeout(function(){l=!1}),y.state.isMounted||W())}}}function I(){d=!0}function N(){d=!1}function V(){var e=D();e.addEventListener("mousedown",H,!0),e.addEventListener("touchend",H,we),e.addEventListener("touchstart",N,we),e.addEventListener("touchmove",I,we)}function W(){var e=D();e.removeEventListener("mousedown",H,!0),e.removeEventListener("touchend",H,we),e.removeEventListener("touchstart",N,we),e.removeEventListener("touchmove",I,we)}function q(e,t){var n=k().box;function r(e){e.target===n&&(Pe(n,"remove",r),t())}if(0===e)return t();Pe(n,"remove",a),Pe(n,"add",r),a=r}function U(t,n,r){void 0===r&&(r=!1),Ce(y.props.triggerTarget||e).forEach(function(e){e.addEventListener(t,n,r),m.push({node:e,eventType:t,handler:n,options:r})})}function F(){var e;C()&&(U("touchstart",z,{passive:!0}),U("touchend",J,{passive:!0})),(e=y.props.trigger,e.split(/\s+/).filter(Boolean)).forEach(function(e){if("manual"!==e)switch(U(e,z),e){case"mouseenter":U("mouseleave",J);break;case"focus":U(We?"focusout":"blur",X);break;case"focusin":U("focusout",X)}})}function $(){m.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,i=e.options;t.removeEventListener(n,r,i)}),m=[]}function z(e){var t,n=!1;if(y.state.isEnabled&&!Y(e)&&!l){var r="focus"===(null==(t=o)?void 0:t.type);o=e,c=e.currentTarget,R(),!y.state.isVisible&&Te(e,"MouseEvent")&&Qe.forEach(function(t){return t(e)}),"click"===e.type&&(y.props.trigger.indexOf("mouseenter")<0||f)&&!1!==y.props.hideOnClick&&y.state.isVisible?n=!0:ee(e),"click"===e.type&&(f=!n),n&&!r&&te(e)}}function G(e){var t=e.target,n=j().contains(t)||x.contains(t);if("mousemove"!==e.type||!n){var r=Z().concat(x).map(function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:p}:null}).filter(Boolean);(function(e,t){var n=t.clientX,r=t.clientY;return e.every(function(e){var t=e.popperRect,i=e.popperState,o=e.props.interactiveBorder,a=i.placement.split("-")[0],s=i.modifiersData.offset;if(!s)return!0;var c="bottom"===a?s.top.y:0,u="top"===a?s.bottom.y:0,p="right"===a?s.left.x:0,f="left"===a?s.right.x:0,l=t.top-r+c>o,d=r-t.bottom-u>o,h=t.left-n+p>o,m=n-t.right-f>o;return l||d||h||m})})(r,e)&&(B(),te(e))}}function J(e){Y(e)||y.props.trigger.indexOf("click")>=0&&f||(y.props.interactive?y.hideWithInteractivity(e):te(e))}function X(e){y.props.trigger.indexOf("focusin")<0&&e.target!==j()||y.props.interactive&&e.relatedTarget&&x.contains(e.relatedTarget)||te(e)}function Y(e){return!!Be.isTouch&&C()!==e.type.indexOf("touch")>=0}function K(){Q();var t=y.props,n=t.popperOptions,r=t.placement,i=t.offset,o=t.getReferenceClientRect,a=t.moveTransition,c=L()?Xe(x).arrow:null,u=o?{getBoundingClientRect:o,contextElement:o.contextElement||j()}:e,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!a}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(L()){var n=k().box;["placement","reference-hidden","escaped"].forEach(function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)}),t.attributes.popper={}}}}];L()&&c&&p.push({name:"arrow",options:{element:c,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),y.popperInstance=ve(u,x,Object.assign({},n,{placement:r,onFirstUpdate:s,modifiers:p}))}function Q(){y.popperInstance&&(y.popperInstance.destroy(),y.popperInstance=null)}function Z(){return je(x.querySelectorAll("[data-tippy-root]"))}function ee(e){y.clearDelayTimeouts(),e&&_("onTrigger",[y,e]),V();var t=S(!0),r=E(),i=r[0],o=r[1];Be.isTouch&&"hold"===i&&o&&(t=o),t?n=setTimeout(function(){y.show()},t):y.show()}function te(e){if(y.clearDelayTimeouts(),_("onUntrigger",[y,e]),y.state.isVisible){if(!(y.props.trigger.indexOf("mouseenter")>=0&&y.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&f)){var t=S(!1);t?r=setTimeout(function(){y.state.isVisible&&y.hide()},t):i=requestAnimationFrame(function(){y.hide()})}}else W()}}function tt(e,t){void 0===t&&(t={});var n=qe.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Ie,we),window.addEventListener("blur",Ve);var r,i=Object.assign({},t,{plugins:n}),o=(r=e,Se(r)?[r]:function(e){return Te(e,"NodeList")}(r)?je(r):Array.isArray(r)?r:je(document.querySelectorAll(r))).reduce(function(e,t){var n=t&&et(t,i);return n&&e.push(n),e},[]);return Se(e)?o[0]:o}tt.defaultProps=qe,tt.setDefaultProps=function(e){Object.keys(e).forEach(function(t){qe[t]=e[t]})},tt.currentInput=Be,Object.assign({},T,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),tt.setDefaultProps({render:Ye});class nt{static getTooltipInstance(e){return e._tippy}static createTooltip(e){return e.classList.add(nt.TOOLTIP_CLASS),tt(e,nt.getConfig(e))}static getOrCreateTooltipInstance(e){return nt.getTooltipInstance(e)||nt.createTooltip(e)}static getConfig(e){return(new i).setContent(e.getAttribute(nt.ATTR_CONTENT)).setTheme(e.getAttribute(nt.ATTR_THEME)).setPlacement(e.getAttribute(nt.ATTR_PLACEMENT)).setTrigger(e.getAttribute(nt.ATTR_TRIGGER)).setAppendTo(e.getAttribute(nt.ATTR_APPEND_TO))}static updateTooltipContent(e,t){const n=nt.getTooltipInstance(e);n&&""!==t&&n.setContent(t)}static destroyTooltip(e){var t;const n=nt.getTooltipInstance(e);e.classList.contains(nt.TOOLTIP_CLASS)&&n&&!(null===(t=n.state)||void 0===t?void 0:t.isDestroyed)&&n.destroy()}static getTooltipTarget(e){for(;e&&!e.getAttribute(nt.ATTR_CONTENT);)e=e.parentElement;return e}}nt.ATTR_CONTENT="tooltip-content",nt.ATTR_THEME="tooltip-theme",nt.ATTR_PLACEMENT="tooltip-placement",nt.ATTR_TRIGGER="tooltip-trigger",nt.ATTR_APPEND_TO="tooltip-append-to",nt.TOOLTIP_CLASS="onto-tooltip"}};
|
|
2
|
+
//# sourceMappingURL=45069.82993bf600a550fac275.bundle.js.map
|