@salesforce/templates 66.13.3 → 66.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/templates/project/angularextapp/CHANGELOG.md +40 -0
- package/lib/templates/project/angularextapp/_p_/_m_/_w_/_a_/package-lock.json +199 -203
- package/lib/templates/project/angularextapp/package.json +1 -1
- package/lib/templates/project/angularintapp/_p_/_m_/_w_/_a_/package-lock.json +202 -206
- package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/package-lock.json +170 -177
- package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/package-lock.json +170 -177
- package/lib/templates/uiBundles/angularbasic/.graphqlrc.yml +2 -0
- package/lib/templates/uiBundles/angularbasic/angular.json +7 -2
- package/lib/templates/uiBundles/angularbasic/codegen.yml +95 -0
- package/lib/templates/uiBundles/angularbasic/esbuild/graphql-codegen.mjs +13 -0
- package/lib/templates/uiBundles/angularbasic/package-lock.json +445 -358
- package/lib/templates/uiBundles/angularbasic/package.json +9 -2
- package/lib/templates/uiBundles/angularbasic/scripts/get-graphql-schema.mjs +69 -0
- package/lib/templates/uiBundles/angularbasic/src/app/app.routes.ts +3 -3
- package/lib/templates/uiBundles/angularbasic/src/app/components/layout/app-layout/{app-layout.component.spec.ts → app-layout.spec.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/layout/app-layout/{app-layout.component.ts → app-layout.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/alert/{alert.component.ts → alert.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/button/{button.component.ts → button.ts} +2 -2
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/card/{card.component.ts → card.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/collapsible/{collapsible.component.ts → collapsible.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/date-picker/{date-picker.component.ts → date-picker.ts} +2 -2
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/date-range-picker/{date-range-picker.component.ts → date-range-picker.ts} +2 -2
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/dialog/{dialog.component.ts → dialog.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/field/{field.component.ts → field.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/input/{input.component.ts → input.ts} +2 -2
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/label/{label.component.ts → label.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/paginator/{paginator.component.ts → paginator.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/popover/{popover.component.ts → popover.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/select/{select.component.ts → select.ts} +2 -2
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/separator/{separator.component.ts → separator.ts} +2 -2
- package/lib/templates/uiBundles/angularbasic/src/app/components/ui/skeleton/{skeleton.component.ts → skeleton.ts} +2 -2
- package/lib/templates/uiBundles/angularbasic/src/app/pages/home/{home.component.spec.ts → home.spec.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/pages/home/{home.component.ts → home.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/pages/not-found/{not-found.component.spec.ts → not-found.spec.ts} +1 -1
- package/lib/templates/uiBundles/angularbasic/src/app/pages/not-found/{not-found.component.ts → not-found.ts} +1 -1
- package/lib/templates/uiBundles/reactbasic/package-lock.json +170 -177
- package/package.json +5 -5
- /package/lib/templates/uiBundles/angularbasic/src/app/components/layout/app-layout/{app-layout.component.html → app-layout.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/alert/{alert.component.html → alert.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/button/{button.component.html → button.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/button/{button.component.scss → button.scss} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/card/{card.component.scss → card.scss} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/collapsible/{collapsible.component.html → collapsible.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/date-picker/{date-picker.component.html → date-picker.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/date-picker/{date-picker.component.scss → date-picker.scss} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/date-range-picker/{date-range-picker.component.html → date-range-picker.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/date-range-picker/{date-range-picker.component.scss → date-range-picker.scss} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/dialog/{dialog.component.html → dialog.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/field/{field.component.html → field.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/input/{input.component.html → input.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/input/{input.component.scss → input.scss} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/label/{label.component.html → label.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/paginator/{paginator.component.html → paginator.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/popover/{popover.component.html → popover.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/select/{select.component.html → select.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/select/{select.component.scss → select.scss} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/separator/{separator.component.html → separator.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/separator/{separator.component.scss → separator.scss} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/skeleton/{skeleton.component.html → skeleton.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/skeleton/{skeleton.component.scss → skeleton.scss} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/components/ui/spinner/{spinner.component.ts → spinner.ts} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/pages/home/{home.component.html → home.html} +0 -0
- /package/lib/templates/uiBundles/angularbasic/src/app/pages/not-found/{not-found.component.html → not-found.html} +0 -0
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
"test": "ng test",
|
|
15
15
|
"lint": "ng lint",
|
|
16
16
|
"build:e2e": "ng build && node scripts/rewrite-e2e-assets.mjs",
|
|
17
|
-
"e2e": "playwright test"
|
|
17
|
+
"e2e": "playwright test",
|
|
18
|
+
"graphql:schema": "node scripts/get-graphql-schema.mjs",
|
|
19
|
+
"graphql:codegen": "graphql-codegen"
|
|
18
20
|
},
|
|
19
21
|
"dependencies": {
|
|
20
22
|
"@angular/animations": "^21.2.0",
|
|
@@ -48,7 +50,12 @@
|
|
|
48
50
|
"tailwindcss": "^4.0.0",
|
|
49
51
|
"typescript": "~5.9.2",
|
|
50
52
|
"typescript-eslint": "^8.0.0",
|
|
51
|
-
"vitest": "^4.1.0"
|
|
53
|
+
"vitest": "^4.1.0",
|
|
54
|
+
"@graphql-codegen/cli": "^6.1.0",
|
|
55
|
+
"@graphql-codegen/typescript-operations": "^5.0.6",
|
|
56
|
+
"graphql": "^16.11.0",
|
|
57
|
+
"graphql-codegen-typescript-operation-types": "^2.0.2",
|
|
58
|
+
"@graphql-eslint/eslint-plugin": "^4.1.0"
|
|
52
59
|
},
|
|
53
60
|
"overrides": {
|
|
54
61
|
"undici": "^7.28.0"
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Downloads the full GraphQL schema from a connected Salesforce org via introspection.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* npm run graphql:schema
|
|
6
|
+
* node scripts/get-graphql-schema.mjs [output-path]
|
|
7
|
+
*
|
|
8
|
+
* The default output path matches the schema location expected by codegen.yml
|
|
9
|
+
* and .graphqlrc.yml so that codegen and IDE tooling resolve it automatically.
|
|
10
|
+
*/
|
|
11
|
+
import { writeFileSync } from 'node:fs';
|
|
12
|
+
import { resolve } from 'node:path';
|
|
13
|
+
import { getOrgInfo } from '@salesforce/ui-bundle/app';
|
|
14
|
+
import { buildClientSchema, getIntrospectionQuery, printSchema } from 'graphql';
|
|
15
|
+
import { pruneSchema } from '@graphql-tools/utils';
|
|
16
|
+
|
|
17
|
+
const DEFAULT_SCHEMA_PATH = '../../../../../schema.graphql';
|
|
18
|
+
const TARGET_ORG = process.env.SF_TARGET_ORG || undefined;
|
|
19
|
+
|
|
20
|
+
async function executeSalesforceGraphQLQuery(query, variables, operationName) {
|
|
21
|
+
const orgInfo = await getOrgInfo(TARGET_ORG);
|
|
22
|
+
if (!orgInfo) {
|
|
23
|
+
throw new Error('Could not resolve a Salesforce org. Set SF_TARGET_ORG or a default org.');
|
|
24
|
+
}
|
|
25
|
+
const { rawInstanceUrl: instanceUrl, apiVersion, accessToken } = orgInfo;
|
|
26
|
+
|
|
27
|
+
const targetUrl = `${instanceUrl}/services/data/v${apiVersion}/graphql`;
|
|
28
|
+
|
|
29
|
+
console.log(`Executing introspection query against ${targetUrl}`);
|
|
30
|
+
const response = await fetch(targetUrl, {
|
|
31
|
+
method: 'POST',
|
|
32
|
+
headers: {
|
|
33
|
+
Authorization: `Bearer ${accessToken}`,
|
|
34
|
+
'Content-Type': 'application/json',
|
|
35
|
+
'X-Chatter-Entity-Encoding': 'false',
|
|
36
|
+
},
|
|
37
|
+
body: JSON.stringify({ query, variables, operationName }),
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
if (!response.ok) {
|
|
41
|
+
const errorText = await response.text();
|
|
42
|
+
throw new Error(
|
|
43
|
+
`Salesforce GraphQL request failed: ${response.status} ${response.statusText} - ${errorText}`,
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return response.json();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
const outputPath = resolve(process.argv[2] || DEFAULT_SCHEMA_PATH);
|
|
52
|
+
|
|
53
|
+
const introspectionResult = await executeSalesforceGraphQLQuery(
|
|
54
|
+
getIntrospectionQuery(),
|
|
55
|
+
{},
|
|
56
|
+
'IntrospectionQuery',
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
const schema = buildClientSchema(introspectionResult.data);
|
|
60
|
+
const prunedSchema = pruneSchema(schema);
|
|
61
|
+
const sdl = printSchema(prunedSchema);
|
|
62
|
+
|
|
63
|
+
writeFileSync(outputPath, sdl);
|
|
64
|
+
|
|
65
|
+
console.log(`Schema saved to ${outputPath}`);
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.error('Error:', error.message);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
6
|
import { Routes } from '@angular/router';
|
|
7
|
-
import { AppLayoutComponent } from './components/layout/app-layout/app-layout
|
|
8
|
-
import { HomeComponent } from './pages/home/home
|
|
9
|
-
import { NotFoundComponent } from './pages/not-found/not-found
|
|
7
|
+
import { AppLayoutComponent } from './components/layout/app-layout/app-layout';
|
|
8
|
+
import { HomeComponent } from './pages/home/home';
|
|
9
|
+
import { NotFoundComponent } from './pages/not-found/not-found';
|
|
10
10
|
|
|
11
11
|
export const routes: Routes = [
|
|
12
12
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TestBed } from '@angular/core/testing';
|
|
2
2
|
import { provideRouter } from '@angular/router';
|
|
3
|
-
import { AppLayoutComponent } from './app-layout
|
|
3
|
+
import { AppLayoutComponent } from './app-layout';
|
|
4
4
|
|
|
5
5
|
describe('AppLayoutComponent', () => {
|
|
6
6
|
beforeEach(async () => {
|
|
@@ -10,7 +10,7 @@ import { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';
|
|
|
10
10
|
selector: 'app-layout',
|
|
11
11
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12
12
|
imports: [RouterLink, RouterLinkActive, RouterOutlet],
|
|
13
|
-
templateUrl: './app-layout.
|
|
13
|
+
templateUrl: './app-layout.html',
|
|
14
14
|
})
|
|
15
15
|
export class AppLayoutComponent {
|
|
16
16
|
readonly isOpen = signal(false);
|
|
@@ -21,7 +21,7 @@ const VARIANT_CLASSES: Record<AppAlertVariant, string> = {
|
|
|
21
21
|
selector: 'app-alert',
|
|
22
22
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
23
23
|
imports: [MatIconModule],
|
|
24
|
-
templateUrl: './alert.
|
|
24
|
+
templateUrl: './alert.html',
|
|
25
25
|
host: {
|
|
26
26
|
'data-slot': 'alert',
|
|
27
27
|
role: 'alert',
|
|
@@ -30,8 +30,8 @@ export type AppButtonSize =
|
|
|
30
30
|
selector: 'app-button',
|
|
31
31
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
32
|
imports: [MatButtonModule, MatIconModule],
|
|
33
|
-
templateUrl: './button.
|
|
34
|
-
styleUrl: './button.
|
|
33
|
+
templateUrl: './button.html',
|
|
34
|
+
styleUrl: './button.scss',
|
|
35
35
|
})
|
|
36
36
|
export class ButtonComponent {
|
|
37
37
|
readonly appearance = input<AppButtonAppearance>('filled');
|
|
@@ -26,7 +26,7 @@ export type AppCardSize = 'default' | 'sm';
|
|
|
26
26
|
imports: [MatCard],
|
|
27
27
|
template:
|
|
28
28
|
'<mat-card appearance="outlined" [class]="classes()" [class.app-card-sm]="size() === \'sm\'"><ng-content /></mat-card>',
|
|
29
|
-
styleUrl: './card.
|
|
29
|
+
styleUrl: './card.scss',
|
|
30
30
|
})
|
|
31
31
|
export class CardComponent {
|
|
32
32
|
readonly size = input<AppCardSize>('default');
|
|
@@ -15,7 +15,7 @@ import { MatExpansionModule } from '@angular/material/expansion';
|
|
|
15
15
|
selector: 'app-collapsible',
|
|
16
16
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17
17
|
imports: [MatExpansionModule],
|
|
18
|
-
templateUrl: './collapsible.
|
|
18
|
+
templateUrl: './collapsible.html',
|
|
19
19
|
})
|
|
20
20
|
export class CollapsibleComponent {
|
|
21
21
|
/** Two-way bindable expanded state. Supports `[(open)]`. */
|
|
@@ -18,8 +18,8 @@ import type { AppFieldSize } from '../field-size';
|
|
|
18
18
|
selector: 'app-date-picker',
|
|
19
19
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
20
20
|
imports: [FormsModule, MatDatepickerModule, MatFormFieldModule, MatInputModule],
|
|
21
|
-
templateUrl: './date-picker.
|
|
22
|
-
styleUrl: './date-picker.
|
|
21
|
+
templateUrl: './date-picker.html',
|
|
22
|
+
styleUrl: './date-picker.scss',
|
|
23
23
|
})
|
|
24
24
|
export class DatePickerComponent {
|
|
25
25
|
/** Two-way bindable date value. `null` clears the field. Supports `[(value)]`. */
|
|
@@ -21,8 +21,8 @@ export { DateRange } from '@angular/material/datepicker';
|
|
|
21
21
|
selector: 'app-date-range-picker',
|
|
22
22
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
23
23
|
imports: [FormsModule, MatDatepickerModule, MatFormFieldModule, MatInputModule],
|
|
24
|
-
templateUrl: './date-range-picker.
|
|
25
|
-
styleUrl: './date-range-picker.
|
|
24
|
+
templateUrl: './date-range-picker.html',
|
|
25
|
+
styleUrl: './date-range-picker.scss',
|
|
26
26
|
})
|
|
27
27
|
export class DateRangePickerComponent {
|
|
28
28
|
/** Two-way bindable range value. `null` clears the field. Supports `[(value)]`. */
|
|
@@ -16,7 +16,7 @@ import { ChangeDetectionStrategy, Component, input, model, output } from '@angul
|
|
|
16
16
|
selector: 'app-dialog',
|
|
17
17
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
18
|
imports: [CdkConnectedOverlay, CdkTrapFocus],
|
|
19
|
-
templateUrl: './dialog.
|
|
19
|
+
templateUrl: './dialog.html',
|
|
20
20
|
})
|
|
21
21
|
export class DialogComponent {
|
|
22
22
|
/** Two-way bindable open state. Supports `[(open)]`. */
|
|
@@ -12,7 +12,7 @@ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
|
12
12
|
@Component({
|
|
13
13
|
selector: 'app-field',
|
|
14
14
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
15
|
-
templateUrl: './field.
|
|
15
|
+
templateUrl: './field.html',
|
|
16
16
|
host: {
|
|
17
17
|
'data-slot': 'field',
|
|
18
18
|
class: 'flex flex-col gap-1.5',
|
|
@@ -14,8 +14,8 @@ import type { AppFieldSize } from '../field-size';
|
|
|
14
14
|
selector: 'app-input',
|
|
15
15
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16
16
|
imports: [FormsModule, MatFormFieldModule, MatInputModule],
|
|
17
|
-
templateUrl: './input.
|
|
18
|
-
styleUrl: './input.
|
|
17
|
+
templateUrl: './input.html',
|
|
18
|
+
styleUrl: './input.scss',
|
|
19
19
|
})
|
|
20
20
|
export class InputComponent {
|
|
21
21
|
/** Two-way bindable value. Supports `[(value)]`. */
|
|
@@ -9,7 +9,7 @@ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
|
9
9
|
@Component({
|
|
10
10
|
selector: 'app-label',
|
|
11
11
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12
|
-
templateUrl: './label.
|
|
12
|
+
templateUrl: './label.html',
|
|
13
13
|
})
|
|
14
14
|
export class LabelComponent {
|
|
15
15
|
/** Optional `for` attribute forwarded to the underlying `<label>`. */
|
|
@@ -14,7 +14,7 @@ import { MatPaginator, type PageEvent } from '@angular/material/paginator';
|
|
|
14
14
|
selector: 'app-paginator',
|
|
15
15
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16
16
|
imports: [MatPaginator],
|
|
17
|
-
templateUrl: './paginator.
|
|
17
|
+
templateUrl: './paginator.html',
|
|
18
18
|
})
|
|
19
19
|
export class PaginatorComponent {
|
|
20
20
|
/** Total item count; Material derives the page count as `ceil(length / pageSize)`. */
|
|
@@ -15,7 +15,7 @@ import { ChangeDetectionStrategy, Component, input, model } from '@angular/core'
|
|
|
15
15
|
selector: 'app-popover',
|
|
16
16
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17
17
|
imports: [CdkConnectedOverlay, CdkOverlayOrigin],
|
|
18
|
-
templateUrl: './popover.
|
|
18
|
+
templateUrl: './popover.html',
|
|
19
19
|
})
|
|
20
20
|
export class PopoverComponent {
|
|
21
21
|
/**
|
|
@@ -27,8 +27,8 @@ export interface AppSelectOption {
|
|
|
27
27
|
selector: 'app-select',
|
|
28
28
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
29
29
|
imports: [FormsModule, MatFormFieldModule, MatSelectModule],
|
|
30
|
-
templateUrl: './select.
|
|
31
|
-
styleUrl: './select.
|
|
30
|
+
templateUrl: './select.html',
|
|
31
|
+
styleUrl: './select.scss',
|
|
32
32
|
})
|
|
33
33
|
export class SelectComponent {
|
|
34
34
|
/** Two-way bindable single-select value. Ignored when `multiple` is set. */
|
|
@@ -31,8 +31,8 @@ const ORIENTATION_CLASSES: Record<AppSeparatorOrientation, string> = {
|
|
|
31
31
|
selector: 'app-separator',
|
|
32
32
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
33
33
|
imports: [MatDivider],
|
|
34
|
-
templateUrl: './separator.
|
|
35
|
-
styleUrl: './separator.
|
|
34
|
+
templateUrl: './separator.html',
|
|
35
|
+
styleUrl: './separator.scss',
|
|
36
36
|
host: {
|
|
37
37
|
'data-slot': 'separator',
|
|
38
38
|
'[attr.data-orientation]': 'orientation()',
|
|
@@ -13,8 +13,8 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
|
13
13
|
@Component({
|
|
14
14
|
selector: 'app-skeleton',
|
|
15
15
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16
|
-
templateUrl: './skeleton.
|
|
17
|
-
styleUrl: './skeleton.
|
|
16
|
+
templateUrl: './skeleton.html',
|
|
17
|
+
styleUrl: './skeleton.scss',
|
|
18
18
|
host: {
|
|
19
19
|
'data-slot': 'skeleton',
|
|
20
20
|
'aria-hidden': 'true',
|
package/lib/templates/uiBundles/angularbasic/src/app/pages/home/{home.component.ts → home.ts}
RENAMED
|
@@ -8,6 +8,6 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
|
8
8
|
@Component({
|
|
9
9
|
selector: 'app-home',
|
|
10
10
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
11
|
-
templateUrl: './home.
|
|
11
|
+
templateUrl: './home.html',
|
|
12
12
|
})
|
|
13
13
|
export class HomeComponent {}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TestBed } from '@angular/core/testing';
|
|
2
2
|
import { provideRouter } from '@angular/router';
|
|
3
|
-
import { NotFoundComponent } from './not-found
|
|
3
|
+
import { NotFoundComponent } from './not-found';
|
|
4
4
|
|
|
5
5
|
describe('NotFoundComponent', () => {
|
|
6
6
|
beforeEach(async () => {
|
|
@@ -10,6 +10,6 @@ import { RouterLink } from '@angular/router';
|
|
|
10
10
|
selector: 'app-not-found',
|
|
11
11
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12
12
|
imports: [RouterLink],
|
|
13
|
-
templateUrl: './not-found.
|
|
13
|
+
templateUrl: './not-found.html',
|
|
14
14
|
})
|
|
15
15
|
export class NotFoundComponent {}
|