semmet-angular 0.42.0 → 0.44.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/README.en.md +2 -315
- package/README.md +172 -264
- package/package.json +2 -2
- package/src/accordion/files/__name@dasherize__/__name@dasherize__.css.template +4 -41
- package/src/accordion/schema.json +19 -4
- package/src/alert/files/__name@dasherize__/__name@dasherize__.css.template +1 -25
- package/src/alert/files/__name@dasherize__/__name@dasherize__.html.template +3 -3
- package/src/alert/files/__name@dasherize__/__name@dasherize__.ts.template +4 -1
- package/src/alert/schema.json +19 -4
- package/src/alert-dialog/files/__name@dasherize__/__name@dasherize__.css.template +3 -56
- package/src/alert-dialog/files/__name@dasherize__/__name@dasherize__.html.template +6 -6
- package/src/alert-dialog/files/__name@dasherize__/__name@dasherize__.ts.template +7 -1
- package/src/alert-dialog/schema.json +19 -4
- package/src/avatar/files/__name@dasherize__/__name@dasherize__.css.template +17 -0
- package/src/avatar/files/__name@dasherize__/__name@dasherize__.html.template +28 -0
- package/src/avatar/files/__name@dasherize__/__name@dasherize__.spec.ts.template +27 -0
- package/src/avatar/files/__name@dasherize__/__name@dasherize__.ts.template +35 -0
- package/src/avatar/index.d.ts +1 -0
- package/src/avatar/index.js +6 -0
- package/src/avatar/index.js.map +1 -0
- package/src/avatar/index.ts +3 -0
- package/src/avatar/schema.d.ts +1 -0
- package/src/avatar/schema.js +3 -0
- package/src/avatar/schema.js.map +1 -0
- package/src/avatar/schema.json +44 -0
- package/src/avatar/schema.ts +1 -0
- package/src/badge/files/__name@dasherize__/__name@dasherize__.css.template +0 -77
- package/src/badge/files/__name@dasherize__/__name@dasherize__.ts.template +2 -5
- package/src/badge/schema.json +19 -4
- package/src/block/files/__name@dasherize__/__name@dasherize__.css.template +10 -81
- package/src/block/files/__name@dasherize__/__name@dasherize__.html.template +33 -25
- package/src/block/files/__name@dasherize__/__name@dasherize__.ts.template +41 -10
- package/src/block/schema.json +19 -4
- package/src/breadcrumb/files/__name@dasherize__/__name@dasherize__.css.template +2 -23
- package/src/breadcrumb/files/__name@dasherize__/__name@dasherize__.html.template +4 -4
- package/src/breadcrumb/files/__name@dasherize__/__name@dasherize__.ts.template +9 -5
- package/src/breadcrumb/schema.json +19 -4
- package/src/button/files/__name@dasherize__/__name@dasherize__.css.template +2 -79
- package/src/button/files/__name@dasherize__/__name@dasherize__.ts.template +2 -5
- package/src/button/schema.json +19 -4
- package/src/button-group/files/__name@dasherize__/__name@dasherize__.css.template +2 -70
- package/src/button-group/files/__name@dasherize__/__name@dasherize__.ts.template +1 -2
- package/src/button-group/schema.json +19 -4
- package/src/card/files/__name@dasherize__/__name@dasherize__.css.template +0 -67
- package/src/card/files/__name@dasherize__/__name@dasherize__.html.template +10 -55
- package/src/card/files/__name@dasherize__/__name@dasherize__.ts.template +2 -45
- package/src/card/schema.json +19 -4
- package/src/carousel/files/__name@dasherize__/__name@dasherize__.css.template +2 -32
- package/src/carousel/files/__name@dasherize__/__name@dasherize__.html.template +4 -4
- package/src/carousel/files/__name@dasherize__/__name@dasherize__.ts.template +4 -0
- package/src/carousel/schema.json +19 -4
- package/src/checkbox/files/__name@dasherize__/__name@dasherize__.css.template +5 -21
- package/src/checkbox/schema.json +19 -4
- package/src/close-button/files/__name@dasherize__/__name@dasherize__.css.template +9 -47
- package/src/close-button/files/__name@dasherize__/__name@dasherize__.ts.template +2 -5
- package/src/close-button/schema.json +19 -4
- package/src/collection.json +21 -1
- package/src/combobox/files/__name@dasherize__/__name@dasherize__.css.template +4 -49
- package/src/combobox/files/__name@dasherize__/__name@dasherize__.html.template +2 -2
- package/src/combobox/files/__name@dasherize__/__name@dasherize__.ts.template +11 -8
- package/src/combobox/schema.json +19 -4
- package/src/dialog/files/__name@dasherize__/__name@dasherize__.css.template +3 -45
- package/src/dialog/files/__name@dasherize__/__name@dasherize__.html.template +5 -5
- package/src/dialog/files/__name@dasherize__/__name@dasherize__.ts.template +6 -1
- package/src/dialog/schema.json +19 -4
- package/src/disclosure/files/__name@dasherize__/__name@dasherize__.css.template +4 -36
- package/src/disclosure/schema.json +19 -4
- package/src/e2e/index.d.ts +2 -0
- package/src/e2e/index.js +90 -0
- package/src/e2e/index.js.map +1 -0
- package/src/e2e/index.ts +106 -0
- package/src/e2e/schema.d.ts +2 -0
- package/src/e2e/schema.js +3 -0
- package/src/e2e/schema.js.map +1 -0
- package/src/e2e/schema.json +9 -0
- package/src/e2e/schema.ts +1 -0
- package/src/form/files/__name@dasherize__/__name@dasherize__.css.template +1 -77
- package/src/form/files/__name@dasherize__/__name@dasherize__.html.template +7 -7
- package/src/form/files/__name@dasherize__/__name@dasherize__.ts.template +20 -7
- package/src/form/schema.json +19 -4
- package/src/input/files/__name@dasherize__/__name@dasherize__.css.template +2 -58
- package/src/input/schema.json +19 -4
- package/src/input-group/files/__name@dasherize__/__name@dasherize__.css.template +2 -68
- package/src/input-group/files/__name@dasherize__/__name@dasherize__.html.template +13 -5
- package/src/input-group/files/__name@dasherize__/__name@dasherize__.ts.template +21 -6
- package/src/input-group/schema.json +19 -4
- package/src/landmarks/files/__name@dasherize__/__name@dasherize__.css.template +0 -24
- package/src/landmarks/files/__name@dasherize__/__name@dasherize__.html.template +2 -2
- package/src/landmarks/files/__name@dasherize__/__name@dasherize__.ts.template +5 -2
- package/src/landmarks/schema.json +19 -4
- package/src/list-group/files/__name@dasherize__/__name@dasherize__.css.template +0 -123
- package/src/list-group/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +8 -9
- package/src/list-group/files/__name@dasherize__/__name@dasherize__.html.template +13 -47
- package/src/list-group/files/__name@dasherize__/__name@dasherize__.spec.ts.template +46 -24
- package/src/list-group/files/__name@dasherize__/__name@dasherize__.ts.template +97 -39
- package/src/list-group/schema.json +19 -4
- package/src/listbox/files/__name@dasherize__/__name@dasherize__.css.template +3 -37
- package/src/listbox/files/__name@dasherize__/__name@dasherize__.html.template +2 -2
- package/src/listbox/files/__name@dasherize__/__name@dasherize__.ts.template +3 -1
- package/src/listbox/schema.json +19 -4
- package/src/menu-button/files/__name@dasherize__/__name@dasherize__.css.template +7 -47
- package/src/menu-button/files/__name@dasherize__/__name@dasherize__.html.template +3 -3
- package/src/menu-button/files/__name@dasherize__/__name@dasherize__.ts.template +10 -7
- package/src/menu-button/schema.json +19 -4
- package/src/meter/files/__name@dasherize__/__name@dasherize__.css.template +0 -12
- package/src/meter/files/__name@dasherize__/__name@dasherize__.html.template +2 -2
- package/src/meter/files/__name@dasherize__/__name@dasherize__.ts.template +3 -1
- package/src/meter/schema.json +19 -4
- package/src/navbar/files/__name@dasherize__/__name@dasherize__.css.template +6 -62
- package/src/navbar/schema.json +19 -4
- package/src/navigation-menu/files/__name@dasherize__/__name@dasherize__.css.template +6 -37
- package/src/navigation-menu/files/__name@dasherize__/__name@dasherize__.html.template +7 -6
- package/src/navigation-menu/files/__name@dasherize__/__name@dasherize__.ts.template +15 -1
- package/src/navigation-menu/schema.json +19 -4
- package/src/ng-add/index.d.ts +1 -1
- package/src/ng-add/index.js +2 -72
- package/src/ng-add/index.js.map +1 -1
- package/src/ng-add/index.ts +3 -86
- package/src/ng-add/schema.d.ts +0 -1
- package/src/ng-add/schema.json +0 -5
- package/src/ng-add/schema.ts +0 -1
- package/src/offcanvas/files/__name@dasherize__/__name@dasherize__.css.template +3 -70
- package/src/offcanvas/schema.json +19 -4
- package/src/pagination/files/__name@dasherize__/__name@dasherize__.css.template +2 -33
- package/src/pagination/files/__name@dasherize__/__name@dasherize__.html.template +6 -6
- package/src/pagination/files/__name@dasherize__/__name@dasherize__.ts.template +7 -1
- package/src/pagination/schema.json +19 -4
- package/src/popover/files/__name@dasherize__/__name@dasherize__.css.template +8 -69
- package/src/popover/schema.json +19 -4
- package/src/progress-bar/files/__name@dasherize__/__name@dasherize__.css.template +1 -31
- package/src/progress-bar/files/__name@dasherize__/__name@dasherize__.html.template +3 -3
- package/src/progress-bar/files/__name@dasherize__/__name@dasherize__.ts.template +5 -1
- package/src/progress-bar/schema.json +19 -4
- package/src/radio-group/files/__name@dasherize__/__name@dasherize__.css.template +4 -31
- package/src/radio-group/files/__name@dasherize__/__name@dasherize__.html.template +2 -2
- package/src/radio-group/files/__name@dasherize__/__name@dasherize__.ts.template +2 -1
- package/src/radio-group/schema.json +19 -4
- package/src/rating/files/__name@dasherize__/__name@dasherize__.css.template +17 -0
- package/src/rating/files/__name@dasherize__/__name@dasherize__.html.template +34 -0
- package/src/rating/files/__name@dasherize__/__name@dasherize__.spec.ts.template +38 -0
- package/src/rating/files/__name@dasherize__/__name@dasherize__.ts.template +75 -0
- package/src/rating/index.d.ts +1 -0
- package/src/rating/index.js +6 -0
- package/src/rating/index.js.map +1 -0
- package/src/rating/index.ts +3 -0
- package/src/rating/schema.d.ts +1 -0
- package/src/rating/schema.js +3 -0
- package/src/rating/schema.js.map +1 -0
- package/src/rating/schema.json +44 -0
- package/src/rating/schema.ts +1 -0
- package/src/select/files/__name@dasherize__/__name@dasherize__.css.template +4 -55
- package/src/select/schema.json +19 -4
- package/src/skeleton/files/__name@dasherize__/__name@dasherize__.css.template +2 -29
- package/src/skeleton/files/__name@dasherize__/__name@dasherize__.ts.template +1 -3
- package/src/skeleton/schema.json +19 -4
- package/src/skip-link/files/__name@dasherize__/__name@dasherize__.css.template +2 -14
- package/src/skip-link/files/__name@dasherize__/__name@dasherize__.html.template +2 -2
- package/src/skip-link/files/__name@dasherize__/__name@dasherize__.ts.template +5 -2
- package/src/skip-link/schema.json +19 -4
- package/src/slider/files/__name@dasherize__/__name@dasherize__.css.template +6 -20
- package/src/slider/files/__name@dasherize__/__name@dasherize__.html.template +2 -2
- package/src/slider/files/__name@dasherize__/__name@dasherize__.ts.template +3 -1
- package/src/slider/schema.json +19 -4
- package/src/spinbutton/files/__name@dasherize__/__name@dasherize__.css.template +6 -35
- package/src/spinbutton/files/__name@dasherize__/__name@dasherize__.html.template +4 -4
- package/src/spinbutton/files/__name@dasherize__/__name@dasherize__.ts.template +5 -1
- package/src/spinbutton/schema.json +19 -4
- package/src/spinner/files/__name@dasherize__/__name@dasherize__.css.template +0 -43
- package/src/spinner/files/__name@dasherize__/__name@dasherize__.ts.template +2 -5
- package/src/spinner/schema.json +19 -4
- package/src/steps/files/__name@dasherize__/__name@dasherize__.css.template +36 -0
- package/src/steps/files/__name@dasherize__/__name@dasherize__.html.template +44 -0
- package/src/steps/files/__name@dasherize__/__name@dasherize__.spec.ts.template +35 -0
- package/src/steps/files/__name@dasherize__/__name@dasherize__.ts.template +107 -0
- package/src/steps/index.d.ts +1 -0
- package/src/steps/index.js +6 -0
- package/src/steps/index.js.map +1 -0
- package/src/steps/index.ts +3 -0
- package/src/steps/schema.d.ts +1 -0
- package/src/steps/schema.js +3 -0
- package/src/steps/schema.js.map +1 -0
- package/src/steps/schema.json +44 -0
- package/src/steps/schema.ts +1 -0
- package/src/switch/files/__name@dasherize__/__name@dasherize__.css.template +7 -22
- package/src/switch/schema.json +19 -4
- package/src/table/files/__name@dasherize__/__name@dasherize__.css.template +0 -25
- package/src/table/files/__name@dasherize__/__name@dasherize__.html.template +3 -3
- package/src/table/files/__name@dasherize__/__name@dasherize__.ts.template +3 -0
- package/src/table/schema.json +19 -4
- package/src/tabs/files/__name@dasherize__/__name@dasherize__.css.template +5 -44
- package/src/tabs/files/__name@dasherize__/__name@dasherize__.html.template +2 -2
- package/src/tabs/files/__name@dasherize__/__name@dasherize__.ts.template +2 -0
- package/src/tabs/schema.json +19 -4
- package/src/textarea/files/__name@dasherize__/__name@dasherize__.css.template +2 -59
- package/src/textarea/schema.json +19 -4
- package/src/toast/files/__name@dasherize__/__name@dasherize__.css.template +1 -35
- package/src/toast/files/__name@dasherize__/__name@dasherize__.html.template +4 -4
- package/src/toast/files/__name@dasherize__/__name@dasherize__.ts.template +5 -1
- package/src/toast/schema.json +19 -4
- package/src/toolbar/files/__name@dasherize__/__name@dasherize__.css.template +2 -36
- package/src/toolbar/files/__name@dasherize__/__name@dasherize__.html.template +3 -3
- package/src/toolbar/files/__name@dasherize__/__name@dasherize__.ts.template +11 -8
- package/src/toolbar/schema.json +19 -4
- package/src/tooltip/files/__name@dasherize__/__name@dasherize__.css.template +1 -32
- package/src/tooltip/schema.json +19 -4
- package/src/tree-view/files/__name@dasherize__/__name@dasherize__.css.template +5 -27
- package/src/tree-view/files/__name@dasherize__/__name@dasherize__.html.template +3 -3
- package/src/tree-view/files/__name@dasherize__/__name@dasherize__.ts.template +16 -13
- package/src/tree-view/schema.json +19 -4
- package/src/utils/generate-component.js +3 -1
- package/src/utils/generate-component.js.map +1 -1
- package/src/utils/generate-component.ts +3 -1
- package/src/utils/generate-composition.js +0 -1
- package/src/utils/generate-composition.js.map +1 -1
- package/src/utils/generate-composition.ts +0 -1
- package/src/utils/schema-types.d.ts +1 -0
- package/src/utils/schema-types.ts +1 -0
- package/README.pt-BR.md +0 -330
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, signal } from '@angular/core';
|
|
1
|
+
import { Component, input, signal } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
let nextId = 0;
|
|
4
4
|
|
|
@@ -11,4 +11,6 @@ let nextId = 0;
|
|
|
11
11
|
export class <%= classify(name) %> {
|
|
12
12
|
protected readonly instanceId = `<%= dasherize(name) %>-${nextId++}`;
|
|
13
13
|
protected readonly value = signal(70);
|
|
14
|
+
|
|
15
|
+
readonly label = input('Disk usage');
|
|
14
16
|
}
|
package/src/meter/schema.json
CHANGED
|
@@ -9,21 +9,36 @@
|
|
|
9
9
|
"name": {
|
|
10
10
|
"type": "string",
|
|
11
11
|
"description": "The name for the new component. Used to derive the class name, selector, and file names.",
|
|
12
|
-
"$default": {
|
|
12
|
+
"$default": {
|
|
13
|
+
"$source": "argv",
|
|
14
|
+
"index": 0
|
|
15
|
+
},
|
|
13
16
|
"x-prompt": "What name would you like to use for the meter component?"
|
|
14
17
|
},
|
|
18
|
+
"e2e": {
|
|
19
|
+
"type": "boolean",
|
|
20
|
+
"default": false,
|
|
21
|
+
"description": "Generate a Playwright e2e spec for this component. Requires Playwright to be installed/configured in the consuming app."
|
|
22
|
+
},
|
|
15
23
|
"path": {
|
|
16
24
|
"type": "string",
|
|
17
25
|
"format": "path",
|
|
18
|
-
"$default": {
|
|
26
|
+
"$default": {
|
|
27
|
+
"$source": "workingDirectory"
|
|
28
|
+
},
|
|
19
29
|
"description": "The path where the component files should be created, relative to the workspace root. Defaults to the project's source root.",
|
|
20
30
|
"visible": false
|
|
21
31
|
},
|
|
22
32
|
"project": {
|
|
23
33
|
"type": "string",
|
|
24
34
|
"description": "The name of the project to add the component to.",
|
|
25
|
-
"$default": {
|
|
35
|
+
"$default": {
|
|
36
|
+
"$source": "projectName"
|
|
37
|
+
}
|
|
26
38
|
}
|
|
27
39
|
},
|
|
28
|
-
"required": [
|
|
40
|
+
"required": [
|
|
41
|
+
"name",
|
|
42
|
+
"project"
|
|
43
|
+
]
|
|
29
44
|
}
|
|
@@ -1,40 +1,17 @@
|
|
|
1
1
|
:host {
|
|
2
|
-
--semmet-color-primary: #18181b;
|
|
3
|
-
--semmet-color-surface: #ffffff;
|
|
4
|
-
--semmet-color-surface-muted: #f4f4f5;
|
|
5
|
-
--semmet-color-outline: #d4d4d8;
|
|
6
|
-
--semmet-color-on-surface: #27272a;
|
|
7
|
-
--semmet-color-on-surface-variant: #71717a;
|
|
8
|
-
--semmet-radius-md: 10px;
|
|
9
|
-
--semmet-space-3xs: 4px;
|
|
10
|
-
--semmet-space-2xs: 8px;
|
|
11
|
-
--semmet-space-xs: 16px;
|
|
12
|
-
--semmet-target-md: 40px;
|
|
13
|
-
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
14
|
-
|
|
15
2
|
display: block;
|
|
16
|
-
font-family: Roboto, system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
17
3
|
}
|
|
18
4
|
|
|
19
5
|
.semmet-navbar {
|
|
20
6
|
display: grid;
|
|
21
7
|
grid-template-columns: 1fr auto;
|
|
22
8
|
align-items: center;
|
|
23
|
-
gap: var(--semmet-space-xs);
|
|
24
|
-
padding: var(--semmet-space-2xs);
|
|
25
|
-
border: 1px solid var(--semmet-color-outline);
|
|
26
|
-
border-radius: var(--semmet-radius-md);
|
|
27
|
-
color: var(--semmet-color-on-surface);
|
|
28
|
-
background: var(--semmet-color-surface);
|
|
29
9
|
}
|
|
30
10
|
|
|
31
11
|
.semmet-navbar__brand {
|
|
32
12
|
display: inline-flex;
|
|
33
13
|
align-items: center;
|
|
34
|
-
min-height: var(--semmet-target-md);
|
|
35
14
|
color: inherit;
|
|
36
|
-
font-size: 1.0625rem;
|
|
37
|
-
font-weight: 800;
|
|
38
15
|
text-decoration: none;
|
|
39
16
|
}
|
|
40
17
|
|
|
@@ -43,13 +20,11 @@
|
|
|
43
20
|
display: inline-flex;
|
|
44
21
|
align-items: center;
|
|
45
22
|
justify-content: center;
|
|
46
|
-
width: var(--semmet-target-md);
|
|
47
|
-
height: var(--semmet-target-md);
|
|
48
|
-
border: 1px solid var(--semmet-color-outline);
|
|
49
|
-
border-radius: var(--semmet-radius-md);
|
|
50
23
|
color: inherit;
|
|
51
|
-
background:
|
|
24
|
+
background: none;
|
|
25
|
+
border: 0;
|
|
52
26
|
cursor: pointer;
|
|
27
|
+
font: inherit;
|
|
53
28
|
}
|
|
54
29
|
|
|
55
30
|
.semmet-navbar__toggle span,
|
|
@@ -58,7 +33,6 @@
|
|
|
58
33
|
display: block;
|
|
59
34
|
width: 1.125rem;
|
|
60
35
|
height: 0.125rem;
|
|
61
|
-
border-radius: 999px;
|
|
62
36
|
background: currentColor;
|
|
63
37
|
}
|
|
64
38
|
|
|
@@ -92,42 +66,21 @@
|
|
|
92
66
|
|
|
93
67
|
.semmet-navbar__list {
|
|
94
68
|
display: grid;
|
|
95
|
-
gap: var(--semmet-space-3xs);
|
|
96
69
|
margin: 0;
|
|
97
|
-
padding:
|
|
70
|
+
padding: 0;
|
|
98
71
|
list-style: none;
|
|
99
72
|
}
|
|
100
73
|
|
|
101
74
|
.semmet-navbar__actions {
|
|
102
75
|
display: flex;
|
|
103
76
|
flex-wrap: wrap;
|
|
104
|
-
gap: var(--semmet-space-2xs);
|
|
105
|
-
padding-top: var(--semmet-space-xs);
|
|
106
77
|
}
|
|
107
78
|
|
|
108
79
|
.semmet-navbar__link {
|
|
109
80
|
display: flex;
|
|
110
81
|
align-items: center;
|
|
111
|
-
|
|
112
|
-
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
113
|
-
border-radius: var(--semmet-radius-md);
|
|
114
|
-
color: var(--semmet-color-on-surface-variant);
|
|
115
|
-
font-weight: 650;
|
|
82
|
+
color: inherit;
|
|
116
83
|
text-decoration: none;
|
|
117
|
-
transition:
|
|
118
|
-
background-color var(--semmet-motion),
|
|
119
|
-
color var(--semmet-motion),
|
|
120
|
-
opacity var(--semmet-motion);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.semmet-navbar__link:hover:not(.semmet-navbar__link--disabled) {
|
|
124
|
-
color: var(--semmet-color-on-surface);
|
|
125
|
-
background: var(--semmet-color-surface-muted);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
.semmet-navbar__link--current {
|
|
129
|
-
color: var(--semmet-color-on-surface);
|
|
130
|
-
background: var(--semmet-color-surface-muted);
|
|
131
84
|
}
|
|
132
85
|
|
|
133
86
|
.semmet-navbar__link--disabled {
|
|
@@ -139,14 +92,13 @@
|
|
|
139
92
|
.semmet-navbar__toggle:focus-visible,
|
|
140
93
|
.semmet-navbar__link:focus-visible,
|
|
141
94
|
.semmet-navbar__actions :is(a, button):focus-visible {
|
|
142
|
-
outline: 2px solid
|
|
95
|
+
outline: 2px solid currentColor;
|
|
143
96
|
outline-offset: 2px;
|
|
144
97
|
}
|
|
145
98
|
|
|
146
99
|
@media (min-width: 48rem) {
|
|
147
100
|
.semmet-navbar {
|
|
148
101
|
grid-template-columns: auto 1fr;
|
|
149
|
-
padding-inline: var(--semmet-space-2xs);
|
|
150
102
|
}
|
|
151
103
|
|
|
152
104
|
.semmet-navbar__toggle {
|
|
@@ -156,20 +108,12 @@
|
|
|
156
108
|
.semmet-navbar__menu {
|
|
157
109
|
display: flex;
|
|
158
110
|
align-items: center;
|
|
159
|
-
justify-content: flex-end;
|
|
160
|
-
gap: var(--semmet-space-xs);
|
|
161
111
|
grid-column: auto;
|
|
162
112
|
}
|
|
163
113
|
|
|
164
114
|
.semmet-navbar__list {
|
|
165
115
|
display: flex;
|
|
166
116
|
align-items: center;
|
|
167
|
-
justify-content: flex-end;
|
|
168
|
-
gap: var(--semmet-space-3xs);
|
|
169
117
|
padding: 0;
|
|
170
118
|
}
|
|
171
|
-
|
|
172
|
-
.semmet-navbar__actions {
|
|
173
|
-
padding-top: 0;
|
|
174
|
-
}
|
|
175
119
|
}
|
package/src/navbar/schema.json
CHANGED
|
@@ -9,21 +9,36 @@
|
|
|
9
9
|
"name": {
|
|
10
10
|
"type": "string",
|
|
11
11
|
"description": "The name for the new component. Used to derive the class name, selector, and file names.",
|
|
12
|
-
"$default": {
|
|
12
|
+
"$default": {
|
|
13
|
+
"$source": "argv",
|
|
14
|
+
"index": 0
|
|
15
|
+
},
|
|
13
16
|
"x-prompt": "What name would you like to use for the navbar component?"
|
|
14
17
|
},
|
|
18
|
+
"e2e": {
|
|
19
|
+
"type": "boolean",
|
|
20
|
+
"default": false,
|
|
21
|
+
"description": "Generate a Playwright e2e spec for this component. Requires Playwright to be installed/configured in the consuming app."
|
|
22
|
+
},
|
|
15
23
|
"path": {
|
|
16
24
|
"type": "string",
|
|
17
25
|
"format": "path",
|
|
18
|
-
"$default": {
|
|
26
|
+
"$default": {
|
|
27
|
+
"$source": "workingDirectory"
|
|
28
|
+
},
|
|
19
29
|
"description": "The path where the component files should be created, relative to the workspace root. Defaults to the project's source root.",
|
|
20
30
|
"visible": false
|
|
21
31
|
},
|
|
22
32
|
"project": {
|
|
23
33
|
"type": "string",
|
|
24
34
|
"description": "The name of the project to add the component to.",
|
|
25
|
-
"$default": {
|
|
35
|
+
"$default": {
|
|
36
|
+
"$source": "projectName"
|
|
37
|
+
}
|
|
26
38
|
}
|
|
27
39
|
},
|
|
28
|
-
"required": [
|
|
40
|
+
"required": [
|
|
41
|
+
"name",
|
|
42
|
+
"project"
|
|
43
|
+
]
|
|
29
44
|
}
|
|
@@ -1,25 +1,10 @@
|
|
|
1
1
|
:host {
|
|
2
|
-
--semmet-color-primary: #18181b;
|
|
3
|
-
--semmet-color-surface: #ffffff;
|
|
4
|
-
--semmet-color-on-surface: #18181b;
|
|
5
|
-
--semmet-radius-sm: 8px;
|
|
6
|
-
--semmet-radius-md: 12px;
|
|
7
|
-
--semmet-space-3xs: 4px;
|
|
8
|
-
--semmet-space-2xs: 8px;
|
|
9
|
-
--semmet-space-xs: 16px;
|
|
10
|
-
--semmet-target-md: 40px;
|
|
11
|
-
--semmet-elevation-3: 0 8px 24px rgba(20, 24, 23, 0.18), 0 2px 8px rgba(20, 24, 23, 0.1);
|
|
12
|
-
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
13
|
-
|
|
14
2
|
display: block;
|
|
15
|
-
font-family: Roboto, system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
16
|
-
font-size: 0.9375rem;
|
|
17
3
|
}
|
|
18
4
|
|
|
19
5
|
nav > ul {
|
|
20
6
|
display: flex;
|
|
21
7
|
align-items: center;
|
|
22
|
-
gap: var(--semmet-space-3xs);
|
|
23
8
|
margin: 0;
|
|
24
9
|
padding: 0;
|
|
25
10
|
list-style: none;
|
|
@@ -33,28 +18,17 @@ a,
|
|
|
33
18
|
button {
|
|
34
19
|
display: inline-flex;
|
|
35
20
|
align-items: center;
|
|
36
|
-
gap: var(--semmet-space-2xs);
|
|
37
|
-
min-height: var(--semmet-target-md);
|
|
38
21
|
font: inherit;
|
|
39
|
-
|
|
40
|
-
color: var(--semmet-color-on-surface);
|
|
22
|
+
color: inherit;
|
|
41
23
|
background: none;
|
|
42
24
|
border: none;
|
|
43
|
-
border-radius: var(--semmet-radius-sm);
|
|
44
|
-
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
45
25
|
cursor: pointer;
|
|
46
26
|
text-decoration: none;
|
|
47
|
-
transition: background-color var(--semmet-motion);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
a:hover,
|
|
51
|
-
button:hover {
|
|
52
|
-
background: color-mix(in srgb, var(--semmet-color-on-surface) 6%, transparent);
|
|
53
27
|
}
|
|
54
28
|
|
|
55
29
|
a:focus-visible,
|
|
56
30
|
button:focus-visible {
|
|
57
|
-
outline: 2px solid
|
|
31
|
+
outline: 2px solid currentColor;
|
|
58
32
|
outline-offset: 2px;
|
|
59
33
|
}
|
|
60
34
|
|
|
@@ -62,10 +36,9 @@ button::after {
|
|
|
62
36
|
content: '';
|
|
63
37
|
width: 0.4rem;
|
|
64
38
|
height: 0.4rem;
|
|
65
|
-
border-right: 2px solid
|
|
66
|
-
border-bottom: 2px solid
|
|
39
|
+
border-right: 2px solid currentColor;
|
|
40
|
+
border-bottom: 2px solid currentColor;
|
|
67
41
|
transform: rotate(45deg);
|
|
68
|
-
transition: transform var(--semmet-motion);
|
|
69
42
|
}
|
|
70
43
|
|
|
71
44
|
button[aria-expanded='true']::after {
|
|
@@ -77,13 +50,9 @@ nav > ul ul {
|
|
|
77
50
|
z-index: 1;
|
|
78
51
|
top: 100%;
|
|
79
52
|
left: 0;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
padding: var(--semmet-space-2xs);
|
|
53
|
+
margin: 0;
|
|
54
|
+
padding: 0;
|
|
83
55
|
list-style: none;
|
|
84
|
-
background: var(--semmet-color-surface);
|
|
85
|
-
border-radius: var(--semmet-radius-md);
|
|
86
|
-
box-shadow: var(--semmet-elevation-3);
|
|
87
56
|
}
|
|
88
57
|
|
|
89
58
|
nav > ul ul li a {
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
Usage from a parent component template:
|
|
4
4
|
Import <%= classify(name) %> in that parent component.
|
|
5
5
|
|
|
6
|
-
<<%= selector %> />
|
|
6
|
+
<<%= selector %> label="Main" />
|
|
7
7
|
-->
|
|
8
8
|
<!-- Deliberately avoids the ARIA menu/menuitem roles — APG reserves those for app-style menus. -->
|
|
9
|
-
<nav aria-label="
|
|
9
|
+
<nav [attr.aria-label]="label()">
|
|
10
10
|
<ul>
|
|
11
|
-
<li><a href="
|
|
11
|
+
<li><a [href]="homeHref()">{{ homeLabel() }}</a></li>
|
|
12
12
|
<li>
|
|
13
13
|
<button
|
|
14
14
|
type="button"
|
|
@@ -17,11 +17,12 @@ Import <%= classify(name) %> in that parent component.
|
|
|
17
17
|
[id]="instanceId + '-button'"
|
|
18
18
|
(click)="toggleSubmenu()"
|
|
19
19
|
>
|
|
20
|
-
|
|
20
|
+
{{ submenuLabel() }}
|
|
21
21
|
</button>
|
|
22
22
|
<ul [id]="instanceId + '-submenu'" [attr.aria-labelledby]="instanceId + '-button'" [hidden]="!expanded()">
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
@for (link of submenuLinks(); track link.href) {
|
|
24
|
+
<li><a [href]="link.href">{{ link.label }}</a></li>
|
|
25
|
+
}
|
|
25
26
|
</ul>
|
|
26
27
|
</li>
|
|
27
28
|
</ul>
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import { Component, signal } from '@angular/core';
|
|
1
|
+
import { Component, input, signal } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
interface <%= classify(name) %>Link {
|
|
4
|
+
label: string;
|
|
5
|
+
href: string;
|
|
6
|
+
}
|
|
2
7
|
|
|
3
8
|
let nextId = 0;
|
|
4
9
|
|
|
@@ -12,6 +17,15 @@ export class <%= classify(name) %> {
|
|
|
12
17
|
protected readonly instanceId = `<%= dasherize(name) %>-${nextId++}`;
|
|
13
18
|
protected readonly expanded = signal(false);
|
|
14
19
|
|
|
20
|
+
readonly label = input('Main');
|
|
21
|
+
readonly homeLabel = input('Home');
|
|
22
|
+
readonly homeHref = input('/');
|
|
23
|
+
readonly submenuLabel = input('Products');
|
|
24
|
+
readonly submenuLinks = input<readonly <%= classify(name) %>Link[]>([
|
|
25
|
+
{ label: 'First product', href: '/products/first' },
|
|
26
|
+
{ label: 'Second product', href: '/products/second' },
|
|
27
|
+
]);
|
|
28
|
+
|
|
15
29
|
protected toggleSubmenu(): void {
|
|
16
30
|
this.expanded.update((value) => !value);
|
|
17
31
|
}
|
|
@@ -9,21 +9,36 @@
|
|
|
9
9
|
"name": {
|
|
10
10
|
"type": "string",
|
|
11
11
|
"description": "The name for the new component. Used to derive the class name, selector, and file names.",
|
|
12
|
-
"$default": {
|
|
12
|
+
"$default": {
|
|
13
|
+
"$source": "argv",
|
|
14
|
+
"index": 0
|
|
15
|
+
},
|
|
13
16
|
"x-prompt": "What name would you like to use for the navigation menu component?"
|
|
14
17
|
},
|
|
18
|
+
"e2e": {
|
|
19
|
+
"type": "boolean",
|
|
20
|
+
"default": false,
|
|
21
|
+
"description": "Generate a Playwright e2e spec for this component. Requires Playwright to be installed/configured in the consuming app."
|
|
22
|
+
},
|
|
15
23
|
"path": {
|
|
16
24
|
"type": "string",
|
|
17
25
|
"format": "path",
|
|
18
|
-
"$default": {
|
|
26
|
+
"$default": {
|
|
27
|
+
"$source": "workingDirectory"
|
|
28
|
+
},
|
|
19
29
|
"description": "The path where the component files should be created, relative to the workspace root. Defaults to the project's source root.",
|
|
20
30
|
"visible": false
|
|
21
31
|
},
|
|
22
32
|
"project": {
|
|
23
33
|
"type": "string",
|
|
24
34
|
"description": "The name of the project to add the component to.",
|
|
25
|
-
"$default": {
|
|
35
|
+
"$default": {
|
|
36
|
+
"$source": "projectName"
|
|
37
|
+
}
|
|
26
38
|
}
|
|
27
39
|
},
|
|
28
|
-
"required": [
|
|
40
|
+
"required": [
|
|
41
|
+
"name",
|
|
42
|
+
"project"
|
|
43
|
+
]
|
|
29
44
|
}
|
package/src/ng-add/index.d.ts
CHANGED
package/src/ng-add/index.js
CHANGED
|
@@ -1,40 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ngAdd = ngAdd;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const PLAYWRIGHT_VERSION = '^1.61.1';
|
|
7
|
-
const TYPES_NODE_VERSION = '^20.11.0';
|
|
8
|
-
function ngAdd(options) {
|
|
9
|
-
const skipRule = () => undefined;
|
|
10
|
-
return (0, schematics_1.chain)([
|
|
11
|
-
options.skipE2e ? skipRule : addPlaywrightDependency,
|
|
12
|
-
options.skipE2e ? skipRule : addPackageScripts,
|
|
13
|
-
addDeliveryVerificationScript,
|
|
14
|
-
options.skipE2e ? skipRule : addPlaywrightConfig,
|
|
15
|
-
options.skipE2e ? skipRule : installPackages,
|
|
16
|
-
]);
|
|
17
|
-
}
|
|
18
|
-
function addPlaywrightDependency(tree) {
|
|
19
|
-
const packageJson = readJson(tree, '/package.json');
|
|
20
|
-
const devDependencies = packageJson.devDependencies ?? {};
|
|
21
|
-
packageJson.devDependencies = {
|
|
22
|
-
...devDependencies,
|
|
23
|
-
'@playwright/test': devDependencies['@playwright/test'] ?? PLAYWRIGHT_VERSION,
|
|
24
|
-
'@types/node': devDependencies['@types/node'] ?? TYPES_NODE_VERSION,
|
|
25
|
-
};
|
|
26
|
-
writeJson(tree, '/package.json', packageJson);
|
|
27
|
-
}
|
|
28
|
-
function addPackageScripts(tree) {
|
|
29
|
-
const packageJson = readJson(tree, '/package.json');
|
|
30
|
-
const scripts = packageJson.scripts ?? {};
|
|
31
|
-
packageJson.scripts = {
|
|
32
|
-
...scripts,
|
|
33
|
-
e2e: scripts.e2e ?? 'playwright test',
|
|
34
|
-
'e2e:ui': scripts['e2e:ui'] ?? 'playwright test --ui',
|
|
35
|
-
'e2e:report': scripts['e2e:report'] ?? 'playwright show-report',
|
|
36
|
-
};
|
|
37
|
-
writeJson(tree, '/package.json', packageJson);
|
|
4
|
+
function ngAdd(_options) {
|
|
5
|
+
return addDeliveryVerificationScript;
|
|
38
6
|
}
|
|
39
7
|
function addDeliveryVerificationScript(tree) {
|
|
40
8
|
const packageJson = readJson(tree, '/package.json');
|
|
@@ -57,44 +25,6 @@ function addDeliveryVerificationScript(tree) {
|
|
|
57
25
|
};
|
|
58
26
|
writeJson(tree, '/package.json', packageJson);
|
|
59
27
|
}
|
|
60
|
-
function addPlaywrightConfig(tree) {
|
|
61
|
-
if (tree.exists('/playwright.config.ts')) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
tree.create('/playwright.config.ts', `/// <reference types="node" />
|
|
65
|
-
|
|
66
|
-
import { defineConfig, devices } from '@playwright/test';
|
|
67
|
-
|
|
68
|
-
export default defineConfig({
|
|
69
|
-
testDir: './src',
|
|
70
|
-
testMatch: '**/*.e2e-spec.ts',
|
|
71
|
-
fullyParallel: true,
|
|
72
|
-
forbidOnly: !!process.env['CI'],
|
|
73
|
-
retries: process.env['CI'] ? 2 : 0,
|
|
74
|
-
workers: process.env['CI'] ? 1 : undefined,
|
|
75
|
-
reporter: 'html',
|
|
76
|
-
use: {
|
|
77
|
-
baseURL: 'http://localhost:4200',
|
|
78
|
-
trace: 'on-first-retry',
|
|
79
|
-
},
|
|
80
|
-
webServer: {
|
|
81
|
-
command: 'npm run start',
|
|
82
|
-
url: 'http://localhost:4200',
|
|
83
|
-
reuseExistingServer: !process.env['CI'],
|
|
84
|
-
timeout: 120 * 1000,
|
|
85
|
-
},
|
|
86
|
-
projects: [
|
|
87
|
-
{
|
|
88
|
-
name: 'chromium',
|
|
89
|
-
use: { ...devices['Desktop Chrome'] },
|
|
90
|
-
},
|
|
91
|
-
],
|
|
92
|
-
});
|
|
93
|
-
`);
|
|
94
|
-
}
|
|
95
|
-
function installPackages(_tree, context) {
|
|
96
|
-
context.addTask(new tasks_1.NodePackageInstallTask());
|
|
97
|
-
}
|
|
98
28
|
function readJson(tree, path) {
|
|
99
29
|
const content = tree.readText(path);
|
|
100
30
|
return JSON.parse(content);
|
package/src/ng-add/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAGA,sBAEC;AAFD,SAAgB,KAAK,CAAC,QAAgB;IACpC,OAAO,6BAA6B,CAAC;AACvC,CAAC;AAED,SAAS,6BAA6B,CAAC,IAAU;IAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;IAE1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS;QACtD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QACvC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;KAC1C,CAAC,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,WAAW,CAAC,OAAO,GAAG;QACpB,GAAG,OAAO;QACV,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;KACpC,CAAC;IAEF,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU,EAAE,IAAY;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwB,CAAC;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,IAAU,EAAE,IAAY,EAAE,KAA0B;IACrE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC"}
|
package/src/ng-add/index.ts
CHANGED
|
@@ -1,47 +1,8 @@
|
|
|
1
|
-
import { Rule,
|
|
2
|
-
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
|
|
1
|
+
import { Rule, Tree } from '@angular-devkit/schematics';
|
|
3
2
|
import { Schema } from './schema';
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export function ngAdd(options: Schema): Rule {
|
|
9
|
-
const skipRule: Rule = () => undefined;
|
|
10
|
-
|
|
11
|
-
return chain([
|
|
12
|
-
options.skipE2e ? skipRule : addPlaywrightDependency,
|
|
13
|
-
options.skipE2e ? skipRule : addPackageScripts,
|
|
14
|
-
addDeliveryVerificationScript,
|
|
15
|
-
options.skipE2e ? skipRule : addPlaywrightConfig,
|
|
16
|
-
options.skipE2e ? skipRule : installPackages,
|
|
17
|
-
]);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function addPlaywrightDependency(tree: Tree): void {
|
|
21
|
-
const packageJson = readJson(tree, '/package.json');
|
|
22
|
-
const devDependencies = packageJson.devDependencies ?? {};
|
|
23
|
-
|
|
24
|
-
packageJson.devDependencies = {
|
|
25
|
-
...devDependencies,
|
|
26
|
-
'@playwright/test': devDependencies['@playwright/test'] ?? PLAYWRIGHT_VERSION,
|
|
27
|
-
'@types/node': devDependencies['@types/node'] ?? TYPES_NODE_VERSION,
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
writeJson(tree, '/package.json', packageJson);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function addPackageScripts(tree: Tree): void {
|
|
34
|
-
const packageJson = readJson(tree, '/package.json');
|
|
35
|
-
const scripts = packageJson.scripts ?? {};
|
|
36
|
-
|
|
37
|
-
packageJson.scripts = {
|
|
38
|
-
...scripts,
|
|
39
|
-
e2e: scripts.e2e ?? 'playwright test',
|
|
40
|
-
'e2e:ui': scripts['e2e:ui'] ?? 'playwright test --ui',
|
|
41
|
-
'e2e:report': scripts['e2e:report'] ?? 'playwright show-report',
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
writeJson(tree, '/package.json', packageJson);
|
|
4
|
+
export function ngAdd(_options: Schema): Rule {
|
|
5
|
+
return addDeliveryVerificationScript;
|
|
45
6
|
}
|
|
46
7
|
|
|
47
8
|
function addDeliveryVerificationScript(tree: Tree): void {
|
|
@@ -71,50 +32,6 @@ function addDeliveryVerificationScript(tree: Tree): void {
|
|
|
71
32
|
writeJson(tree, '/package.json', packageJson);
|
|
72
33
|
}
|
|
73
34
|
|
|
74
|
-
function addPlaywrightConfig(tree: Tree): void {
|
|
75
|
-
if (tree.exists('/playwright.config.ts')) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
tree.create(
|
|
80
|
-
'/playwright.config.ts',
|
|
81
|
-
`/// <reference types="node" />
|
|
82
|
-
|
|
83
|
-
import { defineConfig, devices } from '@playwright/test';
|
|
84
|
-
|
|
85
|
-
export default defineConfig({
|
|
86
|
-
testDir: './src',
|
|
87
|
-
testMatch: '**/*.e2e-spec.ts',
|
|
88
|
-
fullyParallel: true,
|
|
89
|
-
forbidOnly: !!process.env['CI'],
|
|
90
|
-
retries: process.env['CI'] ? 2 : 0,
|
|
91
|
-
workers: process.env['CI'] ? 1 : undefined,
|
|
92
|
-
reporter: 'html',
|
|
93
|
-
use: {
|
|
94
|
-
baseURL: 'http://localhost:4200',
|
|
95
|
-
trace: 'on-first-retry',
|
|
96
|
-
},
|
|
97
|
-
webServer: {
|
|
98
|
-
command: 'npm run start',
|
|
99
|
-
url: 'http://localhost:4200',
|
|
100
|
-
reuseExistingServer: !process.env['CI'],
|
|
101
|
-
timeout: 120 * 1000,
|
|
102
|
-
},
|
|
103
|
-
projects: [
|
|
104
|
-
{
|
|
105
|
-
name: 'chromium',
|
|
106
|
-
use: { ...devices['Desktop Chrome'] },
|
|
107
|
-
},
|
|
108
|
-
],
|
|
109
|
-
});
|
|
110
|
-
`
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
function installPackages(_tree: Tree, context: SchematicContext): void {
|
|
115
|
-
context.addTask(new NodePackageInstallTask());
|
|
116
|
-
}
|
|
117
|
-
|
|
118
35
|
function readJson(tree: Tree, path: string): Record<string, any> {
|
|
119
36
|
const content = tree.readText(path);
|
|
120
37
|
return JSON.parse(content) as Record<string, any>;
|
package/src/ng-add/schema.d.ts
CHANGED
package/src/ng-add/schema.json
CHANGED
|
@@ -11,11 +11,6 @@
|
|
|
11
11
|
"description": "The name of the project to configure.",
|
|
12
12
|
"$default": { "$source": "projectName" }
|
|
13
13
|
},
|
|
14
|
-
"skipE2e": {
|
|
15
|
-
"type": "boolean",
|
|
16
|
-
"default": false,
|
|
17
|
-
"description": "Skip Playwright e2e setup."
|
|
18
|
-
},
|
|
19
14
|
"saveDev": {
|
|
20
15
|
"type": "boolean",
|
|
21
16
|
"default": false,
|