@ui5/create-webcomponents-package 0.0.0-cb061e041 → 0.0.0-cddf8ba1c

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/CHANGELOG.md CHANGED
@@ -3,6 +3,372 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.21.0](https://github.com/SAP/ui5-webcomponents/compare/v1.21.0-rc.5...v1.21.0) (2024-01-05)
7
+
8
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
9
+
10
+
11
+
12
+
13
+
14
+ # [1.21.0-rc.5](https://github.com/SAP/ui5-webcomponents/compare/v1.21.0-rc.4...v1.21.0-rc.5) (2024-01-04)
15
+
16
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
17
+
18
+
19
+
20
+
21
+
22
+ # [1.21.0-rc.4](https://github.com/SAP/ui5-webcomponents/compare/v1.21.0-rc.3...v1.21.0-rc.4) (2023-12-28)
23
+
24
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
25
+
26
+
27
+
28
+
29
+
30
+ # [1.21.0-rc.3](https://github.com/SAP/ui5-webcomponents/compare/v1.21.0-rc.2...v1.21.0-rc.3) (2023-12-21)
31
+
32
+
33
+ ### Features
34
+
35
+ * **tools:** Optimize build by switching css processing to esbuild ([#8008](https://github.com/SAP/ui5-webcomponents/issues/8008)) ([b4d411f](https://github.com/SAP/ui5-webcomponents/commit/b4d411f00f8d74ccecb2d02254126243faf53dfd))
36
+
37
+
38
+
39
+
40
+
41
+ # [1.21.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v1.21.0-rc.1...v1.21.0-rc.2) (2023-12-14)
42
+
43
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
44
+
45
+
46
+
47
+
48
+
49
+ # [1.21.0-rc.1](https://github.com/SAP/ui5-webcomponents/compare/v1.21.0-rc.0...v1.21.0-rc.1) (2023-12-08)
50
+
51
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
52
+
53
+
54
+
55
+
56
+
57
+ # [1.21.0-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v1.20.0...v1.21.0-rc.0) (2023-12-07)
58
+
59
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
60
+
61
+
62
+
63
+
64
+
65
+ # [1.20.0](https://github.com/SAP/ui5-webcomponents/compare/v1.20.0-rc.3...v1.20.0) (2023-12-04)
66
+
67
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
68
+
69
+
70
+
71
+
72
+
73
+ # [1.20.0-rc.3](https://github.com/SAP/ui5-webcomponents/compare/v1.20.0-rc.2...v1.20.0-rc.3) (2023-11-30)
74
+
75
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
76
+
77
+
78
+
79
+
80
+
81
+ # [1.20.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v1.20.0-rc.1...v1.20.0-rc.2) (2023-11-23)
82
+
83
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
84
+
85
+
86
+
87
+
88
+
89
+ # [1.20.0-rc.1](https://github.com/SAP/ui5-webcomponents/compare/v1.20.0-rc.0...v1.20.0-rc.1) (2023-11-16)
90
+
91
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
92
+
93
+
94
+
95
+
96
+
97
+ # [1.20.0-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v1.19.0...v1.20.0-rc.0) (2023-11-09)
98
+
99
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
100
+
101
+
102
+
103
+
104
+
105
+ # [1.19.0](https://github.com/SAP/ui5-webcomponents/compare/v1.19.0-rc.3...v1.19.0) (2023-11-02)
106
+
107
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
108
+
109
+
110
+
111
+
112
+
113
+ # [1.19.0-rc.3](https://github.com/SAP/ui5-webcomponents/compare/v1.19.0-rc.2...v1.19.0-rc.3) (2023-11-02)
114
+
115
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
116
+
117
+
118
+
119
+
120
+
121
+ # [1.19.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v1.19.0-rc.1...v1.19.0-rc.2) (2023-10-26)
122
+
123
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
124
+
125
+
126
+
127
+
128
+
129
+ # [1.19.0-rc.1](https://github.com/SAP/ui5-webcomponents/compare/v1.19.0-rc.0...v1.19.0-rc.1) (2023-10-19)
130
+
131
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
132
+
133
+
134
+
135
+
136
+
137
+ # [1.19.0-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v1.18.1-rc.0...v1.19.0-rc.0) (2023-10-12)
138
+
139
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
140
+
141
+
142
+
143
+
144
+
145
+ ## [1.18.1-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v1.18.0...v1.18.1-rc.0) (2023-10-05)
146
+
147
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
148
+
149
+
150
+
151
+
152
+
153
+ # [1.18.0](https://github.com/SAP/ui5-webcomponents/compare/v1.18.0-rc.2...v1.18.0) (2023-10-02)
154
+
155
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
156
+
157
+
158
+
159
+
160
+
161
+ # [1.18.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v1.18.0-rc.1...v1.18.0-rc.2) (2023-09-28)
162
+
163
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
164
+
165
+
166
+
167
+
168
+
169
+ # [1.18.0-rc.1](https://github.com/SAP/ui5-webcomponents/compare/v1.18.0-rc.0...v1.18.0-rc.1) (2023-09-21)
170
+
171
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
172
+
173
+
174
+
175
+
176
+
177
+ # [1.18.0-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v1.17.0...v1.18.0-rc.0) (2023-09-07)
178
+
179
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
180
+
181
+
182
+
183
+
184
+
185
+ # [1.17.0](https://github.com/SAP/ui5-webcomponents/compare/v1.17.0-rc.2...v1.17.0) (2023-09-01)
186
+
187
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
188
+
189
+
190
+
191
+
192
+
193
+ # [1.17.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v1.17.0-rc.1...v1.17.0-rc.2) (2023-08-24)
194
+
195
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
196
+
197
+
198
+
199
+
200
+
201
+ # [1.17.0-rc.1](https://github.com/SAP/ui5-webcomponents/compare/v1.17.0-rc.0...v1.17.0-rc.1) (2023-08-17)
202
+
203
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
204
+
205
+
206
+
207
+
208
+
209
+ # [1.17.0-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v1.16.0...v1.17.0-rc.0) (2023-08-10)
210
+
211
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
212
+
213
+
214
+
215
+
216
+
217
+ # [1.16.0](https://github.com/SAP/ui5-webcomponents/compare/v1.16.0-rc.4...v1.16.0) (2023-08-03)
218
+
219
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
220
+
221
+
222
+
223
+
224
+
225
+ # [1.16.0-rc.4](https://github.com/SAP/ui5-webcomponents/compare/v1.16.0-rc.3...v1.16.0-rc.4) (2023-08-03)
226
+
227
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
228
+
229
+
230
+
231
+
232
+
233
+ # [1.16.0-rc.3](https://github.com/SAP/ui5-webcomponents/compare/v1.16.0-rc.2...v1.16.0-rc.3) (2023-07-27)
234
+
235
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
236
+
237
+
238
+
239
+
240
+
241
+ # [1.16.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v1.16.0-rc.1...v1.16.0-rc.2) (2023-07-20)
242
+
243
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
244
+
245
+
246
+
247
+
248
+
249
+ # [1.16.0-rc.1](https://github.com/SAP/ui5-webcomponents/compare/v1.16.0-rc.0...v1.16.0-rc.1) (2023-07-13)
250
+
251
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
252
+
253
+
254
+
255
+
256
+
257
+ # [1.16.0-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v1.15.1...v1.16.0-rc.0) (2023-07-06)
258
+
259
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
260
+
261
+
262
+
263
+
264
+
265
+ ## [1.15.1](https://github.com/SAP/ui5-webcomponents/compare/v1.15.0...v1.15.1) (2023-06-30)
266
+
267
+
268
+ ### Bug Fixes
269
+
270
+ * **framework:** fix links in starting page of new pkg [ci skip] ([475fed5](https://github.com/SAP/ui5-webcomponents/commit/475fed55504f4a15e8b26aaf3c9e4d73b55976ec))
271
+
272
+
273
+
274
+
275
+
276
+ # [1.15.0](https://github.com/SAP/ui5-webcomponents/compare/v1.15.0-rc.2...v1.15.0) (2023-06-30)
277
+
278
+
279
+ ### Bug Fixes
280
+
281
+ * fix image in `create-webcomponent-package` ([#7253](https://github.com/SAP/ui5-webcomponents/issues/7253)) ([3317e64](https://github.com/SAP/ui5-webcomponents/commit/3317e64b911f992abf34b88a48e6003a723f7b9e))
282
+
283
+
284
+
285
+
286
+
287
+ # [1.15.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v1.15.0-rc.1...v1.15.0-rc.2) (2023-06-22)
288
+
289
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
290
+
291
+
292
+
293
+
294
+
295
+ # [1.15.0-rc.1](https://github.com/SAP/ui5-webcomponents/compare/v1.15.0-rc.0...v1.15.0-rc.1) (2023-06-15)
296
+
297
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+ # [1.15.0-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v1.14.0...v1.15.0-rc.0) (2023-06-08)
308
+
309
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
310
+
311
+
312
+
313
+
314
+
315
+ # [1.14.0](https://github.com/SAP/ui5-webcomponents/compare/v1.14.0-rc.2...v1.14.0) (2023-06-01)
316
+
317
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
318
+
319
+
320
+
321
+
322
+
323
+ # [1.14.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v1.14.0-rc.1...v1.14.0-rc.2) (2023-06-01)
324
+
325
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
326
+
327
+
328
+
329
+
330
+
331
+ # [1.14.0-rc.1](https://github.com/SAP/ui5-webcomponents/compare/v1.14.0-rc.0...v1.14.0-rc.1) (2023-05-25)
332
+
333
+ **Note:** Version bump only for package @ui5/create-webcomponents-package
334
+
335
+
336
+
337
+
338
+
339
+ # [1.14.0-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v1.13.2...v1.14.0-rc.0) (2023-05-18)
340
+
341
+
342
+ ### Features
343
+
344
+ * users can provide a JSDoc namespeace when creating a package ([#7034](https://github.com/SAP/ui5-webcomponents/issues/7034)) ([0af8d23](https://github.com/SAP/ui5-webcomponents/commit/0af8d2376e25e5abe6d940c72286ab7c682eea56))
345
+
346
+
347
+
348
+
349
+
350
+ ## [1.13.1](https://github.com/SAP/ui5-webcomponents/compare/v1.13.0-rc.5...v1.13.1) (2023-05-11)
351
+
352
+
353
+ ### Bug Fixes
354
+
355
+ * **create-package:** revert `moduleResolution` setting to `node` ([#7020](https://github.com/SAP/ui5-webcomponents/issues/7020)) ([9fc84e2](https://github.com/SAP/ui5-webcomponents/commit/9fc84e288452616ee72f3a2b6fc31d9752f05f6f))
356
+
357
+
358
+
359
+
360
+
361
+ # [1.13.0-rc.5](https://github.com/SAP/ui5-webcomponents/compare/v1.13.0-rc.4...v1.13.0-rc.5) (2023-05-11)
362
+
363
+
364
+ ### Bug Fixes
365
+
366
+ * **create-webcomponents-package:** fix package creation issues with test and lint ([#6976](https://github.com/SAP/ui5-webcomponents/issues/6976)) ([dd70f3a](https://github.com/SAP/ui5-webcomponents/commit/dd70f3aa8ef70b592f1d4e0f3f9894c6280fb1bf))
367
+
368
+
369
+
370
+
371
+
6
372
  # [1.13.0-rc.4](https://github.com/SAP/ui5-webcomponents/compare/v1.13.0-rc.3...v1.13.0-rc.4) (2023-05-04)
7
373
 
8
374
 
package/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  ![UI5 icon](https://raw.githubusercontent.com/SAP/ui5-webcomponents/main/docs/images/UI5_logo_wide.png)
2
2
 
3
+
3
4
  # UI5 Web Components - Create Package
4
5
 
5
6
  [![npm Package Version](https://badge.fury.io/js/%40ui5%2Fwebcomponents.svg)](https://www.npmjs.com/package/@ui5/webcomponents)
@@ -18,8 +19,8 @@ Usage:
18
19
 
19
20
  Options:
20
21
  --name <string> - defines the package name
21
- --componentName <string> - defines the component class name that will be created in your new package
22
- --tag <string> - defines the tag name of the sample web component that will be created in your new package. The tag will be derived from the component name if not provided.
22
+ --component-name <string> - defines the component class name that will be created in your new package
23
+ --tag <string> - defines the tag name of the sample web component that will be created in your new package. The tag will be derived from the component name if not provided.
23
24
  --enable-typescript - enables TypeScript support for the package
24
25
  --skip - skips configuration and generates package with a default value for each parameter that wasn't passed
25
26
  ```
@@ -34,6 +35,7 @@ Usage:
34
35
  yarn create @ui5/webcomponents-package [OPTIONS]
35
36
  Options:
36
37
  --name <string> - defines the package name
38
+ --component-name <string> - defines the component class name that will be created in your new package
37
39
  --tag <string> - defines the tag name of the sample web component that will be created in your new package
38
40
  --enable-typescript - enables TypeScript support for the package
39
41
  --skip - skips configuration and generates package with a default value for each parameter that wasn't passed
@@ -48,7 +50,7 @@ components package.
48
50
  - [UI5 Web Components - Playground and API Reference](https://sap.github.io/ui5-webcomponents/playground/)
49
51
 
50
52
  ## Support
51
- We welcome all comments, suggestions, questions, and bug reports. Please follow our [Support Guidelines](https://github.com/SAP/ui5-webcomponents/blob/main/SUPPORT.md#-content) on how to report an issue, or chat with us in the `#webcomponents` channel of the [OpenUI5 Community Slack](https://join-ui5-slack.herokuapp.com/).
53
+ We welcome all comments, suggestions, questions, and bug reports. Please follow our [Support Guidelines](https://github.com/SAP/ui5-webcomponents/blob/main/SUPPORT.md#-content) on how to report an issue, or chat with us in the `#webcomponents` channel of the [OpenUI5 Community Slack](https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com/).
52
54
 
53
55
  ## Contribute
54
56
  Please check our [Contribution Guidelines](https://github.com/SAP/ui5-webcomponents/blob/main/docs/6-contributing/02-conventions-and-guidelines.md).
package/create-package.js CHANGED
@@ -16,13 +16,6 @@ const version = JSON.parse(fs.readFileSync(path.join(__dirname, "package.json"))
16
16
  const TEMPLATE_DIR = path.join(`${__dirname}`, `template/`);
17
17
 
18
18
  // String utils
19
- const capitalizeFirst = str => str.substr(0,1).toUpperCase() + str.substr(1);
20
- const kebabToCamelCase = string => toCamelCase(string.split("-"));
21
- const toCamelCase = parts => {
22
- return parts.map((string, index) => {
23
- return index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
24
- }).join("");
25
- };
26
19
  const isTSRelatedFile = sourcePath => {
27
20
  return ["Assets.ts", "MyFirstComponent.ts", "tsconfig.json", "global.d.ts"].some(fileName => sourcePath.includes(fileName));
28
21
  };
@@ -32,14 +25,19 @@ const isJSRelatedFile = sourcePath => {
32
25
  const isGitIgnore = sourcePath => {
33
26
  return sourcePath.includes("gitignore");
34
27
  };
28
+ const isLogo = sourcePath => {
29
+ return sourcePath.includes("logo");
30
+ };
35
31
  const isNPMRC = sourcePath => {
36
32
  return sourcePath.includes("npmrc");
37
33
  };
38
34
 
39
35
  // Validation of user input
40
36
  const ComponentNamePattern = /^[A-Z][A-Za-z0-9]+$/;
41
- const isNameValid = name => typeof name === "string" && name.match(/^[a-zA-Z][a-zA-Z0-9\-_]+$/);
37
+ const NamespacePattern = /^[a-z][a-z0-9\.\-]+$/;
38
+ const isPackageNameValid = name => typeof name === "string" && name.match(/^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/);
42
39
  const isComponentNameValid = name => typeof name === "string" && ComponentNamePattern.test(name);
40
+ const isNamespaceValid = name => typeof name === "string" && NamespacePattern.test(name);
43
41
  const isTagValid = tag => typeof tag === "string" && tag.match(/^[a-z0-9]+?-[a-zA-Z0-9\-_]+?[a-z0-9]$/);
44
42
 
45
43
  /**
@@ -74,6 +72,11 @@ const copyFile = (vars, sourcePath, destPath) => {
74
72
  return;
75
73
  }
76
74
 
75
+ if (isLogo(sourcePath)) {
76
+ fs.copyFileSync(sourcePath, destPath);
77
+ return;
78
+ }
79
+
77
80
  let content = fs.readFileSync(sourcePath, { encoding: "UTF-8" });
78
81
  content = replaceVarsInFileContent(vars, content);
79
82
  destPath = replaceVarsInFileName(vars, destPath);
@@ -105,19 +108,20 @@ const copyFiles = (vars, sourcePath, destPath) => {
105
108
  }
106
109
  };
107
110
 
108
- const generateFilesContent = (name, componentName, typescript, skipSubfolder) => {
111
+ const generateFilesContent = (packageName, componentName, namespace, typescript, skipSubfolder) => {
109
112
  const tagName = argv.tag || hyphaneteComponentName(componentName);
110
113
 
111
114
  // All variables that will be replaced in the content of the resources/
112
115
  const vars = {
113
- INIT_PACKAGE_VAR_NAME: name,
116
+ INIT_PACKAGE_VAR_NAMESPACE: namespace, // namespace must be replaced before name
117
+ INIT_PACKAGE_VAR_NAME: packageName,
114
118
  INIT_PACKAGE_VAR_TAG: tagName,
115
119
  INIT_PACKAGE_VAR_CLASS_NAME: componentName,
116
120
  INIT_PACKAGE_VAR_TYPESCRIPT: typescript,
117
121
  };
118
122
 
119
123
  const packageContent = {
120
- name,
124
+ name: packageName,
121
125
  version: "0.0.1",
122
126
  ui5: {
123
127
  webComponentsPackage: true,
@@ -154,14 +158,16 @@ const generateFilesContent = (name, componentName, typescript, skipSubfolder) =>
154
158
  }
155
159
 
156
160
  // Update package.json
157
- const destDir = skipSubfolder ? path.join("./") : path.join("./", name);
161
+ let destDir = packageName.includes("@") ? packageName.slice(packageName.lastIndexOf("/") + 1) : packageName;
162
+
163
+ destDir = skipSubfolder ? path.join("./") : path.join("./", destDir);
158
164
  mkdirp.sync(destDir);
159
165
  fs.writeFileSync(path.join(destDir, "package.json"), JSON.stringify(packageContent, null, 2));
160
166
  // Copy files
161
167
  copyFiles(vars, TEMPLATE_DIR, destDir);
162
168
 
163
169
  console.log("\nPackage successfully created!\nNext steps:\n");
164
- console.log(`$ cd ${name}`);
170
+ console.log(`$ cd ${destDir}`);
165
171
 
166
172
  let userAgentInfo;
167
173
  try {
@@ -182,7 +188,7 @@ const generateFilesContent = (name, componentName, typescript, skipSubfolder) =>
182
188
  // Main function
183
189
  const createWebcomponentsPackage = async () => {
184
190
  let response;
185
- if (argv.name && !isNameValid(argv.name)) {
191
+ if (argv.name && !isPackageNameValid(argv.name)) {
186
192
  throw new Error("The package name should be a string, starting with letter and containing the following symbols [a-z, A-Z, 0-9].");
187
193
  }
188
194
 
@@ -190,17 +196,22 @@ const createWebcomponentsPackage = async () => {
190
196
  throw new Error("The component name should be a string, starting with a capital letter [A-Z][a-z], for example: Button, MyButton, etc.");
191
197
  }
192
198
 
199
+ if (argv.namespace && !isNamespaceValid(argv.namespace)) {
200
+ throw new Error("The JSDoc namespace must start with a letter and can only contain small-case letters, numbers, dots and dashes.");
201
+ }
202
+
193
203
  if (argv.tag && !isTagValid(argv.tag) ) {
194
204
  throw new Error("The tag should be in kebab-case (f.e my-component) and it can't be a single word.");
195
205
  }
196
206
 
197
- let name = argv.name || "my-package";
207
+ let packageName = argv.name || "my-package";
198
208
  let componentName = argv.componentName || "MyComponent";
209
+ let namespace = argv.namespace || "demo.components";
199
210
  let typescriptSupport = !!argv.enableTypescript;
200
211
  const skipSubfolder = !!argv.skipSubfolder;
201
212
 
202
213
  if (argv.skip) {
203
- return generateFilesContent(name, componentName, typescriptSupport, skipSubfolder);
214
+ return generateFilesContent(packageName, componentName, namespace, typescriptSupport, skipSubfolder);
204
215
  }
205
216
 
206
217
  if (!argv.name) {
@@ -208,9 +219,9 @@ const createWebcomponentsPackage = async () => {
208
219
  type: "text",
209
220
  name: "name",
210
221
  message: "Package name:",
211
- validate: (value) => isNameValid(value) ? true : "Package name should be a string, starting with a letter and containing the following symbols [a-z, A-Z ,0-9, _, -].",
222
+ validate: (value) => isPackageNameValid(value) ? true : "Package name should be a string, starting with a letter and containing the following symbols [a-z, A-Z ,0-9, _, -].",
212
223
  });
213
- name = response.name;
224
+ packageName = response.name;
214
225
  }
215
226
 
216
227
  if (!typescriptSupport) {
@@ -243,7 +254,18 @@ const createWebcomponentsPackage = async () => {
243
254
  componentName = response.componentName;
244
255
  }
245
256
 
246
- return generateFilesContent(name, componentName, typescriptSupport, skipSubfolder);
257
+ if (!argv.namespace) {
258
+ response = await prompts({
259
+ type: "text",
260
+ name: "namespace",
261
+ message: "JSDoc namespace:",
262
+ initial: "demo.components",
263
+ validate: (value) => isNamespaceValid(value) ? true : "The JSDoc namespace must start with a letter and can only contain small-case letters, numbers, dots and dashes.",
264
+ });
265
+ namespace = response.namespace;
266
+ }
267
+
268
+ return generateFilesContent(packageName, componentName, namespace, typescriptSupport, skipSubfolder);
247
269
  };
248
270
 
249
271
  createWebcomponentsPackage();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/create-webcomponents-package",
3
- "version": "0.0.0-cb061e041",
3
+ "version": "0.0.0-cddf8ba1c",
4
4
  "description": "UI5 Web Components: create package",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -1 +1 @@
1
- <div>This is: INIT_PACKAGE_VAR_TAG. {{pleaseWaitText}}</div>
1
+ <div @click="{{onClick}}">{{counterText}} :: {{count}}</div>
@@ -1,6 +1,7 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
3
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
4
5
 
5
6
  // Template
6
7
  import INIT_PACKAGE_VAR_CLASS_NAMETemplate from "./generated/templates/INIT_PACKAGE_VAR_CLASS_NAMETemplate.lit.js";
@@ -8,14 +9,24 @@ import INIT_PACKAGE_VAR_CLASS_NAMETemplate from "./generated/templates/INIT_PACK
8
9
  // Styles
9
10
  import INIT_PACKAGE_VAR_CLASS_NAMECss from "./generated/themes/INIT_PACKAGE_VAR_CLASS_NAME.css.js";
10
11
 
11
- import { PLEASE_WAIT } from "./generated/i18n/i18n-defaults.js";
12
+ import { COUNT } from "./generated/i18n/i18n-defaults.js";
12
13
 
13
14
  /**
14
15
  * @public
15
16
  */
16
17
  const metadata = {
17
18
  tag: "INIT_PACKAGE_VAR_TAG",
18
- properties: {
19
+ properties: /** @lends INIT_PACKAGE_VAR_NAMESPACE.INIT_PACKAGE_VAR_CLASS_NAME.prototype */ {
20
+ /**
21
+ * Defines the count of the component.
22
+ * @type { sap.ui.webc.base.types.Integer }
23
+ * @defaultvalue 0
24
+ * @public
25
+ */
26
+ count: {
27
+ type: Integer,
28
+ defaultValue: 0,
29
+ },
19
30
  },
20
31
  slots: {
21
32
  },
@@ -31,7 +42,7 @@ const metadata = {
31
42
  * The <code>INIT_PACKAGE_VAR_TAG</code> component is a demo component that displays some text.
32
43
  *
33
44
  * @constructor
34
- * @alias demo.components.INIT_PACKAGE_VAR_CLASS_NAME
45
+ * @alias INIT_PACKAGE_VAR_NAMESPACE.INIT_PACKAGE_VAR_CLASS_NAME
35
46
  * @extends sap.ui.webc.base.UI5Element
36
47
  * @tagname INIT_PACKAGE_VAR_TAG
37
48
  * @public
@@ -57,8 +68,12 @@ class INIT_PACKAGE_VAR_CLASS_NAME extends UI5Element {
57
68
  INIT_PACKAGE_VAR_CLASS_NAME.i18nBundle = await getI18nBundle("INIT_PACKAGE_VAR_NAME");
58
69
  }
59
70
 
60
- get pleaseWaitText() {
61
- return INIT_PACKAGE_VAR_CLASS_NAME.i18nBundle.getText(PLEASE_WAIT);
71
+ onClick() {
72
+ this.count++;
73
+ }
74
+
75
+ get counterText() {
76
+ return INIT_PACKAGE_VAR_CLASS_NAME.i18nBundle.getText(COUNT);
62
77
  }
63
78
  }
64
79
 
@@ -1,8 +1,10 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
4
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
4
5
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
5
6
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
7
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
6
8
 
7
9
  // Template
8
10
  import INIT_PACKAGE_VAR_CLASS_NAMETemplate from "./generated/templates/INIT_PACKAGE_VAR_CLASS_NAMETemplate.lit.js";
@@ -10,7 +12,7 @@ import INIT_PACKAGE_VAR_CLASS_NAMETemplate from "./generated/templates/INIT_PACK
10
12
  // Styles
11
13
  import INIT_PACKAGE_VAR_CLASS_NAMECss from "./generated/themes/INIT_PACKAGE_VAR_CLASS_NAME.css.js";
12
14
 
13
- import { PLEASE_WAIT } from "./generated/i18n/i18n-defaults.js";
15
+ import { COUNT } from "./generated/i18n/i18n-defaults.js";
14
16
 
15
17
  /**
16
18
  * @class
@@ -20,7 +22,7 @@ import { PLEASE_WAIT } from "./generated/i18n/i18n-defaults.js";
20
22
  * The <code>INIT_PACKAGE_VAR_TAG</code> component is a demo component that displays some text.
21
23
  *
22
24
  * @constructor
23
- * @alias demo.components.INIT_PACKAGE_VAR_CLASS_NAME
25
+ * @alias INIT_PACKAGE_VAR_NAMESPACE.INIT_PACKAGE_VAR_CLASS_NAME
24
26
  * @extends sap.ui.webc.base.UI5Element
25
27
  * @tagname INIT_PACKAGE_VAR_TAG
26
28
  * @public
@@ -38,8 +40,21 @@ class INIT_PACKAGE_VAR_CLASS_NAME extends UI5Element {
38
40
  INIT_PACKAGE_VAR_CLASS_NAME.i18nBundle = await getI18nBundle("INIT_PACKAGE_VAR_NAME");
39
41
  }
40
42
 
41
- get pleaseWaitText() {
42
- return INIT_PACKAGE_VAR_CLASS_NAME.i18nBundle.getText(PLEASE_WAIT);
43
+ /**
44
+ * Defines the component count.
45
+ * @name INIT_PACKAGE_VAR_NAMESPACE.INIT_PACKAGE_VAR_CLASS_NAME.prototype.count
46
+ * @public
47
+ * @type { sap.ui.webc.base.types.Integer }
48
+ */
49
+ @property({ validator: Integer, defaultValue: 0 })
50
+ count!: number;
51
+
52
+ onClick() {
53
+ this.count++;
54
+ }
55
+
56
+ get counterText() {
57
+ return INIT_PACKAGE_VAR_CLASS_NAME.i18nBundle.getText(COUNT);
43
58
  }
44
59
  }
45
60
 
@@ -1,2 +1,3 @@
1
- #please wait text for the sample component
2
- PLEASE_WAIT=wait
1
+ # the "counter" text for the sample component
2
+ COUNT=Count
3
+
@@ -1 +1 @@
1
- PLEASE_WAIT=Bitte warten
1
+ COUNT=Zählung
@@ -1 +1 @@
1
- PLEASE_WAIT=Please wait
1
+ COUNT=Count
@@ -1 +1 @@
1
- PLEASE_WAIT=Espere
1
+ COUNT=Cuenta
@@ -1 +1 @@
1
- PLEASE_WAIT=Patientez.
1
+ COUNT=Comte
@@ -1,11 +1,16 @@
1
1
  :host {
2
- border: 2px solid var(--my-component-border-color);
3
- background-color: var(--sapBackgroundColor);
4
- color: var(--sapTextColor);
5
- display: block;
6
- width: 24rem;
7
- height: 3rem;
8
- text-align: center;
9
- vertical-align: middle;
10
- line-height: 3rem;
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ flex-direction: column;
6
+ padding: 0 2rem;
7
+ color: var(--sapAvatar_6_TextColor);
8
+ background-color: var(--sapAvatar_6_Background);
9
+ border: 2px solid var(--my-component-border-color);
10
+ border-radius: 0.5rem;
11
+ box-shadow: var(--sapContent_Shadow0);
12
+ text-align: center;
13
+ line-height: 3rem;
14
+ font-size: 1.25rem;
15
+ user-select: none;
11
16
  }
@@ -1,3 +1,3 @@
1
1
  :root {
2
- --my-component-border-color: green;
2
+ --my-component-border-color: blue;
3
3
  }
@@ -1,3 +1,3 @@
1
1
  :root {
2
- --my-component-border-color: blue;
2
+ --my-component-border-color: darkblue;
3
3
  }
@@ -0,0 +1,36 @@
1
+ body {
2
+ color: var(--sapTextColor);
3
+ background-color: var(--sapBackgroundColor);
4
+ font-size: var(--sapFontSize);
5
+ font-family: var(--sapFontFamily);
6
+ }
7
+
8
+ h1 {
9
+ font-size: var(--sapFontHeader2Size);
10
+ margin-bottom: 0.5rem;
11
+ }
12
+
13
+ h2 {
14
+ font-size: var(--sapFontHeader3Size);
15
+ margin-bottom: 0.5rem;
16
+ }
17
+
18
+ .app, .app-settings, .app-docs, .app-first-component {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ flex-direction: column;
23
+ }
24
+
25
+ .app-first-component {
26
+ margin-bottom: 3rem;
27
+ }
28
+
29
+ .app-docs {
30
+ margin-top: 3rem;
31
+ }
32
+
33
+ a {
34
+ margin: 0.25rem;
35
+ color: var(--sapLinkColor);
36
+ }
Binary file
@@ -10,44 +10,48 @@
10
10
 
11
11
  <script data-ui5-config type="application/json">
12
12
  {
13
+ "theme": "sap_horizon_dark",
13
14
  "language": "EN"
14
15
  }
15
16
  </script>
16
17
 
17
- <script src="../../bundle.esm.js" type="module"></script>
18
-
19
- <style>
20
- code { color: blue; font-size: small; }
21
- </style>
22
-
18
+ <link rel="stylesheet" type="text/css" href="./css/index.css">
19
+ <script src="%VITE_BUNDLE_PATH%" type="module"></script>
23
20
  </head>
24
21
 
25
22
  <body>
26
- <ul>
27
- <li><a href="?sap-ui-theme=sap_fiori_3">Fiori 3</a></li>
28
- <li><a href="?sap-ui-theme=sap_fiori_3_dark">Fiori 3 Dark</a></li>
29
- <li><a href="?sap-ui-theme=sap_fiori_3_hcb">Fiori 3 High Contrast Black</a></li>
30
- <li><a href="?sap-ui-theme=sap_fiori_3_hcw">Fiori 3 High Contrast White</a></li>
31
- <li><a href="?sap-ui-theme=sap_horizon">Horizon</a></li>
32
- <li><a href="?sap-ui-theme=sap_horizon_dark">Horizon Dark</a></li>
33
- <li><a href="?sap-ui-theme=sap_horizon_hcb">Horizon High Contrast Black</a></li>
34
- <li><a href="?sap-ui-theme=sap_horizon_hcw">Horizon High Contrast White</a></li>
35
- </ul>
36
- <br>
37
- <span>or in the browser console, for example:</span>
38
- <code>window['sap-ui-webcomponents-bundle'].configuration.setTheme("sap_horizon_hcb")</code>
39
-
40
- <br><br>
41
-
42
- <a href="?sap-ui-language=en">English</a> |
43
- <a href="?sap-ui-language=de">German</a> |
44
- <a href="?sap-ui-language=es">Spanish</a> |
45
- <a href="?sap-ui-language=fr">French</a>
46
-
47
- <br><br>
48
-
49
- <h1>Test your web components here</h1>
50
- <INIT_PACKAGE_VAR_TAG id="myFirstComponent"></INIT_PACKAGE_VAR_TAG>
23
+ <div class="app">
24
+ <a href="https://sap.github.io/ui5-webcomponents/playground/?path=/docs/docs-getting-started-first-steps--docs" target="_blank"><img src="./img/logo.png" alt="logo"/></a>
25
+
26
+ <div class="app-first-component">
27
+ <h1>Hooray! It's Your First Web Component!</h1>
28
+ <div> <pre>&lt;INIT_PACKAGE_VAR_TAG>&lt;/INIT_PACKAGE_VAR_TAG> </pre></div>
29
+ <INIT_PACKAGE_VAR_TAG id="myFirstComponent"></INIT_PACKAGE_VAR_TAG>
30
+ </div>
31
+
32
+ <div class="app-settings">
33
+
34
+ <h2>Switch themes</h2>
35
+ <div style="display: flex; flex-direction: row;">
36
+ <a class="link" href="?sap-ui-theme=sap_horizon">Horizon</a>
37
+ <a class="link" href="?sap-ui-theme=sap_horizon_dark">Horizon Dark</a>
38
+ <a class="link" href="?sap-ui-theme=sap_horizon_hcb">Horizon High Contrast Black</a>
39
+ <a class="link" href="?sap-ui-theme=sap_horizon_hcw">Horizon High Contrast White</a>
40
+ </div>
41
+
42
+ <h2>Switch language</h2>
43
+ <div>
44
+ <a class="link" href="?sap-ui-language=en">English</a>
45
+ <a class="link" href="?sap-ui-language=de">German</a>
46
+ <a class="link" href="?sap-ui-language=es">Spanish</a>
47
+ <a class="link" href="?sap-ui-language=fr">French</a>
48
+ </div>
49
+ </div>
50
+
51
+ <div class="app-docs">
52
+ <h2>Documentation</h2>
53
+ <a class="link" href="https://sap.github.io/ui5-webcomponents/playground/?path=/docs/docs-development-custom-ui5-web-components-packages--docs">Custom Component Development</a>
54
+ </div>
55
+ </div>
51
56
  </body>
52
-
53
57
  </html>
@@ -6,7 +6,6 @@ describe("INIT_PACKAGE_VAR_TAG rendering", async () => {
6
6
  });
7
7
 
8
8
  it("tests if web component is correctly rendered", async () => {
9
-
10
9
  const innerContent = await browser.$("#myFirstComponent").shadow$("div");
11
10
 
12
11
  assert.ok(innerContent, "content rendered");
@@ -9,8 +9,7 @@
9
9
  "sourceMap": true,
10
10
  "inlineSources": true,
11
11
  "strict": true,
12
- "module": "node16",
13
- "moduleResolution": "node16",
12
+ "moduleResolution": "node",
14
13
  "experimentalDecorators": true,
15
14
  },
16
15
  }
@@ -1 +0,0 @@
1
- module.exports = require("@ui5/webcomponents-tools/components-package/postcss.components.js"); // eslint-disable-line
@@ -1 +0,0 @@
1
- module.exports = require("@ui5/webcomponents-tools/components-package/postcss.themes.js"); // eslint-disable-line
@@ -1,3 +0,0 @@
1
- :root {
2
- --my-component-border-color: blue;
3
- }
@@ -1,3 +0,0 @@
1
- :root {
2
- --my-component-border-color: lightblue;
3
- }
@@ -1,3 +0,0 @@
1
- :root {
2
- --my-component-border-color: gray;
3
- }