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
package/src/textarea/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 textarea 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,30 +1,10 @@
|
|
|
1
1
|
:host {
|
|
2
|
-
--semmet-color-on-surface: #18181b;
|
|
3
|
-
--semmet-color-inverse-surface: #27272a;
|
|
4
|
-
--semmet-color-inverse-on-surface: #ffffff;
|
|
5
|
-
--semmet-radius-sm: 8px;
|
|
6
|
-
--semmet-space-3xs: 4px;
|
|
7
|
-
--semmet-space-2xs: 8px;
|
|
8
|
-
--semmet-space-xs: 16px;
|
|
9
|
-
--semmet-space-sm: 24px;
|
|
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
|
button {
|
|
20
6
|
font: inherit;
|
|
21
|
-
font-weight: 500;
|
|
22
|
-
color: var(--semmet-color-on-surface);
|
|
23
7
|
background: none;
|
|
24
|
-
border: 1px solid currentColor;
|
|
25
|
-
border-radius: var(--semmet-radius-sm);
|
|
26
|
-
min-height: var(--semmet-target-md);
|
|
27
|
-
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
28
8
|
cursor: pointer;
|
|
29
9
|
}
|
|
30
10
|
|
|
@@ -36,27 +16,13 @@ button:focus-visible {
|
|
|
36
16
|
[role='status'] {
|
|
37
17
|
position: fixed;
|
|
38
18
|
left: 50%;
|
|
39
|
-
bottom:
|
|
19
|
+
bottom: 0;
|
|
40
20
|
transform: translateX(-50%);
|
|
41
21
|
display: flex;
|
|
42
22
|
align-items: center;
|
|
43
|
-
gap: var(--semmet-space-xs);
|
|
44
|
-
padding: var(--semmet-space-xs);
|
|
45
|
-
color: var(--semmet-color-inverse-on-surface);
|
|
46
|
-
background: var(--semmet-color-inverse-surface);
|
|
47
|
-
border-radius: var(--semmet-radius-sm);
|
|
48
|
-
box-shadow: var(--semmet-elevation-3);
|
|
49
23
|
}
|
|
50
24
|
|
|
51
25
|
[role='status'] button {
|
|
52
|
-
font-size: 1.125rem;
|
|
53
|
-
line-height: 1;
|
|
54
26
|
color: inherit;
|
|
55
27
|
border: none;
|
|
56
|
-
padding: var(--semmet-space-3xs) var(--semmet-space-2xs);
|
|
57
|
-
transition: background-color var(--semmet-motion);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
[role='status'] button:hover {
|
|
61
|
-
background: color-mix(in srgb, var(--semmet-color-inverse-on-surface) 20%, transparent);
|
|
62
28
|
}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Usage from a parent component template:
|
|
4
4
|
Import <%= classify(name) %> in that parent component.
|
|
5
5
|
|
|
6
|
-
<<%= selector %> />
|
|
6
|
+
<<%= selector %> triggerLabel="Save" message="Your changes have been saved." />
|
|
7
7
|
-->
|
|
8
|
-
<button type="button" (click)="show()">
|
|
8
|
+
<button type="button" (click)="show()">{{ triggerLabel() }}</button>
|
|
9
9
|
|
|
10
10
|
@if (visible()) {
|
|
11
11
|
<div role="status" [id]="instanceId">
|
|
12
|
-
<span>
|
|
13
|
-
<button type="button" (click)="dismiss()" aria-label="
|
|
12
|
+
<span>{{ message() }}</span>
|
|
13
|
+
<button type="button" (click)="dismiss()" [attr.aria-label]="dismissLabel()">×</button>
|
|
14
14
|
</div>
|
|
15
15
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, DestroyRef, inject, signal } from '@angular/core';
|
|
1
|
+
import { Component, DestroyRef, inject, input, signal } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
const AUTO_DISMISS_MS = 5000;
|
|
4
4
|
|
|
@@ -16,6 +16,10 @@ export class <%= classify(name) %> {
|
|
|
16
16
|
protected readonly instanceId = `<%= dasherize(name) %>-${nextId++}`;
|
|
17
17
|
protected readonly visible = signal(false);
|
|
18
18
|
|
|
19
|
+
readonly triggerLabel = input('Save');
|
|
20
|
+
readonly message = input('Your changes have been saved.');
|
|
21
|
+
readonly dismissLabel = input('Dismiss');
|
|
22
|
+
|
|
19
23
|
constructor() {
|
|
20
24
|
inject(DestroyRef).onDestroy(() => clearTimeout(this.dismissTimeout));
|
|
21
25
|
}
|
package/src/toast/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 toast 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,53 +1,19 @@
|
|
|
1
1
|
:host {
|
|
2
|
-
--semmet-color-primary: #18181b;
|
|
3
|
-
--semmet-color-on-primary: #ffffff;
|
|
4
|
-
--semmet-color-surface: #ffffff;
|
|
5
|
-
--semmet-color-outline: #d4d4d8;
|
|
6
|
-
--semmet-color-on-surface: #18181b;
|
|
7
|
-
--semmet-radius-sm: 8px;
|
|
8
|
-
--semmet-space-3xs: 4px;
|
|
9
|
-
--semmet-space-2xs: 8px;
|
|
10
|
-
--semmet-space-xs: 16px;
|
|
11
|
-
--semmet-target-md: 40px;
|
|
12
|
-
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
13
|
-
|
|
14
2
|
display: inline-block;
|
|
15
|
-
font-family: Roboto, system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
16
|
-
font-size: 0.9375rem;
|
|
17
3
|
}
|
|
18
4
|
|
|
19
5
|
[role='toolbar'] {
|
|
20
6
|
display: inline-flex;
|
|
21
|
-
gap: var(--semmet-space-3xs);
|
|
22
|
-
padding: var(--semmet-space-3xs);
|
|
23
|
-
background: var(--semmet-color-surface);
|
|
24
|
-
border: 1px solid var(--semmet-color-outline);
|
|
25
|
-
border-radius: var(--semmet-radius-sm);
|
|
26
7
|
}
|
|
27
8
|
|
|
28
9
|
button {
|
|
29
10
|
font: inherit;
|
|
30
|
-
font-weight: 500;
|
|
31
|
-
color: var(--semmet-color-on-surface);
|
|
32
11
|
background: none;
|
|
33
12
|
border: none;
|
|
34
|
-
border-radius: 6px;
|
|
35
|
-
min-height: var(--semmet-target-md);
|
|
36
|
-
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
37
13
|
cursor: pointer;
|
|
38
|
-
transition: background-color var(--semmet-motion), color var(--semmet-motion);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
button:hover {
|
|
42
|
-
background: color-mix(in srgb, var(--semmet-color-on-surface) 6%, transparent);
|
|
43
14
|
}
|
|
44
15
|
|
|
45
16
|
button:focus-visible {
|
|
46
|
-
outline: 2px solid
|
|
47
|
-
outline-offset:
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
button[aria-pressed='true'] {
|
|
51
|
-
background: var(--semmet-color-primary);
|
|
52
|
-
color: var(--semmet-color-on-primary);
|
|
17
|
+
outline: 2px solid currentColor;
|
|
18
|
+
outline-offset: 2px;
|
|
53
19
|
}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Usage from a parent component template:
|
|
4
4
|
Import <%= classify(name) %> in that parent component.
|
|
5
5
|
|
|
6
|
-
<<%= selector %> />
|
|
6
|
+
<<%= selector %> label="Text formatting" [actions]="formattingActions" />
|
|
7
7
|
-->
|
|
8
|
-
<div role="toolbar" aria-label="
|
|
9
|
-
@for (action of actions; track action.id; let i = $index) {
|
|
8
|
+
<div role="toolbar" [attr.aria-label]="label()">
|
|
9
|
+
@for (action of actions(); track action.id; let i = $index) {
|
|
10
10
|
<button
|
|
11
11
|
#toolbarButton
|
|
12
12
|
type="button"
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { Component, ElementRef, signal, viewChildren } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, input, signal, viewChildren } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
interface <%= classify(name) %>Action {
|
|
4
4
|
id: number;
|
|
5
5
|
label: string;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
const DEFAULT_ACTIONS: readonly <%= classify(name) %>Action[] = [
|
|
9
|
+
{ id: 1, label: 'Bold' },
|
|
10
|
+
{ id: 2, label: 'Italic' },
|
|
11
|
+
{ id: 3, label: 'Underline' },
|
|
12
|
+
];
|
|
13
|
+
|
|
8
14
|
@Component({
|
|
9
15
|
selector: '<%= selector %>',
|
|
10
16
|
imports: [],
|
|
@@ -14,13 +20,10 @@ interface <%= classify(name) %>Action {
|
|
|
14
20
|
export class <%= classify(name) %> {
|
|
15
21
|
private readonly buttons = viewChildren<ElementRef<HTMLButtonElement>>('toolbarButton');
|
|
16
22
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
{ id: 2, label: 'Italic' },
|
|
20
|
-
{ id: 3, label: 'Underline' },
|
|
21
|
-
];
|
|
23
|
+
readonly label = input('Text formatting');
|
|
24
|
+
readonly actions = input<readonly <%= classify(name) %>Action[]>(DEFAULT_ACTIONS);
|
|
22
25
|
|
|
23
|
-
protected readonly activeId = signal(
|
|
26
|
+
protected readonly activeId = signal(DEFAULT_ACTIONS[0].id);
|
|
24
27
|
|
|
25
28
|
private readonly pressedIds = signal<ReadonlySet<number>>(new Set());
|
|
26
29
|
|
|
@@ -65,7 +68,7 @@ export class <%= classify(name) %> {
|
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
event.preventDefault();
|
|
68
|
-
this.activeId.set(this.actions[nextIndex].id);
|
|
71
|
+
this.activeId.set(this.actions()[nextIndex].id);
|
|
69
72
|
items[nextIndex].nativeElement.focus();
|
|
70
73
|
}
|
|
71
74
|
}
|
package/src/toolbar/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 toolbar 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,39 +1,16 @@
|
|
|
1
1
|
:host {
|
|
2
|
-
--semmet-color-primary: #18181b;
|
|
3
|
-
--semmet-color-inverse-surface: #27272a;
|
|
4
|
-
--semmet-color-inverse-on-surface: #ffffff;
|
|
5
|
-
--semmet-radius-sm: 6px;
|
|
6
|
-
--semmet-space-2xs: 8px;
|
|
7
|
-
--semmet-space-xs: 16px;
|
|
8
|
-
--semmet-target-md: 40px;
|
|
9
|
-
--semmet-elevation-1: 0 1px 2px rgba(20, 24, 23, 0.1), 0 1px 1px rgba(20, 24, 23, 0.06);
|
|
10
|
-
--semmet-motion: 120ms cubic-bezier(0.2, 0, 0, 1);
|
|
11
|
-
|
|
12
2
|
position: relative;
|
|
13
3
|
display: inline-block;
|
|
14
|
-
font-family: Roboto, system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
15
|
-
font-size: 0.9375rem;
|
|
16
4
|
}
|
|
17
5
|
|
|
18
6
|
button {
|
|
19
7
|
font: inherit;
|
|
20
|
-
font-weight: 500;
|
|
21
|
-
color: var(--semmet-color-primary);
|
|
22
8
|
background: none;
|
|
23
|
-
border: 1px solid currentColor;
|
|
24
|
-
border-radius: var(--semmet-radius-sm);
|
|
25
|
-
min-height: var(--semmet-target-md);
|
|
26
|
-
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
27
9
|
cursor: pointer;
|
|
28
|
-
transition: background-color var(--semmet-motion);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
button:hover {
|
|
32
|
-
background: color-mix(in srgb, var(--semmet-color-primary) 8%, transparent);
|
|
33
10
|
}
|
|
34
11
|
|
|
35
12
|
button:focus-visible {
|
|
36
|
-
outline: 2px solid
|
|
13
|
+
outline: 2px solid currentColor;
|
|
37
14
|
outline-offset: 2px;
|
|
38
15
|
}
|
|
39
16
|
|
|
@@ -41,13 +18,5 @@ button:focus-visible {
|
|
|
41
18
|
position: absolute;
|
|
42
19
|
bottom: 100%;
|
|
43
20
|
left: 0;
|
|
44
|
-
margin-bottom: var(--semmet-space-2xs);
|
|
45
|
-
padding: var(--semmet-space-2xs);
|
|
46
|
-
border-radius: var(--semmet-radius-sm);
|
|
47
|
-
background: var(--semmet-color-inverse-surface);
|
|
48
|
-
color: var(--semmet-color-inverse-on-surface);
|
|
49
|
-
font-size: 0.8125rem;
|
|
50
|
-
line-height: 1.4;
|
|
51
21
|
white-space: nowrap;
|
|
52
|
-
box-shadow: var(--semmet-elevation-1);
|
|
53
22
|
}
|
package/src/tooltip/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 tooltip 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,17 +1,5 @@
|
|
|
1
1
|
:host {
|
|
2
|
-
--semmet-color-primary: #18181b;
|
|
3
|
-
--semmet-color-on-surface: #18181b;
|
|
4
|
-
--semmet-color-on-surface-variant: #52525b;
|
|
5
|
-
--semmet-radius-sm: 6px;
|
|
6
|
-
--semmet-space-2xs: 8px;
|
|
7
|
-
--semmet-space-sm: 24px;
|
|
8
|
-
--semmet-target-md: 40px;
|
|
9
|
-
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
10
|
-
|
|
11
2
|
display: block;
|
|
12
|
-
font-family: Roboto, system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
13
|
-
font-size: 0.9375rem;
|
|
14
|
-
color: var(--semmet-color-on-surface);
|
|
15
3
|
}
|
|
16
4
|
|
|
17
5
|
[role='tree'],
|
|
@@ -22,27 +10,18 @@
|
|
|
22
10
|
}
|
|
23
11
|
|
|
24
12
|
[role='group'] {
|
|
25
|
-
padding-left:
|
|
13
|
+
padding-left: 1rem;
|
|
26
14
|
}
|
|
27
15
|
|
|
28
16
|
[role='treeitem'] {
|
|
29
17
|
display: flex;
|
|
30
18
|
align-items: center;
|
|
31
|
-
gap: var(--semmet-space-2xs);
|
|
32
|
-
min-height: var(--semmet-target-md);
|
|
33
|
-
padding: var(--semmet-space-2xs);
|
|
34
|
-
border-radius: var(--semmet-radius-sm);
|
|
35
19
|
cursor: pointer;
|
|
36
|
-
transition: background-color var(--semmet-motion);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
[role='treeitem']:hover {
|
|
40
|
-
background: color-mix(in srgb, var(--semmet-color-on-surface) 6%, transparent);
|
|
41
20
|
}
|
|
42
21
|
|
|
43
22
|
[role='treeitem']:focus-visible {
|
|
44
|
-
outline: 2px solid
|
|
45
|
-
outline-offset:
|
|
23
|
+
outline: 2px solid currentColor;
|
|
24
|
+
outline-offset: 2px;
|
|
46
25
|
}
|
|
47
26
|
|
|
48
27
|
[role='treeitem'][aria-expanded]::before {
|
|
@@ -50,10 +29,9 @@
|
|
|
50
29
|
width: 0.4rem;
|
|
51
30
|
height: 0.4rem;
|
|
52
31
|
flex-shrink: 0;
|
|
53
|
-
border-right: 2px solid
|
|
54
|
-
border-bottom: 2px solid
|
|
32
|
+
border-right: 2px solid currentColor;
|
|
33
|
+
border-bottom: 2px solid currentColor;
|
|
55
34
|
transform: rotate(-45deg);
|
|
56
|
-
transition: transform var(--semmet-motion);
|
|
57
35
|
}
|
|
58
36
|
|
|
59
37
|
[role='treeitem'][aria-expanded='true']::before {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Usage from a parent component template:
|
|
4
4
|
Import <%= classify(name) %> in that parent component.
|
|
5
5
|
|
|
6
|
-
<<%= selector %> />
|
|
6
|
+
<<%= selector %> label="Files" [tree]="fileTree" />
|
|
7
7
|
-->
|
|
8
|
-
<ul role="tree" aria-label="
|
|
9
|
-
@for (root of tree; track root.id) {
|
|
8
|
+
<ul role="tree" [attr.aria-label]="label()">
|
|
9
|
+
@for (root of tree(); track root.id) {
|
|
10
10
|
<li
|
|
11
11
|
#treeItem
|
|
12
12
|
role="treeitem"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ElementRef, computed, signal, viewChildren } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, computed, input, signal, viewChildren } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
interface <%= classify(name) %>Node {
|
|
4
4
|
id: number;
|
|
@@ -11,6 +11,17 @@ interface VisibleNode {
|
|
|
11
11
|
parentId: number | null;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
const DEFAULT_TREE: readonly <%= classify(name) %>Node[] = [
|
|
15
|
+
{
|
|
16
|
+
id: 1,
|
|
17
|
+
label: 'Documents',
|
|
18
|
+
children: [
|
|
19
|
+
{ id: 2, label: 'Resume.pdf' },
|
|
20
|
+
{ id: 3, label: 'Cover Letter.docx' },
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
|
|
14
25
|
@Component({
|
|
15
26
|
selector: '<%= selector %>',
|
|
16
27
|
imports: [],
|
|
@@ -20,23 +31,15 @@ interface VisibleNode {
|
|
|
20
31
|
export class <%= classify(name) %> {
|
|
21
32
|
private readonly treeItems = viewChildren<ElementRef<HTMLElement>>('treeItem');
|
|
22
33
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
id: 1,
|
|
26
|
-
label: 'Documents',
|
|
27
|
-
children: [
|
|
28
|
-
{ id: 2, label: 'Resume.pdf' },
|
|
29
|
-
{ id: 3, label: 'Cover Letter.docx' },
|
|
30
|
-
],
|
|
31
|
-
},
|
|
32
|
-
];
|
|
34
|
+
readonly label = input('Files');
|
|
35
|
+
readonly tree = input<readonly <%= classify(name) %>Node[]>(DEFAULT_TREE);
|
|
33
36
|
|
|
34
37
|
private readonly expandedIds = signal<ReadonlySet<number>>(new Set([1]));
|
|
35
38
|
protected readonly activeId = signal(1);
|
|
36
39
|
|
|
37
40
|
protected readonly visibleNodes = computed<VisibleNode[]>(() => {
|
|
38
41
|
const result: VisibleNode[] = [];
|
|
39
|
-
const walk = (nodes: <%= classify(name) %>Node[], parentId: number | null): void => {
|
|
42
|
+
const walk = (nodes: readonly <%= classify(name) %>Node[], parentId: number | null): void => {
|
|
40
43
|
for (const node of nodes) {
|
|
41
44
|
result.push({ node, parentId });
|
|
42
45
|
if (node.children && this.expandedIds().has(node.id)) {
|
|
@@ -44,7 +47,7 @@ export class <%= classify(name) %> {
|
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
49
|
};
|
|
47
|
-
walk(this.tree, null);
|
|
50
|
+
walk(this.tree(), null);
|
|
48
51
|
return result;
|
|
49
52
|
});
|
|
50
53
|
|
|
@@ -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 tree view 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
|
}
|
|
@@ -15,7 +15,8 @@ const validation_1 = require("@schematics/angular/utility/validation");
|
|
|
15
15
|
function createAriaComponentSchematic(config = {}) {
|
|
16
16
|
return (0, project_1.createProjectSchematic)((options, { project }) => {
|
|
17
17
|
const includeSharedUnitTest = config.includeSharedUnitTest ?? true;
|
|
18
|
-
const
|
|
18
|
+
const includeE2eTest = options.e2e ?? false;
|
|
19
|
+
const includeSharedE2eTest = (config.includeSharedE2eTest ?? true) && includeE2eTest;
|
|
19
20
|
options.path ??= (0, workspace_1.buildDefaultPath)(project);
|
|
20
21
|
const parsedPath = (0, parse_name_1.parseName)(options.path, options.name);
|
|
21
22
|
const name = parsedPath.name;
|
|
@@ -23,6 +24,7 @@ function createAriaComponentSchematic(config = {}) {
|
|
|
23
24
|
(0, validation_1.validateHtmlSelector)(selector);
|
|
24
25
|
(0, validation_1.validateClassName)(core_1.strings.classify(name));
|
|
25
26
|
const componentTemplateSource = (0, schematics_1.apply)((0, schematics_1.url)('./files'), [
|
|
27
|
+
(0, schematics_1.filter)((path) => !path.endsWith('.e2e-spec.ts.template') || includeE2eTest),
|
|
26
28
|
(0, schematics_1.applyTemplates)({ ...core_1.strings, name, selector }),
|
|
27
29
|
(0, schematics_1.move)(parsedPath.path),
|
|
28
30
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-component.js","sourceRoot":"","sources":["generate-component.ts"],"names":[],"mappings":";;AAkBA,
|
|
1
|
+
{"version":3,"file":"generate-component.js","sourceRoot":"","sources":["generate-component.ts"],"names":[],"mappings":";;AAkBA,oEAwCC;AA1DD,2DAA8G;AAC9G,+CAA+C;AAC/C,iEAA6E;AAC7E,qEAAyE;AACzE,uEAAmE;AACnE,uEAAiG;AAQjG;;;;GAIG;AACH,SAAgB,4BAA4B,CAAC,SAAuC,EAAE;IACpF,OAAO,IAAA,gCAAsB,EAA4B,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChF,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAAC;QACnE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC;QAC5C,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAC,oBAAoB,IAAI,IAAI,CAAC,IAAI,cAAc,CAAC;QACrF,OAAO,CAAC,IAAI,KAAK,IAAA,4BAAgB,EAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,IAAA,sBAAS,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAE7B,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,cAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3F,IAAA,iCAAoB,EAAC,QAAQ,CAAC,CAAC;QAC/B,IAAA,8BAAiB,EAAC,cAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1C,MAAM,uBAAuB,GAAG,IAAA,kBAAK,EAAC,IAAA,gBAAG,EAAC,SAAS,CAAC,EAAE;YACpD,IAAA,mBAAM,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,cAAc,CAAC;YAC3E,IAAA,2BAAc,EAAC,EAAE,GAAG,cAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC9C,IAAA,iBAAI,EAAC,UAAU,CAAC,IAAI,CAAC;SACtB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,IAAA,sBAAS,EAAC,uBAAuB,CAAC,CAAC,CAAC;QAEnD,IAAI,qBAAqB,IAAI,oBAAoB,EAAE,CAAC;YAClD,MAAM,kBAAkB,GAAG,IAAA,kBAAK,EAAC,IAAA,gBAAG,EAAC,+BAA+B,CAAC,EAAE;gBACrE,IAAA,mBAAM,EAAC,CAAC,IAAI,EAAE,EAAE;oBACd,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;wBACvC,OAAO,qBAAqB,CAAC;oBAC/B,CAAC;oBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;wBAC3C,OAAO,oBAAoB,CAAC;oBAC9B,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;gBACF,IAAA,2BAAc,EAAC,EAAE,GAAG,cAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC9C,IAAA,iBAAI,EAAC,UAAU,CAAC,IAAI,CAAC;aACtB,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAA,sBAAS,EAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAA,kBAAK,EAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -19,7 +19,8 @@ interface AriaComponentSchematicConfig {
|
|
|
19
19
|
export function createAriaComponentSchematic(config: AriaComponentSchematicConfig = {}): (options: ComponentSchematicOptions) => Rule {
|
|
20
20
|
return createProjectSchematic<ComponentSchematicOptions>((options, { project }) => {
|
|
21
21
|
const includeSharedUnitTest = config.includeSharedUnitTest ?? true;
|
|
22
|
-
const
|
|
22
|
+
const includeE2eTest = options.e2e ?? false;
|
|
23
|
+
const includeSharedE2eTest = (config.includeSharedE2eTest ?? true) && includeE2eTest;
|
|
23
24
|
options.path ??= buildDefaultPath(project);
|
|
24
25
|
|
|
25
26
|
const parsedPath = parseName(options.path, options.name);
|
|
@@ -30,6 +31,7 @@ export function createAriaComponentSchematic(config: AriaComponentSchematicConfi
|
|
|
30
31
|
validateClassName(strings.classify(name));
|
|
31
32
|
|
|
32
33
|
const componentTemplateSource = apply(url('./files'), [
|
|
34
|
+
filter((path) => !path.endsWith('.e2e-spec.ts.template') || includeE2eTest),
|
|
33
35
|
applyTemplates({ ...strings, name, selector }),
|
|
34
36
|
move(parsedPath.path),
|
|
35
37
|
]);
|
|
@@ -40,7 +40,6 @@ function getSupportingComponent(kind) {
|
|
|
40
40
|
case 'section-table':
|
|
41
41
|
return { templatePath: '../table/files', variable: 'table' };
|
|
42
42
|
case 'header-navbar':
|
|
43
|
-
case 'footer-navigation':
|
|
44
43
|
return { templatePath: '../navbar/files', variable: 'navbar' };
|
|
45
44
|
case 'section-form':
|
|
46
45
|
return { templatePath: '../form/files', variable: 'form' };
|