graphdb-workbench 3.1.1 → 3.1.2-RC1
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/12396.45c6c5bfacbc9b618e53.bundle.js +2 -0
- package/dist/12396.45c6c5bfacbc9b618e53.bundle.js.map +1 -0
- package/dist/15535.4ddd399f1c7b1a293cd1.bundle.js +2 -0
- package/dist/15535.4ddd399f1c7b1a293cd1.bundle.js.map +1 -0
- package/dist/16162.5a13a7e01245ad4a1870.bundle.js +2 -0
- package/dist/16162.5a13a7e01245ad4a1870.bundle.js.map +1 -0
- package/dist/20287.57efc6f8c3d69e32d9eb.bundle.js +2 -0
- package/dist/20287.57efc6f8c3d69e32d9eb.bundle.js.map +1 -0
- package/dist/21136.16ba26c3c2a5994ac804.bundle.js +2 -0
- package/dist/21136.16ba26c3c2a5994ac804.bundle.js.map +1 -0
- package/dist/21142.6a0dddf4d8cbaa3f12b0.bundle.js +2 -0
- package/dist/21142.6a0dddf4d8cbaa3f12b0.bundle.js.map +1 -0
- package/dist/21170.8e1c1c6ca9e0dcabb7f1.bundle.js +2 -0
- package/dist/21170.8e1c1c6ca9e0dcabb7f1.bundle.js.map +1 -0
- package/dist/21195.a643243779a9686a80c2.bundle.js +2 -0
- package/dist/21195.a643243779a9686a80c2.bundle.js.map +1 -0
- package/dist/25747.cad141609522a4fada23.bundle.js +2 -0
- package/dist/25747.cad141609522a4fada23.bundle.js.map +1 -0
- package/dist/27580.9b398051408490eb3370.bundle.js +2 -0
- package/dist/27580.9b398051408490eb3370.bundle.js.map +1 -0
- package/dist/31636.4cbcef238ea95947d034.bundle.js +2 -0
- package/dist/31636.4cbcef238ea95947d034.bundle.js.map +1 -0
- package/dist/32489.6f365b00ec1f1a922349.bundle.js +2 -0
- package/dist/32489.6f365b00ec1f1a922349.bundle.js.map +1 -0
- package/dist/34330.a8c1fd00d27db289888e.bundle.js +2 -0
- package/dist/34330.a8c1fd00d27db289888e.bundle.js.map +1 -0
- package/dist/34495.26fa7bdc333ca00fd5ef.bundle.js +2 -0
- package/dist/34495.26fa7bdc333ca00fd5ef.bundle.js.map +1 -0
- package/dist/{38360.437a12fa59878d1d43b9.bundle.js → 38360.4cdad1c762e87ebd0956.bundle.js} +2 -2
- package/dist/38360.4cdad1c762e87ebd0956.bundle.js.map +1 -0
- package/dist/38644.fc6c58775859f41c805f.bundle.js +2 -0
- package/dist/38644.fc6c58775859f41c805f.bundle.js.map +1 -0
- package/dist/38843.87e1d2c22e7c03397740.bundle.js +2 -0
- package/dist/38843.87e1d2c22e7c03397740.bundle.js.map +1 -0
- package/dist/39518.148d1b3347798e9919fd.bundle.js +2 -0
- package/dist/39518.148d1b3347798e9919fd.bundle.js.map +1 -0
- package/dist/39539.43ba568d747c737aa425.bundle.js +2 -0
- package/dist/39539.43ba568d747c737aa425.bundle.js.map +1 -0
- package/dist/41453.cc7b9e548b29aa23051f.bundle.js +2 -0
- package/dist/41453.cc7b9e548b29aa23051f.bundle.js.map +1 -0
- package/dist/42129.ea7309affc343caf1ca2.bundle.js +2 -0
- package/dist/42129.ea7309affc343caf1ca2.bundle.js.map +1 -0
- package/dist/42143.6c37997677f5ec643731.bundle.js +2 -0
- package/dist/42143.6c37997677f5ec643731.bundle.js.map +1 -0
- package/dist/44444.55a40d0bec02cb65abec.bundle.js +2 -0
- package/dist/44444.55a40d0bec02cb65abec.bundle.js.map +1 -0
- package/dist/{51087.b072d1c0e53403535283.bundle.js → 51087.1e118e7fe32a8c09d6cb.bundle.js} +2 -2
- package/dist/51087.1e118e7fe32a8c09d6cb.bundle.js.map +1 -0
- package/dist/{55217.4769c1f0615e364d8c2a.bundle.js → 55217.98a70cf01c4b7a826e82.bundle.js} +2 -2
- package/dist/55217.98a70cf01c4b7a826e82.bundle.js.map +1 -0
- package/dist/55862.d9d6d715b3ef7c42f98f.bundle.js +2 -0
- package/dist/55862.d9d6d715b3ef7c42f98f.bundle.js.map +1 -0
- package/dist/58306.d34210db8418c8e2ada5.bundle.js +2 -0
- package/dist/58306.d34210db8418c8e2ada5.bundle.js.map +1 -0
- package/dist/67232.ed4a76f2ed6ca5622502.bundle.js +2 -0
- package/dist/67232.ed4a76f2ed6ca5622502.bundle.js.map +1 -0
- package/dist/67888.351f27e70f183b0ed866.bundle.js +2 -0
- package/dist/67888.351f27e70f183b0ed866.bundle.js.map +1 -0
- package/dist/70938.c489d3ca5b00ad297139.bundle.js +2 -0
- package/dist/70938.c489d3ca5b00ad297139.bundle.js.map +1 -0
- package/dist/72379.53a484997d925adb2740.bundle.js +2 -0
- package/dist/72379.53a484997d925adb2740.bundle.js.map +1 -0
- package/dist/73667.4393561b33a20dcfa9c7.bundle.js +2 -0
- package/dist/73667.4393561b33a20dcfa9c7.bundle.js.map +1 -0
- package/dist/73793.4af5d04b7d2549d88c47.bundle.js +2 -0
- package/dist/73793.4af5d04b7d2549d88c47.bundle.js.map +1 -0
- package/dist/75282.fd7af7301abd1fbdb902.bundle.js +2 -0
- package/dist/75282.fd7af7301abd1fbdb902.bundle.js.map +1 -0
- package/dist/75849.a3bceb24c6c508086f31.bundle.js +2 -0
- package/dist/75849.a3bceb24c6c508086f31.bundle.js.map +1 -0
- package/dist/76013.9e71103dbb91bd9a558c.bundle.js +2 -0
- package/dist/76013.9e71103dbb91bd9a558c.bundle.js.map +1 -0
- package/dist/78250.291dc2a5a37971ff0e26.bundle.js +2 -0
- package/dist/78250.291dc2a5a37971ff0e26.bundle.js.map +1 -0
- package/dist/79329.3af551efaa9b79cb9ecd.bundle.js +2 -0
- package/dist/79329.3af551efaa9b79cb9ecd.bundle.js.map +1 -0
- package/dist/{82926.f625cc022724426fb8fb.bundle.js → 82926.e3185a54538c532c72ca.bundle.js} +2 -2
- package/dist/{82926.f625cc022724426fb8fb.bundle.js.map → 82926.e3185a54538c532c72ca.bundle.js.map} +1 -1
- package/dist/86142.04f4e4759998d4c37ccd.bundle.js +2 -0
- package/dist/86142.04f4e4759998d4c37ccd.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/89695.92f7a6ec9d8d3661a105.bundle.js +2 -0
- package/dist/89695.92f7a6ec9d8d3661a105.bundle.js.map +1 -0
- package/dist/9062.ffba00927452fd99ac05.bundle.js +2 -0
- package/dist/9062.ffba00927452fd99ac05.bundle.js.map +1 -0
- package/dist/99448.a99d92ecebfe54944813.bundle.js +2 -0
- package/dist/99448.a99d92ecebfe54944813.bundle.js.map +1 -0
- package/dist/i18n/locale-en.json +3 -2
- package/dist/i18n/locale-fr.json +3 -2
- package/dist/index.html +8 -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.7c89e10f5b13be36e507.js +3 -0
- package/dist/{legacyWorkbench.ad1d42d21ac42beabeb4.js.map → legacyWorkbench.7c89e10f5b13be36e507.js.map} +1 -1
- package/dist/{main.400f2248f076a2d31d80.js → main.69281239915ca9aecd6d.js} +3 -3
- package/dist/{main.400f2248f076a2d31d80.js.map → main.69281239915ca9aecd6d.js.map} +1 -1
- 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/not_found.html +1 -1
- 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/package.json +1 -1
- package/dist/12396.47201b3f37dcfe963353.bundle.js +0 -2
- package/dist/12396.47201b3f37dcfe963353.bundle.js.map +0 -1
- package/dist/15535.e3d3f8071a4cc462b5eb.bundle.js +0 -2
- package/dist/15535.e3d3f8071a4cc462b5eb.bundle.js.map +0 -1
- package/dist/16162.bc70365c3f546e70a3e9.bundle.js +0 -2
- package/dist/16162.bc70365c3f546e70a3e9.bundle.js.map +0 -1
- package/dist/20287.c3d0095a3a5f18cd0087.bundle.js +0 -2
- package/dist/20287.c3d0095a3a5f18cd0087.bundle.js.map +0 -1
- package/dist/21136.fb6d69cd9e6dd31a65b2.bundle.js +0 -2
- package/dist/21136.fb6d69cd9e6dd31a65b2.bundle.js.map +0 -1
- package/dist/21142.0589f58f1a3b49b4fcfa.bundle.js +0 -2
- package/dist/21142.0589f58f1a3b49b4fcfa.bundle.js.map +0 -1
- package/dist/21170.8126948c956555b4f9ff.bundle.js +0 -2
- package/dist/21170.8126948c956555b4f9ff.bundle.js.map +0 -1
- package/dist/21195.77df14ed68c1f286839a.bundle.js +0 -2
- package/dist/21195.77df14ed68c1f286839a.bundle.js.map +0 -1
- package/dist/25747.612b1bce6250300d137f.bundle.js +0 -2
- package/dist/25747.612b1bce6250300d137f.bundle.js.map +0 -1
- package/dist/27580.88bc1444d863327a3697.bundle.js +0 -2
- package/dist/27580.88bc1444d863327a3697.bundle.js.map +0 -1
- package/dist/31636.625df78d380dadd69c07.bundle.js +0 -2
- package/dist/31636.625df78d380dadd69c07.bundle.js.map +0 -1
- package/dist/32489.5f438460389d65300913.bundle.js +0 -2
- package/dist/32489.5f438460389d65300913.bundle.js.map +0 -1
- package/dist/34330.4b46c3a52d19f05fc0b2.bundle.js +0 -2
- package/dist/34330.4b46c3a52d19f05fc0b2.bundle.js.map +0 -1
- package/dist/34495.e0f8e26f32d7d8def627.bundle.js +0 -2
- package/dist/34495.e0f8e26f32d7d8def627.bundle.js.map +0 -1
- package/dist/38360.437a12fa59878d1d43b9.bundle.js.map +0 -1
- package/dist/38644.6e82d4276df028701834.bundle.js +0 -2
- package/dist/38644.6e82d4276df028701834.bundle.js.map +0 -1
- package/dist/38843.428e7caf2e6805840b83.bundle.js +0 -2
- package/dist/38843.428e7caf2e6805840b83.bundle.js.map +0 -1
- package/dist/39518.0ee809a85c83dba1f56a.bundle.js +0 -2
- package/dist/39518.0ee809a85c83dba1f56a.bundle.js.map +0 -1
- package/dist/39539.2a03bf4161ee846817d3.bundle.js +0 -2
- package/dist/39539.2a03bf4161ee846817d3.bundle.js.map +0 -1
- package/dist/41453.5370acf9540ff5382268.bundle.js +0 -2
- package/dist/41453.5370acf9540ff5382268.bundle.js.map +0 -1
- package/dist/42129.02f0b477c276dceb732c.bundle.js +0 -2
- package/dist/42129.02f0b477c276dceb732c.bundle.js.map +0 -1
- package/dist/42143.c11e5c28f2b8e9952dbb.bundle.js +0 -2
- package/dist/42143.c11e5c28f2b8e9952dbb.bundle.js.map +0 -1
- package/dist/44444.57b74adca89db793b77c.bundle.js +0 -2
- package/dist/44444.57b74adca89db793b77c.bundle.js.map +0 -1
- package/dist/51087.b072d1c0e53403535283.bundle.js.map +0 -1
- package/dist/55217.4769c1f0615e364d8c2a.bundle.js.map +0 -1
- package/dist/55862.81467f263f3c46d9d889.bundle.js +0 -2
- package/dist/55862.81467f263f3c46d9d889.bundle.js.map +0 -1
- package/dist/58306.0ca44cc562ab1135c44b.bundle.js +0 -2
- package/dist/58306.0ca44cc562ab1135c44b.bundle.js.map +0 -1
- package/dist/67232.e76f40f9d09e64ebb365.bundle.js +0 -2
- package/dist/67232.e76f40f9d09e64ebb365.bundle.js.map +0 -1
- package/dist/67888.cc78716f885f98366859.bundle.js +0 -2
- package/dist/67888.cc78716f885f98366859.bundle.js.map +0 -1
- package/dist/70938.6d0055f916f6d1bc91bb.bundle.js +0 -2
- package/dist/70938.6d0055f916f6d1bc91bb.bundle.js.map +0 -1
- package/dist/72379.4023fb8f5c0dd8f32faa.bundle.js +0 -2
- package/dist/72379.4023fb8f5c0dd8f32faa.bundle.js.map +0 -1
- package/dist/73667.6925315f2649c49bade2.bundle.js +0 -2
- package/dist/73667.6925315f2649c49bade2.bundle.js.map +0 -1
- package/dist/73793.0cd99844e3792d5beb8c.bundle.js +0 -2
- package/dist/73793.0cd99844e3792d5beb8c.bundle.js.map +0 -1
- package/dist/75282.1005c493f43b9d6dcc5a.bundle.js +0 -2
- package/dist/75282.1005c493f43b9d6dcc5a.bundle.js.map +0 -1
- package/dist/75849.39b30ee4eb2f1b35f762.bundle.js +0 -2
- package/dist/75849.39b30ee4eb2f1b35f762.bundle.js.map +0 -1
- package/dist/76013.3211939a02cf4fb2529e.bundle.js +0 -2
- package/dist/76013.3211939a02cf4fb2529e.bundle.js.map +0 -1
- package/dist/78250.8462f5662da1fd9ece0b.bundle.js +0 -2
- package/dist/78250.8462f5662da1fd9ece0b.bundle.js.map +0 -1
- package/dist/79329.cd81f51fd3aed8ca8359.bundle.js +0 -2
- package/dist/79329.cd81f51fd3aed8ca8359.bundle.js.map +0 -1
- package/dist/86142.c29959b68edc59a9b696.bundle.js +0 -2
- package/dist/86142.c29959b68edc59a9b696.bundle.js.map +0 -1
- package/dist/86639.ab85108411ef0f006e10.bundle.js.map +0 -1
- package/dist/89695.4ee87c52d4088115c51e.bundle.js +0 -2
- package/dist/89695.4ee87c52d4088115c51e.bundle.js.map +0 -1
- package/dist/9062.2b577ad9fc05b48b64a3.bundle.js +0 -2
- package/dist/9062.2b577ad9fc05b48b64a3.bundle.js.map +0 -1
- package/dist/99448.98a68cbf8bf84857b615.bundle.js +0 -2
- package/dist/99448.98a68cbf8bf84857b615.bundle.js.map +0 -1
- package/dist/legacyWorkbench.ad1d42d21ac42beabeb4.js +0 -3
- /package/dist/{legacyWorkbench.ad1d42d21ac42beabeb4.js.LICENSE.txt → legacyWorkbench.7c89e10f5b13be36e507.js.LICENSE.txt} +0 -0
- /package/dist/{main.400f2248f076a2d31d80.js.LICENSE.txt → main.69281239915ca9aecd6d.js.LICENSE.txt} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=79329;export const __webpack_ids__=[79329];export const __webpack_modules__={79329:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});const o='<link href="css/ttyg/agent-settings-modal.css?v=3.1.1" rel="stylesheet"/> <link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=3.1.1" rel="stylesheet"/> <div class="modal-header"> <button type="button" class="close" ng-click="close()"></button> <h4 class="modal-title">{{( operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.title.edit \' : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.title.clone\' : \'ttyg.agent.create_agent_modal.title.create\') | translate}}</h4> </div> <div class="modal-body"> <form novalidate name="agentSettingsForm" id="agentSettingsForm" class="agent-settings-form" guide-selector="agent-form"> <div class="form-group agent-name-label"> <label for="name" uib-popover="{{\'ttyg.agent.create_agent_modal.form.agent_name.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.agent_name.label\' | translate}}</label> <input type="text" class="form-control" id="name" name="name" ng-model="agentFormModel.name" required autocomplete="off" guide-selector="agent-name" placeholder="{{\'ttyg.agent.create_agent_modal.form.agent_name.placeholder\' | translate}}"> <div class="alert alert-danger" ng-if="agentSettingsForm.name.$touched && agentSettingsForm.name.$invalid"> {{\'required.field\' | translate}} </div> </div> <div> <button class="external-config-btn" ng-click="openExternalIntegrationConfig()" ng-if="operation !== AGENT_OPERATION.CREATE" uib-popover="{{\'ttyg.agent.create_agent_modal.form.external_config.tooltip\' | translate}}" popover-trigger="mouseenter"> <i class="fa-regular fa-plug-circle-plus"></i> {{\'ttyg.agent.create_agent_modal.form.external_config.label\' | translate}} </button> </div> <div class="form-group repository-id"> <label for="repositoryId" uib-popover="{{\'ttyg.agent.create_agent_modal.form.repository.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.repository.label\' | translate}}</label> <select class="form-control" id="repositoryId" name="repositoryId" ng-model="agentFormModel.repositoryId" required ng-change="onRepositoryChange()" guide-selector="repository-id" ng-options="repository.value as repository.label for repository in activeRepositoryList"> </select> <div class="alert alert-danger" ng-if="agentSettingsForm.repositoryId.$touched && agentSettingsForm.repositoryId.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-row clearfix"> <div class="form-group llm-model" ng-class="{\'col-md-3\': showContextSize, \'col-md-4\': !showContextSize}"> <label for="model">{{\'ttyg.agent.create_agent_modal.form.model.label\' | translate}}</label> <help-info-popover help-info="helpInfoForModel"></help-info-popover> <input type="text" class="form-control" id="model" name="model" ng-model="agentFormModel.model" guide-selector="model" required autocomplete="off"> <div class="alert alert-danger" ng-if="agentSettingsForm.model.$touched && agentSettingsForm.model.$invalid"> {{\'required.field\' | translate}} </div> </div> <div ng-if="showContextSize" class="form-group context-size col-md-3"> <div class="context-size-wrapper"> <label for="contextSize"> <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.context_size.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.context_size.label\' | translate}}</span> </label> <button type="button" class="btn btn-link btn-sm reset-context-size-btn" ng-click="onRestoreDefaultContextSize()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.context_size.restore_default_btn.tooltip\' | translate}}"> <i class="fa fa-arrow-rotate-left"></i> </button> <div class="input-with-unit"> <input type="number" id="contextSize" name="contextSize" class="form-control" min="1" ng-model="agentFormModel.contextSize" required autocomplete="off"> <span class="token-unit-label"> {{\'ttyg.agent.create_agent_modal.form.context_size.field_addon\' | translate}} </span> </div> </div> <div class="alert alert-danger" ng-if="agentSettingsForm.contextSize.$touched && agentSettingsForm.contextSize.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group temperature" ng-class="{\'col-md-3\': showContextSize, \'col-md-4\': !showContextSize}" guide-selector="temperature-control"> <label for="temperature"> <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.temperature.label\' | translate}}</span> <i class="fa fa-triangle-exclamation text-warning high-temperature-warning" ng-if="showHighTemperatureWarning" uib-popover="{{\'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning\' | translate}}" popover-trigger="mouseenter"></i> </label> <input type="text" id="temperature" name="temperature" readonly="readonly" class="form-control" ng-class="{\'has-warning\': showHighTemperatureWarning}" ng-model="agentFormModel.temperature.value"> <input id="temperatureSlider" name="temperature" type="range" guide-selector="temperature-control-input" min="{{agentFormModel.temperature.minValue}}" max="{{agentFormModel.temperature.maxValue}}" step="{{agentFormModel.temperature.step}}" ng-change="onTemperatureChange()" ng-model="agentFormModel.temperature.value"/> </div> <div class="form-group top-p" ng-class="{\'col-md-3\': showContextSize, \'col-md-4\': !showContextSize}" guide-selector="top-p-control"> <label for="topP" uib-popover="{{\'ttyg.agent.create_agent_modal.form.top_p.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.top_p.label\' | translate}}</label> <input type="text" class="form-control" id="topP" name="topP" readonly="readonly" ng-model="agentFormModel.topP.value"> <input id="topPSlider" name="topP" type="range" min="{{agentFormModel.topP.minValue}}" guide-selector="top-p-control-input" max="{{agentFormModel.topP.maxValue}}" step="{{agentFormModel.topP.step}}" ng-model="agentFormModel.topP.value"/> </div> </div> <div class="form-group extraction-methods-group"> <label for="extractionMethods" uib-popover="{{\'ttyg.agent.create_agent_modal.form.extraction_method.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.extraction_method.label\' | translate}}</label> <div id="extractionMethods" name="extractionMethods" ng-model="agentFormModel.assistantExtractionMethods.extractionMethods" required class="accordion extraction-methods" ng-class="{\'has-error\': agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid}"> <div ng-repeat="extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods" class="extraction-method"> <div id="{{extractionMethod.method + \'_method_heading\'}}" class="extraction-method-heading" ng-class="{\'selected\': extractionMethod.selected}" guide-selector="query-method-{{extractionMethod.method}}"> <div class="mr-0 extraction-method-toggle"> <input type="checkbox" id="{{extractionMethod.method + \'_checkbox\'}}" guide-selector="query-method-{{extractionMethod.method}}-input" name="{{extractionMethod.method}}" class="switch" ng-click="toggleExtractionMethod(extractionMethod, $event)" ng-model="extractionMethod.selected"/> <label for="{{extractionMethod.method + \'_checkbox\'}}"></label> </div> <a class="btn btn-link panel-toggle-link" aria-expanded="false" aria-controls="{{extractionMethod.method + \'_method_content\'}}" ng-click="onExtractionMethodPanelToggle(extractionMethod)"> <span class="mr-1" uib-popover="{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.\' + extractionMethod.method + \'.label\' | translate}}</span> <i class="fa fa-chevron-down toggle-icon" ng-class="{\'expanded\': extractionMethod.expanded}"> </i> </a> </div> <div id="{{extractionMethod.method + \'_method_content\'}}" class="show extraction-method-content" aria-labelledby="{{extractionMethod.method + \'_method_heading\'}}" data-parent="#extractionMethods"> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL" class="extraction-method-options" ng-class="{\'has-error\': extractionMethod.selected && !extractionMethod.sparqlOption}"> <div class="sparql-option ontology-graph-option" guide-selector="sparql-ontology-graph-option"> <label class="radio-inline" uib-popover="{{\'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip\' | translate}}" popover-trigger="mouseenter"> <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected" guide-selector="sparql-ontology-graph-option-input" ng-model="extractionMethod.sparqlOption" value="ontologyGraph"> {{\'ttyg.agent.create_agent_modal.form.ontology_graph.label\' | translate}} </label> <div class="panel" ng-show="extractionMethod.sparqlOption === \'ontologyGraph\'"> <div class="form-group"> <input type="text" class="form-control" id="ontologyGraph" guide-selector="sparql-ontology-graph-input" name="ontologyGraph" ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'ontologyGraph\'" ng-model="extractionMethod.ontologyGraph"> </div> </div> </div> <div class="sparql-option sparql-query-option" guide-selector="sparql-query-option"> <label class="radio-inline" uib-popover="{{\'ttyg.agent.create_agent_modal.form.construct_query.tooltip\' | translate}}" popover-trigger="mouseenter"> <input type="radio" name="sparqlOption" ng-required="extractionMethod.selected" guide-selector="sparql-query-option-input" ng-model="extractionMethod.sparqlOption" value="sparqlQuery"> {{\'ttyg.agent.create_agent_modal.form.construct_query.label\' | translate}} </label> <div class="panel" ng-show="extractionMethod.sparqlOption === \'sparqlQuery\'"> <div class="form-group"> <textarea type="text" class="form-control" id="sparqlQuery" guide-selector="sparql-query-input" name="sparqlQuery" rows="10" ng-required="extractionMethod.selected && extractionMethod.sparqlOption === \'sparqlQuery\'" ng-minlength="extractionMethod.sparqlQuery.minLength" ng-maxlength="extractionMethod.sparqlQuery.maxLength" ng-model="extractionMethod.sparqlQuery.value">\n </textarea> </div> </div> </div> <div class="alert alert-danger sparql-method-option-required-error mb-0" ng-if="extractionMethod.selected && !extractionMethod.sparqlOption"> {{\'ttyg.agent.create_agent_modal.form.sparql_search.required_option\' | translate}} </div> <div class="add-missing-namespaces-option mt-1" guide-selector="add-missing-namespaces-option"> <input id="addMissingNamespaces" name="addMissingNamespaces" type="checkbox" guide-selector="add-missing-namespaces-input" ng-model="extractionMethod.addMissingNamespaces"> <label for="addMissingNamespaces" uib-popover="{{\'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip\' | translate}}" popover-trigger="mouseenter">{{ \'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label\' | translate }}</label> </div> </div> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH" ng-class="{\'has-error\': agentSettingsForm.$error.FTSDisabled || agentSettingsForm.repositoryId.$invalid}" class="extraction-method-options"> <button ng-if="agentFormModel.repositoryId" class="btn btn-link btn-sm pull-right" ng-click="checkIfFTSEnabled()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip\' | translate}}"> <i class="fa fa-arrows-rotate"></i> </button> <div class="alert alert-danger missing-repositoryid-error mb-0" ng-if="agentSettingsForm.repositoryId.$invalid"> {{\'ttyg.agent.create_agent_modal.form.missing_repository_id\' | translate}} </div> <div ng-if="!ftsEnabled && agentFormModel.repositoryId" class="fts-disabled-message" ng-bind-html="getFTSDisabledHelpMessage()"> </div> <div class="form-group max-triples" ng-show="ftsEnabled && agentFormModel.repositoryId"> <label for="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}" uib-popover="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label\' | translate}} </label> <input type="number" class="form-control" guide-selector="max-triples-per-call-input" id="{{extractionMethods.FTS_SEARCH + \'_maxNumberOfTriplesPerCall\'}}" name="maxNumberOfTriplesPerCall" min="0" ng-model="extractionMethod.maxNumberOfTriplesPerCall" placeholder="{{\'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder\' | translate}}"> </div> </div> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY" ng-class="{\'has-error\': agentSettingsForm.$error.missingIndex || agentSettingsForm.repositoryId.$invalid}" class="extraction-method-options"> <button ng-if="agentFormModel.repositoryId" class="btn btn-link btn-sm pull-right" ng-click="updateSimilaritySearchPanel()" ng-disabled="disabled" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip\' | translate}}"> <i class="fa fa-arrows-rotate"></i> </button> <div class="alert alert-danger missing-repositoryid-error mb-0" ng-if="agentSettingsForm.repositoryId.$invalid"> {{\'ttyg.agent.create_agent_modal.form.missing_repository_id\' | translate}} </div> <div ng-if="agentFormModel.repositoryId && !similarityIndexes.length" class="no-similarity-index-message"> {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1\' | translate}} <a href="" ng-click="goToCreateSimilarityView($event)"> {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2\' | translate}} </a> {{\'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3\' | translate}}. </div> <div ng-show="similarityIndexes.length"> <div class="form-group similarity-index"> <label for="similarityIndex" uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_index.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_index.label\' | translate}}</label> <span ng-if="extractionMethodLoaderFlags.similarity_search" onto-loader-fancy size="16"></span> <select class="form-control" id="similarityIndex" name="similarityIndex" guide-selector="similarity-index-select" ng-required="extractionMethod.selected" ng-if="!extractionMethodLoaderFlags.similarity_search" ng-model="extractionMethod.similarityIndex" ng-options="similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes"> </select> <div class="alert alert-danger" ng-if="extractionMethod.similarityIndex.$touched && extractionMethod.similarityIndex.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group similarity-index-threshold"> <label for="similarityIndexThreshold" uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.similarity_threshold.label\' | translate}}</label> <input type="text" class="form-control" id="similarityIndexThreshold" name="similarityIndexThreshold" readonly="readonly" ng-model="extractionMethod.similarityIndexThreshold.value"> <input id="similarityIndexThresholdSlider" name="similarityIndexThreshold" type="range" ng-required="extractionMethod.selected" min="{{extractionMethod.similarityIndexThreshold.minValue}}" max="{{extractionMethod.similarityIndexThreshold.maxValue}}" step="0.1" ng-model="extractionMethod.similarityIndexThreshold.value"/> </div> <div class="form-group similarity-max-triples"> <label for="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}" uib-popover="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label\' | translate}}</label> <input type="number" class="form-control" id="{{extractionMethods.SIMILARITY + \'_maxNumberOfTriplesPerCall\'}}" name="maxNumberOfTriplesPerCall" min="0" ng-model="extractionMethod.maxNumberOfTriplesPerCall" placeholder="{{\'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder\' | translate}}"> </div> </div> </div> <div ng-if="extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL" ng-class="{\'has-error\': agentSettingsForm.$error.missingConnector || agentSettingsForm.repositoryId.$invalid}" class="extraction-method-options"> <button ng-if="agentFormModel.repositoryId" class="btn btn-link btn-sm pull-right" ng-click="updateRetrievalConnectorPanel()" ng-disabled="disabled" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip\' | translate}}"> <i class="fa fa-arrows-rotate"></i> </button> <div class="alert alert-danger missing-repositoryid-error mb-0" ng-if="agentSettingsForm.repositoryId.$invalid"> {{\'ttyg.agent.create_agent_modal.form.missing_repository_id\' | translate}} </div> <div ng-if="agentFormModel.repositoryId && !retrievalConnectors.length" class="no-retrieval-connector-message"> {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1\' | translate}} <a href="" ng-click="goToConnectorsView($event)"> {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2\' | translate}} </a> {{\'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3\' | translate}}. </div> <div ng-show="retrievalConnectors.length"> <div class="form-group retrieval-connector"> <label for="retrievalConnectorInstance" uib-popover="{{\'ttyg.agent.create_agent_modal.form.connector_id.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.connector_id.label\' | translate}}</label> <span ng-if="extractionMethodLoaderFlags.retrieval_search" onto-loader-fancy size="16"></span> <select class="form-control" id="retrievalConnectorInstance" name="retrievalConnectorInstance" ng-required="extractionMethod.selected" ng-if="!extractionMethodLoaderFlags.retrieval_search" ng-model="extractionMethod.retrievalConnectorInstance" ng-options="retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors"> </select> <div class="alert alert-danger" ng-if="extractionMethod.retrievalConnectorInstance.$touched && extractionMethod.retrievalConnectorInstance.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group query-template"> <label for="queryTemplate" uib-popover="{{\'ttyg.agent.create_agent_modal.form.query_template.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.query_template.label\' | translate}}</label> <textarea type="text" class="form-control" id="queryTemplate" name="queryTemplate" rows="10" ng-required="extractionMethod.selected" ng-minlength="extractionMethod.queryTemplate.minLength" ng-maxlength="extractionMethod.queryTemplate.maxLength" ng-model="extractionMethod.queryTemplate.value">\n </textarea> <div class="alert alert-danger" ng-if="extractionMethod.name.$touched && extractionMethod.name.$invalid"> {{\'required.field\' | translate}} </div> </div> <div class="form-group retrieval-connector-max-triples"> <label for="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}" uib-popover="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label\' | translate}}</label> <input type="number" class="form-control" id="{{extractionMethods.RETRIEVAL + \'_maxNumberOfTriplesPerCall\'}}" name="maxNumberOfTriplesPerCall" min="0" ng-model="extractionMethod.maxNumberOfTriplesPerCall" placeholder="{{\'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder\' | translate}}"> </div> </div> </div> </div> </div> </div> <div class="alert alert-danger extraction-method-required-error" ng-if="agentSettingsForm.extractionMethods.$touched && agentSettingsForm.extractionMethods.$invalid"> {{\'ttyg.agent.create_agent_modal.form.extraction_method.required\' | translate}} </div> </div> <div id="additionalExtractionMethods" class="form-group additional-extraction-methods"> <label uib-popover="{{\'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip\' | translate}}" popover-trigger="mouseenter"> {{\'ttyg.agent.create_agent_modal.form.additional_query_methods.label\' | translate}} </label> <div ng-repeat="extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods" class="additional-extraction-method"> <div ng-if="ExtractionMethodTemplates[extractionMethod.method]"> <div ng-include="\'js/angular/ttyg/templates/\' + ExtractionMethodTemplates[extractionMethod.method] + \'.html\'"></div> </div> </div> </div> <div class="form-group user-instructions"> <div class="toolbar"> <label for="userInstruction" uib-popover="{{\'ttyg.agent.create_agent_modal.form.user_instruction.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.user_instruction.label\' | translate}}</label> <div class="actions"> <copy-to-clipboard tooltip-text="ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip" text-to-copy="{{agentFormModel.instructions.userInstruction}}"></copy-to-clipboard> <button class="btn btn-link btn-sm create-chat-btn" ng-click="onRestoreDefaultUserInstructions()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip\' | translate}}"> <i class="fa fa-arrow-rotate-left"></i> </button> </div> </div> <textarea type="text" class="form-control" id="userInstruction" name="userInstruction" rows="5" guide-selector="user-instructions" ng-model="agentFormModel.instructions.userInstruction" placeholder="{{\'ttyg.agent.create_agent_modal.form.user_instruction.placeholder\' | translate}}">\n </textarea> </div> <div class="text-xs-center"> <button type="button" ng-click="showAdvancedSettings = !showAdvancedSettings" class="btn btn-link btn-sm toggle-advanced-settings"> <span ng-hide="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.show\' | translate}}<em class="icon-caret-down"></em></span> <span ng-show="showAdvancedSettings">{{\'ttyg.agent.create_agent_modal.advanced_settings.hide\' | translate}}<em class="icon-caret-up"></em></span> </button> </div> <div ng-show="showAdvancedSettings" class="advanced-settings"> <div class="form-group system-instructions"> <div class="toolbar"> <label for="systemInstruction"> <span uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.tooltip\' | translate}}" popover-trigger="mouseenter">{{\'ttyg.agent.create_agent_modal.form.system_instruction.label\' | translate}}</span> <i class="fa fa-triangle-exclamation text-warning overriding-system-instructions-warning" ng-if="showSystemInstructionWarning" uib-popover="{{\'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body\' | translate}}" popover-trigger="mouseenter"></i> </label> <div class="actions"> <copy-to-clipboard tooltip-text="ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip" text-to-copy="{{agentFormModel.instructions.systemInstruction}}"></copy-to-clipboard> <button class="btn btn-link btn-sm create-chat-btn" ng-click="onRestoreDefaultSystemInstructions()" gdb-tooltip="{{\'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip\' | translate}}"> <i class="fa fa-arrow-rotate-left"></i> </button> </div> </div> <textarea type="text" class="form-control" id="systemInstruction" name="systemInstruction" rows="5" placeholder="{{\'ttyg.agent.create_agent_modal.form.system_instruction.placeholder\' | translate}}" ng-class="{\'has-warning\': showSystemInstructionWarning}" ng-model="agentFormModel.instructions.systemInstruction" ng-change="onSystemInstructionChange()">\n </textarea> </div> </div> </form> </div> <div class="modal-footer"> <button type="button" ng-click="onExplainAgentSettings()" class="btn explain-agent-settings-btn"> {{\'ttyg.agent.create_agent_modal.btn.explain_settings.label\' | translate}} </button> <div> <button type="button" ng-click="cancel()" class="btn cancel-btn"> {{\'ttyg.agent.create_agent_modal.btn.cancel.label\' | translate}} </button> <button type="button" ng-click="ok()" ng-disabled="agentSettingsForm.$invalid || savingAgent" guide-selector="save-agent-settings" class="btn btn-primary save-agent-settings-btn"> <span>{{(operation === AGENT_OPERATION.EDIT ? \'ttyg.agent.create_agent_modal.btn.save.label\' : operation === AGENT_OPERATION.CLONE ? \'ttyg.agent.create_agent_modal.btn.save.label\' : \'ttyg.agent.create_agent_modal.btn.create.label\') | translate}}</span> <span class="saving-agent-loader" ng-if="savingAgent" onto-loader-fancy hide-message="true" size="15"></span> </button> </div> </div> '}};
|
|
2
|
-
//# sourceMappingURL=79329.cd81f51fd3aed8ca8359.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"79329.cd81f51fd3aed8ca8359.bundle.js","mappings":"uJAOA,QANW,8wxB","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/modal/agent-settings-modal.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-settings-modal.css?v=3.1.1\" rel=\"stylesheet\"/> <link href=\"css/lib/ng-tags-input/ng-tags-input.min.css?v=3.1.1\" rel=\"stylesheet\"/> <div class=\"modal-header\"> <button type=\"button\" class=\"close\" ng-click=\"close()\"></button> <h4 class=\"modal-title\">{{( operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.title.edit ' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.title.clone' : 'ttyg.agent.create_agent_modal.title.create') | translate}}</h4> </div> <div class=\"modal-body\"> <form novalidate name=\"agentSettingsForm\" id=\"agentSettingsForm\" class=\"agent-settings-form\" guide-selector=\"agent-form\"> <div class=\"form-group agent-name-label\"> <label for=\"name\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.agent_name.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.agent_name.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"name\" name=\"name\" ng-model=\"agentFormModel.name\" required autocomplete=\"off\" guide-selector=\"agent-name\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.agent_name.placeholder' | translate}}\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.name.\\$touched && agentSettingsForm.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div> <button class=\"external-config-btn\" ng-click=\"openExternalIntegrationConfig()\" ng-if=\"operation !== AGENT_OPERATION.CREATE\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.external_config.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <i class=\"fa-regular fa-plug-circle-plus\"></i> {{'ttyg.agent.create_agent_modal.form.external_config.label' | translate}} </button> </div> <div class=\"form-group repository-id\"> <label for=\"repositoryId\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.repository.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.repository.label' | translate}}</label> <select class=\"form-control\" id=\"repositoryId\" name=\"repositoryId\" ng-model=\"agentFormModel.repositoryId\" required ng-change=\"onRepositoryChange()\" guide-selector=\"repository-id\" ng-options=\"repository.value as repository.label for repository in activeRepositoryList\"> </select> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.repositoryId.\\$touched && agentSettingsForm.repositoryId.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-row clearfix\"> <div class=\"form-group llm-model\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\"> <label for=\"model\">{{'ttyg.agent.create_agent_modal.form.model.label' | translate}}</label> <help-info-popover help-info=\"helpInfoForModel\"></help-info-popover> <input type=\"text\" class=\"form-control\" id=\"model\" name=\"model\" ng-model=\"agentFormModel.model\" guide-selector=\"model\" required autocomplete=\"off\"> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.model.\\$touched && agentSettingsForm.model.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div ng-if=\"showContextSize\" class=\"form-group context-size col-md-3\"> <div class=\"context-size-wrapper\"> <label for=\"contextSize\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.context_size.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.context_size.label' | translate}}</span> </label> <button type=\"button\" class=\"btn btn-link btn-sm reset-context-size-btn\" ng-click=\"onRestoreDefaultContextSize()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.context_size.restore_default_btn.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> <div class=\"input-with-unit\"> <input type=\"number\" id=\"contextSize\" name=\"contextSize\" class=\"form-control\" min=\"1\" ng-model=\"agentFormModel.contextSize\" required autocomplete=\"off\"> <span class=\"token-unit-label\"> {{'ttyg.agent.create_agent_modal.form.context_size.field_addon' | translate}} </span> </div> </div> <div class=\"alert alert-danger\" ng-if=\"agentSettingsForm.contextSize.\\$touched && agentSettingsForm.contextSize.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group temperature\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\" guide-selector=\"temperature-control\"> <label for=\"temperature\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.temperature.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning high-temperature-warning\" ng-if=\"showHighTemperatureWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.temperature.high_temperature_warning' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <input type=\"text\" id=\"temperature\" name=\"temperature\" readonly=\"readonly\" class=\"form-control\" ng-class=\"{'has-warning': showHighTemperatureWarning}\" ng-model=\"agentFormModel.temperature.value\"> <input id=\"temperatureSlider\" name=\"temperature\" type=\"range\" guide-selector=\"temperature-control-input\" min=\"{{agentFormModel.temperature.minValue}}\" max=\"{{agentFormModel.temperature.maxValue}}\" step=\"{{agentFormModel.temperature.step}}\" ng-change=\"onTemperatureChange()\" ng-model=\"agentFormModel.temperature.value\"/> </div> <div class=\"form-group top-p\" ng-class=\"{'col-md-3': showContextSize, 'col-md-4': !showContextSize}\" guide-selector=\"top-p-control\"> <label for=\"topP\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.top_p.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.top_p.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"topP\" name=\"topP\" readonly=\"readonly\" ng-model=\"agentFormModel.topP.value\"> <input id=\"topPSlider\" name=\"topP\" type=\"range\" min=\"{{agentFormModel.topP.minValue}}\" guide-selector=\"top-p-control-input\" max=\"{{agentFormModel.topP.maxValue}}\" step=\"{{agentFormModel.topP.step}}\" ng-model=\"agentFormModel.topP.value\"/> </div> </div> <div class=\"form-group extraction-methods-group\"> <label for=\"extractionMethods\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.extraction_method.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.extraction_method.label' | translate}}</label> <div id=\"extractionMethods\" name=\"extractionMethods\" ng-model=\"agentFormModel.assistantExtractionMethods.extractionMethods\" required class=\"accordion extraction-methods\" ng-class=\"{'has-error': agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid}\"> <div ng-repeat=\"extractionMethod in agentFormModel.assistantExtractionMethods.extractionMethods\" class=\"extraction-method\"> <div id=\"{{extractionMethod.method + '_method_heading'}}\" class=\"extraction-method-heading\" ng-class=\"{'selected': extractionMethod.selected}\" guide-selector=\"query-method-{{extractionMethod.method}}\"> <div class=\"mr-0 extraction-method-toggle\"> <input type=\"checkbox\" id=\"{{extractionMethod.method + '_checkbox'}}\" guide-selector=\"query-method-{{extractionMethod.method}}-input\" name=\"{{extractionMethod.method}}\" class=\"switch\" ng-click=\"toggleExtractionMethod(extractionMethod, \\$event)\" ng-model=\"extractionMethod.selected\"/> <label for=\"{{extractionMethod.method + '_checkbox'}}\"></label> </div> <a class=\"btn btn-link panel-toggle-link\" aria-expanded=\"false\" aria-controls=\"{{extractionMethod.method + '_method_content'}}\" ng-click=\"onExtractionMethodPanelToggle(extractionMethod)\"> <span class=\"mr-1\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.' + extractionMethod.method + '.label' | translate}}</span> <i class=\"fa fa-chevron-down toggle-icon\" ng-class=\"{'expanded': extractionMethod.expanded}\"> </i> </a> </div> <div id=\"{{extractionMethod.method + '_method_content'}}\" class=\"show extraction-method-content\" aria-labelledby=\"{{extractionMethod.method + '_method_heading'}}\" data-parent=\"#extractionMethods\"> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SPARQL\" class=\"extraction-method-options\" ng-class=\"{'has-error': extractionMethod.selected && !extractionMethod.sparqlOption}\"> <div class=\"sparql-option ontology-graph-option\" guide-selector=\"sparql-ontology-graph-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.ontology_graph.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" guide-selector=\"sparql-ontology-graph-option-input\" ng-model=\"extractionMethod.sparqlOption\" value=\"ontologyGraph\"> {{'ttyg.agent.create_agent_modal.form.ontology_graph.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'ontologyGraph'\"> <div class=\"form-group\"> <input type=\"text\" class=\"form-control\" id=\"ontologyGraph\" guide-selector=\"sparql-ontology-graph-input\" name=\"ontologyGraph\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'ontologyGraph'\" ng-model=\"extractionMethod.ontologyGraph\"> </div> </div> </div> <div class=\"sparql-option sparql-query-option\" guide-selector=\"sparql-query-option\"> <label class=\"radio-inline\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.construct_query.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> <input type=\"radio\" name=\"sparqlOption\" ng-required=\"extractionMethod.selected\" guide-selector=\"sparql-query-option-input\" ng-model=\"extractionMethod.sparqlOption\" value=\"sparqlQuery\"> {{'ttyg.agent.create_agent_modal.form.construct_query.label' | translate}} </label> <div class=\"panel\" ng-show=\"extractionMethod.sparqlOption === 'sparqlQuery'\"> <div class=\"form-group\"> <textarea type=\"text\" class=\"form-control\" id=\"sparqlQuery\" guide-selector=\"sparql-query-input\" name=\"sparqlQuery\" rows=\"10\" ng-required=\"extractionMethod.selected && extractionMethod.sparqlOption === 'sparqlQuery'\" ng-minlength=\"extractionMethod.sparqlQuery.minLength\" ng-maxlength=\"extractionMethod.sparqlQuery.maxLength\" ng-model=\"extractionMethod.sparqlQuery.value\">\n </textarea> </div> </div> </div> <div class=\"alert alert-danger sparql-method-option-required-error mb-0\" ng-if=\"extractionMethod.selected && !extractionMethod.sparqlOption\"> {{'ttyg.agent.create_agent_modal.form.sparql_search.required_option' | translate}} </div> <div class=\"add-missing-namespaces-option mt-1\" guide-selector=\"add-missing-namespaces-option\"> <input id=\"addMissingNamespaces\" name=\"addMissingNamespaces\" type=\"checkbox\" guide-selector=\"add-missing-namespaces-input\" ng-model=\"extractionMethod.addMissingNamespaces\"> <label for=\"addMissingNamespaces\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.add_missing_namespaces.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{ 'ttyg.agent.create_agent_modal.form.add_missing_namespaces.label' | translate }}</label> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.FTS_SEARCH\" ng-class=\"{'has-error': agentSettingsForm.\\$error.FTSDisabled || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"checkIfFTSEnabled()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.fts_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"!ftsEnabled && agentFormModel.repositoryId\" class=\"fts-disabled-message\" ng-bind-html=\"getFTSDisabledHelpMessage()\"> </div> <div class=\"form-group max-triples\" ng-show=\"ftsEnabled && agentFormModel.repositoryId\"> <label for=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.label' | translate}} </label> <input type=\"number\" class=\"form-control\" guide-selector=\"max-triples-per-call-input\" id=\"{{extractionMethods.FTS_SEARCH + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.fts_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.SIMILARITY\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingIndex || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateSimilaritySearchPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"agentFormModel.repositoryId && !similarityIndexes.length\" class=\"no-similarity-index-message\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_1' | translate}} <a href=\"\" ng-click=\"goToCreateSimilarityView(\\$event)\"> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.similarity_index.no_similarity_index.message_3' | translate}}. </div> <div ng-show=\"similarityIndexes.length\"> <div class=\"form-group similarity-index\"> <label for=\"similarityIndex\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_index.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_index.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.similarity_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"similarityIndex\" name=\"similarityIndex\" guide-selector=\"similarity-index-select\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.similarity_search\" ng-model=\"extractionMethod.similarityIndex\" ng-options=\"similarityIndex.value as similarityIndex.label for similarityIndex in similarityIndexes\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.similarityIndex.\\$touched && extractionMethod.similarityIndex.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group similarity-index-threshold\"> <label for=\"similarityIndexThreshold\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_threshold.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.similarity_threshold.label' | translate}}</label> <input type=\"text\" class=\"form-control\" id=\"similarityIndexThreshold\" name=\"similarityIndexThreshold\" readonly=\"readonly\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"> <input id=\"similarityIndexThresholdSlider\" name=\"similarityIndexThreshold\" type=\"range\" ng-required=\"extractionMethod.selected\" min=\"{{extractionMethod.similarityIndexThreshold.minValue}}\" max=\"{{extractionMethod.similarityIndexThreshold.maxValue}}\" step=\"0.1\" ng-model=\"extractionMethod.similarityIndexThreshold.value\"/> </div> <div class=\"form-group similarity-max-triples\"> <label for=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.SIMILARITY + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.similarity_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> <div ng-if=\"extractionMethod.expanded && extractionMethod.method === extractionMethods.RETRIEVAL\" ng-class=\"{'has-error': agentSettingsForm.\\$error.missingConnector || agentSettingsForm.repositoryId.\\$invalid}\" class=\"extraction-method-options\"> <button ng-if=\"agentFormModel.repositoryId\" class=\"btn btn-link btn-sm pull-right\" ng-click=\"updateRetrievalConnectorPanel()\" ng-disabled=\"disabled\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search.btn.reload.tooltip' | translate}}\"> <i class=\"fa fa-arrows-rotate\"></i> </button> <div class=\"alert alert-danger missing-repositoryid-error mb-0\" ng-if=\"agentSettingsForm.repositoryId.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.missing_repository_id' | translate}} </div> <div ng-if=\"agentFormModel.repositoryId && !retrievalConnectors.length\" class=\"no-retrieval-connector-message\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_1' | translate}} <a href=\"\" ng-click=\"goToConnectorsView(\\$event)\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_2' | translate}} </a> {{'ttyg.agent.create_agent_modal.form.retrieval_search.no_retrieval_connectors.message_3' | translate}}. </div> <div ng-show=\"retrievalConnectors.length\"> <div class=\"form-group retrieval-connector\"> <label for=\"retrievalConnectorInstance\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.connector_id.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.connector_id.label' | translate}}</label> <span ng-if=\"extractionMethodLoaderFlags.retrieval_search\" onto-loader-fancy size=\"16\"></span> <select class=\"form-control\" id=\"retrievalConnectorInstance\" name=\"retrievalConnectorInstance\" ng-required=\"extractionMethod.selected\" ng-if=\"!extractionMethodLoaderFlags.retrieval_search\" ng-model=\"extractionMethod.retrievalConnectorInstance\" ng-options=\"retrievalConnector.value as retrievalConnector.label for retrievalConnector in retrievalConnectors\"> </select> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.retrievalConnectorInstance.\\$touched && extractionMethod.retrievalConnectorInstance.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group query-template\"> <label for=\"queryTemplate\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.query_template.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.query_template.label' | translate}}</label> <textarea type=\"text\" class=\"form-control\" id=\"queryTemplate\" name=\"queryTemplate\" rows=\"10\" ng-required=\"extractionMethod.selected\" ng-minlength=\"extractionMethod.queryTemplate.minLength\" ng-maxlength=\"extractionMethod.queryTemplate.maxLength\" ng-model=\"extractionMethod.queryTemplate.value\">\n </textarea> <div class=\"alert alert-danger\" ng-if=\"extractionMethod.name.\\$touched && extractionMethod.name.\\$invalid\"> {{'required.field' | translate}} </div> </div> <div class=\"form-group retrieval-connector-max-triples\"> <label for=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.label' | translate}}</label> <input type=\"number\" class=\"form-control\" id=\"{{extractionMethods.RETRIEVAL + '_maxNumberOfTriplesPerCall'}}\" name=\"maxNumberOfTriplesPerCall\" min=\"0\" ng-model=\"extractionMethod.maxNumberOfTriplesPerCall\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.retrieval_search_max_number_of_triples_per_call.placeholder' | translate}}\"> </div> </div> </div> </div> </div> </div> <div class=\"alert alert-danger extraction-method-required-error\" ng-if=\"agentSettingsForm.extractionMethods.\\$touched && agentSettingsForm.extractionMethods.\\$invalid\"> {{'ttyg.agent.create_agent_modal.form.extraction_method.required' | translate}} </div> </div> <div id=\"additionalExtractionMethods\" class=\"form-group additional-extraction-methods\"> <label uib-popover=\"{{'ttyg.agent.create_agent_modal.form.additional_query_methods.tooltip' | translate}}\" popover-trigger=\"mouseenter\"> {{'ttyg.agent.create_agent_modal.form.additional_query_methods.label' | translate}} </label> <div ng-repeat=\"extractionMethod in agentFormModel.additionalExtractionMethods.additionalExtractionMethods\" class=\"additional-extraction-method\"> <div ng-if=\"ExtractionMethodTemplates[extractionMethod.method]\"> <div ng-include=\"'js/angular/ttyg/templates/' + ExtractionMethodTemplates[extractionMethod.method] + '.html'\"></div> </div> </div> </div> <div class=\"form-group user-instructions\"> <div class=\"toolbar\"> <label for=\"userInstruction\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.user_instruction.label' | translate}}</label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.user_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.userInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultUserInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"userInstruction\" name=\"userInstruction\" rows=\"5\" guide-selector=\"user-instructions\" ng-model=\"agentFormModel.instructions.userInstruction\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.user_instruction.placeholder' | translate}}\">\n </textarea> </div> <div class=\"text-xs-center\"> <button type=\"button\" ng-click=\"showAdvancedSettings = !showAdvancedSettings\" class=\"btn btn-link btn-sm toggle-advanced-settings\"> <span ng-hide=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.show' | translate}}<em class=\"icon-caret-down\"></em></span> <span ng-show=\"showAdvancedSettings\">{{'ttyg.agent.create_agent_modal.advanced_settings.hide' | translate}}<em class=\"icon-caret-up\"></em></span> </button> </div> <div ng-show=\"showAdvancedSettings\" class=\"advanced-settings\"> <div class=\"form-group system-instructions\"> <div class=\"toolbar\"> <label for=\"systemInstruction\"> <span uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.tooltip' | translate}}\" popover-trigger=\"mouseenter\">{{'ttyg.agent.create_agent_modal.form.system_instruction.label' | translate}}</span> <i class=\"fa fa-triangle-exclamation text-warning overriding-system-instructions-warning\" ng-if=\"showSystemInstructionWarning\" uib-popover=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body' | translate}}\" popover-trigger=\"mouseenter\"></i> </label> <div class=\"actions\"> <copy-to-clipboard tooltip-text=\"ttyg.agent.create_agent_modal.form.system_instruction.btn.copy_instruction.tooltip\" text-to-copy=\"{{agentFormModel.instructions.systemInstruction}}\"></copy-to-clipboard> <button class=\"btn btn-link btn-sm create-chat-btn\" ng-click=\"onRestoreDefaultSystemInstructions()\" gdb-tooltip=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.btn.restore_default.tooltip' | translate}}\"> <i class=\"fa fa-arrow-rotate-left\"></i> </button> </div> </div> <textarea type=\"text\" class=\"form-control\" id=\"systemInstruction\" name=\"systemInstruction\" rows=\"5\" placeholder=\"{{'ttyg.agent.create_agent_modal.form.system_instruction.placeholder' | translate}}\" ng-class=\"{'has-warning': showSystemInstructionWarning}\" ng-model=\"agentFormModel.instructions.systemInstruction\" ng-change=\"onSystemInstructionChange()\">\n </textarea> </div> </div> </form> </div> <div class=\"modal-footer\"> <button type=\"button\" ng-click=\"onExplainAgentSettings()\" class=\"btn explain-agent-settings-btn\"> {{'ttyg.agent.create_agent_modal.btn.explain_settings.label' | translate}} </button> <div> <button type=\"button\" ng-click=\"cancel()\" class=\"btn cancel-btn\"> {{'ttyg.agent.create_agent_modal.btn.cancel.label' | translate}} </button> <button type=\"button\" ng-click=\"ok()\" ng-disabled=\"agentSettingsForm.\\$invalid || savingAgent\" guide-selector=\"save-agent-settings\" class=\"btn btn-primary save-agent-settings-btn\"> <span>{{(operation === AGENT_OPERATION.EDIT ? 'ttyg.agent.create_agent_modal.btn.save.label' : operation === AGENT_OPERATION.CLONE ? 'ttyg.agent.create_agent_modal.btn.save.label' : 'ttyg.agent.create_agent_modal.btn.create.label') | translate}}</span> <span class=\"saving-agent-loader\" ng-if=\"savingAgent\" onto-loader-fancy hide-message=\"true\" size=\"15\"></span> </button> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=86142;export const __webpack_ids__=[86142];export const __webpack_modules__={86142:()=>{const e="guide.step-action.select-ttyg-agent";PluginRegistry.add("guide.step",[{guideBlockName:"ttyg-select-agent-info-message",getSteps:(t,o)=>[{guideBlockName:"info-message",options:{content:"guide.step_plugin.select-ttyg-agent.info.content",...t.mainAction?{}:{title:e},class:"select-ttyg-agent",skipPoint:!0,disablePreviousFlow:!0,...t,url:"ttyg"}}]},{guideBlockName:"ttyg-select-agent-dropdown-open",getSteps:(t,o)=>{const n=o.GuideUtils;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.select-ttyg-agent.open-agent-dropdown",...t.mainAction?{}:{title:e},class:"open-agent-dropdown",disableNextFlow:!0,...t,url:"ttyg",elementSelector:n.getGuideElementSelector("select-agent-dropdown")}}]}},{guideBlockName:"ttyg-select-agent-from-dropdown",getSteps:(t,o)=>{const n=o.GuideUtils;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.select-ttyg-agent.select-agent",...t.mainAction?{}:{title:e},disableNextFlow:!0,class:"select-your-agent",...t,elementSelector:n.getGuideElementSelector("select-agent-panel"),show:()=>()=>{const e=document.querySelector(n.getGuideElementSelector("select-agent-dropdown")),o=document.querySelector(n.getGuideElementSelector("select-agent-dropdown-toggle"));t.observer=new MutationObserver(function(e){for(const t of e)"attributes"===t.type&&(t.target.classList.contains("open")||o.click())}),t.observer.observe(e,{attributes:!0})},hide:()=>()=>{t.observer.disconnect()}}}]}},{guideBlockName:"ttyg-select-agent-check-for-missing-repository-cancel",getSteps:(t,o)=>{const n=o.GuideUtils;return[{guideBlockName:"info-message",options:angular.extend({},{beforeShowPromise:(e,t)=>n.getOrWaitFor(n.getElementSelector(".confirm-dialog .cancel-btn"),1).then(()=>{setTimeout(()=>e.next())}).catch(()=>{const o=t.id;setTimeout(()=>e.show(o+2))})},t)},{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.select-ttyg-agent.missing-repository",...t.mainAction?{}:{title:e},...t,elementSelector:n.getElementSelector(".confirm-dialog .cancel-btn"),showOn:()=>n.isVisible(".confirm-dialog .cancel-btn"),onNextClick:()=>{n.clickOnElement(".confirm-dialog .cancel-btn")()},show:(e,t)=>()=>{const o=t.id;$(t.elementSelector).on("click",()=>{e.show(o-3)})},hide:(e,t)=>()=>{$(t.elementSelector).off("click")}}}]}},{guideBlockName:"select-ttyg-agent",getSteps:e=>(e.mainAction="select-ttyg-agent",[{guideBlockName:"ttyg-select-agent-info-message",options:{...e}},{guideBlockName:"ttyg-select-agent-dropdown-open",options:{...e}},{guideBlockName:"ttyg-select-agent-from-dropdown",options:{...e}},{guideBlockName:"ttyg-select-agent-check-for-missing-repository-cancel",options:{...e}}])}])}};
|
|
2
|
-
//# sourceMappingURL=86142.c29959b68edc59a9b696.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"86142.c29959b68edc59a9b696.bundle.js","mappings":"oHAAA,MAAMA,EAAkC,sCAExCC,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,iCAChBC,SAAUA,CAACC,EAASC,IACT,CACH,CACIH,eAAgB,eAChBE,QAAS,CACLE,QAAS,sDAELF,EAAQG,WAAa,CAAC,EAAI,CAAEC,MAAOT,GACvCU,MAAO,oBACPC,WAAW,EACXC,qBAAqB,KAClBP,EACHQ,IAAK,WAMzB,CACIV,eAAgB,kCAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMQ,EAAaR,EAASQ,WAE5B,MAAO,CACH,CACIX,eAAgB,oBAChBE,QAAS,CACLE,QAAS,6DAELF,EAAQG,WAAa,CAAC,EAAI,CAAEC,MAAOT,GACvCU,MAAO,sBACPK,iBAAiB,KACdV,EACHQ,IAAK,OACLG,gBAAiBF,EAAWG,wBAAwB,8BAMxE,CACEd,eAAgB,kCAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMQ,EAAaR,EAASQ,WAC5B,MAAO,CACH,CACIX,eAAgB,oBAChBE,QAAS,CACLE,QAAS,sDAELF,EAAQG,WAAa,CAAC,EAAI,CAAEC,MAAOT,GACvCe,iBAAiB,EACjBL,MAAO,uBACJL,EACHW,gBAAiBF,EAAWG,wBAAwB,sBACpDC,KAAMA,IAAM,KACR,MAAMC,EAAmBC,SAASC,cAAcP,EAAWG,wBAAwB,0BAC7EK,EAAwBF,SAASC,cAAcP,EAAWG,wBAAwB,iCAExFZ,EAAQkB,SAAW,IAAIC,iBAGvB,SAAkCC,GAC9B,IAAK,MAAMC,KAAYD,EACG,eAAlBC,EAASC,OACQD,EAASE,OAAOC,UAAUC,SAAS,SAKhDR,EAAsBS,QAItC,GAdA1B,EAAQkB,SAASS,QAAQb,EAAkB,CAACc,YAAY,KAgB5DC,KAAMA,IAAM,KACR7B,EAAQkB,SAASY,mBAOvC,CACEhC,eAAgB,wDAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMQ,EAAaR,EAASQ,WAE5B,MAAO,CACH,CAEIX,eAAgB,eAChBE,QAAS+B,QAAQC,OAAO,CAAC,EAAG,CACxBC,kBAAmBA,CAACC,EAAOC,IAChB1B,EAAW2B,aAAa3B,EAAW4B,mBAAmB,+BAAgC,GACxFC,KAAK,KAEFC,WAAW,IAAML,EAAMM,UAE1BC,MAAM,KACH,MAAMC,EAASP,EAAYQ,GAE3BJ,WAAW,IAAML,EAAMrB,KAAK6B,EAAS,OAGlD1C,IAEP,CACIF,eAAgB,oBAChBE,QAAS,CACLE,QAAS,4DAELF,EAAQG,WAAa,CAAC,EAAI,CAAEC,MAAOT,MACpCK,EACHW,gBAAiBF,EAAW4B,mBAAmB,+BAC/CO,OAAQA,IAAMnC,EAAWoC,UAAU,+BACnCC,YAAaA,KAETrC,EAAWsC,eAAe,8BAA1BtC,IAEJI,KAAMA,CAACqB,EAAOC,IAAgB,KAC1B,MAAMa,EAAgBb,EAAYQ,GAGlCM,EAAEd,EAAYxB,iBAAiBuC,GAAG,QAAS,KACvChB,EAAMrB,KAAKmC,EAAgB,MAGnCnB,KAAMA,CAACK,EAAOC,IAAgB,KAE1Bc,EAAEd,EAAYxB,iBAAiBwC,IAAI,eAOzD,CACIrD,eAAgB,oBAChBC,SAAWC,IACPA,EAAQG,WAAa,oBAEd,CACH,CACIL,eAAgB,iCAChBE,QAAS,IAAIA,IAEjB,CACIF,eAAgB,kCAChBE,QAAS,IAAIA,IAEjB,CACIF,eAAgB,kCAChBE,QAAS,IAAIA,IAEjB,CACIF,eAAgB,wDAChBE,QAAS,IAAIA,Q","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/ttyg/select-ttyg-agent/plugin.js"],"sourcesContent":["const TTYG_SELECT_AGENT_DEFAULT_TITLE = 'guide.step-action.select-ttyg-agent';\n\nPluginRegistry.add('guide.step', [\n {\n guideBlockName: 'ttyg-select-agent-info-message',\n getSteps: (options, services) => {\n return [\n {\n guideBlockName: 'info-message',\n options: {\n content: 'guide.step_plugin.select-ttyg-agent.info.content',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: TTYG_SELECT_AGENT_DEFAULT_TITLE }),\n class: 'select-ttyg-agent',\n skipPoint: true,\n disablePreviousFlow: true,\n ...options,\n url: 'ttyg'\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'ttyg-select-agent-dropdown-open',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.select-ttyg-agent.open-agent-dropdown',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: TTYG_SELECT_AGENT_DEFAULT_TITLE }),\n class: 'open-agent-dropdown',\n disableNextFlow: true,\n ...options,\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('select-agent-dropdown'),\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'ttyg-select-agent-from-dropdown',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.select-ttyg-agent.select-agent',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: TTYG_SELECT_AGENT_DEFAULT_TITLE }),\n disableNextFlow: true,\n class: 'select-your-agent',\n ...options,\n elementSelector: GuideUtils.getGuideElementSelector('select-agent-panel'),\n show: () => () => {\n const elementToObserve = document.querySelector(GuideUtils.getGuideElementSelector('select-agent-dropdown'));\n const dropdownToggleElement = document.querySelector(GuideUtils.getGuideElementSelector('select-agent-dropdown-toggle'));\n\n options.observer = new MutationObserver(attributesChangeCallback);\n options.observer.observe(elementToObserve, {attributes: true});\n\n function attributesChangeCallback(mutationList) {\n for (const mutation of mutationList) {\n if (mutation.type === 'attributes') {\n const isOpened = mutation.target.classList.contains('open');\n\n // The component we use for selecting the agent automatically closes\n // after the user clicks on the view, which is why we have to open it.\n if (!(isOpened)) {\n dropdownToggleElement.click();\n }\n }\n }\n }\n },\n hide: () => () => {\n options.observer.disconnect();\n }\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'ttyg-select-agent-check-for-missing-repository-cancel',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n\n return [\n {\n // If missing repository modal is visible go to next step, otherwise skip it\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n beforeShowPromise: (guide, currentStep) => {\n return GuideUtils.getOrWaitFor(GuideUtils.getElementSelector('.confirm-dialog .cancel-btn'), 1)\n .then(() => {\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.next())\n })\n .catch(() => {\n const stepId = currentStep.id;\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.show(stepId + 2))\n })\n }\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.select-ttyg-agent.missing-repository',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: TTYG_SELECT_AGENT_DEFAULT_TITLE }),\n ...options,\n elementSelector: GuideUtils.getElementSelector('.confirm-dialog .cancel-btn'),\n showOn: () => GuideUtils.isVisible('.confirm-dialog .cancel-btn'),\n onNextClick: () => {\n // Close the modal by clicking on the cancel button\n GuideUtils.clickOnElement('.confirm-dialog .cancel-btn')();\n },\n show: (guide, currentStep) => () => {\n const currentStepId = currentStep.id;\n // Add a \"click\" listener to the element.\n // Upon clicking the element, the guide is set back 3 steps to \"open dropdown\" step\n $(currentStep.elementSelector).on('click', () => {\n guide.show(currentStepId - 3)\n });\n },\n hide: (guide, currentStep) => () => {\n // Remove the \"click\" listener of the element. It is important when the step is hidden.\n $(currentStep.elementSelector).off('click');\n }\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'select-ttyg-agent',\n getSteps: (options) => {\n options.mainAction = 'select-ttyg-agent';\n\n return [\n {\n guideBlockName: 'ttyg-select-agent-info-message',\n options: {...options}\n },\n {\n guideBlockName: 'ttyg-select-agent-dropdown-open',\n options: {...options}\n },\n {\n guideBlockName: 'ttyg-select-agent-from-dropdown',\n options: {...options}\n },\n {\n guideBlockName: 'ttyg-select-agent-check-for-missing-repository-cancel',\n options: {...options}\n },\n ];\n }\n }\n]);\n"],"names":["TTYG_SELECT_AGENT_DEFAULT_TITLE","PluginRegistry","add","guideBlockName","getSteps","options","services","content","mainAction","title","class","skipPoint","disablePreviousFlow","url","GuideUtils","disableNextFlow","elementSelector","getGuideElementSelector","show","elementToObserve","document","querySelector","dropdownToggleElement","observer","MutationObserver","mutationList","mutation","type","target","classList","contains","click","observe","attributes","hide","disconnect","angular","extend","beforeShowPromise","guide","currentStep","getOrWaitFor","getElementSelector","then","setTimeout","next","catch","stepId","id","showOn","isVisible","onNextClick","clickOnElement","currentStepId","$","on","off"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"86639.ab85108411ef0f006e10.bundle.js","mappings":"oHAAA,MAAMA,EAAkC,4CAExCC,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,wBAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAC5B,MAAO,CACH,CACIJ,eAAgB,oBAChBE,QAAS,CACLG,QAAS,uEAELH,EAAQI,WAAa,CAAC,EAAI,CAAEC,MAAOV,GACvCW,MAAO,mBACPC,iBAAiB,KACdP,EACHQ,IAAK,aACLC,gBAAiBP,EAAWQ,wBAAwB,2BACpDC,YAAaA,YAOjC,CACIb,eAAgB,6BAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAC5B,MAAO,CACH,CACIJ,eAAgB,gBAChBE,QAAS,CACLG,QAAS,gEAELH,EAAQI,WAAa,CAAC,EAAI,CAAEC,MAAOV,GACvCW,MAAO,iCACJN,EACHQ,IAAK,0BACLC,gBAAiBP,EAAWQ,wBAAwB,yBACpDE,eAAgBA,IAAMC,QAAQC,QAAQZ,EAAWa,0BAA0Bb,EAAWQ,wBAAwB,gCAMlI,CACIZ,eAAgB,6BAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAC5B,MAAO,CACH,CACIJ,eAAgB,oBAChBE,QAAS,CACLG,QAAS,4DAELH,EAAQI,WAAa,CAAC,EAAI,CAAEC,MAAOV,GACvCW,MAAO,0BACPU,qBAAqB,EACrBT,iBAAiB,KACdP,EACHQ,IAAK,0BACLC,gBAAiBP,EAAWQ,wBAAwB,+BACpDC,YAAaA,YAOjC,CACIb,eAAgB,uCAChBC,SAAUA,CAACC,EAASC,IAET,CACH,CACID,QAAS,CACLG,QAAS,iDACTG,MAAO,oBACJN,EACHiB,sBAPOhB,EAASC,WAOkBQ,wBAAwB,gCAM9E,CACIZ,eAAgB,0BAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAG5B,OAFAF,EAAQI,WAAa,0BAEd,CACH,CACIN,eAAgB,kBAChBE,QAASkB,QAAQC,OAAO,CAAC,EAAG,CACxBC,KAAM,aACNC,WAAW,GACZrB,IAEP,CACIF,eAAgB,wBAAyBE,QAAS,IAAIA,IAE1D,CACIF,eAAgB,6BAA8BE,QAAS,IAAIA,IAE/D,CACIF,eAAgB,6BAA8BE,QAAS,IAAIA,IAE/D,CAEIF,eAAgB,eAChBE,QAASkB,QAAQC,OAAO,CAAC,EAAG,CACxBG,kBAAmBA,CAACC,EAAOC,IAAgBtB,EAAWuB,aAAavB,EAAWQ,wBAAwB,SAAU,GAC3GgB,KAAK,KACF,MAAMC,EAASH,EAAYI,GAK3BC,WAAW,IAAMN,EAAMO,KAAKH,EAAS,MAExCI,MAAM,KAKHF,WAAW,IAAMN,EAAMS,WAEhChC,IAEP,CACIF,eAAgB,uCAAwCE,QAAS,IAAIA,Q","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/create-similarity-index/plugin.js"],"sourcesContent":["const CREATE_SIMILARITY_INDEX_DEFAULT = \"guide.step-action.create-similarity-index\";\n\nPluginRegistry.add('guide.step', [\n {\n guideBlockName: 'similarity-click-link',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.create-similarity-index.create-similarity-index',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: CREATE_SIMILARITY_INDEX_DEFAULT }),\n class: 'similarity-index',\n disableNextFlow: true,\n ...options,\n url: 'similarity',\n elementSelector: GuideUtils.getGuideElementSelector('create-similarity-index'),\n onNextClick: () => {\n }\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'similarity-type-index-name',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n guideBlockName: 'input-element',\n options: {\n content: 'guide.step_plugin.create-similarity-index.input-index-name',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: CREATE_SIMILARITY_INDEX_DEFAULT }),\n class: 'similarity-index-name-input',\n ...options,\n url: 'similarity/index/create',\n elementSelector: GuideUtils.getGuideElementSelector('similarity-index-name'),\n onNextValidate: () => Promise.resolve(GuideUtils.validateTextInputNotEmpty(GuideUtils.getGuideElementSelector('similarity-index-name')))\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'similarity-click-to-create',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.create-similarity-index.create-index',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : { title: CREATE_SIMILARITY_INDEX_DEFAULT }),\n class: 'create-similarity-index',\n disablePreviousFlow: false,\n disableNextFlow: true,\n ...options,\n url: 'similarity/index/create',\n elementSelector: GuideUtils.getGuideElementSelector('create-similarity-index-btn'),\n onNextClick: () => {\n }\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'similarity-hold-and-wait-until-shown',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [\n {\n options: {\n content: 'guide.step_plugin.create-similarity-index.wait',\n class: 'wait-for-index',\n ...options,\n elementSelectorToWait: GuideUtils.getGuideElementSelector('similarity-indexes-table'),\n }\n }\n ]\n }\n },\n {\n guideBlockName: 'create-similarity-index',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'create-similarity-index';\n\n return [\n {\n guideBlockName: 'click-main-menu',\n options: angular.extend({}, {\n menu: 'similarity',\n showIntro: true\n }, options)\n },\n {\n guideBlockName: 'similarity-click-link', options: {...options}\n },\n {\n guideBlockName: 'similarity-type-index-name', options: {...options}\n },\n {\n guideBlockName: 'similarity-click-to-create', options: {...options}\n },\n {\n // check if error block is shown and go back 2 steps or proceed\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n beforeShowPromise: (guide, currentStep) => GuideUtils.getOrWaitFor(GuideUtils.getGuideElementSelector('error'), 1)\n .then(() => {\n const stepId = currentStep.id;\n // Using a timeout\n // because the library executes logic\n // to show the step in a then clause\n // which causes current and next steps to show\n setTimeout(() => guide.show(stepId - 2))\n })\n .catch(() => {\n // Using a timeout\n // because the library executes logic\n // to show the step in a then clause\n // which causes current and next steps to show\n setTimeout(() => guide.next())\n }),\n }, options)\n },\n {\n guideBlockName: 'similarity-hold-and-wait-until-shown', options: {...options}\n }\n ];\n }\n }\n]);\n"],"names":["CREATE_SIMILARITY_INDEX_DEFAULT","PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","content","mainAction","title","class","disableNextFlow","url","elementSelector","getGuideElementSelector","onNextClick","onNextValidate","Promise","resolve","validateTextInputNotEmpty","disablePreviousFlow","elementSelectorToWait","angular","extend","menu","showIntro","beforeShowPromise","guide","currentStep","getOrWaitFor","then","stepId","id","setTimeout","show","catch","next"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=89695;export const __webpack_ids__=[89695];export const __webpack_modules__={89695:()=>{const e="ontologyGraph",t="sparqlQuery",l="guide.step-action.sparql-search-method";PluginRegistry.add("guide.step",[{guideBlockName:"ttyg-sparql-method-enable",getSteps:(e,t)=>{const o=t.GuideUtils,a=o.getGuideElementSelector("query-method-sparql_search-input");return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.sparql-search-method.enable-toggle",...e.mainAction?{}:{title:l},class:"toggle-sparql-search",...e,url:"ttyg",elementSelector:o.getGuideElementSelector("query-method-sparql_search"),clickableElementSelector:a,onNextValidate:()=>Promise.resolve(o.isChecked(a))}}]}},{guideBlockName:"ttyg-sparql-method-disable",getSteps:(e,t)=>{const o=t.GuideUtils,a=o.getGuideElementSelector("query-method-sparql_search-input");return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.sparql-search-method.disable-toggle",...e.mainAction?{}:{title:l},class:"toggle-sparql-search",...e,url:"ttyg",showOn:()=>o.isChecked(a),elementSelector:o.getGuideElementSelector("query-method-sparql_search"),clickableElementSelector:a,onNextValidate:()=>Promise.resolve(!o.isChecked(a))}}]}},{guideBlockName:"ttyg-sparql-method-ontology-select",getSteps:(e,t)=>{const o=t.GuideUtils;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.sparql-search-method.enable-ontology-from-graph",class:"enable-ontology-from-graph",...e.mainAction?{}:{title:l},...e,url:"ttyg",elementSelector:o.getGuideElementSelector("sparql-ontology-graph-option"),clickableElementSelector:o.getGuideElementSelector("sparql-ontology-graph-option-input"),onNextValidate:()=>Promise.resolve(o.isChecked(o.getGuideElementSelector("sparql-ontology-graph-option-input")))}}]}},{guideBlockName:"sparql-search-method-type-graph-name",getSteps:(e,t)=>{const o=t.GuideUtils;return[{guideBlockName:"input-element",options:{content:"guide.step_plugin.sparql-search-method.type-ontology-graph-name",...e.mainAction?{}:{title:l},class:"input-ontology-graph-name",...e,url:"ttyg",elementSelector:o.getGuideElementSelector("sparql-ontology-graph-input"),onNextValidate:()=>Promise.resolve(o.validateTextInput(o.getGuideElementSelector("sparql-ontology-graph-input"),e.ontologyGraph,!1))}}]}},{guideBlockName:"ttyg-sparql-method-sparql-query-select",getSteps:(e,t)=>{const l=t.GuideUtils;return[{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.sparql-search-method.enable-sparql-query",class:"enable-sparql-query",url:"ttyg",elementSelector:l.getGuideElementSelector("sparql-query-option"),clickableElementSelector:l.getGuideElementSelector("sparql-query-option-input"),onNextValidate:()=>Promise.resolve(l.isChecked(l.getGuideElementSelector("sparql-query-option-input")))},e)}]}},{guideBlockName:"ttyg-sparql-copy-query-text",getSteps:(e,t)=>{const l=t.GuideUtils;return[{guideBlockName:"copy-text-element",options:{elementSelector:l.getGuideElementSelector("sparql-query-input"),text:e.sparqlQuery,...e,onNextValidate:()=>Promise.resolve(l.validateTextInput(l.getGuideElementSelector("sparql-query-input"),e.sparqlQuery,!1))}}]}},{guideBlockName:"ttyg-sparql-click-add-namespaces",getSteps:(e,t)=>{const o=t.GuideUtils;return[{guideBlockName:"clickable-element",options:{content:"guide.step_plugin.sparql-search-method.add-missing-namespaces",...e.mainAction?{}:{title:l},class:"enable-sparql-query",...e,url:"ttyg",elementSelector:o.getGuideElementSelector("add-missing-namespaces-option"),onNextValidate:()=>Promise.resolve(o.isChecked(o.getGuideElementSelector("add-missing-namespaces-input")))}}]}},{guideBlockName:"ttyg-enabling-sparql-info-message",getSteps:(e,t)=>[{guideBlockName:"info-message",options:{content:"guide.step_plugin.sparql-search-method.content",...e.mainAction?{}:{title:l},class:"info-sparql-search",...e,url:"ttyg"}}]},{guideBlockName:"sparql-search-method-enable-ontology-graph",getSteps:(e,t)=>{const l=[{guideBlockName:"ttyg-sparql-method-ontology-select",options:{...e}},{guideBlockName:"sparql-search-method-type-graph-name",options:{...e}}];return e.addMissingNamespaces&&l.push({guideBlockName:"ttyg-sparql-click-add-namespaces",options:{...e}}),l}},{guideBlockName:"sparql-search-method-enable-sparql-query",getSteps:(e,t)=>{const l=[{guideBlockName:"ttyg-sparql-method-sparql-query-select",options:{...e}},{guideBlockName:"ttyg-sparql-copy-query-text",options:{...e}}];return e.addMissingNamespaces&&l.push({guideBlockName:"ttyg-sparql-click-add-namespaces",options:{...e}}),l}},{guideBlockName:"sparql-search-method",getSteps:(l,o)=>{l.mainAction="sparql-search-method";const a=l.disable;let s;if(l.ontologyGraph?s=e:l.sparqlQuery&&(s=t),a)return[{guideBlockName:"ttyg-sparql-method-disable",options:{...l}}];const n=[{guideBlockName:"ttyg-enabling-sparql-info-message",options:{...l}},{guideBlockName:"ttyg-sparql-method-enable",options:{...l}}];return s===e?n.push({guideBlockName:"sparql-search-method-enable-ontology-graph",options:{...l}}):s===t&&n.push({guideBlockName:"sparql-search-method-enable-sparql-query",options:{...l}}),n}}])}};
|
|
2
|
-
//# sourceMappingURL=89695.4ee87c52d4088115c51e.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"89695.4ee87c52d4088115c51e.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/ttyg/common/sparql-search-method/plugin.js"],"sourcesContent":["const CONFIGURATION_OPTION_ONTOLOGY_GRAPH = 'ontologyGraph';\nconst CONFIGURATION_OPTION_SPARQL_QUERY = 'sparqlQuery';\nconst TTYG_SPARQL_SEARCH_METHOD_DEFAULT_TITLE = 'guide.step-action.sparql-search-method';\n\nPluginRegistry.add('guide.step', [\n {\n guideBlockName: 'ttyg-sparql-method-enable',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const toggleSelector = GuideUtils.getGuideElementSelector('query-method-sparql_search-input');\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.sparql-search-method.enable-toggle',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: TTYG_SPARQL_SEARCH_METHOD_DEFAULT_TITLE}),\n class: 'toggle-sparql-search',\n ...options,\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('query-method-sparql_search'),\n clickableElementSelector: toggleSelector,\n onNextValidate: () => Promise.resolve(GuideUtils.isChecked(toggleSelector)),\n },\n },\n ];\n },\n },\n {\n guideBlockName: 'ttyg-sparql-method-disable',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const toggleSelector = GuideUtils.getGuideElementSelector('query-method-sparql_search-input');\n\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.sparql-search-method.disable-toggle',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: TTYG_SPARQL_SEARCH_METHOD_DEFAULT_TITLE}),\n class: 'toggle-sparql-search',\n ...options,\n url: 'ttyg',\n showOn: () => GuideUtils.isChecked(toggleSelector),\n elementSelector: GuideUtils.getGuideElementSelector('query-method-sparql_search'),\n clickableElementSelector: toggleSelector,\n onNextValidate: () => Promise.resolve(!GuideUtils.isChecked(toggleSelector)),\n },\n },\n ];\n },\n },\n {\n guideBlockName: \"ttyg-sparql-method-ontology-select\",\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.sparql-search-method.enable-ontology-from-graph',\n class: 'enable-ontology-from-graph',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: TTYG_SPARQL_SEARCH_METHOD_DEFAULT_TITLE}),\n ...options,\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('sparql-ontology-graph-option'),\n clickableElementSelector: GuideUtils.getGuideElementSelector('sparql-ontology-graph-option-input'),\n onNextValidate: () => Promise.resolve(GuideUtils.isChecked(GuideUtils.getGuideElementSelector('sparql-ontology-graph-option-input'))),\n },\n },\n ];\n },\n },\n {\n guideBlockName: 'sparql-search-method-type-graph-name',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n\n return [\n {\n guideBlockName: 'input-element',\n options: {\n content: `guide.step_plugin.sparql-search-method.type-ontology-graph-name`,\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: TTYG_SPARQL_SEARCH_METHOD_DEFAULT_TITLE}),\n class: 'input-ontology-graph-name',\n ...options,\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('sparql-ontology-graph-input'),\n onNextValidate: () => Promise.resolve(GuideUtils.validateTextInput(GuideUtils.getGuideElementSelector('sparql-ontology-graph-input'), options.ontologyGraph, false)),\n },\n },\n ];\n },\n },\n {\n guideBlockName: 'ttyg-sparql-method-sparql-query-select',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n\n return [\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.sparql-search-method.enable-sparql-query',\n class: 'enable-sparql-query',\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('sparql-query-option'),\n clickableElementSelector: GuideUtils.getGuideElementSelector('sparql-query-option-input'),\n onNextValidate: () => Promise.resolve(GuideUtils.isChecked(GuideUtils.getGuideElementSelector('sparql-query-option-input'))),\n }, options),\n },\n ];\n },\n },\n {\n guideBlockName: \"ttyg-sparql-copy-query-text\",\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n\n return [\n {\n guideBlockName: 'copy-text-element',\n options: {\n elementSelector: GuideUtils.getGuideElementSelector('sparql-query-input'),\n text: options.sparqlQuery,\n ...options,\n onNextValidate: () => Promise.resolve(GuideUtils.validateTextInput(GuideUtils.getGuideElementSelector('sparql-query-input'), options.sparqlQuery, false)),\n },\n },\n ];\n },\n },\n {\n guideBlockName: 'ttyg-sparql-click-add-namespaces',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n\n return [\n {\n guideBlockName: 'clickable-element',\n options: {\n content: 'guide.step_plugin.sparql-search-method.add-missing-namespaces',\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: TTYG_SPARQL_SEARCH_METHOD_DEFAULT_TITLE}),\n class: 'enable-sparql-query',\n ...options,\n url: 'ttyg',\n elementSelector: GuideUtils.getGuideElementSelector('add-missing-namespaces-option'),\n onNextValidate: () => Promise.resolve(GuideUtils.isChecked(GuideUtils.getGuideElementSelector('add-missing-namespaces-input'))),\n },\n },\n ];\n },\n },\n {\n guideBlockName: 'ttyg-enabling-sparql-info-message',\n getSteps: (options, services) => {\n return [\n {\n guideBlockName: 'info-message',\n options: {\n content: `guide.step_plugin.sparql-search-method.content`,\n // If mainAction is set the title will be set automatically\n ...(options.mainAction ? {} : {title: TTYG_SPARQL_SEARCH_METHOD_DEFAULT_TITLE}),\n class: 'info-sparql-search',\n ...options,\n url: 'ttyg',\n },\n },\n ];\n },\n },\n {\n guideBlockName: 'sparql-search-method-enable-ontology-graph',\n getSteps: (options, services) => {\n const steps = [\n {\n guideBlockName: 'ttyg-sparql-method-ontology-select', options: {...options},\n },\n {\n guideBlockName: 'sparql-search-method-type-graph-name', options: {...options},\n },\n ];\n\n if (options.addMissingNamespaces) {\n steps.push({\n guideBlockName: 'ttyg-sparql-click-add-namespaces', options: {...options},\n });\n }\n\n return steps;\n },\n },\n {\n guideBlockName: 'sparql-search-method-enable-sparql-query',\n getSteps: (options, services) => {\n const steps = [\n {\n guideBlockName: 'ttyg-sparql-method-sparql-query-select', options: {...options},\n },\n {\n guideBlockName: 'ttyg-sparql-copy-query-text', options: {...options},\n },\n ];\n\n if (options.addMissingNamespaces) {\n steps.push({\n guideBlockName: 'ttyg-sparql-click-add-namespaces', options: {...options},\n });\n }\n\n return steps;\n },\n },\n {\n guideBlockName: 'sparql-search-method',\n getSteps: (options, services) => {\n options.mainAction = 'sparql-search-method';\n\n const shouldToggleOff = options.disable;\n\n let configurationOption;\n if (options.ontologyGraph) {\n configurationOption = CONFIGURATION_OPTION_ONTOLOGY_GRAPH;\n } else if (options.sparqlQuery) {\n configurationOption = CONFIGURATION_OPTION_SPARQL_QUERY;\n }\n\n if (shouldToggleOff) {\n return [{\n guideBlockName: 'ttyg-sparql-method-disable', options: {...options},\n }];\n }\n\n const steps = [\n {\n guideBlockName: 'ttyg-enabling-sparql-info-message', options: {...options},\n },\n {\n guideBlockName: 'ttyg-sparql-method-enable', options: {...options},\n },\n ];\n\n if (configurationOption === CONFIGURATION_OPTION_ONTOLOGY_GRAPH) {\n steps.push({\n guideBlockName: 'sparql-search-method-enable-ontology-graph',\n options: {...options},\n });\n } else if (configurationOption === CONFIGURATION_OPTION_SPARQL_QUERY) {\n steps.push({\n guideBlockName: 'sparql-search-method-enable-sparql-query',\n options: {...options},\n });\n }\n\n return steps;\n },\n },\n]);\n"],"names":["CONFIGURATION_OPTION_ONTOLOGY_GRAPH","CONFIGURATION_OPTION_SPARQL_QUERY","TTYG_SPARQL_SEARCH_METHOD_DEFAULT_TITLE","PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","toggleSelector","getGuideElementSelector","content","mainAction","title","class","url","elementSelector","clickableElementSelector","onNextValidate","Promise","resolve","isChecked","showOn","validateTextInput","ontologyGraph","angular","extend","text","sparqlQuery","steps","addMissingNamespaces","push","shouldToggleOff","disable","configurationOption"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=9062;export const __webpack_ids__=[9062];export const __webpack_modules__={9062:(t,e,n)=>{n.r(e),n.d(e,{default:()=>a});const a='<link href="css/ttyg/agent-list.css?v=3.1.1" rel="stylesheet"/> <div class="agent-list-component"> <div class="agents-filter-dropdown btn-group" uib-dropdown> <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle"> <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i> <span class="selected-filter">{{selectedAgentsFilter.label}}</span> <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i> </button> <ul class="dropdown-menu" role="menu"> <li ng-repeat="filterModel in agentListFilterModel"> <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)" data-value="{{filterModel.label}}"> {{filterModel.label}} </button> </li> </ul> </div> <div class="agent-list"> <div ng-if="!agentList.agents.length" class="alert alert-warning"> {{\'ttyg.agent.messages.no_agents\' | translate}} </div> <div ng-repeat="agent in agentList.filterableAgents"> <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item" ng-class="{\'selected\': agent.id === selectedAgent.id}"> <div class="agent-info" ng-attr-gdb-tooltip="{{!agent.isCompatible ? (\'ttyg.agent.incompatible_agent\' | translate) : undefined}}"> <div class="agent-name" ng-class="{\'incompatible-agent\': !agent.isCompatible}"> <i ng-if="!agent.isCompatible" class="fa fa-triangle-exclamation text-warning"> </i> {{agent.name}} </div> <div class="btn-group"> <button class="btn btn-link secondary btn-sm open-agent-actions-btn" data-toggle="dropdown" aria-expanded="false" ng-if="true" ng-click="openAgentActionMenu()" ng-disabled="false"> <i class="fa fa-ellipsis"></i> </button> <div class="dropdown-menu dropdown-menu-right agent-actions-menu"> <button ng-if="agent.isCompatible" class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)"> <i class="fa fa-gear"></i> <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item ext-integration-agent-btn" type="button" ng-click="onExternalIntegration(agent)"> <i class="fa-regular fa-plug-circle-plus"></i> <span>{{\'ttyg.agent.btn.external_integration\' | translate}}</span> </button> <button ng-if="agent.isCompatible" class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)"> <i class="fa fa-clone"></i> <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span> </button> <div ng-if="agent.isCompatible" class="dropdown-divider"></div> <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)"> <i class="fa fa-trash-can"></i> <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span> </button> </div> </div> </div> <div class="repository-model-group"> <div class="related-repository"> <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i> <i ng-if="agent.isRepositoryDeleted" class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository" gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}"> </i> {{agent.repositoryId}} </div> <div class="model-name">{{agent.model}}</div> </div> </div> <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress" onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}" size="25"></div> </div> </div> </div> '}};
|
|
2
|
-
//# sourceMappingURL=9062.2b577ad9fc05b48b64a3.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"9062.2b577ad9fc05b48b64a3.bundle.js","mappings":"oJAGA,QAFW,2xG","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/templates/agent-list.html"],"sourcesContent":["// Module\nvar code = `<link href=\"css/ttyg/agent-list.css?v=3.1.1\" rel=\"stylesheet\"/> <div class=\"agent-list-component\"> <div class=\"agents-filter-dropdown btn-group\" uib-dropdown> <button type=\"button\" uib-dropdown-toggle class=\"btn btn-outline-primary dropdown-toggle\"> <i class=\"fa-kit fa-gdb-repo-graphdb mr-1\"></i> <span class=\"selected-filter\">{{selectedAgentsFilter.label}}</span> <i class=\"fa fa-filter\" gdb-tooltip=\"{{'ttyg.agent.btn.filter.tooltip' | translate}}\"></i> </button> <ul class=\"dropdown-menu\" role=\"menu\"> <li ng-repeat=\"filterModel in agentListFilterModel\"> <button type=\"button\" class=\"dropdown-item\" ng-click=\"onAgentsFilterChange(filterModel)\" data-value=\"{{filterModel.label}}\"> {{filterModel.label}} </button> </li> </ul> </div> <div class=\"agent-list\"> <div ng-if=\"!agentList.agents.length\" class=\"alert alert-warning\"> {{'ttyg.agent.messages.no_agents' | translate}} </div> <div ng-repeat=\"agent in agentList.filterableAgents\"> <div ng-if=\"!deletingAgent || deletingAgent.agentId !== agent.id\" class=\"agent-item\" ng-class=\"{'selected': agent.id === selectedAgent.id}\"> <div class=\"agent-info\" ng-attr-gdb-tooltip=\"{{!agent.isCompatible ? ('ttyg.agent.incompatible_agent' | translate) : undefined}}\"> <div class=\"agent-name\" ng-class=\"{'incompatible-agent': !agent.isCompatible}\"> <i ng-if=\"!agent.isCompatible\" class=\"fa fa-triangle-exclamation text-warning\"> </i> {{agent.name}} </div> <div class=\"btn-group\"> <button class=\"btn btn-link secondary btn-sm open-agent-actions-btn\" data-toggle=\"dropdown\" aria-expanded=\"false\" ng-if=\"true\" ng-click=\"openAgentActionMenu()\" ng-disabled=\"false\"> <i class=\"fa fa-ellipsis\"></i> </button> <div class=\"dropdown-menu dropdown-menu-right agent-actions-menu\"> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item edit-agent-btn\" type=\"button\" ng-click=\"onEditAgent(agent)\"> <i class=\"fa fa-gear\"></i> <span>{{'ttyg.agent.btn.edit_agent.label' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item ext-integration-agent-btn\" type=\"button\" ng-click=\"onExternalIntegration(agent)\"> <i class=\"fa-regular fa-plug-circle-plus\"></i> <span>{{'ttyg.agent.btn.external_integration' | translate}}</span> </button> <button ng-if=\"agent.isCompatible\" class=\"dropdown-item clone-agent-btn\" type=\"button\" ng-click=\"onCloneAgent(agent)\"> <i class=\"fa fa-clone\"></i> <span>{{'ttyg.agent.btn.clone_agent.label' | translate}}</span> </button> <div ng-if=\"agent.isCompatible\" class=\"dropdown-divider\"></div> <button class=\"dropdown-item delete-agent-btn\" type=\"button\" ng-click=\"onDeleteAgent(agent)\"> <i class=\"fa fa-trash-can\"></i> <span>{{'ttyg.agent.btn.delete_agent.label' | translate}}</span> </button> </div> </div> </div> <div class=\"repository-model-group\"> <div class=\"related-repository\"> <i ng-if=\"!agent.isRepositoryDeleted\" class=\"fa-kit fa-gdb-repo-graphdb\"></i> <i ng-if=\"agent.isRepositoryDeleted\" class=\"fa fa-triangle-exclamation text-warning agent-with-deleted-repository\" gdb-tooltip=\"{{'ttyg.agent.deleted_repository' | translate}}\"> </i> {{agent.repositoryId}} </div> <div class=\"model-name\">{{agent.model}}</div> </div> </div> <div class=\"deleting-agent-loader\" ng-if=\"deletingAgent.agentId === agent.id && deletingAgent.inProgress\" onto-loader-fancy message=\"{{'ttyg.agent.deleting_agent' | translate}}\" size=\"25\"></div> </div> </div> </div> `;\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=99448;export const __webpack_ids__=[99448];export const __webpack_modules__={64088:(e,t,n)=>{n.d(t,{A:()=>r});var a=a||{};a.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var a=0;a<t.children.length;a++)e(t.children[a]);if(1===t.children.length){var r=1.2*t.size;n&&(r=.1*t.children[0].size),t.children.push({name:"placeholder",size:r})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var a=t[n];"placeholder"===a.data.name?t.splice(n,1):a.children&&e(a.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var a=n.x-n.children[0].x;n.children[0].x+=a,r(n.children[0],a)}}function r(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,r(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,a=0;a<e.length;a++){var r=e[a];r.x-=t,r.y-=n}}};const r=a},88141:(e,t,n)=>{n.d(t,{A:()=>i}),n(62979);const a={selectAll:n(93462).selectAll};var r=r||{};r.Export={getCSSRules:function(e){const t=$('link[href="'+e+'"]')[0].sheet.rules;let n="";return _.each(t,function(e){n+=e.cssText}),n},generateBase64ImageSource:function(e){e||(e="svg");const t=a.selectAll(e).attr("version","1.1").attr("xmlns","http://www.w3.org/2000/svg").node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(t)))}};const i=r},99448:(e,t,n)=>{n.r(t);var a=n(75468),r=n(64088),i=n(19935),s=n(93462),c=n(88141);function l(e,t,n,l,o,d,h,u,f,p,g,v,x){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(h,m,y){!function(h){let m=!1;var y,A,S=s.pack().size([780,780]),C=s.scaleLinear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(s.interpolateHcl),R=s.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function E(){return R.append("svg:g").attrs({id:"main-group",transform:"translate(400,400)"})}function P(){return"true"===g.get(v.CLASS_HIERARCHY_HIDE_PREFIXES)}function w(){var e=c.A.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=3.1.1");s.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),s.selectAll("g").style("opacity",1);var t=c.A.Export.generateBase64ImageSource("#classChart svg");s.select(this).attrs({href:t,download:"class-hierarchy-"+d.getActiveRepository()+".svg"})}h.hidePrefixes=P();var H,I,T=E();if(!h.classHierarchyData.classCount&&d.getActiveRepository()&&!d.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=g.get(`classHierarchy-selectedGraph-${d.getActiveRepository()}`);n.getClassHierarchyData(null!==t?t.contextID.uri:"").success(function(t,n,a){e.loader=!1,207===n&&u.warning(x.instant("graphexplore.update.diagram"),x.instant("graphexplore.repository.data.changed")),h.classHierarchyData=t,s.select("#download-svg").on("mouseover",w)}).error(function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(x.instant("graphexplore.error.request.failed",{name:p,error:getError(t)}))})}var L,D,k,N,b,F,z,O={};function U(n,c,d,u){D&&D(),k&&k(),s.selectAll("#main-group").remove(),T=E(),r.A.SingleChild.addPlaceholders(n,!0),(A=s.hierarchy(n)).sum(function(e){return e.size}),L=d||A,S(A);var g,v=A.descendants();L.isInFocusTransitive=!0,r.A.SingleChild.removePlaceholders(v),r.A.SingleChild.centerNodes(v),r.A.SingleChild.makePositionsRelativeToZero(v),y||(y=(0,a.A)().attr("class","d3-tip").customPosition(function(e,t){return{top:"inherit",bottom:l.innerHeight-t.clientY+"px",right:l.innerWidth-t.clientX+"px"}}).html(function(e){return e.data.name}),R.call(y));var x=T.selectAll("circle").data(v).enter().append("g");c.doFade&&x.each(function(e){i.A.Transition.fadeIn(s.select(this),550)});var P,w=[],N=x.append("circle").attr("class",function(e){return e.data.role}).attr("guide-selector",function(e){return"class-"+e.data.name}).style("fill",function(e){return e.children?C(e.depth):"#E0D0D0"}).each(function(e){if(e.circle=s.select(this),e.data.name!==p){var t=e.data.name;w.push({name:t}),O[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",function(t){c.noPrefixes||e.textHidden?y.show(e,t):y.hide(e)}),e.circle.on("mouseout",y.hide)}}).on("gdb-focus",(e,t)=>I(t)).on("gdb-zoom",(e,t)=>Z(t));function b(e){s.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),P=e}function $(){h.showClassInfoPanel=!1}w&&(w=_.uniqBy(w,"name"),h.flattenedClassNames=w);var F=i.A.Click.delayDblClick();s.selectAll(".parent, .topLevelParent, .child, .root").call(F),I=function(e){Z(e),e.data.name===p?($(),s.selectAll(".selected").classed("selected",!1)):(b(e),m||(h.selectedClass=P,h.showClassInfoPanel=!0),h.$on("sidePanelClosed",function(t){s.selectAll(".selected").classed("selected",e.selected=!1)}))},F.on("click",function(e,t){t.data.id&&l.history.pushState({id:t.data.id},"classHierarchyPage"+t.data.id,"hierarchy#"+t.data.id),y.hide(),I(t)}),F.on("dblclick",function(t,a){a!==n&&(y.hide(),b(a),e.$broadcast("goToDomainRangeGraphView",P,L),t.stopPropagation())});var z=0;R.on("wheel",function(e){y.hide(),e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-z>100){z=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var a=e.target.__data__;if(a||(a=L),"in"===n){if(a!==L){for(;a.parent&&!a.parent.isInFocusTransitive;)a=a.parent;a.depth<L.depth&&(a=L)}if(a===L&&a.children){for(var r=a.children[0],i=1;i<a.children.length;i++)a.children[i].sortingRank>r.sortingRank&&(r=a.children[i]);r.children&&(a=r)}else a.children||(a=a.parent);Z(a,!0)}else"out"===n&&(a=L.parent)&&Z(a,!0);L.data.name===p&&l.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),Y()}});var U=T.selectAll("text").data(v).enter().append("text").attr("class",function(e){return e.children&&e.children.length?"label":"label child-label"}).each(function(e){e.textSel=s.select(this)});c.noPrefixes?(U.each(function(e){var t=e.data.name.indexOf(":");e.data.name.indexOf("http://")>-1?e.noPrefixName=e.data.name:t>-1&&(e.noPrefixName=e.data.name.substring(t+1))}),U.style("font-size",function(e){return i.A.Text.calcFontSize(e.noPrefixName,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)})):U.style("font-size",function(e){return i.A.Text.calcFontSize(e.data.name,e.r)}).text(function(e){return i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r/3)}),U.style("display",function(e){return e.parent&&e.parent.data===L.data?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")}),c.doFade&&!c.keepPrevState&&U.each(function(e){i.A.Transition.fadeIn(s.select(this),550)}),H=function(){function e(e){e&&N.each(function(t){+e===t.data.id&&I(t)})}var n=t.hash();l.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var B=T.selectAll("circle, text");function V(e,t){var n=800/e[2];g=e,B.attr("transform",function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"}),N.attr("r",function(e){return e.r*n}),t&&U.each(function(e){e.data.fullName!==L.data.topLevelParentUri&&L.data.topLevelParentUri!==p||(e.textSel.style("display","none"),L.children&&L.children.length?_.each(L.children,function(e){e.textSel.style("display","inline")}):L.textSel.style("display","inline"),L.parent&&_.each(L.parent.children,function(e){e.data.name!==L.data.name&&e.textSel.style("display","inline")}))}),U.style("font-size",function(e){return c.noPrefixes?i.A.Text.calcFontSize(e.noPrefixName,e.r*n):i.A.Text.calcFontSize(e.data.name,e.r*n)}).text(function(e){return c.noPrefixes?i.A.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):i.A.Text.getTextWithElipsisIfNeeded(e.data.name,e.r*n/3)})}function M(e){var t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display=""):(e.textHidden=!0,this.style.display="none")}function Z(e,t){if(o(function(){h.showExternalElements=e.data.name===p}),L!==e&&(e.data.id&&l.history.replaceState({id:e.data.id},"classHierarchyPage"+e.data.id,"hierarchy#"+e.data.id),e.children||(e=e.parent,L!==e))){if(t&&($(),s.selectAll(".selected").classed("selected",!1)),L.parent)for(var n=L;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=!!n.children,n=n.parent;2*(L=e).r/(2*L.r+20)<.3||h.currentSliderValue>h.currentBrowserLimit?(V([L.x,L.y,M(L.r)]),U.each(function(e){W.call(this,e)})):s.transition().duration(f).tween("zoom",function(e){var t=s.interpolateZoom(g,[L.x,L.y,M(L.r)]);return function(e){V(t(e))}}).selectAll("text").each(W)}}V([L.x,L.y,M(L.r)],u),D=h.$on("rootFocus",function(){l.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),I(A)}),k=h.$on("classSearch",function(e){I(e)})}function Y(){const t=h.classHierarchyData.classCount;let n=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",Y),window.addEventListener("beforeunload",function e(){window.removeEventListener("resize",Y),window.removeEventListener("beforeunload",e)}),h.$watch("classHierarchyData",function(){N&&N(),b&&b(),F&&F(),z&&z();var e=P();if(h.classHierarchyData.classCount){Y();var t=_.cloneDeep(h.classHierarchyData);var n,a,r=s.hierarchy(t).descendants().sort(function(e,t){return e.data.sortingRank>t.data.sortingRank?-1:e.data.sortingRank<t.data.sortingRank||e.data.depth>t.data.depth?1:e.data.depth<t.data.depth?-1:0});function d(e,t){const r={keepPrevState:!0,noPrefixes:P()};a=r.noPrefixes,U(n||e,r,L,!0),o(()=>{g.set(v.CLASS_HIERARCHY_SWITCH_PREFIXES,t),H(),m=!1},70)}function u(e,r,i){if(!e)return;g.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:p,children:[]};const s=new Set;for(let t=1;t<=e;t++)s.add(r[t].data.id),r[t].parent===r[0]&&n.children.push(r[t].data);(function e(t){if(!t.children)return;const n=[];for(const e of t.children)s.has(e.id)&&n.push($.extend({},e));t.children=n;for(const n of t.children)e(n)})(n),i?(a=angular.isUndefined(a)?P():a,U(n,{noPrefixes:a})):d(t)}var i,c=g.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)u(c,r);else{var l={doFade:!0,keepPrevState:!0,noPrefixes:P()};U(t,l),H()}N=h.$watch("hidePrefixes",function(n){angular.isUndefined(n)||e?e=void 0:o(function(){m=!0,function(e){angular.isUndefined(e)||g.set(v.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),d(t,!0)},50)},!0),b=h.$watch("currentSliderValue",function(e){u(e,r,!0)},!0),z=h.$on("onEnterKeypressSearchAction",function(e){i&&I(i)}),F=h.$on("searchedClass",function(e,t){(i=O[t.name])&&I(i)})}},!0)}(h)}}}n(32150),angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]}};
|
|
2
|
-
//# sourceMappingURL=99448.98a68cbf8bf84857b615.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"99448.98a68cbf8bf84857b615.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/lib/common/circle-packing.js","webpack://root-config/./packages/legacy-workbench/src/js/lib/common/svg-export.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/graphexplore/directives/rdf-class-hierarchy.directive.js"],"sourcesContent":["var CirclePacking = CirclePacking || {};\n\nCirclePacking.SingleChild = function () {\n /*\n Functions that enable single child circles to display properly, see\n http://stackoverflow.com/questions/22307486/d3-js-packed-circle-layout-how-to-adjust-child-radius\n */\n function addPlaceholders(node, first) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n var child = node.children[i];\n addPlaceholders(child);\n }\n\n if (node.children.length === 1) {\n var placeholderSize = node.size * 1.2;\n if (first) {\n placeholderSize = node.children[0].size * 0.1;\n }\n node.children.push({\n name: 'placeholder', size: placeholderSize,\n // children: []\n });\n }\n }\n }\n\n function removePlaceholders(nodes) {\n for (var i = nodes.length - 1; i >= 0; i--) {\n var node = nodes[i];\n\n if (node.data.name === 'placeholder') {\n nodes.splice(i, 1);\n } else {\n if (node.children) {\n removePlaceholders(node.children);\n }\n }\n }\n }\n\n function centerNodes(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n\n if (node.children) {\n if (node.children.length === 1) {\n var offset = node.x - node.children[0].x;\n node.children[0].x += offset;\n reposition(node.children[0], offset);\n }\n }\n }\n\n function reposition(node, offset) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].x += offset;\n reposition(node.children[i], offset);\n }\n }\n }\n }\n\n function makePositionsRelativeToZero(nodes) {\n //use this to have vis centered at 0,0,0 (easier for positioning)\n var offsetX = nodes[0].x;\n var offsetY = nodes[0].y;\n\n for (var i = 0; i < nodes.length; i++) {\n\n var node = nodes[i];\n\n node.x -= offsetX;\n node.y -= offsetY;\n }\n }\n\n return {\n addPlaceholders: addPlaceholders,\n removePlaceholders: removePlaceholders,\n centerNodes: centerNodes,\n makePositionsRelativeToZero: makePositionsRelativeToZero\n }\n}();\n\nexport default CirclePacking;\n","import 'lib/d3.patch.js'\nimport {selectAll} from 'd3';\n\nconst d3 = {selectAll};\nvar SVG = SVG || {};\n\nSVG.Export = function () {\n function getCSSRules(cssSourceFilePath) {\n const cssRules = $('link[href=\"' + cssSourceFilePath + '\"]')[0].sheet.rules;\n let cssStr = \"\";\n _.each(cssRules, function (value) {\n cssStr += value.cssText;\n });\n return cssStr;\n }\n\n function generateBase64ImageSource(svgSelectorClass) {\n if (!svgSelectorClass) {\n svgSelectorClass = \"svg\";\n }\n // add needed xml namespace\n const exportSvg = d3.selectAll(svgSelectorClass)\n .attr(\"version\", \"1.1\")\n .attr(\"xmlns\", \"http://www.w3.org/2000/svg\")\n .node().parentNode.innerHTML;\n\n // convert selected html to base64\n return \"data:image/svg+xml;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(exportSvg)));\n }\n\n return {\n getCSSRules: getCSSRules,\n generateBase64ImageSource: generateBase64ImageSource\n };\n}();\n\nexport default SVG;\n","import d3tip from 'lib/d3-tip/d3-tip-patch';\nimport CirclePacking from 'lib/common/circle-packing';\nimport D3 from 'lib/common/d3-utils';\nimport * as d3 from 'd3';\nimport SVG from 'lib/common/svg-export';\nimport 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.graphexplore.directives.class', [\n 'graphdb.framework.graphexplore.controllers.class',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .constant(\"ZOOM_DURATION\", 500)\n .constant(\"ROOT_OBJ_NAME\", \"RDF Class Hierarchy\")\n .directive('rdfClassHierarchy', classHierarchyDirective);\n\nclassHierarchyDirective.$inject = ['$rootScope', '$location', 'GraphDataRestService', '$window', '$timeout', '$repositories', '$licenseService', 'toastr', 'ZOOM_DURATION', 'ROOT_OBJ_NAME', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction classHierarchyDirective($rootScope, $location, GraphDataRestService, $window, $timeout, $repositories, $licenseService, toastr, ZOOM_DURATION, ROOT_OBJ_NAME, LocalStorageAdapter, LSKeys, $translate) {\n return {\n restrict: 'AE',\n template: '<div id=\"classChart\"></div>',\n scope: {\n classHierarchyData: '=',\n flattenedClassNames: '=',\n selectedClass: '=',\n currentSliderValue: '=',\n showClassInfoPanel: '=',\n showExternalElements: '=',\n hidePrefixes: '=',\n currentBrowserLimit: '='\n },\n link: linkFunc\n };\n\n function linkFunc(scope, element, attrs) {\n renderCirclePacking(scope, element);\n }\n\n function renderCirclePacking(scope, element) {\n /**\n * A boolean flag that determines whether the opening of the side info panel\n * should be suppressed when focusing on the chart while a class is selected.\n */\n let suppressPanelOpen = false;\n\n var width = 800,\n height = 800,\n diameter = height,\n margin = 20,\n tip,\n rootHierarchy;\n\n var packLayout = d3.pack()\n .size([diameter - margin, diameter - margin]);\n\n var color = d3.scaleLinear()\n .domain([0, 4])\n .range([\"hsl(19, 70%, 90%)\", \"hsl(19, 70%, 50%)\"])\n .interpolate(d3.interpolateHcl);\n\n var svg = d3.select(\"#classChart\")\n .insert(\"svg:svg\", \"h2\")\n .attr(\"viewBox\", \"0 0 \" + width + \" \" + height)\n .attr(\"preserveAspectRatio\", \"xMidYMid meet\")\n .on(\"dblclick.zoom\", null);\n\n function appendMainGroup() {\n return svg.append(\"svg:g\")\n .attrs({\n id: \"main-group\",\n transform: \"translate(\" + width / 2 + \",\" + height / 2 + \")\"\n });\n }\n\n function savePrefixesState(hidePrefixes) {\n if (!angular.isUndefined(hidePrefixes)) {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES, hidePrefixes);\n }\n }\n\n function getPrefixesState() {\n return LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_HIDE_PREFIXES) === \"true\";\n }\n\n /*\n * Prepares SVG document image export by adding xml namespaces and\n * additional style information\n */\n function prepareForSVGImageExport() {\n // get css rules for the diagram\n var cssRules = SVG.Export.getCSSRules(\"css/rdf-class-hierarchy-labels.css?v=3.1.1\");\n // inline css rules in a defs tag\n d3.selectAll(\"#main-group\")\n .append(\"defs\");\n $(\"defs\").append('<style type=\"text/css\"><![CDATA[' + cssRules + ']]></style>');\n\n // switch opacity to visible\n d3.selectAll(\"g\")\n .style(\"opacity\", 1);\n\n // convert selected html to base64\n var imgSrc = SVG.Export.generateBase64ImageSource(\"#classChart svg\");\n\n // set the binary image and a name for the downloadable file on the export button\n d3.select(this).attrs({\n href: imgSrc,\n download: \"class-hierarchy-\" + $repositories.getActiveRepository() + \".svg\"\n });\n }\n\n scope.hidePrefixes = getPrefixesState();\n\n var g = appendMainGroup();\n\n if (!scope.classHierarchyData.classCount && $repositories.getActiveRepository() && !$repositories.isSystemRepository()) {\n $rootScope.loader = true;\n $rootScope.hierarchyError = false;\n const selGraphFromCache = LocalStorageAdapter.get(`classHierarchy-selectedGraph-${$repositories.getActiveRepository()}`);\n GraphDataRestService.getClassHierarchyData(selGraphFromCache !== null ? selGraphFromCache.contextID.uri : \"\")\n .success(function (response, status, headers) {\n $rootScope.loader = false;\n if (status === 207) {\n toastr.warning($translate.instant('graphexplore.update.diagram'), $translate.instant('graphexplore.repository.data.changed'));\n }\n scope.classHierarchyData = response;\n\n d3.select(\"#download-svg\")\n .on(\"mouseover\", prepareForSVGImageExport);\n\n }).error(function (response) {\n $rootScope.loader = false;\n $rootScope.hierarchyError = getError(response);\n toastr.error($translate.instant('graphexplore.error.request.failed', {name: ROOT_OBJ_NAME, error: getError(response)}));\n });\n }\n\n\n var autoZoomToPreviousState,\n doFocus;\n\n var focus,\n rootFocusEvent,\n classSearchEvent,\n flattenedClassData = {};\n\n function drawDiagram(root, config, newFocus, switchPrefixes) {\n if (rootFocusEvent) rootFocusEvent();\n if (classSearchEvent) classSearchEvent();\n // remove old group tag containing the diagram\n d3.selectAll(\"#main-group\").remove();\n\n // append new empty group tag in order to rerender new diagram\n g = appendMainGroup();\n\n // fix for single child classes\n CirclePacking.SingleChild.addPlaceholders(root, true);\n\n rootHierarchy = d3.hierarchy(root);\n rootHierarchy.sum(function (d) {\n return d.size;\n })\n focus = newFocus ? newFocus : rootHierarchy;\n\n packLayout(rootHierarchy)\n\n var nodes = rootHierarchy.descendants(),\n view;\n\n focus.isInFocusTransitive = true;\n\n // fixes for single child classes\n CirclePacking.SingleChild.removePlaceholders(nodes);\n CirclePacking.SingleChild.centerNodes(nodes);\n CirclePacking.SingleChild.makePositionsRelativeToZero(nodes);\n\n if (!tip) {\n tip = d3tip()\n .attr('class', 'd3-tip')\n .customPosition(function (d, event) {\n return {\n top: 'inherit',\n bottom: ($window.innerHeight - event.clientY) + 'px',\n right: ($window.innerWidth - event.clientX) + 'px'\n };\n })\n .html(function (d) {\n return d.data.name;\n });\n svg.call(tip);\n }\n\n var circleGroup = g.selectAll(\"circle\")\n .data(nodes)\n .enter().append(\"g\");\n\n if (config.doFade) {\n circleGroup.each(function (d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n var flattenedClassNames = [];\n\n var circle = circleGroup\n .append(\"circle\")\n .attr(\"class\", function (d) {\n return d.data.role;\n })\n .attr(\"guide-selector\", function (d) {\n return \"class-\" + d.data.name;\n })\n .style(\"fill\", function (d) {\n //return colors[d.depth % 6];\n return d.children ? color(d.depth) : \"#E0D0D0\";\n })\n .each(function (d) {\n d.circle = d3.select(this);\n if (d.data.name !== ROOT_OBJ_NAME) {\n var key = d.data.name;\n flattenedClassNames.push({name: key});\n flattenedClassData[[key]] = d;\n\n d.circle.classed(\"rdf-class\", true);\n d.circle.on('mouseover', function (event) {\n if (config.noPrefixes) {\n tip.show(d, event);\n } else if (!d.textHidden) {\n tip.hide(d);\n } else {\n tip.show(d, event);\n }\n });\n d.circle.on('mouseout', tip.hide);\n }\n })\n // custom event used when user is following a guide\n .on(\"gdb-focus\", (event, d) => doFocus(d))\n .on(\"gdb-zoom\", (event, d) => zoom(d));\n\n\n if (flattenedClassNames) {\n flattenedClassNames = _.uniqBy(flattenedClassNames, 'name');\n scope.flattenedClassNames = flattenedClassNames;\n }\n\n var selectedClass;\n\n function getCurrentClassDataAndMarkSelected(obj) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n obj.circle.classed(\"selected\", obj.selected = true);\n selectedClass = obj;\n }\n\n function showClassInfoPanel() {\n scope.selectedClass = selectedClass;\n scope.showClassInfoPanel = true;\n }\n\n function closeClassInfoPanel() {\n scope.showClassInfoPanel = false;\n }\n\n function goToDomainRangeGraphView() {\n $rootScope.$broadcast('goToDomainRangeGraphView', selectedClass, focus);\n }\n\n var clickCancel = D3.Click.delayDblClick();\n d3.selectAll(\".parent, .topLevelParent, .child, .root\")\n .call(clickCancel);\n\n doFocus = function (obj) {\n zoom(obj);\n\n if (obj.data.name === ROOT_OBJ_NAME) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n } else {\n getCurrentClassDataAndMarkSelected(obj);\n if (!suppressPanelOpen) {\n showClassInfoPanel();\n }\n\n // FIXME: is it ok to bind this event handler every time and not just once?\n scope.$on('sidePanelClosed', function (event) {\n d3.selectAll(\".selected\").classed(\"selected\", obj.selected = false);\n });\n }\n\n\n //do not stop event propagation here\n };\n\n clickCancel.on(\"click\", function (event, obj) {\n // add clicked class to browser history\n if (obj.data.id) {\n $window.history.pushState({id: obj.data.id}, \"classHierarchyPage\" + obj.data.id, \"hierarchy#\" + obj.data.id);\n }\n\n //hide current d3-tip tooltip\n tip.hide();\n\n doFocus(obj);\n });\n\n clickCancel.on(\"dblclick\", function (event, obj) {\n if (obj === root) {\n return;\n }\n // hide current d3-tip tooltip in order not to appear in the next view\n tip.hide();\n getCurrentClassDataAndMarkSelected(obj);\n goToDomainRangeGraphView();\n\n event.stopPropagation();\n });\n\n var lastTimeWheel = 0;\n svg.on('wheel', function (event) {\n // hide current d3-tip tooltip\n tip.hide();\n\n event.preventDefault();\n event.stopPropagation();\n\n // at least 100ms must have passed since last time we updated\n var now = new Date().getTime();\n if (now - lastTimeWheel > 100) {\n lastTimeWheel = now;\n } else {\n return;\n }\n\n var direction = '';\n if (event.deltaY <= -1) {\n direction = 'in';\n } else if (event.deltaY >= 1) {\n direction = 'out';\n }\n\n var obj = event.target.__data__;\n\n if (!obj) {\n // scroll outside the big circle\n obj = focus;\n }\n\n if (direction === 'in') {\n // determine object to zoom to\n\n if (obj !== focus) {\n // consider the object on which the scroll event occurred\n // and find the furthest parent that has no focused children\n while (obj.parent && !obj.parent.isInFocusTransitive) {\n obj = obj.parent;\n }\n if (obj.depth < focus.depth) {\n // however if that parent is of lower depth than the focus we ignore it\n obj = focus;\n }\n }\n\n if (obj === focus && obj.children) {\n // if object is in focus and it has children we zoom to its biggest child\n // TODO: sort children on backend\n var newobj = obj.children[0];\n for (var i = 1; i < obj.children.length; i++) {\n if (obj.children[i].sortingRank > newobj.sortingRank) {\n newobj = obj.children[i];\n }\n }\n if (newobj.children) {\n // Use the child only if it has children\n obj = newobj;\n }\n } else if (!obj.children) {\n // If node has no children use its parent instead\n obj = obj.parent;\n }\n\n zoom(obj, true);\n } else if (direction === 'out') {\n // zooming out simply goes one parent up\n obj = focus.parent;\n if (obj) {\n zoom(obj, true);\n }\n }\n\n if (focus.data.name === ROOT_OBJ_NAME) {\n $window.history.replaceState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n }\n\n // redraw slider on zoom out\n sendSliderData();\n });\n\n var text = g.selectAll(\"text\")\n .data(nodes)\n .enter().append(\"text\")\n .attr(\"class\", function (d) {\n return d.children && d.children.length ? \"label\" : \"label child-label\";\n })\n .each(function (d) {\n d.textSel = d3.select(this);\n });\n\n function trimPrefixes(d) {\n var idx = d.data.name.indexOf(\":\");\n var absUriIdx = d.data.name.indexOf(\"http://\");\n if (absUriIdx > -1) {\n // if we have no prefix available ignore\n d.noPrefixName = d.data.name;\n } else if (idx > -1) {\n d.noPrefixName = d.data.name.substring(idx + 1);\n }\n }\n\n if (config.noPrefixes) {\n text.each(trimPrefixes);\n text\n .style(\"font-size\", function (d) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r);\n })\n .text(function (d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r / 3);\n });\n } else {\n text\n .style(\"font-size\", function (d) {\n return D3.Text.calcFontSize(d.data.name, d.r);\n })\n .text(function (d) {\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r / 3);\n })\n }\n\n // TODO: make this use the full version (same as zoom)\n text.style(\"display\", function (d) {\n if (d.parent && d.parent.data === focus.data) {\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n return null;\n } else {\n d.textHidden = true;\n return \"none\";\n }\n });\n\n if (config.doFade && !config.keepPrevState) {\n text.each(function (d) {\n D3.Transition.fadeIn(d3.select(this), 550);\n });\n }\n\n autoZoomToPreviousState = function () {\n function focusOnCurrentClass(focusHistoryId) {\n if (focusHistoryId) {\n circle.each(function (d) {\n if (+focusHistoryId === d.data.id) {\n doFocus(d);\n }\n });\n }\n }\n\n var focusHistoryId = $location.hash();\n\n $window.onpopstate = function (event) {\n if (event.state) {\n var focusHistoryId = event.state.id;\n focusOnCurrentClass(focusHistoryId);\n }\n };\n\n focusOnCurrentClass(focusHistoryId);\n };\n\n var node = g.selectAll(\"circle, text\");\n\n function zoomTo(v, switchPrefixes) {\n var k = diameter / v[2];\n view = v;\n\n node.attr(\"transform\", function (d) {\n return \"translate(\" + (d.x - v[0]) * k + \",\" + (d.y - v[1]) * k + \")\";\n });\n\n circle.attr(\"r\", function (d) {\n return d.r * k;\n });\n\n function switchPrefixesInPlace(d) {\n // if uris match with the topLevelParentUri of the focused element\n // or your focus is a top level parent hide its label and if it is not\n // a child element show all of its child labels. If it is a child element\n // only show its label.\n if (d.data.fullName === focus.data.topLevelParentUri || focus.data.topLevelParentUri === ROOT_OBJ_NAME) {\n d.textSel.style(\"display\", \"none\");\n if (focus.children && focus.children.length) {\n _.each(focus.children, function (c) {\n c.textSel.style(\"display\", \"inline\");\n });\n } else {\n focus.textSel.style(\"display\", \"inline\");\n }\n\n // in order to show prefixes of siblings check if the focused\n // element has a parent and show all of its children except\n // for the name of the focused element because you need to see\n // its children\n if (focus.parent) {\n _.each(focus.parent.children, function (c) {\n if (c.data.name !== focus.data.name) {\n c.textSel.style(\"display\", \"inline\");\n }\n });\n }\n }\n }\n\n if (switchPrefixes) {\n text.each(switchPrefixesInPlace);\n }\n\n text\n .style(\"font-size\", function (d) {\n if (config.noPrefixes) {\n return D3.Text.calcFontSize(d.noPrefixName, d.r * k);\n }\n return D3.Text.calcFontSize(d.data.name, d.r * k);\n })\n .text(function (d) {\n if (config.noPrefixes) {\n return D3.Text.getTextWithElipsisIfNeeded(d.noPrefixName, d.r * k / 3);\n }\n return D3.Text.getTextWithElipsisIfNeeded(d.data.name, d.r * k / 3);\n });\n }\n\n\n function adjustRadius(r) {\n var newr = r * 2 + margin;\n if (r * 2 / newr < 0.3) {\n // for very small circles we need to adjust\n newr = r * 2 + 2;\n }\n return newr;\n }\n\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)], switchPrefixes);\n\n function textUpdate(d) {\n if (d.isInFocusTransitive || !(d.parent && d.parent.isInFocusTransitive)) {\n // hide labels of classes that are in focus (including children) OR whose parents aren't in focus\n d.textHidden = true;\n this.style.display = \"none\";\n } else {\n // show all other labels\n d.textHidden = this.textContent.indexOf(\"...\") + 3 === this.textContent.length;\n this.style.display = \"\";\n }\n }\n\n function zoom(d, shouldClosePanel) {\n // use empty timeout to force the following code to be executed on the next $digest cycle\n // in order to avoid '$digest in progress' error\n $timeout(function () {\n scope.showExternalElements = (d.data.name === ROOT_OBJ_NAME);\n });\n\n if (focus === d) {\n // Node is already zoomed to\n // Important to return before we modify the history, otherwise we choke the browser\n return;\n }\n\n if (d.data.id) {\n $window.history.replaceState({id: d.data.id}, \"classHierarchyPage\" + d.data.id, \"hierarchy#\" + d.data.id);\n }\n\n if (!d.children) {\n // No children - zoom to parent instead\n d = d.parent;\n if (focus === d) {\n // Parent is already zoomed to\n return;\n }\n }\n\n if (shouldClosePanel) {\n closeClassInfoPanel();\n d3.selectAll(\".selected\").classed(\"selected\", false);\n }\n\n if (focus.parent) {\n var p = focus;\n while (p) {\n p.isInFocusTransitive = false;\n p = p.parent;\n }\n }\n\n var p = d;\n while (p) {\n p.isInFocusTransitive = !!p.children;\n p = p.parent;\n }\n\n focus = d;\n\n var isVerySmallCircle = focus.r * 2 / (focus.r * 2 + margin) < 0.3;\n\n if (isVerySmallCircle || scope.currentSliderValue > scope.currentBrowserLimit) {\n // no fancy animation for slower browsers if above the limit or if zooming to a very small circle\n zoomTo([focus.x, focus.y, adjustRadius(focus.r)]);\n\n text.each(function (d) {\n textUpdate.call(this, d)\n });\n } else {\n // the fancy version for faster browsers\n var transition = d3.transition()\n .duration(ZOOM_DURATION)\n .tween(\"zoom\", function (d) {\n var i = d3.interpolateZoom(view, [focus.x, focus.y, adjustRadius(focus.r)]);\n return function (t) {\n zoomTo(i(t));\n };\n });\n\n transition.selectAll(\"text\")\n // Experimental: hide texts to be hidden on \"start\", show texts to be shown on \"end\"\n .each(textUpdate)\n }\n }\n\n rootFocusEvent = scope.$on('rootFocus', function () {\n $window.history.pushState({id: 1}, \"classHierarchyPage1\", \"hierarchy#1\");\n doFocus(rootHierarchy);\n });\n\n classSearchEvent = scope.$on('classSearch', function (selectedClass) {\n doFocus(selectedClass);\n });\n }\n\n function sendSliderData() {\n const currentClassCount = scope.classHierarchyData.classCount;\n let currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n\n if (!currentSliderValue || currentSliderValue > currentClassCount) {\n currentSliderValue = currentClassCount;\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n }\n\n $rootScope.$broadcast(\"classCount\", currentClassCount, currentSliderValue);\n }\n\n window.addEventListener('resize', sendSliderData);\n\n window.addEventListener('beforeunload', removeResizeListener);\n\n function removeResizeListener() {\n window.removeEventListener('resize', sendSliderData);\n window.removeEventListener('beforeunload', removeResizeListener);\n }\n\n var prefixesWatch,\n currentClassCountWatch,\n searchedClassBroadcast,\n onEnterClassSearchBroadcast;\n\n scope.$watch('classHierarchyData', function () {\n // when data changes unregister watchers by calling them\n if (prefixesWatch) prefixesWatch();\n if (currentClassCountWatch) currentClassCountWatch();\n if (searchedClassBroadcast) searchedClassBroadcast();\n if (onEnterClassSearchBroadcast) onEnterClassSearchBroadcast();\n\n // get initial state of prefixes (hidden or not) when changing repositories\n // in order to avoid triggering an unwanted prefixes watch\n var initialPrefixesState = getPrefixesState();\n\n if (scope.classHierarchyData.classCount) {\n sendSliderData();\n\n var rootData = _.cloneDeep(scope.classHierarchyData);\n\n var root = d3.hierarchy(rootData);\n\n function sortRoot(root) {\n // add all classes to a flat array, add parent information\n // and sort according to instancesCount DESC, depth ASC\n\n return root.descendants()\n .sort(function (a, b) {\n if (a.data.sortingRank > b.data.sortingRank) {\n return -1;\n } else if (a.data.sortingRank < b.data.sortingRank) {\n return 1;\n } else if (a.data.depth > b.data.depth) {\n return 1;\n } else if (a.data.depth < b.data.depth) {\n return -1;\n } else {\n return 0;\n }\n });\n }\n\n var sortedChildren = sortRoot(root);\n\n // we start with an empty new rootData\n var filteredRootData;\n var noPrefixesGlobal;\n\n\n function restoreDiagramState(currentRootData, switchPrefixes) {\n const prefixesConfig = {\n keepPrevState: true,\n noPrefixes: getPrefixesState()\n };\n\n // get noPrefixes flag from drawDiagram configuration params\n noPrefixesGlobal = prefixesConfig.noPrefixes;\n\n if (filteredRootData) {\n drawDiagram(filteredRootData, prefixesConfig, focus, true);\n } else {\n drawDiagram(currentRootData, prefixesConfig, focus, true);\n }\n\n $timeout(() => {\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_SWITCH_PREFIXES, switchPrefixes);\n autoZoomToPreviousState();\n // Need to set this to false to enable the info panel to work when selecting a class.\n // The panel opening will be suppressed only when the prefixes are toggled.\n suppressPanelOpen = false;\n }, 70);\n }\n\n function redrawFilteredDiagram(currentSliderValue, sortedChildrenArray, useSlider) {\n if (!currentSliderValue) {\n return;\n }\n\n LocalStorageAdapter.set(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE, currentSliderValue);\n\n filteredRootData = {\n name: ROOT_OBJ_NAME,\n children: []\n };\n\n // walk through the given count of (sortedChildrenArray) classes\n // - record the id of each class we've seen\n // - add the rootData level classes to the new rootData\n const addedIds = new Set();\n for (let k = 1; k <= currentSliderValue; k++) {\n addedIds.add(sortedChildrenArray[k].data.id);\n if (sortedChildrenArray[k].parent === sortedChildrenArray[0]) { // i.e. the parent is the \"class hierarchy\"\n filteredRootData.children.push(sortedChildrenArray[k].data);\n }\n }\n\n // walk through all the classes in the new rootData and only keep those that have an \"added id\"\n // we create separate copies of the arrays in order not to contaminate the original data\n // we also copy each class's object ($.extend ...) for the same reason\n function fixChildren(node) {\n if (!node.children) {\n return;\n }\n const newChildren = [];\n for (const child of node.children) {\n if (addedIds.has(child.id)) {\n newChildren.push($.extend({}, child));\n }\n }\n node.children = newChildren;\n for (const child of node.children) {\n fixChildren(child);\n }\n }\n\n fixChildren(filteredRootData);\n\n if (useSlider) {\n // redraw diagram when slider value changes and persist current state\n // in local storage\n noPrefixesGlobal = angular.isUndefined(noPrefixesGlobal) ? getPrefixesState() : noPrefixesGlobal;\n const redrawConfig = {\n noPrefixes: noPrefixesGlobal\n };\n drawDiagram(filteredRootData, redrawConfig);\n } else {\n // if the user returns to the diagram with back browser button\n // read the saved state (show/hide prefixes, current slider value)\n // from local storage and render the diagram according to the saved metrics\n restoreDiagramState(rootData);\n }\n }\n\n var currentSliderValue = LocalStorageAdapter.get(LSKeys.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);\n if (currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren);\n } else {\n var basicConfig = {\n doFade: true,\n keepPrevState: true,\n noPrefixes: getPrefixesState()\n };\n drawDiagram(rootData, basicConfig);\n autoZoomToPreviousState();\n }\n\n prefixesWatch = scope.$watch('hidePrefixes', function (hidePrefixes) {\n if (angular.isUndefined(hidePrefixes) || initialPrefixesState) {\n initialPrefixesState = undefined;\n return;\n }\n // if digest overflows a possible fix might be wrapping this in $timeout\n $timeout(function () {\n suppressPanelOpen = true;\n savePrefixesState(hidePrefixes);\n restoreDiagramState(rootData, true);\n }, 50);\n }, true);\n\n currentClassCountWatch = scope.$watch('currentSliderValue', function (currentSliderValue) {\n redrawFilteredDiagram(currentSliderValue, sortedChildren, true);\n }, true);\n\n // we handle this event for the cases where we already have searched for a given class and\n // hit enter again on the already selected class in order again react and zoom to it again\n // if we are not at the moment\n var currentSearchedClass;\n onEnterClassSearchBroadcast = scope.$on('onEnterKeypressSearchAction', function (event) {\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n\n searchedClassBroadcast = scope.$on('searchedClass', function (event, searchedClass) {\n currentSearchedClass = flattenedClassData[searchedClass.name];\n if (currentSearchedClass) {\n doFocus(currentSearchedClass);\n }\n });\n }\n }, true);\n }\n}\n"],"names":["CirclePacking","SingleChild","addPlaceholders","node","first","children","i","length","placeholderSize","size","push","name","removePlaceholders","nodes","data","splice","centerNodes","offset","x","reposition","makePositionsRelativeToZero","offsetX","offsetY","y","d3","selectAll","SVG","Export","getCSSRules","cssSourceFilePath","cssRules","$","sheet","rules","cssStr","_","each","value","cssText","generateBase64ImageSource","svgSelectorClass","exportSvg","attr","parentNode","innerHTML","btoa","unescape","encodeURIComponent","classHierarchyDirective","$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate","restrict","template","scope","classHierarchyData","flattenedClassNames","selectedClass","currentSliderValue","showClassInfoPanel","showExternalElements","hidePrefixes","currentBrowserLimit","link","element","attrs","suppressPanelOpen","tip","rootHierarchy","packLayout","diameter","color","domain","range","interpolate","svg","insert","on","appendMainGroup","append","id","transform","getPrefixesState","get","CLASS_HIERARCHY_HIDE_PREFIXES","prepareForSVGImageExport","style","imgSrc","this","href","download","getActiveRepository","autoZoomToPreviousState","doFocus","g","classCount","isSystemRepository","loader","hierarchyError","selGraphFromCache","getClassHierarchyData","contextID","uri","success","response","status","headers","warning","instant","error","getError","focus","rootFocusEvent","classSearchEvent","prefixesWatch","currentClassCountWatch","searchedClassBroadcast","onEnterClassSearchBroadcast","flattenedClassData","drawDiagram","root","config","newFocus","switchPrefixes","remove","sum","d","view","descendants","isInFocusTransitive","d3tip","customPosition","event","top","bottom","innerHeight","clientY","right","innerWidth","clientX","html","call","circleGroup","enter","doFade","D3","Transition","fadeIn","circle","role","depth","key","classed","noPrefixes","textHidden","show","hide","zoom","getCurrentClassDataAndMarkSelected","obj","selected","closeClassInfoPanel","uniqBy","clickCancel","Click","delayDblClick","$on","history","pushState","$broadcast","stopPropagation","lastTimeWheel","preventDefault","now","Date","getTime","direction","deltaY","target","__data__","parent","newobj","sortingRank","replaceState","sendSliderData","text","textSel","idx","indexOf","noPrefixName","substring","Text","calcFontSize","r","getTextWithElipsisIfNeeded","textContent","keepPrevState","focusOnCurrentClass","focusHistoryId","hash","onpopstate","state","zoomTo","v","k","fullName","topLevelParentUri","c","adjustRadius","newr","textUpdate","display","shouldClosePanel","p","duration","tween","t","currentClassCount","CLASS_HIERARCHY_CURRENT_SLIDER_VALUE","set","window","addEventListener","removeResizeListener","removeEventListener","$watch","initialPrefixesState","rootData","cloneDeep","filteredRootData","noPrefixesGlobal","sortedChildren","sort","a","b","restoreDiagramState","currentRootData","prefixesConfig","CLASS_HIERARCHY_SWITCH_PREFIXES","redrawFilteredDiagram","sortedChildrenArray","useSlider","addedIds","Set","add","fixChildren","newChildren","child","has","extend","angular","isUndefined","currentSearchedClass","basicConfig","undefined","savePrefixesState","searchedClass","renderCirclePacking","module","constant","directive","$inject"],"sourceRoot":""}
|