@adobe/create-ccweb-add-on 1.3.0 → 2.0.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/dist/app/WxpAddOnFactory.js +1 -1
- package/dist/commands/create.d.ts +0 -3
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +1 -17
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -3
- package/dist/templates/javascript-with-document-sandbox/template/src/sandbox/tsconfig.json +1 -1
- package/dist/templates/react-javascript-with-document-sandbox/template/src/sandbox/tsconfig.json +1 -1
- package/dist/templates/react-typescript/template/src/index.html +2 -2
- package/dist/templates/react-typescript-with-document-sandbox/template/src/sandbox/tsconfig.json +1 -1
- package/dist/templates/swc-javascript/template/.babelrc +6 -0
- package/dist/templates/{typescript-with-document-sandbox → swc-javascript}/template/README.md +3 -2
- package/dist/templates/swc-javascript/template/src/components/App.js +42 -0
- package/dist/templates/{typescript-with-document-sandbox → swc-javascript}/template/src/index.html +2 -2
- package/dist/templates/swc-javascript/template/src/index.js +23 -0
- package/dist/templates/swc-javascript/template/tsconfig.json +14 -0
- package/dist/templates/swc-javascript/template/webpack.config.js +46 -0
- package/dist/templates/swc-javascript/template.json +24 -0
- package/dist/templates/swc-javascript-with-document-sandbox/template/.babelrc +6 -0
- package/dist/templates/swc-javascript-with-document-sandbox/template/README.md +16 -0
- package/dist/templates/swc-javascript-with-document-sandbox/template/src/index.html +19 -0
- package/dist/templates/swc-javascript-with-document-sandbox/template/src/sandbox/code.js +38 -0
- package/{templates/typescript-with-document-sandbox → dist/templates/swc-javascript-with-document-sandbox}/template/src/sandbox/tsconfig.json +1 -1
- package/dist/templates/swc-javascript-with-document-sandbox/template/src/ui/components/App.js +54 -0
- package/dist/templates/swc-javascript-with-document-sandbox/template/src/ui/index.js +23 -0
- package/dist/templates/swc-javascript-with-document-sandbox/template/tsconfig.json +14 -0
- package/dist/templates/swc-javascript-with-document-sandbox/template/webpack.config.js +54 -0
- package/dist/templates/swc-javascript-with-document-sandbox/template.json +24 -0
- package/{templates/typescript-with-document-sandbox → dist/templates/swc-typescript}/template/README.md +2 -1
- package/dist/templates/swc-typescript/template/gitignore +3 -0
- package/{templates/typescript-with-document-sandbox → dist/templates/swc-typescript}/template/src/index.html +2 -2
- package/dist/templates/swc-typescript-with-document-sandbox/template/README.md +16 -0
- package/dist/templates/swc-typescript-with-document-sandbox/template/src/index.html +19 -0
- package/dist/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/src/sandbox/tsconfig.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/validators/AddOnDirectoryValidator.d.ts.map +1 -1
- package/dist/validators/AddOnDirectoryValidator.js +2 -1
- package/package.json +78 -79
- package/src/app/WxpAddOnFactory.ts +1 -1
- package/src/commands/create.ts +2 -23
- package/src/constants.ts +6 -3
- package/src/test/app/WxpAddOnFactory.spec.ts +1 -1
- package/src/test/commands/create.spec.ts +2 -26
- package/src/test/validators/AddOnDirectoryValidator.spec.ts +6 -3
- package/src/validators/AddOnDirectoryValidator.ts +2 -1
- package/templates/javascript-with-document-sandbox/template/src/sandbox/tsconfig.json +1 -1
- package/templates/react-javascript-with-document-sandbox/template/src/sandbox/tsconfig.json +1 -1
- package/templates/react-typescript/template/src/index.html +2 -2
- package/templates/react-typescript-with-document-sandbox/template/src/sandbox/tsconfig.json +1 -1
- package/templates/swc-javascript/template/.babelrc +6 -0
- package/templates/{typescript → swc-javascript}/template/README.md +3 -3
- package/templates/swc-javascript/template/gitignore +3 -0
- package/templates/swc-javascript/template/src/components/App.css.js +9 -0
- package/templates/swc-javascript/template/src/components/App.js +42 -0
- package/{dist/templates/typescript → templates/swc-javascript}/template/src/index.html +5 -2
- package/templates/swc-javascript/template/src/index.js +23 -0
- package/templates/swc-javascript/template/src/manifest.json +21 -0
- package/templates/swc-javascript/template/tsconfig.json +14 -0
- package/templates/swc-javascript/template/webpack.config.js +46 -0
- package/templates/swc-javascript/template.json +24 -0
- package/templates/swc-javascript-with-document-sandbox/template/.babelrc +6 -0
- package/templates/swc-javascript-with-document-sandbox/template/README.md +16 -0
- package/templates/swc-javascript-with-document-sandbox/template/gitignore +3 -0
- package/templates/swc-javascript-with-document-sandbox/template/src/index.html +19 -0
- package/templates/swc-javascript-with-document-sandbox/template/src/manifest.json +22 -0
- package/templates/swc-javascript-with-document-sandbox/template/src/models/DocumentSandboxApi.ts +4 -0
- package/templates/swc-javascript-with-document-sandbox/template/src/sandbox/code.js +38 -0
- package/templates/swc-javascript-with-document-sandbox/template/src/sandbox/tsconfig.json +10 -0
- package/templates/swc-javascript-with-document-sandbox/template/src/ui/components/App.css.js +9 -0
- package/templates/swc-javascript-with-document-sandbox/template/src/ui/components/App.js +54 -0
- package/templates/swc-javascript-with-document-sandbox/template/src/ui/index.js +23 -0
- package/templates/swc-javascript-with-document-sandbox/template/src/ui/tsconfig.json +7 -0
- package/templates/swc-javascript-with-document-sandbox/template/tsconfig.json +14 -0
- package/templates/swc-javascript-with-document-sandbox/template/webpack.config.js +54 -0
- package/templates/swc-javascript-with-document-sandbox/template.json +24 -0
- package/{dist/templates/typescript → templates/swc-typescript}/template/README.md +2 -2
- package/templates/swc-typescript/template/gitignore +3 -0
- package/templates/swc-typescript/template/src/components/App.css.ts +9 -0
- package/templates/{typescript → swc-typescript}/template/src/index.html +5 -2
- package/templates/swc-typescript/template/src/manifest.json +21 -0
- package/templates/swc-typescript-with-document-sandbox/template/README.md +16 -0
- package/templates/swc-typescript-with-document-sandbox/template/src/index.html +19 -0
- package/templates/swc-typescript-with-document-sandbox/template/src/manifest.json +22 -0
- package/templates/swc-typescript-with-document-sandbox/template/src/models/DocumentSandboxApi.ts +4 -0
- package/templates/swc-typescript-with-document-sandbox/template/src/sandbox/tsconfig.json +10 -0
- package/templates/swc-typescript-with-document-sandbox/template/src/ui/components/App.css.ts +9 -0
- package/templates/swc-typescript-with-document-sandbox/template/src/ui/tsconfig.json +7 -0
- package/dist/templates/javascript/template/src/add-on-ui-sdk.d.ts +0 -7
- package/dist/templates/javascript-with-document-sandbox/template/src/sandbox/add-on-sandbox-sdk.d.ts +0 -11
- package/dist/templates/javascript-with-document-sandbox/template/src/ui/add-on-ui-sdk.d.ts +0 -7
- package/dist/templates/react-javascript/template/src/add-on-ui-sdk.d.ts +0 -7
- package/dist/templates/react-javascript-with-document-sandbox/template/src/sandbox/add-on-sandbox-sdk.d.ts +0 -11
- package/dist/templates/react-javascript-with-document-sandbox/template/src/ui/add-on-ui-sdk.d.ts +0 -7
- package/dist/templates/react-typescript/template/src/add-on-ui-sdk.d.ts +0 -7
- package/dist/templates/react-typescript-with-document-sandbox/template/src/sandbox/add-on-sandbox-sdk.d.ts +0 -11
- package/dist/templates/react-typescript-with-document-sandbox/template/src/ui/add-on-ui-sdk.d.ts +0 -7
- package/dist/templates/typescript/template/src/add-on-ui-sdk.d.ts +0 -7
- package/dist/templates/typescript-with-document-sandbox/template/src/sandbox/add-on-sandbox-sdk.d.ts +0 -11
- package/dist/templates/typescript-with-document-sandbox/template/src/ui/add-on-ui-sdk.d.ts +0 -7
- package/templates/javascript/template/src/add-on-ui-sdk.d.ts +0 -7
- package/templates/javascript-with-document-sandbox/template/src/sandbox/add-on-sandbox-sdk.d.ts +0 -11
- package/templates/javascript-with-document-sandbox/template/src/ui/add-on-ui-sdk.d.ts +0 -7
- package/templates/react-javascript/template/src/add-on-ui-sdk.d.ts +0 -7
- package/templates/react-javascript-with-document-sandbox/template/src/sandbox/add-on-sandbox-sdk.d.ts +0 -11
- package/templates/react-javascript-with-document-sandbox/template/src/ui/add-on-ui-sdk.d.ts +0 -7
- package/templates/react-typescript/template/src/add-on-ui-sdk.d.ts +0 -7
- package/templates/react-typescript-with-document-sandbox/template/src/sandbox/add-on-sandbox-sdk.d.ts +0 -11
- package/templates/react-typescript-with-document-sandbox/template/src/ui/add-on-ui-sdk.d.ts +0 -7
- package/templates/typescript/template/src/add-on-ui-sdk.d.ts +0 -7
- package/templates/typescript-with-document-sandbox/template/src/sandbox/add-on-sandbox-sdk.d.ts +0 -11
- package/templates/typescript-with-document-sandbox/template/src/ui/add-on-ui-sdk.d.ts +0 -7
- /package/{templates/typescript → dist/templates/swc-javascript}/template/gitignore +0 -0
- /package/dist/templates/{typescript/template/src/components/App.css.ts → swc-javascript/template/src/components/App.css.js} +0 -0
- /package/dist/templates/{typescript → swc-javascript}/template/src/manifest.json +0 -0
- /package/dist/templates/{typescript → swc-javascript-with-document-sandbox}/template/gitignore +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-javascript-with-document-sandbox}/template/src/manifest.json +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-javascript-with-document-sandbox}/template/src/models/DocumentSandboxApi.ts +0 -0
- /package/dist/templates/{typescript-with-document-sandbox/template/src/ui/components/App.css.ts → swc-javascript-with-document-sandbox/template/src/ui/components/App.css.js} +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-javascript-with-document-sandbox}/template/src/ui/tsconfig.json +0 -0
- /package/{templates/typescript → dist/templates/swc-typescript}/template/src/components/App.css.ts +0 -0
- /package/dist/templates/{typescript → swc-typescript}/template/src/components/App.ts +0 -0
- /package/dist/templates/{typescript → swc-typescript}/template/src/index.ts +0 -0
- /package/{templates/typescript → dist/templates/swc-typescript}/template/src/manifest.json +0 -0
- /package/dist/templates/{typescript → swc-typescript}/template/tsconfig.json +0 -0
- /package/dist/templates/{typescript → swc-typescript}/template/webpack.config.js +0 -0
- /package/dist/templates/{typescript → swc-typescript}/template.json +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/gitignore +0 -0
- /package/{templates/typescript-with-document-sandbox → dist/templates/swc-typescript-with-document-sandbox}/template/src/manifest.json +0 -0
- /package/{templates/typescript-with-document-sandbox → dist/templates/swc-typescript-with-document-sandbox}/template/src/models/DocumentSandboxApi.ts +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/src/sandbox/code.ts +0 -0
- /package/{templates/typescript-with-document-sandbox → dist/templates/swc-typescript-with-document-sandbox}/template/src/ui/components/App.css.ts +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/src/ui/components/App.ts +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/src/ui/index.ts +0 -0
- /package/{templates/typescript-with-document-sandbox → dist/templates/swc-typescript-with-document-sandbox}/template/src/ui/tsconfig.json +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/tsconfig.json +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/webpack.config.js +0 -0
- /package/dist/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template.json +0 -0
- /package/templates/{typescript → swc-typescript}/template/src/components/App.ts +0 -0
- /package/templates/{typescript → swc-typescript}/template/src/index.ts +0 -0
- /package/templates/{typescript → swc-typescript}/template/tsconfig.json +0 -0
- /package/templates/{typescript → swc-typescript}/template/webpack.config.js +0 -0
- /package/templates/{typescript → swc-typescript}/template.json +0 -0
- /package/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/gitignore +0 -0
- /package/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/src/sandbox/code.ts +0 -0
- /package/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/src/ui/components/App.ts +0 -0
- /package/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/src/ui/index.ts +0 -0
- /package/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/tsconfig.json +0 -0
- /package/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template/webpack.config.js +0 -0
- /package/templates/{typescript-with-document-sandbox → swc-typescript-with-document-sandbox}/template.json +0 -0
|
@@ -28,7 +28,6 @@ import "reflect-metadata";
|
|
|
28
28
|
* Implementation class of the create-ccweb-add-on command.
|
|
29
29
|
*/
|
|
30
30
|
export declare class CreateCCWebAddOn extends Command {
|
|
31
|
-
private readonly _accountService;
|
|
32
31
|
private readonly _analyticsConsent;
|
|
33
32
|
private readonly _analyticsService;
|
|
34
33
|
private readonly _addOnFactory;
|
|
@@ -37,7 +36,6 @@ export declare class CreateCCWebAddOn extends Command {
|
|
|
37
36
|
static flags: {
|
|
38
37
|
kind: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
39
38
|
template: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
40
|
-
login: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
41
39
|
analytics: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
42
40
|
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
43
41
|
};
|
|
@@ -49,7 +47,6 @@ export declare class CreateCCWebAddOn extends Command {
|
|
|
49
47
|
catch(error: {
|
|
50
48
|
message: string;
|
|
51
49
|
}): Promise<void>;
|
|
52
|
-
private _seekTermsOfUseConsent;
|
|
53
50
|
private _seekAnalyticsConsent;
|
|
54
51
|
}
|
|
55
52
|
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;kFAsBkF;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;kFAsBkF;AAMlF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AACnD,OAAO,kBAAkB,CAAC;AAO1B;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,OAAO;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,MAAM,CAAC,WAAW,SAAgD;IAElE,MAAM,CAAC,QAAQ,WAAiE;IAEhF,MAAM,CAAC,KAAK;;;;;MA0BV;IAEF,MAAM,CAAC,IAAI;;MAMT;gBAEU,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM;IAYpC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBpB,KAAK,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;YAKxB,qBAAqB;CAOtC"}
|
package/dist/commands/create.js
CHANGED
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
********************************************************************************/
|
|
24
24
|
import { CLIProgram, ITypes as IAnalyticsTypes } from "@adobe/ccweb-add-on-analytics";
|
|
25
25
|
import { UncaughtExceptionHandler } from "@adobe/ccweb-add-on-core";
|
|
26
|
-
import { ITypes as IDeveloperTermsTypes } from "@adobe/ccweb-add-on-developer-terms";
|
|
27
26
|
import { EntrypointType } from "@adobe/ccweb-add-on-manifest";
|
|
28
27
|
import { Args, Command, Flags } from "@oclif/core";
|
|
29
28
|
import "reflect-metadata";
|
|
@@ -35,7 +34,6 @@ import { CLIOptions } from "../models/CLIOptions.js";
|
|
|
35
34
|
* Implementation class of the create-ccweb-add-on command.
|
|
36
35
|
*/
|
|
37
36
|
export class CreateCCWebAddOn extends Command {
|
|
38
|
-
_accountService;
|
|
39
37
|
_analyticsConsent;
|
|
40
38
|
_analyticsService;
|
|
41
39
|
_addOnFactory;
|
|
@@ -55,12 +53,6 @@ export class CreateCCWebAddOn extends Command {
|
|
|
55
53
|
default: "",
|
|
56
54
|
required: false
|
|
57
55
|
}),
|
|
58
|
-
login: Flags.boolean({
|
|
59
|
-
char: "l",
|
|
60
|
-
description: "To force login",
|
|
61
|
-
required: false,
|
|
62
|
-
default: false
|
|
63
|
-
}),
|
|
64
56
|
analytics: Flags.string({
|
|
65
57
|
char: "a",
|
|
66
58
|
description: "Turn on/off sending analytics to Adobe.",
|
|
@@ -83,7 +75,6 @@ export class CreateCCWebAddOn extends Command {
|
|
|
83
75
|
};
|
|
84
76
|
constructor(argv, config) {
|
|
85
77
|
super(argv, config);
|
|
86
|
-
this._accountService = IContainer.get(IDeveloperTermsTypes.AccountService);
|
|
87
78
|
this._analyticsConsent = IContainer.get(IAnalyticsTypes.AnalyticsConsent);
|
|
88
79
|
this._analyticsService = IContainer.get(IAnalyticsTypes.AnalyticsService);
|
|
89
80
|
this._analyticsService.program = new CLIProgram(PROGRAM_NAME, this.config.name + "@" + this.config.version);
|
|
@@ -92,8 +83,7 @@ export class CreateCCWebAddOn extends Command {
|
|
|
92
83
|
}
|
|
93
84
|
async run() {
|
|
94
85
|
UncaughtExceptionHandler.registerExceptionHandler(PROGRAM_NAME);
|
|
95
|
-
const { args: { addOnName }, flags: { kind, template,
|
|
96
|
-
await this._seekTermsOfUseConsent(login, verbose);
|
|
86
|
+
const { args: { addOnName }, flags: { kind, template, analytics, verbose } } = await this.parse(CreateCCWebAddOn);
|
|
97
87
|
await this._seekAnalyticsConsent(analytics);
|
|
98
88
|
console.log();
|
|
99
89
|
const options = new CLIOptions(kind.toLowerCase(), addOnName, template.toLowerCase(), verbose);
|
|
@@ -103,12 +93,6 @@ export class CreateCCWebAddOn extends Command {
|
|
|
103
93
|
await this._analyticsService.postEvent(AnalyticsErrorMarkers.ERROR_INVALID_ARGS, error.message, false);
|
|
104
94
|
throw error;
|
|
105
95
|
}
|
|
106
|
-
async _seekTermsOfUseConsent(login, verbose) {
|
|
107
|
-
if (login) {
|
|
108
|
-
await this._accountService.invalidateToken(verbose);
|
|
109
|
-
}
|
|
110
|
-
await this._accountService.seekTermsOfUseConsent();
|
|
111
|
-
}
|
|
112
96
|
async _seekAnalyticsConsent(analytics) {
|
|
113
97
|
if (analytics === undefined) {
|
|
114
98
|
await this._analyticsConsent.get();
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;kFAsBkF;AAElF,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;kFAsBkF;AAElF,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD,eAAO,MAAM,gBAAgB,qBAM3B,CAAC;AAEH,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAE9C,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,eAAO,MAAM,0BAA0B,UAWtC,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
export const PROGRAM_NAME = "create-ccweb-add-on";
|
|
25
25
|
export const ADD_ON_TEMPLATES = new Map([
|
|
26
26
|
["javascript", "Get started with Add-on development using JavaScript"],
|
|
27
|
-
["
|
|
27
|
+
["swc-javascript", "Get started with Add-on development using using Spectrum Web Components and JavaScript"],
|
|
28
|
+
["swc-typescript", "Get started with Add-on development using using Spectrum Web Components and TypeScript"],
|
|
28
29
|
["react-javascript", "Get started with Add-on development using React and JavaScript"],
|
|
29
30
|
["react-typescript", "Get started with Add-on development using React and TypeScript"]
|
|
30
31
|
]);
|
|
@@ -32,11 +33,13 @@ export const TEMP_TEMPLATE_PATH = ".template";
|
|
|
32
33
|
export const WITH_DOCUMENT_SANDBOX = "with-document-sandbox";
|
|
33
34
|
export const AVAILABLE_ADD_ON_TEMPLATES = [
|
|
34
35
|
"javascript",
|
|
35
|
-
"
|
|
36
|
+
"swc-javascript",
|
|
37
|
+
"swc-typescript",
|
|
36
38
|
"react-javascript",
|
|
37
39
|
"react-typescript",
|
|
38
40
|
`javascript-${WITH_DOCUMENT_SANDBOX}`,
|
|
39
|
-
`
|
|
41
|
+
`swc-javascript-${WITH_DOCUMENT_SANDBOX}`,
|
|
42
|
+
`swc-typescript-${WITH_DOCUMENT_SANDBOX}`,
|
|
40
43
|
`react-javascript-${WITH_DOCUMENT_SANDBOX}`,
|
|
41
44
|
`react-typescript-${WITH_DOCUMENT_SANDBOX}`
|
|
42
45
|
];
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="description" content="Get started with Add-on development using React and
|
|
6
|
-
<meta name="keywords" content="Adobe, Express, Add-On, React,
|
|
5
|
+
<meta name="description" content="Get started with Add-on development using React and TypeScript" />
|
|
6
|
+
<meta name="keywords" content="Adobe, Express, Add-On, React, TypeScript" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
8
|
<title>Hello World</title>
|
|
9
9
|
</head>
|
package/dist/templates/{typescript-with-document-sandbox → swc-javascript}/template/README.md
RENAMED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
## About
|
|
2
2
|
|
|
3
|
-
This project has been created with _@adobe/create-ccweb-add-on_. As an example, this Add-on demonstrates how to get started with Add-on development using
|
|
3
|
+
This project has been created with _@adobe/create-ccweb-add-on_. As an example, this Add-on demonstrates how to get started with Add-on development using Spectrum Web Components and JavaScript.
|
|
4
4
|
|
|
5
5
|
## Tools
|
|
6
6
|
|
|
7
7
|
- HTML
|
|
8
8
|
- CSS
|
|
9
|
-
-
|
|
9
|
+
- Spectrum Web Components
|
|
10
|
+
- JavaScript
|
|
10
11
|
|
|
11
12
|
## Setup
|
|
12
13
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// To support: theme="express" scale="medium" color="light"
|
|
2
|
+
// import these spectrum web components modules:
|
|
3
|
+
import "@spectrum-web-components/theme/express/scale-medium.js";
|
|
4
|
+
import "@spectrum-web-components/theme/express/theme-light.js";
|
|
5
|
+
import "@spectrum-web-components/theme/scale-medium.js";
|
|
6
|
+
import "@spectrum-web-components/theme/theme-light.js";
|
|
7
|
+
|
|
8
|
+
// To learn more about using "spectrum web components" visit:
|
|
9
|
+
// https://opensource.adobe.com/spectrum-web-components/
|
|
10
|
+
import "@spectrum-web-components/button/sp-button.js";
|
|
11
|
+
import "@spectrum-web-components/theme/sp-theme.js";
|
|
12
|
+
|
|
13
|
+
import { LitElement, html } from "lit";
|
|
14
|
+
import { customElement, property, state } from "lit/decorators.js";
|
|
15
|
+
import { style } from "./App.css";
|
|
16
|
+
|
|
17
|
+
@customElement("add-on-app")
|
|
18
|
+
export class App extends LitElement {
|
|
19
|
+
@property({ type: Object })
|
|
20
|
+
addOnUISdk;
|
|
21
|
+
|
|
22
|
+
@state()
|
|
23
|
+
_buttonLabel = "Click me";
|
|
24
|
+
|
|
25
|
+
static get styles() {
|
|
26
|
+
return style;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
_handleClick() {
|
|
30
|
+
this._buttonLabel = "Clicked";
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
render() {
|
|
34
|
+
// Please note that the below "<sp-theme>" component does not react to theme changes in Express.
|
|
35
|
+
// You may use "this.addOnUISdk.app.ui.theme" to get the current theme and react accordingly.
|
|
36
|
+
return html` <sp-theme theme="express" color="light" scale="medium">
|
|
37
|
+
<div class="container">
|
|
38
|
+
<sp-button size="m" @click=${this._handleClick}>${this._buttonLabel}</sp-button>
|
|
39
|
+
</div>
|
|
40
|
+
</sp-theme>`;
|
|
41
|
+
}
|
|
42
|
+
}
|
package/dist/templates/{typescript-with-document-sandbox → swc-javascript}/template/src/index.html
RENAMED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta
|
|
6
6
|
name="description"
|
|
7
|
-
content="Get started with Add-on development using
|
|
7
|
+
content="Get started with Add-on development using Spectrum Web Components and JavaScript"
|
|
8
8
|
/>
|
|
9
|
-
<meta name="keywords" content="Adobe, Express, Add-On,
|
|
9
|
+
<meta name="keywords" content="Adobe, Express, Add-On, Spectrum Web Components, JavaScript" />
|
|
10
10
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
11
11
|
<title>Get Started</title>
|
|
12
12
|
</head>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LitElement, html } from "lit";
|
|
2
|
+
import { customElement, state } from "lit/decorators.js";
|
|
3
|
+
import { until } from "lit/directives/until.js";
|
|
4
|
+
import "./components/App";
|
|
5
|
+
|
|
6
|
+
import addOnUISdk from "https://new.express.adobe.com/static/add-on-sdk/sdk.js";
|
|
7
|
+
|
|
8
|
+
@customElement("add-on-root")
|
|
9
|
+
export class Root extends LitElement {
|
|
10
|
+
@state()
|
|
11
|
+
_isAddOnUISdkReady = addOnUISdk.ready;
|
|
12
|
+
|
|
13
|
+
render() {
|
|
14
|
+
return html`
|
|
15
|
+
${until(
|
|
16
|
+
this._isAddOnUISdkReady.then(() => {
|
|
17
|
+
console.log("addOnUISdk is ready for use.");
|
|
18
|
+
return html`<add-on-app .addOnUISdk=${addOnUISdk}></add-on-app>`;
|
|
19
|
+
})
|
|
20
|
+
)}
|
|
21
|
+
`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"allowJs": true,
|
|
4
|
+
"allowSyntheticDefaultImports": true,
|
|
5
|
+
"experimentalDecorators": true,
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"moduleResolution": "node",
|
|
8
|
+
"outDir": "dist",
|
|
9
|
+
"target": "ESNext",
|
|
10
|
+
"useDefineForClassFields": false
|
|
11
|
+
},
|
|
12
|
+
"exclude": ["node_modules"],
|
|
13
|
+
"include": ["src/**/*"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const path = require("path");
|
|
2
|
+
const HtmlWebpackPlugin = require("html-webpack-plugin");
|
|
3
|
+
const CopyWebpackPlugin = require("copy-webpack-plugin");
|
|
4
|
+
|
|
5
|
+
const isEnvProduction = process.env.NODE_ENV === "production";
|
|
6
|
+
|
|
7
|
+
module.exports = {
|
|
8
|
+
mode: isEnvProduction ? "production" : "development",
|
|
9
|
+
devtool: isEnvProduction ? "source-map" : "eval-source-map",
|
|
10
|
+
entry: "./src/index.js",
|
|
11
|
+
experiments: {
|
|
12
|
+
outputModule: true
|
|
13
|
+
},
|
|
14
|
+
output: {
|
|
15
|
+
path: path.resolve(__dirname, "dist"),
|
|
16
|
+
module: true,
|
|
17
|
+
filename: "index.js"
|
|
18
|
+
},
|
|
19
|
+
externalsType: "module",
|
|
20
|
+
externalsPresets: { web: true },
|
|
21
|
+
plugins: [
|
|
22
|
+
new HtmlWebpackPlugin({
|
|
23
|
+
template: "src/index.html",
|
|
24
|
+
scriptLoading: "module"
|
|
25
|
+
}),
|
|
26
|
+
new CopyWebpackPlugin({
|
|
27
|
+
patterns: [{ from: "src/*.json", to: "[name][ext]" }]
|
|
28
|
+
})
|
|
29
|
+
],
|
|
30
|
+
module: {
|
|
31
|
+
rules: [
|
|
32
|
+
{
|
|
33
|
+
test: /\.(js)$/,
|
|
34
|
+
exclude: /node_modules/,
|
|
35
|
+
use: ["babel-loader"]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
test: /(\.css)$/,
|
|
39
|
+
use: ["style-loader", "css-loader"]
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
resolve: {
|
|
44
|
+
extensions: [".js", ".css"]
|
|
45
|
+
}
|
|
46
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scripts": {
|
|
3
|
+
"clean": "ccweb-add-on-scripts clean",
|
|
4
|
+
"build": "ccweb-add-on-scripts build --use webpack",
|
|
5
|
+
"start": "ccweb-add-on-scripts start --use webpack",
|
|
6
|
+
"package": "ccweb-add-on-scripts package --use webpack"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"@spectrum-web-components/button": "0.39.4",
|
|
10
|
+
"@spectrum-web-components/theme": "0.39.4",
|
|
11
|
+
"lit": "2.8.0"
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@babel/plugin-proposal-decorators": "7.24.1",
|
|
15
|
+
"@babel/plugin-transform-class-properties": "7.24.1",
|
|
16
|
+
"babel-loader": "9.1.3",
|
|
17
|
+
"copy-webpack-plugin": "11.0.0",
|
|
18
|
+
"css-loader": "6.8.1",
|
|
19
|
+
"html-webpack-plugin": "5.5.3",
|
|
20
|
+
"style-loader": "3.3.3",
|
|
21
|
+
"webpack-cli": "5.1.4",
|
|
22
|
+
"webpack": "5.89.0"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
## About
|
|
2
|
+
|
|
3
|
+
This project has been created with _@adobe/create-ccweb-add-on_. As an example, this Add-on demonstrates how to get started with Add-on development using Spectrum Web Components and JavaScript with Document Sandbox Runtime.
|
|
4
|
+
|
|
5
|
+
## Tools
|
|
6
|
+
|
|
7
|
+
- HTML
|
|
8
|
+
- CSS
|
|
9
|
+
- Spectrum Web Components
|
|
10
|
+
- JavaScript
|
|
11
|
+
|
|
12
|
+
## Setup
|
|
13
|
+
|
|
14
|
+
1. To install the dependencies, run `npm install`.
|
|
15
|
+
2. To build the application, run `npm run build`.
|
|
16
|
+
3. To start the application, run `npm run start`.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta
|
|
6
|
+
name="description"
|
|
7
|
+
content="Get started with Add-on development using Spectrum Web Components and JavaScript with Document Sandbox Runtime"
|
|
8
|
+
/>
|
|
9
|
+
<meta
|
|
10
|
+
name="keywords"
|
|
11
|
+
content="Adobe, Express, Add-On, Spectrum Web Components, JavaScript, Document Sandbox Runtime"
|
|
12
|
+
/>
|
|
13
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
14
|
+
<title>Get Started</title>
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
<add-on-root></add-on-root>
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import addOnSandboxSdk from "add-on-sdk-document-sandbox";
|
|
2
|
+
import { editor } from "express-document-sdk";
|
|
3
|
+
|
|
4
|
+
// Get the document sandbox runtime.
|
|
5
|
+
const { runtime } = addOnSandboxSdk.instance;
|
|
6
|
+
|
|
7
|
+
function start() {
|
|
8
|
+
// APIs to be exposed to the UI runtime
|
|
9
|
+
// i.e., to the `App.js` file of this add-on.
|
|
10
|
+
const sandboxApi = {
|
|
11
|
+
createRectangle: () => {
|
|
12
|
+
const rectangle = editor.createRectangle();
|
|
13
|
+
|
|
14
|
+
// Define rectangle dimensions.
|
|
15
|
+
rectangle.width = 240;
|
|
16
|
+
rectangle.height = 180;
|
|
17
|
+
|
|
18
|
+
// Define rectangle position.
|
|
19
|
+
rectangle.translation = { x: 10, y: 10 };
|
|
20
|
+
|
|
21
|
+
// Define rectangle color.
|
|
22
|
+
const color = { red: 0.32, green: 0.34, blue: 0.89, alpha: 1 };
|
|
23
|
+
|
|
24
|
+
// Fill the rectangle with the color.
|
|
25
|
+
const rectangleFill = editor.makeColorFill(color);
|
|
26
|
+
rectangle.fill = rectangleFill;
|
|
27
|
+
|
|
28
|
+
// Add the rectangle to the document.
|
|
29
|
+
const insertionParent = editor.context.insertionParent;
|
|
30
|
+
insertionParent.children.append(rectangle);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// Expose `sandboxApi` to the UI runtime.
|
|
35
|
+
runtime.exposeApi(sandboxApi);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
start();
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// To support: theme="express" scale="medium" color="light"
|
|
2
|
+
// import these spectrum web components modules:
|
|
3
|
+
import "@spectrum-web-components/theme/express/scale-medium.js";
|
|
4
|
+
import "@spectrum-web-components/theme/express/theme-light.js";
|
|
5
|
+
import "@spectrum-web-components/theme/scale-medium.js";
|
|
6
|
+
import "@spectrum-web-components/theme/theme-light.js";
|
|
7
|
+
|
|
8
|
+
// To learn more about using "spectrum web components" visit:
|
|
9
|
+
// https://opensource.adobe.com/spectrum-web-components/
|
|
10
|
+
import "@spectrum-web-components/button/sp-button.js";
|
|
11
|
+
import "@spectrum-web-components/theme/sp-theme.js";
|
|
12
|
+
|
|
13
|
+
import { LitElement, html } from "lit";
|
|
14
|
+
import { customElement, property, state } from "lit/decorators.js";
|
|
15
|
+
import { style } from "./App.css";
|
|
16
|
+
|
|
17
|
+
import { RuntimeType } from "https://new.express.adobe.com/static/add-on-sdk/sdk.js";
|
|
18
|
+
|
|
19
|
+
@customElement("add-on-app")
|
|
20
|
+
export class App extends LitElement {
|
|
21
|
+
@property({ type: Object })
|
|
22
|
+
addOnUISdk;
|
|
23
|
+
|
|
24
|
+
@state()
|
|
25
|
+
_sandboxProxy;
|
|
26
|
+
|
|
27
|
+
static get styles() {
|
|
28
|
+
return style;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async firstUpdated() {
|
|
32
|
+
// Get the UI runtime.
|
|
33
|
+
const { runtime } = this.addOnUISdk.instance;
|
|
34
|
+
|
|
35
|
+
// Get the proxy object, which is required
|
|
36
|
+
// to call the APIs defined in the Document Sandbox runtime
|
|
37
|
+
// i.e., in the `code.ts` file of this add-on.
|
|
38
|
+
this._sandboxProxy = await runtime.apiProxy(RuntimeType.documentSandbox);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
_handleClick() {
|
|
42
|
+
this._sandboxProxy.createRectangle();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
render() {
|
|
46
|
+
// Please note that the below "<sp-theme>" component does not react to theme changes in Express.
|
|
47
|
+
// You may use "this.addOnUISdk.app.ui.theme" to get the current theme and react accordingly.
|
|
48
|
+
return html` <sp-theme theme="express" color="light" scale="medium">
|
|
49
|
+
<div class="container">
|
|
50
|
+
<sp-button size="m" @click=${this._handleClick}>Create Rectangle</sp-button>
|
|
51
|
+
</div>
|
|
52
|
+
</sp-theme>`;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LitElement, html } from "lit";
|
|
2
|
+
import { customElement, state } from "lit/decorators.js";
|
|
3
|
+
import { until } from "lit/directives/until.js";
|
|
4
|
+
import "./components/App";
|
|
5
|
+
|
|
6
|
+
import addOnUISdk from "https://new.express.adobe.com/static/add-on-sdk/sdk.js";
|
|
7
|
+
|
|
8
|
+
@customElement("add-on-root")
|
|
9
|
+
export class Root extends LitElement {
|
|
10
|
+
@state()
|
|
11
|
+
_isAddOnUISdkReady = addOnUISdk.ready;
|
|
12
|
+
|
|
13
|
+
render() {
|
|
14
|
+
return html`
|
|
15
|
+
${until(
|
|
16
|
+
this._isAddOnUISdkReady.then(async () => {
|
|
17
|
+
console.log("addOnUISdk is ready for use.");
|
|
18
|
+
return html`<add-on-app .addOnUISdk=${addOnUISdk}></add-on-app>`;
|
|
19
|
+
})
|
|
20
|
+
)}
|
|
21
|
+
`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"allowJs": true,
|
|
4
|
+
"allowSyntheticDefaultImports": true,
|
|
5
|
+
"experimentalDecorators": true,
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"moduleResolution": "node",
|
|
8
|
+
"outDir": "dist",
|
|
9
|
+
"target": "ESNext",
|
|
10
|
+
"useDefineForClassFields": false
|
|
11
|
+
},
|
|
12
|
+
"exclude": ["node_modules"],
|
|
13
|
+
"include": ["src/**/*"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const path = require("path");
|
|
2
|
+
const HtmlWebpackPlugin = require("html-webpack-plugin");
|
|
3
|
+
const CopyWebpackPlugin = require("copy-webpack-plugin");
|
|
4
|
+
|
|
5
|
+
const isEnvProduction = process.env.NODE_ENV === "production";
|
|
6
|
+
|
|
7
|
+
module.exports = {
|
|
8
|
+
mode: isEnvProduction ? "production" : "development",
|
|
9
|
+
devtool: "source-map",
|
|
10
|
+
entry: {
|
|
11
|
+
index: "./src/ui/index.js",
|
|
12
|
+
code: "./src/sandbox/code.js"
|
|
13
|
+
},
|
|
14
|
+
experiments: {
|
|
15
|
+
outputModule: true
|
|
16
|
+
},
|
|
17
|
+
output: {
|
|
18
|
+
path: path.resolve(__dirname, "dist"),
|
|
19
|
+
module: true,
|
|
20
|
+
filename: "[name].js"
|
|
21
|
+
},
|
|
22
|
+
externalsType: "module",
|
|
23
|
+
externalsPresets: { web: true },
|
|
24
|
+
externals: {
|
|
25
|
+
"add-on-sdk-document-sandbox": "add-on-sdk-document-sandbox",
|
|
26
|
+
"express-document-sdk": "express-document-sdk"
|
|
27
|
+
},
|
|
28
|
+
plugins: [
|
|
29
|
+
new HtmlWebpackPlugin({
|
|
30
|
+
template: "src/index.html",
|
|
31
|
+
scriptLoading: "module",
|
|
32
|
+
excludeChunks: ["code"]
|
|
33
|
+
}),
|
|
34
|
+
new CopyWebpackPlugin({
|
|
35
|
+
patterns: [{ from: "src/*.json", to: "[name][ext]" }]
|
|
36
|
+
})
|
|
37
|
+
],
|
|
38
|
+
module: {
|
|
39
|
+
rules: [
|
|
40
|
+
{
|
|
41
|
+
test: /\.(js)$/,
|
|
42
|
+
use: ["babel-loader"],
|
|
43
|
+
exclude: /node_modules/
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
test: /(\.css)$/,
|
|
47
|
+
use: ["style-loader", "css-loader"]
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
resolve: {
|
|
52
|
+
extensions: [".js", ".css"]
|
|
53
|
+
}
|
|
54
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scripts": {
|
|
3
|
+
"clean": "ccweb-add-on-scripts clean",
|
|
4
|
+
"build": "ccweb-add-on-scripts build --use webpack",
|
|
5
|
+
"start": "ccweb-add-on-scripts start --use webpack",
|
|
6
|
+
"package": "ccweb-add-on-scripts package --use webpack"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"@spectrum-web-components/button": "0.39.4",
|
|
10
|
+
"@spectrum-web-components/theme": "0.39.4",
|
|
11
|
+
"lit": "2.8.0"
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@babel/plugin-proposal-decorators": "7.24.1",
|
|
15
|
+
"@babel/plugin-transform-class-properties": "7.24.1",
|
|
16
|
+
"babel-loader": "9.1.3",
|
|
17
|
+
"copy-webpack-plugin": "11.0.0",
|
|
18
|
+
"css-loader": "6.8.1",
|
|
19
|
+
"html-webpack-plugin": "5.5.3",
|
|
20
|
+
"style-loader": "3.3.3",
|
|
21
|
+
"webpack-cli": "5.1.4",
|
|
22
|
+
"webpack": "5.89.0"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
## About
|
|
2
2
|
|
|
3
|
-
This project has been created with _@adobe/create-ccweb-add-on_. As an example, this Add-on demonstrates how to get started with Add-on development using
|
|
3
|
+
This project has been created with _@adobe/create-ccweb-add-on_. As an example, this Add-on demonstrates how to get started with Add-on development using Spectrum Web Components and TypeScript.
|
|
4
4
|
|
|
5
5
|
## Tools
|
|
6
6
|
|
|
7
7
|
- HTML
|
|
8
8
|
- CSS
|
|
9
|
+
- Spectrum Web Components
|
|
9
10
|
- TypeScript
|
|
10
11
|
|
|
11
12
|
## Setup
|