@theia/ai-scanoss 1.60.2 → 1.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/ai-scanoss-code-scan-action.d.ts.map +1 -1
- package/lib/browser/ai-scanoss-code-scan-action.js +8 -10
- package/lib/browser/ai-scanoss-code-scan-action.js.map +1 -1
- package/lib/browser/ai-scanoss-frontend-module.d.ts.map +1 -1
- package/lib/browser/ai-scanoss-frontend-module.js +4 -0
- package/lib/browser/ai-scanoss-frontend-module.js.map +1 -1
- package/lib/browser/change-set-scan-action/change-set-scan-action.d.ts +3 -0
- package/lib/browser/change-set-scan-action/change-set-scan-action.d.ts.map +1 -1
- package/lib/browser/change-set-scan-action/change-set-scan-action.js +35 -14
- package/lib/browser/change-set-scan-action/change-set-scan-action.js.map +1 -1
- package/lib/browser/change-set-scan-action/change-set-scan-decorator.d.ts +13 -0
- package/lib/browser/change-set-scan-action/change-set-scan-decorator.d.ts.map +1 -0
- package/lib/browser/change-set-scan-action/change-set-scan-decorator.js +52 -0
- package/lib/browser/change-set-scan-action/change-set-scan-decorator.js.map +1 -0
- package/package.json +9 -9
- package/src/browser/ai-scanoss-code-scan-action.tsx +5 -5
- package/src/browser/ai-scanoss-frontend-module.ts +4 -0
- package/src/browser/change-set-scan-action/change-set-scan-action.tsx +47 -14
- package/src/browser/change-set-scan-action/change-set-scan-decorator.ts +54 -0
- package/src/browser/style/index.css +120 -90
- package/src/browser/style/scanoss_logo_dark_theme.svg +19 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-scanoss-code-scan-action.d.ts","sourceRoot":"","sources":["../../src/browser/ai-scanoss-code-scan-action.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAEH,kBAAkB,EAClB,cAAc,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAU,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAkB3E,qBACa,uBAAwB,YAAW,sBAAsB;IAElE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IAE/C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,QAAQ,
|
|
1
|
+
{"version":3,"file":"ai-scanoss-code-scan-action.d.ts","sourceRoot":"","sources":["../../src/browser/ai-scanoss-code-scan-action.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAEH,kBAAkB,EAClB,cAAc,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAU,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAkB3E,qBACa,uBAAwB,YAAW,sBAAsB;IAElE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IAE/C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,QAAQ,SAAK;IAEb,SAAS,CAAC,QAAQ,EAAE,uBAAuB,EAAE,UAAU,EAAE,YAAY,GAAG,OAAO;IAkB/E,MAAM,CACF,QAAQ,EAAE,uBAAuB,EACjC,UAAU,EAAE,YAAY,GACzB,SAAS;CAcf;AAiFD,qBAAa,aAAc,SAAQ,WAAW,CAAC,IAAI,CAAC;IAGpC,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE;IAFnD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;gBAEzB,OAAO,EAAE,kBAAkB,EAAE;IAQnD,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS;IAUnC,SAAS,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS;IAWzC,SAAS,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS;IAW1C,SAAS,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS;IAkB1C,IAAI,KAAK,IAAI,SAAS,CAErB;CACJ"}
|
|
@@ -30,7 +30,7 @@ function hasScanOSSResults(data) {
|
|
|
30
30
|
}
|
|
31
31
|
let ScanOSSScanButtonAction = class ScanOSSScanButtonAction {
|
|
32
32
|
constructor() {
|
|
33
|
-
this.priority =
|
|
33
|
+
this.priority = 0;
|
|
34
34
|
}
|
|
35
35
|
canRender(response, parentNode) {
|
|
36
36
|
if (!hasScanOSSResults(parentNode.response.data)) {
|
|
@@ -113,16 +113,14 @@ const ScanOSSIntegration = React.memo((props) => {
|
|
|
113
113
|
title = core_1.nls.localize('theia/ai/scanoss/snippet/no-match', 'SCANOSS - No match');
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
|
-
return (React.createElement("div", { className: `button scanoss-
|
|
116
|
+
return (React.createElement("div", { className: `button scanoss-icon icon-container ${scanOSSResult === 'pending'
|
|
117
117
|
? 'pending'
|
|
118
118
|
: scanOSSResult
|
|
119
119
|
? scanOSSResult.type
|
|
120
|
-
: ''}`, title: title, role: "button", onClick: scanOSSClicked },
|
|
121
|
-
React.createElement("
|
|
122
|
-
scanOSSResult
|
|
123
|
-
|
|
124
|
-
scanOSSResult.type === 'match' && React.createElement("span", { className: "codicon codicon-warning" }),
|
|
125
|
-
scanOSSResult.type === 'error' && React.createElement("span", { className: "codicon codicon-error" })))));
|
|
120
|
+
: ''}`, title: title, role: "button", onClick: scanOSSClicked }, scanOSSResult && scanOSSResult !== 'pending' && (React.createElement("span", { className: "status-icon" },
|
|
121
|
+
scanOSSResult.type === 'clean' && React.createElement("span", { className: "codicon codicon-pass-filled" }),
|
|
122
|
+
scanOSSResult.type === 'match' && React.createElement("span", { className: "codicon codicon-warning" }),
|
|
123
|
+
scanOSSResult.type === 'error' && React.createElement("span", { className: "codicon codicon-error" })))));
|
|
126
124
|
});
|
|
127
125
|
class ScanOSSDialog extends react_dialog_1.ReactDialog {
|
|
128
126
|
constructor(results) {
|
|
@@ -141,8 +139,8 @@ class ScanOSSDialog extends react_dialog_1.ReactDialog {
|
|
|
141
139
|
}
|
|
142
140
|
renderHeader() {
|
|
143
141
|
return (React.createElement("div", { className: "scanoss-header" },
|
|
144
|
-
React.createElement("div", { className: "scanoss-
|
|
145
|
-
React.createElement("div", { className: "scanoss-
|
|
142
|
+
React.createElement("div", { className: "scanoss-icon-container" },
|
|
143
|
+
React.createElement("div", { className: "scanoss-icon" }),
|
|
146
144
|
React.createElement("h2", null, "SCANOSS"))));
|
|
147
145
|
}
|
|
148
146
|
renderSummary() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-scanoss-code-scan-action.js","sourceRoot":"","sources":["../../src/browser/ai-scanoss-code-scan-action.tsx"],"names":[],"mappings":";;;;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,MAAM;AACN,4DAAkE;AAGlE,4CAIwB;AACxB,qDAAoE;AAGpE,kDAAkD;AAClD,+EAA2E;AAC3E,wFAAuF;AACvF,qEAA6D;AAC7D,sCAAkC;AASlC,SAAS,iBAAiB,CAAC,IAE1B;IACG,OAAO,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,YAAY,GAAG,CAAC;AAC1E,CAAC;AAGM,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAA7B;QAMH,aAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"ai-scanoss-code-scan-action.js","sourceRoot":"","sources":["../../src/browser/ai-scanoss-code-scan-action.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-scanoss-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-scanoss-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;
|
|
1
|
+
{"version":3,"file":"ai-scanoss-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-scanoss-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAU/D,wBAQG"}
|
|
@@ -23,11 +23,15 @@ const ai_scanoss_code_scan_action_1 = require("./ai-scanoss-code-scan-action");
|
|
|
23
23
|
const chat_response_renderer_1 = require("@theia/ai-chat-ui/lib/browser/chat-response-renderer");
|
|
24
24
|
const change_set_action_service_1 = require("@theia/ai-chat-ui/lib/browser/change-set-actions/change-set-action-service");
|
|
25
25
|
const change_set_scan_action_1 = require("./change-set-scan-action/change-set-scan-action");
|
|
26
|
+
const change_set_decorator_service_1 = require("@theia/ai-chat/lib/browser/change-set-decorator-service");
|
|
27
|
+
const change_set_scan_decorator_1 = require("./change-set-scan-action/change-set-scan-decorator");
|
|
26
28
|
exports.default = new inversify_1.ContainerModule(bind => {
|
|
27
29
|
bind(browser_1.PreferenceContribution).toConstantValue({ schema: ai_scanoss_preferences_1.AIScanOSSPreferencesSchema });
|
|
28
30
|
bind(ai_scanoss_code_scan_action_1.ScanOSSScanButtonAction).toSelf().inSingletonScope();
|
|
29
31
|
bind(chat_response_renderer_1.CodePartRendererAction).toService(ai_scanoss_code_scan_action_1.ScanOSSScanButtonAction);
|
|
30
32
|
bind(change_set_scan_action_1.ChangeSetScanActionRenderer).toSelf();
|
|
31
33
|
bind(change_set_action_service_1.ChangeSetActionRenderer).toService(change_set_scan_action_1.ChangeSetScanActionRenderer);
|
|
34
|
+
bind(change_set_scan_decorator_1.ChangeSetScanDecorator).toSelf().inSingletonScope();
|
|
35
|
+
bind(change_set_decorator_service_1.ChangeSetDecorator).toService(change_set_scan_decorator_1.ChangeSetScanDecorator);
|
|
32
36
|
});
|
|
33
37
|
//# sourceMappingURL=ai-scanoss-frontend-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-scanoss-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-scanoss-frontend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,6CAA2C;AAC3C,4DAA+D;AAC/D,qEAAsE;AACtE,qDAAiE;AACjE,+EAAwE;AACxE,iGAA8F;AAC9F,0HAAqH;AACrH,4FAA8F;
|
|
1
|
+
{"version":3,"file":"ai-scanoss-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-scanoss-frontend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,6CAA2C;AAC3C,4DAA+D;AAC/D,qEAAsE;AACtE,qDAAiE;AACjE,+EAAwE;AACxE,iGAA8F;AAC9F,0HAAqH;AACrH,4FAA8F;AAC9F,0GAA6F;AAC7F,kGAA4F;AAE5F,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,gCAAsB,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,mDAA0B,EAAE,CAAC,CAAC;IACrF,IAAI,CAAC,qDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,+CAAsB,CAAC,CAAC,SAAS,CAAC,qDAAuB,CAAC,CAAC;IAChE,IAAI,CAAC,oDAA2B,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3C,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,oDAA2B,CAAC,CAAC;IACrE,IAAI,CAAC,kDAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAI,CAAC,iDAAkB,CAAC,CAAC,SAAS,CAAC,kDAAsB,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC"}
|
|
@@ -8,14 +8,17 @@ import { ChangeSetFileElement } from '@theia/ai-chat/lib/browser/change-set-file
|
|
|
8
8
|
import { IDocumentDiffProvider } from '@theia/monaco-editor-core/esm/vs/editor/common/diff/documentDiffProvider';
|
|
9
9
|
import { MonacoTextModelService } from '@theia/monaco/lib/browser/monaco-text-model-service';
|
|
10
10
|
import { Emitter, MessageService } from '@theia/core';
|
|
11
|
+
import { ChangeSetScanDecorator } from './change-set-scan-decorator';
|
|
11
12
|
export declare class ChangeSetScanActionRenderer implements ChangeSetActionRenderer {
|
|
12
13
|
readonly id = "change-set-scanoss";
|
|
14
|
+
readonly priority = 10;
|
|
13
15
|
protected readonly onDidChangeEmitter: Emitter<void>;
|
|
14
16
|
readonly onDidChange: import("@theia/core").Event<void>;
|
|
15
17
|
protected readonly scanService: ScanOSSService;
|
|
16
18
|
protected readonly preferenceService: PreferenceService;
|
|
17
19
|
protected readonly textModelService: MonacoTextModelService;
|
|
18
20
|
protected readonly messageService: MessageService;
|
|
21
|
+
protected readonly scanChangeSetDecorator: ChangeSetScanDecorator;
|
|
19
22
|
protected differ: IDocumentDiffProvider;
|
|
20
23
|
init(): void;
|
|
21
24
|
canRender(_changeSet: ChangeSet): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-set-scan-action.d.ts","sourceRoot":"","sources":["../../../src/browser/change-set-scan-action/change-set-scan-action.tsx"],"names":[],"mappings":";AAgBA,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4EAA4E,CAAC;AACrH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAsB,MAAM,gBAAgB,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAI1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0EAA0E,CAAC;AACjH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAqB,OAAO,EAAE,cAAc,EAAO,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"change-set-scan-action.d.ts","sourceRoot":"","sources":["../../../src/browser/change-set-scan-action/change-set-scan-action.tsx"],"names":[],"mappings":";AAgBA,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4EAA4E,CAAC;AACrH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAsB,MAAM,gBAAgB,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAI1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0EAA0E,CAAC;AACjH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAqB,OAAO,EAAE,cAAc,EAAO,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAKrE,qBACa,2BAA4B,YAAW,uBAAuB;IACvE,QAAQ,CAAC,EAAE,wBAAwB;IACnC,QAAQ,CAAC,QAAQ,MAAM;IACvB,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,oCAAiC;IAGrD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IAG/C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAG5D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAElE,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAGxC,IAAI,IAAI,IAAI;IAMZ,SAAS,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO;IAIzC,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS;IAW7C,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAIvC,SAAS,CAAC,KAAK,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;cAErE,OAAO,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;cA2BvI,cAAc,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BpF"}
|
|
@@ -29,9 +29,11 @@ const standaloneServices_1 = require("@theia/monaco-editor-core/esm/vs/editor/st
|
|
|
29
29
|
const diffProviderFactoryService_1 = require("@theia/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffProviderFactoryService");
|
|
30
30
|
const monaco_text_model_service_1 = require("@theia/monaco/lib/browser/monaco-text-model-service");
|
|
31
31
|
const core_1 = require("@theia/core");
|
|
32
|
+
const change_set_scan_decorator_1 = require("./change-set-scan-decorator");
|
|
32
33
|
let ChangeSetScanActionRenderer = class ChangeSetScanActionRenderer {
|
|
33
34
|
constructor() {
|
|
34
35
|
this.id = 'change-set-scanoss';
|
|
36
|
+
this.priority = 10;
|
|
35
37
|
this.onDidChangeEmitter = new core_1.Emitter();
|
|
36
38
|
this.onDidChange = this.onDidChangeEmitter.event;
|
|
37
39
|
}
|
|
@@ -44,7 +46,7 @@ let ChangeSetScanActionRenderer = class ChangeSetScanActionRenderer {
|
|
|
44
46
|
return true;
|
|
45
47
|
}
|
|
46
48
|
render(changeSet) {
|
|
47
|
-
return (React.createElement(ChangeSetScanOSSIntegration, { changeSet: changeSet, scanOssMode: this.getPreferenceValues(), scanChangeSet: this._scan }));
|
|
49
|
+
return (React.createElement(ChangeSetScanOSSIntegration, { changeSet: changeSet, decorator: this.scanChangeSetDecorator, scanOssMode: this.getPreferenceValues(), scanChangeSet: this._scan }));
|
|
48
50
|
}
|
|
49
51
|
getPreferenceValues() {
|
|
50
52
|
return this.preferenceService.get(ai_scanoss_preferences_1.SCANOSS_MODE_PREF, 'off');
|
|
@@ -118,6 +120,10 @@ tslib_1.__decorate([
|
|
|
118
120
|
(0, inversify_1.inject)(core_1.MessageService),
|
|
119
121
|
tslib_1.__metadata("design:type", core_1.MessageService)
|
|
120
122
|
], ChangeSetScanActionRenderer.prototype, "messageService", void 0);
|
|
123
|
+
tslib_1.__decorate([
|
|
124
|
+
(0, inversify_1.inject)(change_set_scan_decorator_1.ChangeSetScanDecorator),
|
|
125
|
+
tslib_1.__metadata("design:type", change_set_scan_decorator_1.ChangeSetScanDecorator)
|
|
126
|
+
], ChangeSetScanActionRenderer.prototype, "scanChangeSetDecorator", void 0);
|
|
121
127
|
tslib_1.__decorate([
|
|
122
128
|
(0, inversify_1.postConstruct)(),
|
|
123
129
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -127,7 +133,7 @@ tslib_1.__decorate([
|
|
|
127
133
|
exports.ChangeSetScanActionRenderer = ChangeSetScanActionRenderer = tslib_1.__decorate([
|
|
128
134
|
(0, inversify_1.injectable)()
|
|
129
135
|
], ChangeSetScanActionRenderer);
|
|
130
|
-
const ChangeSetScanOSSIntegration = React.memo(({ changeSet, scanOssMode, scanChangeSet }) => {
|
|
136
|
+
const ChangeSetScanOSSIntegration = React.memo(({ changeSet, decorator, scanOssMode, scanChangeSet }) => {
|
|
131
137
|
const [scanOSSResult, setScanOSSResult] = React.useState(undefined);
|
|
132
138
|
const cache = React.useRef(new Map());
|
|
133
139
|
const [changeSetElements, setChangeSetElements] = React.useState(() => changeSet.getElements().filter(candidate => candidate instanceof change_set_file_element_1.ChangeSetFileElement));
|
|
@@ -139,6 +145,13 @@ const ChangeSetScanOSSIntegration = React.memo(({ changeSet, scanOssMode, scanCh
|
|
|
139
145
|
}
|
|
140
146
|
}
|
|
141
147
|
}, [scanOssMode, scanOSSResult]);
|
|
148
|
+
React.useEffect(() => {
|
|
149
|
+
if (!Array.isArray(scanOSSResult)) {
|
|
150
|
+
decorator.setScanResult([]);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
decorator.setScanResult(scanOSSResult);
|
|
154
|
+
}, [decorator, scanOSSResult]);
|
|
142
155
|
React.useEffect(() => {
|
|
143
156
|
const disposable = changeSet.onDidChange(() => {
|
|
144
157
|
setChangeSetElements(changeSet.getElements().filter(candidate => candidate instanceof change_set_file_element_1.ChangeSetFileElement));
|
|
@@ -164,23 +177,24 @@ const ChangeSetScanOSSIntegration = React.memo(({ changeSet, scanOssMode, scanCh
|
|
|
164
177
|
}
|
|
165
178
|
}, [scanOSSResult, changeSetElements]);
|
|
166
179
|
const state = getResult(scanOSSResult);
|
|
167
|
-
const
|
|
168
|
-
const
|
|
180
|
+
const title = `ScanOSS: ${getTitle(state)}`;
|
|
181
|
+
const content = getContent(state);
|
|
169
182
|
const icon = getIcon(state);
|
|
170
183
|
if (scanOssMode === 'off' || changeSetElements.length === 0) {
|
|
171
184
|
return undefined;
|
|
172
185
|
}
|
|
173
186
|
else if (state === 'clean' || state === 'pending') {
|
|
174
|
-
return React.createElement("div", { className:
|
|
175
|
-
React.createElement("
|
|
176
|
-
|
|
177
|
-
|
|
187
|
+
return React.createElement("div", { className: 'theia-changeSet-scanOss readonly' },
|
|
188
|
+
React.createElement("div", { className: `scanoss-icon icon-container ${state === 'pending'
|
|
189
|
+
? 'pending'
|
|
190
|
+
: state
|
|
191
|
+
? state
|
|
192
|
+
: ''}`, title: title }, icon));
|
|
178
193
|
}
|
|
179
194
|
else {
|
|
180
|
-
return React.createElement("button", { className: `theia-button theia-changeSet-scanOss ${state}`, title: title, onClick: scanOSSClicked },
|
|
181
|
-
React.createElement("
|
|
182
|
-
content
|
|
183
|
-
icon);
|
|
195
|
+
return React.createElement("button", { className: `theia-button secondary theia-changeSet-scanOss ${state}`, title: title, onClick: scanOSSClicked },
|
|
196
|
+
React.createElement("div", { className: `scanoss-icon icon-container ${state}`, title: title }, icon),
|
|
197
|
+
content);
|
|
184
198
|
}
|
|
185
199
|
});
|
|
186
200
|
function getResult(scanOSSResult) {
|
|
@@ -197,8 +211,16 @@ function getTitle(result) {
|
|
|
197
211
|
case 'none': return core_1.nls.localize('theia/ai/scanoss/changeSet/scan', 'Scan');
|
|
198
212
|
case 'pending': return core_1.nls.localize('theia/ai/scanoss/changeSet/scanning', 'Scanning...');
|
|
199
213
|
case 'error': return core_1.nls.localize('theia/ai/scanoss/changeSet/error', 'Error: Rerun');
|
|
200
|
-
case 'match': return core_1.nls.localize('theia/ai/scanoss/changeSet/
|
|
214
|
+
case 'match': return core_1.nls.localize('theia/ai/scanoss/changeSet/match', 'View Matches');
|
|
201
215
|
case 'clean': return core_1.nls.localize('theia/ai/scanoss/changeSet/clean', 'No Matches');
|
|
216
|
+
default: return '';
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
function getContent(result) {
|
|
220
|
+
switch (result) {
|
|
221
|
+
case 'none': return getTitle(result);
|
|
222
|
+
case 'pending': return getTitle(result);
|
|
223
|
+
default: return '';
|
|
202
224
|
}
|
|
203
225
|
}
|
|
204
226
|
function getIcon(result) {
|
|
@@ -207,7 +229,6 @@ function getIcon(result) {
|
|
|
207
229
|
React.createElement("span", { className: "codicon codicon-pass-filled" })));
|
|
208
230
|
case 'match': return (React.createElement("span", { className: "status-icon" },
|
|
209
231
|
React.createElement("span", { className: "codicon codicon-warning" })));
|
|
210
|
-
case 'pending': return React.createElement("i", { className: "fa fa-spinner fa-spin" });
|
|
211
232
|
default: return undefined;
|
|
212
233
|
}
|
|
213
234
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-set-scan-action.js","sourceRoot":"","sources":["../../../src/browser/change-set-scan-action/change-set-scan-action.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,kDAAkD;AAElD,4DAAiF;AAEjF,qEAAwE;AACxE,4CAAmF;AACnF,sEAA8D;AAC9D,wFAAuF;AACvF,gGAA0F;AAC1F,gFAA+D;AAC/D,sHAAmH;AACnH,6IAA2I;AAE3I,mGAA6F;AAC7F,sCAA8E;
|
|
1
|
+
{"version":3,"file":"change-set-scan-action.js","sourceRoot":"","sources":["../../../src/browser/change-set-scan-action/change-set-scan-action.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChangeSetDecoration, ChangeSetElement } from '@theia/ai-chat';
|
|
2
|
+
import type { ChangeSetDecorator } from '@theia/ai-chat/lib/browser/change-set-decorator-service';
|
|
3
|
+
import { Emitter } from '@theia/core';
|
|
4
|
+
import type { ScanOSSResult } from '@theia/scanoss';
|
|
5
|
+
export declare class ChangeSetScanDecorator implements ChangeSetDecorator {
|
|
6
|
+
readonly id = "thei-change-set-scanoss-decorator";
|
|
7
|
+
protected readonly emitter: Emitter<void>;
|
|
8
|
+
readonly onDidChangeDecorations: import("@theia/core").Event<void>;
|
|
9
|
+
protected scanResult: ScanOSSResult[];
|
|
10
|
+
setScanResult(results: ScanOSSResult[]): void;
|
|
11
|
+
decorate(element: ChangeSetElement): ChangeSetDecoration | undefined;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=change-set-scan-decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-set-scan-decorator.d.ts","sourceRoot":"","sources":["../../../src/browser/change-set-scan-action/change-set-scan-decorator.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,qBACa,sBAAuB,YAAW,kBAAkB;IAC7D,QAAQ,CAAC,EAAE,uCAAuC;IAElD,SAAS,CAAC,QAAQ,CAAC,OAAO,gBAAuB;IACjD,QAAQ,CAAC,sBAAsB,oCAAsB;IAErD,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,CAAM;IAE3C,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI;IAK7C,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,SAAS;CAiBvE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ChangeSetScanDecorator = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const core_1 = require("@theia/core");
|
|
21
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
+
let ChangeSetScanDecorator = class ChangeSetScanDecorator {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.id = 'thei-change-set-scanoss-decorator';
|
|
25
|
+
this.emitter = new core_1.Emitter();
|
|
26
|
+
this.onDidChangeDecorations = this.emitter.event;
|
|
27
|
+
this.scanResult = [];
|
|
28
|
+
}
|
|
29
|
+
setScanResult(results) {
|
|
30
|
+
this.scanResult = results;
|
|
31
|
+
this.emitter.fire();
|
|
32
|
+
}
|
|
33
|
+
decorate(element) {
|
|
34
|
+
const match = this.scanResult.find(result => {
|
|
35
|
+
if (result.type === 'match') {
|
|
36
|
+
return result.file === element.uri.path.toString();
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
});
|
|
40
|
+
if (match) {
|
|
41
|
+
return {
|
|
42
|
+
additionalInfoSuffixIcon: ['additional-info-scanoss-icon', 'match', 'codicon', 'codicon-warning'],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.ChangeSetScanDecorator = ChangeSetScanDecorator;
|
|
49
|
+
exports.ChangeSetScanDecorator = ChangeSetScanDecorator = tslib_1.__decorate([
|
|
50
|
+
(0, inversify_1.injectable)()
|
|
51
|
+
], ChangeSetScanDecorator);
|
|
52
|
+
//# sourceMappingURL=change-set-scan-decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-set-scan-decorator.js","sourceRoot":"","sources":["../../../src/browser/change-set-scan-action/change-set-scan-decorator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAIhF,sCAAsC;AACtC,4DAA0D;AAInD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAA5B;QACM,OAAE,GAAG,mCAAmC,CAAC;QAE/B,YAAO,GAAG,IAAI,cAAO,EAAQ,CAAC;QACxC,2BAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAE3C,eAAU,GAAoB,EAAE,CAAC;IAwB/C,CAAC;IAtBG,aAAa,CAAC,OAAwB;QAClC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,OAAyB;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACxC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvD,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACR,OAAO;gBACH,wBAAwB,EAAE,CAAC,8BAA8B,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,CAAC;aACpG,CAAC;QACN,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CAEJ,CAAA;AA9BY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,sBAAU,GAAE;GACA,sBAAsB,CA8BlC"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-scanoss",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.61.0",
|
|
4
4
|
"description": "Theia - SCANOSS AI Integration",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-chat": "1.
|
|
7
|
-
"@theia/ai-chat-ui": "1.
|
|
8
|
-
"@theia/ai-core": "1.
|
|
9
|
-
"@theia/core": "1.
|
|
10
|
-
"@theia/monaco": "1.
|
|
6
|
+
"@theia/ai-chat": "1.61.0",
|
|
7
|
+
"@theia/ai-chat-ui": "1.61.0",
|
|
8
|
+
"@theia/ai-core": "1.61.0",
|
|
9
|
+
"@theia/core": "1.61.0",
|
|
10
|
+
"@theia/monaco": "1.61.0",
|
|
11
11
|
"@theia/monaco-editor-core": "1.96.302",
|
|
12
|
-
"@theia/scanoss": "1.
|
|
12
|
+
"@theia/scanoss": "1.61.0"
|
|
13
13
|
},
|
|
14
14
|
"publishConfig": {
|
|
15
15
|
"access": "public"
|
|
@@ -45,10 +45,10 @@
|
|
|
45
45
|
"watch": "theiaext watch"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@theia/ext-scripts": "1.
|
|
48
|
+
"@theia/ext-scripts": "1.61.0"
|
|
49
49
|
},
|
|
50
50
|
"nyc": {
|
|
51
51
|
"extends": "../../configs/nyc.json"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "c99af52568c2e1f453c80c1b0d1fb73c3a23dcc0"
|
|
54
54
|
}
|
|
@@ -50,7 +50,7 @@ export class ScanOSSScanButtonAction implements CodePartRendererAction {
|
|
|
50
50
|
@inject(PreferenceService)
|
|
51
51
|
protected readonly preferenceService: PreferenceService;
|
|
52
52
|
|
|
53
|
-
priority =
|
|
53
|
+
priority = 0;
|
|
54
54
|
|
|
55
55
|
canRender(response: CodeChatResponseContent, parentNode: ResponseNode): boolean {
|
|
56
56
|
if (!hasScanOSSResults(parentNode.response.data)) {
|
|
@@ -144,9 +144,10 @@ const ScanOSSIntegration = React.memo((props: {
|
|
|
144
144
|
title = nls.localize('theia/ai/scanoss/snippet/no-match', 'SCANOSS - No match');
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
|
+
|
|
147
148
|
return (
|
|
148
149
|
<div
|
|
149
|
-
className={`button scanoss-
|
|
150
|
+
className={`button scanoss-icon icon-container ${scanOSSResult === 'pending'
|
|
150
151
|
? 'pending'
|
|
151
152
|
: scanOSSResult
|
|
152
153
|
? scanOSSResult.type
|
|
@@ -156,7 +157,6 @@ const ScanOSSIntegration = React.memo((props: {
|
|
|
156
157
|
role="button"
|
|
157
158
|
onClick={scanOSSClicked}
|
|
158
159
|
>
|
|
159
|
-
<div className="codicon codicon-circle placeholder" />
|
|
160
160
|
{scanOSSResult && scanOSSResult !== 'pending' && (
|
|
161
161
|
<span className="status-icon">
|
|
162
162
|
{scanOSSResult.type === 'clean' && <span className="codicon codicon-pass-filled" />}
|
|
@@ -192,8 +192,8 @@ export class ScanOSSDialog extends ReactDialog<void> {
|
|
|
192
192
|
protected renderHeader(): React.ReactNode {
|
|
193
193
|
return (
|
|
194
194
|
<div className="scanoss-header">
|
|
195
|
-
<div className="scanoss-
|
|
196
|
-
<div className="scanoss-
|
|
195
|
+
<div className="scanoss-icon-container">
|
|
196
|
+
<div className="scanoss-icon"></div>
|
|
197
197
|
<h2>SCANOSS</h2>
|
|
198
198
|
</div>
|
|
199
199
|
</div>
|
|
@@ -22,6 +22,8 @@ import { ScanOSSScanButtonAction } from './ai-scanoss-code-scan-action';
|
|
|
22
22
|
import { CodePartRendererAction } from '@theia/ai-chat-ui/lib/browser/chat-response-renderer';
|
|
23
23
|
import { ChangeSetActionRenderer } from '@theia/ai-chat-ui/lib/browser/change-set-actions/change-set-action-service';
|
|
24
24
|
import { ChangeSetScanActionRenderer } from './change-set-scan-action/change-set-scan-action';
|
|
25
|
+
import { ChangeSetDecorator } from '@theia/ai-chat/lib/browser/change-set-decorator-service';
|
|
26
|
+
import { ChangeSetScanDecorator } from './change-set-scan-action/change-set-scan-decorator';
|
|
25
27
|
|
|
26
28
|
export default new ContainerModule(bind => {
|
|
27
29
|
bind(PreferenceContribution).toConstantValue({ schema: AIScanOSSPreferencesSchema });
|
|
@@ -29,4 +31,6 @@ export default new ContainerModule(bind => {
|
|
|
29
31
|
bind(CodePartRendererAction).toService(ScanOSSScanButtonAction);
|
|
30
32
|
bind(ChangeSetScanActionRenderer).toSelf();
|
|
31
33
|
bind(ChangeSetActionRenderer).toService(ChangeSetScanActionRenderer);
|
|
34
|
+
bind(ChangeSetScanDecorator).toSelf().inSingletonScope();
|
|
35
|
+
bind(ChangeSetDecorator).toService(ChangeSetScanDecorator);
|
|
32
36
|
});
|
|
@@ -29,6 +29,7 @@ import { IDiffProviderFactoryService } from '@theia/monaco-editor-core/esm/vs/ed
|
|
|
29
29
|
import { IDocumentDiffProvider } from '@theia/monaco-editor-core/esm/vs/editor/common/diff/documentDiffProvider';
|
|
30
30
|
import { MonacoTextModelService } from '@theia/monaco/lib/browser/monaco-text-model-service';
|
|
31
31
|
import { CancellationToken, Emitter, MessageService, nls } from '@theia/core';
|
|
32
|
+
import { ChangeSetScanDecorator } from './change-set-scan-decorator';
|
|
32
33
|
|
|
33
34
|
type ScanOSSState = 'pending' | 'clean' | 'match' | 'error' | 'none';
|
|
34
35
|
type ScanOSSResultOptions = 'pending' | ScanOSSResult[] | undefined;
|
|
@@ -36,6 +37,7 @@ type ScanOSSResultOptions = 'pending' | ScanOSSResult[] | undefined;
|
|
|
36
37
|
@injectable()
|
|
37
38
|
export class ChangeSetScanActionRenderer implements ChangeSetActionRenderer {
|
|
38
39
|
readonly id = 'change-set-scanoss';
|
|
40
|
+
readonly priority = 10;
|
|
39
41
|
protected readonly onDidChangeEmitter = new Emitter<void>();
|
|
40
42
|
readonly onDidChange = this.onDidChangeEmitter.event;
|
|
41
43
|
|
|
@@ -51,6 +53,9 @@ export class ChangeSetScanActionRenderer implements ChangeSetActionRenderer {
|
|
|
51
53
|
@inject(MessageService)
|
|
52
54
|
protected readonly messageService: MessageService;
|
|
53
55
|
|
|
56
|
+
@inject(ChangeSetScanDecorator)
|
|
57
|
+
protected readonly scanChangeSetDecorator: ChangeSetScanDecorator;
|
|
58
|
+
|
|
54
59
|
protected differ: IDocumentDiffProvider;
|
|
55
60
|
|
|
56
61
|
@postConstruct()
|
|
@@ -68,6 +73,7 @@ export class ChangeSetScanActionRenderer implements ChangeSetActionRenderer {
|
|
|
68
73
|
return (
|
|
69
74
|
<ChangeSetScanOSSIntegration
|
|
70
75
|
changeSet={changeSet}
|
|
76
|
+
decorator={this.scanChangeSetDecorator}
|
|
71
77
|
scanOssMode={this.getPreferenceValues()}
|
|
72
78
|
scanChangeSet={this._scan}
|
|
73
79
|
/>
|
|
@@ -142,12 +148,14 @@ export class ChangeSetScanActionRenderer implements ChangeSetActionRenderer {
|
|
|
142
148
|
|
|
143
149
|
interface ChangeSetScanActionProps {
|
|
144
150
|
changeSet: ChangeSet;
|
|
151
|
+
decorator: ChangeSetScanDecorator;
|
|
145
152
|
scanOssMode: string;
|
|
146
153
|
scanChangeSet: (changeSet: ChangeSetElement[], cache: Map<string, ScanOSSResult>, userTriggered: boolean) => Promise<ScanOSSResult[]>
|
|
147
154
|
}
|
|
148
155
|
|
|
149
156
|
const ChangeSetScanOSSIntegration = React.memo(({
|
|
150
157
|
changeSet,
|
|
158
|
+
decorator,
|
|
151
159
|
scanOssMode,
|
|
152
160
|
scanChangeSet
|
|
153
161
|
}: ChangeSetScanActionProps) => {
|
|
@@ -164,6 +172,14 @@ const ChangeSetScanOSSIntegration = React.memo(({
|
|
|
164
172
|
}
|
|
165
173
|
}, [scanOssMode, scanOSSResult]);
|
|
166
174
|
|
|
175
|
+
React.useEffect(() => {
|
|
176
|
+
if (!Array.isArray(scanOSSResult)) {
|
|
177
|
+
decorator.setScanResult([]);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
decorator.setScanResult(scanOSSResult);
|
|
181
|
+
}, [decorator, scanOSSResult]);
|
|
182
|
+
|
|
167
183
|
React.useEffect(() => {
|
|
168
184
|
const disposable = changeSet.onDidChange(() => {
|
|
169
185
|
setChangeSetElements(changeSet.getElements().filter(candidate => candidate instanceof ChangeSetFileElement));
|
|
@@ -187,30 +203,39 @@ const ChangeSetScanOSSIntegration = React.memo(({
|
|
|
187
203
|
}, [scanOSSResult, changeSetElements]);
|
|
188
204
|
|
|
189
205
|
const state = getResult(scanOSSResult);
|
|
190
|
-
const
|
|
191
|
-
const
|
|
206
|
+
const title = `ScanOSS: ${getTitle(state)}`;
|
|
207
|
+
const content = getContent(state);
|
|
192
208
|
const icon = getIcon(state);
|
|
193
209
|
|
|
194
210
|
if (scanOssMode === 'off' || changeSetElements.length === 0) {
|
|
195
211
|
return undefined;
|
|
196
212
|
} else if (state === 'clean' || state === 'pending') {
|
|
197
|
-
return <div
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
213
|
+
return <div className='theia-changeSet-scanOss readonly'>
|
|
214
|
+
<div
|
|
215
|
+
className={`scanoss-icon icon-container ${state === 'pending'
|
|
216
|
+
? 'pending'
|
|
217
|
+
: state
|
|
218
|
+
? state
|
|
219
|
+
: ''
|
|
220
|
+
}`}
|
|
221
|
+
title={title}
|
|
222
|
+
>
|
|
223
|
+
{icon}
|
|
224
|
+
</div>
|
|
204
225
|
</div>;
|
|
205
226
|
} else {
|
|
206
227
|
return <button
|
|
207
|
-
className={`theia-button theia-changeSet-scanOss ${state}`}
|
|
228
|
+
className={`theia-button secondary theia-changeSet-scanOss ${state}`}
|
|
208
229
|
title={title}
|
|
209
230
|
onClick={scanOSSClicked}
|
|
210
231
|
>
|
|
211
|
-
<
|
|
232
|
+
<div
|
|
233
|
+
className={`scanoss-icon icon-container ${state}`}
|
|
234
|
+
title={title}
|
|
235
|
+
>
|
|
236
|
+
{icon}
|
|
237
|
+
</div>
|
|
212
238
|
{content}
|
|
213
|
-
{icon}
|
|
214
239
|
</button>;
|
|
215
240
|
}
|
|
216
241
|
});
|
|
@@ -230,8 +255,17 @@ function getTitle(result: ScanOSSState): string {
|
|
|
230
255
|
case 'none': return nls.localize('theia/ai/scanoss/changeSet/scan', 'Scan');
|
|
231
256
|
case 'pending': return nls.localize('theia/ai/scanoss/changeSet/scanning', 'Scanning...');
|
|
232
257
|
case 'error': return nls.localize('theia/ai/scanoss/changeSet/error', 'Error: Rerun');
|
|
233
|
-
case 'match': return nls.localize('theia/ai/scanoss/changeSet/
|
|
258
|
+
case 'match': return nls.localize('theia/ai/scanoss/changeSet/match', 'View Matches');
|
|
234
259
|
case 'clean': return nls.localize('theia/ai/scanoss/changeSet/clean', 'No Matches');
|
|
260
|
+
default: return '';
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function getContent(result: ScanOSSState): string {
|
|
265
|
+
switch (result) {
|
|
266
|
+
case 'none': return getTitle(result);
|
|
267
|
+
case 'pending': return getTitle(result);
|
|
268
|
+
default: return '';
|
|
235
269
|
}
|
|
236
270
|
}
|
|
237
271
|
|
|
@@ -243,7 +277,6 @@ function getIcon(result: ScanOSSState): React.ReactNode {
|
|
|
243
277
|
case 'match': return (<span className="status-icon">
|
|
244
278
|
<span className="codicon codicon-warning" />
|
|
245
279
|
</span>);
|
|
246
|
-
case 'pending': return <i className="fa fa-spinner fa-spin" />;
|
|
247
280
|
default: return undefined;
|
|
248
281
|
}
|
|
249
282
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2025 EclipseSource GmbH and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import type { ChangeSetDecoration, ChangeSetElement } from '@theia/ai-chat';
|
|
18
|
+
import type { ChangeSetDecorator } from '@theia/ai-chat/lib/browser/change-set-decorator-service';
|
|
19
|
+
import { Emitter } from '@theia/core';
|
|
20
|
+
import { injectable } from '@theia/core/shared/inversify';
|
|
21
|
+
import type { ScanOSSResult } from '@theia/scanoss';
|
|
22
|
+
|
|
23
|
+
@injectable()
|
|
24
|
+
export class ChangeSetScanDecorator implements ChangeSetDecorator {
|
|
25
|
+
readonly id = 'thei-change-set-scanoss-decorator';
|
|
26
|
+
|
|
27
|
+
protected readonly emitter = new Emitter<void>();
|
|
28
|
+
readonly onDidChangeDecorations = this.emitter.event;
|
|
29
|
+
|
|
30
|
+
protected scanResult: ScanOSSResult[] = [];
|
|
31
|
+
|
|
32
|
+
setScanResult(results: ScanOSSResult[]): void {
|
|
33
|
+
this.scanResult = results;
|
|
34
|
+
this.emitter.fire();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
decorate(element: ChangeSetElement): ChangeSetDecoration | undefined {
|
|
38
|
+
const match = this.scanResult.find(result => {
|
|
39
|
+
if (result.type === 'match') {
|
|
40
|
+
return result.file === element.uri.path.toString();
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
if (match) {
|
|
46
|
+
return {
|
|
47
|
+
additionalInfoSuffixIcon: ['additional-info-scanoss-icon', 'match', 'codicon', 'codicon-warning'],
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
}
|
|
@@ -1,169 +1,199 @@
|
|
|
1
|
-
.scanoss-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
.scanoss-icon::before {
|
|
2
|
+
content: "";
|
|
3
|
+
mask-image: url("scanoss_logo_dark_theme.svg");
|
|
4
|
+
mask-repeat: no-repeat;
|
|
5
|
+
mask-position: 50% 50%;
|
|
6
|
+
mask-size: inherit;
|
|
7
|
+
height: inherit;
|
|
8
|
+
width: inherit;
|
|
9
|
+
display: inline-block;
|
|
10
|
+
background: var(--theia-sideBar-foreground, var(--theia-foreground));
|
|
5
11
|
}
|
|
6
12
|
|
|
7
|
-
.vs-light .scanoss-
|
|
8
|
-
.theia-light .scanoss-
|
|
9
|
-
.light-theia .scanoss-
|
|
10
|
-
|
|
13
|
+
.vs-light .scanoss-icon::before,
|
|
14
|
+
.theia-light .scanoss-icon::before,
|
|
15
|
+
.light-theia .scanoss-icon::before {
|
|
16
|
+
mask-image: url("scanoss_logo_light_theme.svg");
|
|
11
17
|
}
|
|
12
18
|
|
|
13
19
|
/* We need a more detailed selector to override the default button style */
|
|
14
|
-
.theia-CodePartRenderer-actions .scanoss-
|
|
15
|
-
background-size: 82% auto; /* scale the image to be a bit smaller than the button because the codicon icons are also smaller */
|
|
20
|
+
.theia-CodePartRenderer-actions .scanoss-icon::before {
|
|
16
21
|
transition: filter 0.3s;
|
|
17
|
-
display: inline-block;
|
|
18
22
|
}
|
|
19
23
|
|
|
20
|
-
.scanoss-
|
|
21
|
-
|
|
24
|
+
.scanoss-icon.pending {
|
|
25
|
+
pointer-events: none;
|
|
26
|
+
cursor: default;
|
|
22
27
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
.theia-CodePartRenderer-actions .scanoss-logo:not(:hover) {
|
|
26
|
-
border-radius: 50%;
|
|
28
|
+
.scanoss-icon.pending::before {
|
|
29
|
+
animation: scan-os-fade 3s infinite ease-in-out;
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
@keyframes scan-os-fade {
|
|
33
|
+
0%,
|
|
34
|
+
100% {
|
|
35
|
+
opacity: 0;
|
|
36
|
+
}
|
|
37
|
+
50% {
|
|
38
|
+
opacity: 1;
|
|
39
|
+
}
|
|
31
40
|
}
|
|
32
41
|
|
|
33
|
-
|
|
34
|
-
|
|
42
|
+
/* Use a rounded background when not hovered */
|
|
43
|
+
.theia-CodePartRenderer-actions .scanoss-icon:not(:hover) {
|
|
44
|
+
border-radius: 50%;
|
|
35
45
|
}
|
|
36
46
|
|
|
37
|
-
.scanoss-
|
|
38
|
-
|
|
47
|
+
.scanoss-icon.match::before,
|
|
48
|
+
.scanoss-icon.clean::before,
|
|
49
|
+
.scanoss-icon.error::before {
|
|
50
|
+
background-color: var(--theia-disabledForeground);
|
|
39
51
|
}
|
|
40
52
|
|
|
41
53
|
.icon-container {
|
|
42
|
-
position: relative;
|
|
54
|
+
position: relative;
|
|
43
55
|
display: inline-block;
|
|
44
56
|
width: 16px;
|
|
45
57
|
height: 16px;
|
|
46
58
|
}
|
|
47
59
|
|
|
60
|
+
.icon-container.scanoss-icon::before {
|
|
61
|
+
width: 16px;
|
|
62
|
+
height: 16px;
|
|
63
|
+
mask-size: 16px;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.icon-container.scanoss-icon.clean,
|
|
67
|
+
.icon-container.scanoss-icon.match,
|
|
68
|
+
.icon-container.scanoss-icon.error {
|
|
69
|
+
margin-right: 12px;
|
|
70
|
+
}
|
|
71
|
+
|
|
48
72
|
/* The placeholder is used to align with the remaining actions, however it should not be visible*/
|
|
49
|
-
.scanoss-
|
|
73
|
+
.scanoss-icon .placeholder {
|
|
50
74
|
visibility: hidden;
|
|
51
75
|
}
|
|
52
76
|
|
|
53
77
|
/* The status icon is used to display the result of the scan on the top right */
|
|
54
|
-
.scanoss-
|
|
78
|
+
.scanoss-icon .status-icon {
|
|
55
79
|
position: absolute;
|
|
56
|
-
|
|
80
|
+
font-size: 14px;
|
|
81
|
+
transform: translate(-4px, -2px);
|
|
57
82
|
}
|
|
58
83
|
|
|
59
|
-
.scanoss-
|
|
60
|
-
|
|
84
|
+
.scanoss-icon.clean .status-icon {
|
|
85
|
+
color: var(--theia-successBackground);
|
|
61
86
|
}
|
|
62
|
-
.scanoss-
|
|
63
|
-
|
|
64
|
-
|
|
87
|
+
.scanoss-icon.match .status-icon,
|
|
88
|
+
.additional-info-scanoss-icon.match {
|
|
89
|
+
color: var(--theia-problemsWarningIcon-foreground);
|
|
65
90
|
}
|
|
66
|
-
.scanoss-
|
|
67
|
-
|
|
68
|
-
text-shadow: 0 0 3px currentColor
|
|
91
|
+
.scanoss-icon.error .status-icon {
|
|
92
|
+
color: var(--theia-problemsErrorIcon-foreground);
|
|
69
93
|
}
|
|
70
94
|
|
|
71
95
|
/* Disable the button when it's in the clean state */
|
|
72
|
-
.theia-CodePartRenderer-actions .scanoss-
|
|
73
|
-
pointer-events: none;
|
|
96
|
+
.theia-CodePartRenderer-actions .scanoss-icon.clean {
|
|
97
|
+
pointer-events: none;
|
|
74
98
|
cursor: default;
|
|
75
99
|
}
|
|
76
100
|
|
|
77
101
|
.scanoss-dialog-container .scanoss-header {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
102
|
+
display: flex;
|
|
103
|
+
flex-direction: column;
|
|
104
|
+
align-items: center;
|
|
105
|
+
margin-bottom: 20px;
|
|
82
106
|
}
|
|
83
107
|
|
|
84
|
-
.scanoss-dialog-container .scanoss-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
108
|
+
.scanoss-dialog-container .scanoss-icon-container {
|
|
109
|
+
display: flex;
|
|
110
|
+
flex-direction: row;
|
|
111
|
+
align-items: center;
|
|
112
|
+
gap: 10px;
|
|
89
113
|
}
|
|
90
114
|
|
|
91
|
-
.scanoss-dialog-container .scanoss-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
115
|
+
.scanoss-dialog-container .scanoss-icon {
|
|
116
|
+
width: 40px;
|
|
117
|
+
height: 40px;
|
|
118
|
+
mask-size: 40px;
|
|
95
119
|
}
|
|
96
120
|
|
|
97
|
-
.scanoss-dialog-container .scanoss-
|
|
98
|
-
|
|
99
|
-
|
|
121
|
+
.scanoss-dialog-container .scanoss-icon-container h2 {
|
|
122
|
+
font-size: 1.8em;
|
|
123
|
+
margin: 0;
|
|
100
124
|
}
|
|
101
125
|
|
|
102
126
|
.scanoss-dialog-container .scanoss-summary {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
127
|
+
padding: 15px;
|
|
128
|
+
border-radius: 4px;
|
|
129
|
+
margin-bottom: 20px;
|
|
106
130
|
}
|
|
107
131
|
|
|
108
132
|
.scanoss-dialog-container .scanoss-summary h3 {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
133
|
+
margin-top: 0;
|
|
134
|
+
font-size: 1.4em;
|
|
135
|
+
margin-bottom: 10px;
|
|
112
136
|
}
|
|
113
137
|
|
|
114
138
|
.scanoss-dialog-container .scanoss-details {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
139
|
+
padding: 15px;
|
|
140
|
+
border-radius: 4px;
|
|
141
|
+
border: 1px solid var(--theia-sideBarSectionHeader-border);
|
|
118
142
|
}
|
|
119
143
|
|
|
120
144
|
.scanoss-dialog-container .scanoss-details h4 {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
145
|
+
margin-top: 0;
|
|
146
|
+
font-size: 1.2em;
|
|
147
|
+
margin-bottom: 10px;
|
|
124
148
|
}
|
|
125
149
|
|
|
126
150
|
.scanoss-dialog-container .scanoss-details pre {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
151
|
+
background: var(--theia-editor-background);
|
|
152
|
+
padding: 10px;
|
|
153
|
+
border-radius: 4px;
|
|
154
|
+
overflow: auto;
|
|
155
|
+
font-size: 0.9em;
|
|
132
156
|
}
|
|
133
157
|
|
|
158
|
+
/* ####### Change Set ####### */
|
|
159
|
+
|
|
134
160
|
.theia-changeSet-scanOss {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
161
|
+
display: flex;
|
|
162
|
+
flex-flow: row nowrap;
|
|
163
|
+
align-items: center;
|
|
164
|
+
justify-content: center;
|
|
165
|
+
gap: var(--theia-ui-padding);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.theia-changeSet-scanOss.readonly {
|
|
169
|
+
margin-right: 10px;
|
|
170
|
+
height: 100%;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.theia-changeSet-Action .theia-button.secondary {
|
|
174
|
+
background: none;
|
|
140
175
|
}
|
|
141
176
|
|
|
142
|
-
.theia-changeSet-Action .theia-
|
|
143
|
-
|
|
144
|
-
background-color: inherit;
|
|
145
|
-
/* Buttons in all themes tested used a light font color */
|
|
146
|
-
background-image: url("scanoss_logo_dark_theme.svg");
|
|
177
|
+
.theia-changeSet-Action .theia-button.secondary:hover {
|
|
178
|
+
background: var(--theia-toolbar-hoverBackground);
|
|
147
179
|
}
|
|
148
180
|
|
|
149
181
|
.theia-changeSet-scanOss.clean,
|
|
150
182
|
.theia-changeSet-scanOss.pending {
|
|
151
|
-
|
|
183
|
+
cursor: default;
|
|
152
184
|
}
|
|
153
185
|
|
|
154
186
|
.theia-changeSet-scanOss.clean:hover,
|
|
155
187
|
.theia-changeSet-scanOss.pending:hover {
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.theia-changeSet-scanOss .status-icon {
|
|
160
|
-
height: 16px;
|
|
188
|
+
background-color: var(--theia-button-background);
|
|
161
189
|
}
|
|
162
190
|
|
|
163
|
-
.theia-changeSet-scanOss
|
|
164
|
-
|
|
191
|
+
.theia-changeSet-scanOss .scanoss-icon.clean,
|
|
192
|
+
.theia-changeSet-scanOss .scanoss-icon.match,
|
|
193
|
+
.theia-changeSet-scanOss .scanoss-icon.error {
|
|
194
|
+
margin-right: 0px;
|
|
165
195
|
}
|
|
166
196
|
|
|
167
|
-
.theia-changeSet-scanOss
|
|
168
|
-
|
|
197
|
+
.theia-changeSet-scanOss .status-icon {
|
|
198
|
+
height: 16px;
|
|
169
199
|
}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
<svg width="81" height="82" viewBox="0 0 81 82" fill="none" xmlns="http://www.w3.org/2000/svg"
|
|
2
|
-
|
|
3
|
-
<path
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
<svg width="81" height="82" viewBox="0 0 81 82" fill="none" xmlns="http://www.w3.org/2000/svg"
|
|
2
|
+
stroke-width="1">
|
|
3
|
+
<path
|
|
4
|
+
d="M18.5086 36.073H29.0966C30.2492 33.5499 32.2272 31.4981 34.7021 30.2582C37.1771 29.0184 40.0003 28.6651 42.7029 29.257C45.4056 29.8488 47.8253 31.3502 49.5603 33.512C51.2953 35.6738 52.2414 38.3659 52.2414 41.1415C52.2414 43.9171 51.2953 46.6092 49.5603 48.771C47.8253 50.9328 45.4056 52.4342 42.7029 53.0261C40.0003 53.6179 37.1771 53.2646 34.7021 52.0248C32.2272 50.7849 30.2492 48.7332 29.0966 46.21H18.5086C19.7483 51.5397 22.898 56.226 27.3581 59.3766C31.8182 62.5273 37.2773 63.9225 42.6961 63.2964C48.1149 62.6704 53.1152 60.0669 56.7449 55.9816C60.3746 51.8963 62.3804 46.6144 62.3804 41.1415C62.3804 35.6686 60.3746 30.3867 56.7449 26.3014C53.1152 22.2161 48.1149 19.6126 42.6961 18.9866C37.2773 18.3606 31.8182 19.7557 27.3581 22.9064C22.898 26.057 19.7483 30.7433 18.5086 36.073Z"
|
|
5
|
+
fill="white" />
|
|
6
|
+
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
7
|
+
d="M40.412 10.1933C23.3992 10.1933 9.60766 24.0311 9.60766 41.101C9.60766 58.1708 23.3992 72.0086 40.412 72.0086C57.4247 72.0086 71.2163 58.1708 71.2163 41.101C71.2163 24.0311 57.4247 10.1933 40.412 10.1933ZM0.0908203 41.101C0.0908203 18.7575 18.1432 0.644531 40.412 0.644531C62.6808 0.644531 80.7332 18.7575 80.7332 41.101C80.7332 63.4444 62.6808 81.5574 40.412 81.5574C18.1432 81.5574 0.0908203 63.4444 0.0908203 41.101Z"
|
|
8
|
+
fill="white" />
|
|
9
|
+
<path
|
|
10
|
+
d="M40.1112 46.015C42.666 46.015 44.7371 43.9737 44.7371 41.4557C44.7371 38.9377 42.666 36.8965 40.1112 36.8965C37.5564 36.8965 35.4854 38.9377 35.4854 41.4557C35.4854 43.9737 37.5564 46.015 40.1112 46.015Z"
|
|
11
|
+
fill="url(#paint0_linear_458_1146)" />
|
|
12
|
+
<defs>
|
|
13
|
+
<linearGradient id="paint0_linear_458_1146" x1="35.4854" y1="63.6006" x2="45.2955"
|
|
14
|
+
y2="63.4776" gradientUnits="userSpaceOnUse">
|
|
15
|
+
<stop stop-color="#6366F1" />
|
|
16
|
+
<stop offset="1" stop-color="#863DFF" />
|
|
17
|
+
</linearGradient>
|
|
18
|
+
</defs>
|
|
19
|
+
</svg>
|