ngx-dev-toolbar 0.0.2-1 → 0.0.2-3
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/package.json +6 -3
- package/project.json +1 -1
- package/src/components/button/button.component.scss +36 -0
- package/src/components/button/button.component.ts +36 -0
- package/src/components/icons/angular-icon.component.ts +35 -0
- package/src/components/icons/bug-icon.component.ts +27 -0
- package/src/components/icons/code-icon.component.ts +24 -0
- package/src/components/icons/database-icon.component.ts +27 -0
- package/src/components/icons/gauge-icon.component.ts +27 -0
- package/src/components/icons/gear-icon.component.ts +27 -0
- package/src/components/icons/git-branch-icon.component.ts +27 -0
- package/src/components/icons/icon.component.ts +105 -0
- package/src/components/icons/icon.models.ts +21 -0
- package/src/components/icons/layout-icon.component.ts +24 -0
- package/src/components/icons/lighting-icon.component.ts +24 -0
- package/src/components/icons/moon-icon.component.ts +27 -0
- package/src/components/icons/network-icon.component.ts +27 -0
- package/src/components/icons/puzzle-icon.component.ts +27 -0
- package/src/components/icons/refresh-icon.component.ts +27 -0
- package/src/components/icons/star-icon.component.ts +27 -0
- package/src/components/icons/sun-icon.component.ts +27 -0
- package/src/components/icons/terminal-icon.component.ts +27 -0
- package/src/components/icons/toggle-left-icon.component.ts +27 -0
- package/src/components/icons/translate-icon.component.ts +23 -0
- package/src/components/icons/users-icon.component.ts +27 -0
- package/src/components/input/input.component.ts +66 -0
- package/src/components/select/select.component.scss +102 -0
- package/src/components/select/select.component.ts +40 -0
- package/src/components/tool-button/tool-button.component.scss +67 -0
- package/src/components/tool-button/tool-button.component.ts +126 -0
- package/src/components/toolbar-tool/toolbar-tool.component.scss +9 -0
- package/src/components/toolbar-tool/toolbar-tool.component.ts +128 -0
- package/src/components/toolbar-tool/toolbar-tool.models.ts +9 -0
- package/src/components/window/window.component.scss +99 -0
- package/src/components/window/window.component.ts +79 -0
- package/src/components/window/window.models.ts +28 -0
- package/src/dev-toolbar-state.service.ts +89 -0
- package/src/dev-toolbar.component.scss +22 -0
- package/src/dev-toolbar.component.ts +104 -0
- package/src/index.ts +6 -1
- package/src/models/dev-tools.interface.ts +19 -0
- package/src/styles.scss +363 -0
- package/src/tools/feature-flags-tool/feature-flags-internal.service.ts +96 -0
- package/src/tools/feature-flags-tool/feature-flags-tool.component.ts +262 -0
- package/src/tools/feature-flags-tool/feature-flags.models.ts +10 -0
- package/src/tools/feature-flags-tool/feature-flags.service.ts +26 -0
- package/src/tools/home-tool/home-tool.component.scss +61 -0
- package/src/tools/home-tool/home-tool.component.ts +72 -0
- package/src/tools/home-tool/settings.models.ts +3 -0
- package/src/tools/home-tool/settings.service.spec.ts +59 -0
- package/src/tools/home-tool/settings.service.ts +21 -0
- package/src/tools/language-tool/language-internal.service.ts +51 -0
- package/src/tools/language-tool/language-tool.component.scss +7 -0
- package/src/tools/language-tool/language-tool.component.ts +75 -0
- package/src/tools/language-tool/language.models.ts +4 -0
- package/src/tools/language-tool/language.service.ts +26 -0
- package/src/utils/storage.service.ts +19 -0
package/package.json
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-dev-toolbar",
|
|
3
|
-
"version": "0.0.2-
|
|
3
|
+
"version": "0.0.2-3",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^18.0.0 || ^19.0.0",
|
|
6
5
|
"@angular/core": "^18.0.0 || ^19.0.0",
|
|
7
6
|
"vite": "^5.0.0",
|
|
8
7
|
"@analogjs/vite-plugin-angular": "~1.10.0",
|
|
9
|
-
"@nx/vite": "20.3.0"
|
|
8
|
+
"@nx/vite": "20.3.0",
|
|
9
|
+
"@angular/forms": "^18.0.0 || ^19.0.0",
|
|
10
|
+
"@angular/animations": "^18.0.0 || ^19.0.0",
|
|
11
|
+
"@angular/cdk": "^18.0.0 || ^19.0.0",
|
|
12
|
+
"rxjs": "~7.8.0"
|
|
10
13
|
},
|
|
11
14
|
"sideEffects": false
|
|
12
15
|
}
|
package/project.json
CHANGED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
@use '../../styles' as devtools;
|
|
2
|
+
|
|
3
|
+
.button {
|
|
4
|
+
display: flex;
|
|
5
|
+
padding: var(--devtools-spacing-xs) var(--devtools-spacing-sm);
|
|
6
|
+
border: 1px solid var(--devtools-border-color);
|
|
7
|
+
border-radius: var(--devtools-border-radius);
|
|
8
|
+
background: var(--devtools-background-secondary);
|
|
9
|
+
color: var(--devtools-text-primary);
|
|
10
|
+
cursor: pointer;
|
|
11
|
+
transition: var(--devtools-transition-fast);
|
|
12
|
+
|
|
13
|
+
&:hover {
|
|
14
|
+
background: var(--devtools-background-hover);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&:focus {
|
|
18
|
+
outline: none;
|
|
19
|
+
background: var(--devtools-background-hover);
|
|
20
|
+
box-shadow: 0 0 0 2px var(--devtools-focus-ring);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&--active {
|
|
24
|
+
background: var(--devtools-primary);
|
|
25
|
+
color: var(--devtools-text-on-primary);
|
|
26
|
+
border-color: var(--devtools-primary);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&--icon {
|
|
30
|
+
padding: var(--devtools-spacing-xs);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&__label {
|
|
34
|
+
font-size: var(--devtools-font-size-sm);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
import { DevToolbarIconComponent } from '../icons/icon.component';
|
|
3
|
+
import { IconName } from '../icons/icon.models';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'ndt-button',
|
|
7
|
+
standalone: true,
|
|
8
|
+
imports: [DevToolbarIconComponent],
|
|
9
|
+
template: `
|
|
10
|
+
<button
|
|
11
|
+
class="button"
|
|
12
|
+
[attr.aria-label]="ariaLabel()"
|
|
13
|
+
[type]="type()"
|
|
14
|
+
[class.button--active]="isActive()"
|
|
15
|
+
[class.button--icon]="variant() === 'icon'"
|
|
16
|
+
>
|
|
17
|
+
@if (icon()) {
|
|
18
|
+
<ndt-icon [name]="icon() || 'star'" />
|
|
19
|
+
}
|
|
20
|
+
@if (label()) {
|
|
21
|
+
<span class="button__label">{{ label() }}</span>
|
|
22
|
+
}
|
|
23
|
+
<ng-content />
|
|
24
|
+
</button>
|
|
25
|
+
`,
|
|
26
|
+
styleUrls: ['./button.component.scss'],
|
|
27
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
28
|
+
})
|
|
29
|
+
export class DevToolbarButtonComponent {
|
|
30
|
+
readonly type = input<'button' | 'submit' | 'reset'>('button');
|
|
31
|
+
readonly variant = input<'default' | 'icon'>('default');
|
|
32
|
+
readonly icon = input<IconName>();
|
|
33
|
+
readonly label = input<string>();
|
|
34
|
+
readonly ariaLabel = input<string>();
|
|
35
|
+
readonly isActive = input<boolean>(false);
|
|
36
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-angular-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
9
|
+
<defs>
|
|
10
|
+
<linearGradient
|
|
11
|
+
id="angular-gradient"
|
|
12
|
+
x1="6"
|
|
13
|
+
x2="18"
|
|
14
|
+
y1="20"
|
|
15
|
+
y2="4"
|
|
16
|
+
gradientUnits="userSpaceOnUse"
|
|
17
|
+
>
|
|
18
|
+
<stop offset="0" stop-color="#E40035" />
|
|
19
|
+
<stop offset=".24" stop-color="#F60A48" />
|
|
20
|
+
<stop offset=".352" stop-color="#F20755" />
|
|
21
|
+
<stop offset=".494" stop-color="#DC087D" />
|
|
22
|
+
<stop offset=".745" stop-color="#9717E7" />
|
|
23
|
+
<stop offset="1" stop-color="#6C00F5" />
|
|
24
|
+
</linearGradient>
|
|
25
|
+
</defs>
|
|
26
|
+
<g fill="url(#angular-gradient)">
|
|
27
|
+
<polygon points="14.1,2.7 20.1,15.7 20.7,5.8" />
|
|
28
|
+
<polygon points="15.6,16.4 8.4,16.4 7.4,18.6 12,21.2 16.6,18.6" />
|
|
29
|
+
<polygon points="9.6,13.5 14.4,13.5 12,7.7" />
|
|
30
|
+
<polygon points="9.9,2.7 3.3,5.8 3.9,15.7" />
|
|
31
|
+
</g>
|
|
32
|
+
</svg>
|
|
33
|
+
`,
|
|
34
|
+
})
|
|
35
|
+
export class AngularIconComponent {}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-bug-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M207.86,123.18l16.78-21a99.14,99.14,0,0,0-10.07-24.29l-26.7-3a81,81,0,0,0-6.81-6.81l-3-26.71a99.43,99.43,0,0,0-24.3-10l-21,16.77a81.59,81.59,0,0,0-9.64,0l-21-16.78A99.14,99.14,0,0,0,77.91,41.43l-3,26.7a81,81,0,0,0-6.81,6.81l-26.71,3a99.43,99.43,0,0,0-10,24.3l16.77,21a81.59,81.59,0,0,0,0,9.64l-16.78,21a99.14,99.14,0,0,0,10.07,24.29l26.7,3a81,81,0,0,0,6.81,6.81l3,26.71a99.43,99.43,0,0,0,24.3,10l21-16.77a81.59,81.59,0,0,0,9.64,0l21,16.78a99.14,99.14,0,0,0,24.29-10.07l3-26.7a81,81,0,0,0,6.81-6.81l26.71-3a99.43,99.43,0,0,0,10-24.3l-16.77-21A81.59,81.59,0,0,0,207.86,123.18ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
></path>
|
|
19
|
+
<path
|
|
20
|
+
d="M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8.06,8.06,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8.06,8.06,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"
|
|
21
|
+
></path>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class BugIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-code-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
template: `
|
|
7
|
+
<svg
|
|
8
|
+
[attr.fill]="fill()"
|
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
+
width="24"
|
|
11
|
+
height="24"
|
|
12
|
+
viewBox="0 0 256 256"
|
|
13
|
+
>
|
|
14
|
+
<path d="M240,128l-48,40H64L16,128,64,88H192Z" opacity="0.2"></path>
|
|
15
|
+
<path
|
|
16
|
+
d="M69.12,94.15,28.5,128l40.62,33.85a8,8,0,1,1-10.24,12.29l-48-40a8,8,0,0,1,0-12.29l48-40a8,8,0,0,1,10.24,12.3Zm176,27.7-48-40a8,8,0,1,0-10.24,12.3L227.5,128l-40.62,33.85a8,8,0,1,0,10.24,12.29l48-40a8,8,0,0,0,0-12.29ZM162.73,32.48a8,8,0,0,0-10.25,4.79l-64,176a8,8,0,0,0,4.79,10.26A8.14,8.14,0,0,0,96,224a8,8,0,0,0,7.52-5.27l64-176A8,8,0,0,0,162.73,32.48Z"
|
|
17
|
+
></path>
|
|
18
|
+
</svg>
|
|
19
|
+
`,
|
|
20
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
21
|
+
})
|
|
22
|
+
export class CodeIconComponent {
|
|
23
|
+
fill = input<string>('#FFFF');
|
|
24
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-database-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M216,80c0,26.51-39.4,48-88,48S40,106.51,40,80s39.4-48,88-48S216,53.49,216,80Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
></path>
|
|
19
|
+
<path
|
|
20
|
+
d="M128,24C74.17,24,32,48.6,32,80v96c0,31.4,42.17,56,96,56s96-24.6,96-56V80C224,48.6,181.83,24,128,24Zm80,104c0,9.62-7.88,19.43-21.61,26.92C170.93,163.35,150.19,168,128,168s-42.93-4.65-58.39-13.08C55.88,147.43,48,137.62,48,128V111.36c17.06,15,46.23,24.64,80,24.64s62.94-9.68,80-24.64ZM69.61,53.08C85.07,44.65,105.81,40,128,40s42.93,4.65,58.39,13.08C200.12,60.57,208,70.38,208,80s-7.88,19.43-21.61,26.92C170.93,115.35,150.19,120,128,120s-42.93-4.65-58.39-13.08C55.88,99.43,48,89.62,48,80S55.88,60.57,69.61,53.08ZM186.39,202.92C170.93,211.35,150.19,216,128,216s-42.93-4.65-58.39-13.08C55.88,195.43,48,185.62,48,176V159.36c17.06,15,46.23,24.64,80,24.64s62.94-9.68,80-24.64V176C208,185.62,200.12,195.43,186.39,202.92Z"
|
|
21
|
+
></path>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class DatabaseIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-gauge-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M232,152a103.93,103.93,0,0,1-5.9,34.63,8,8,0,0,1-7.57,5.37H37.46a8.05,8.05,0,0,1-7.57-5.41A104.06,104.06,0,0,1,24,151.19C24.44,94,71.73,47.49,129,48A104,104,0,0,1,232,152Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
></path>
|
|
19
|
+
<path
|
|
20
|
+
d="M114.34,154.34l96-96a8,8,0,0,1,11.32,11.32l-96,96a8,8,0,0,1-11.32-11.32ZM128,88a63.9,63.9,0,0,1,20.44,3.33,8,8,0,1,0,5.11-15.16A80,80,0,0,0,48.49,160.88,8,8,0,0,0,56.43,168c.29,0,.59,0,.89-.05a8,8,0,0,0,7.07-8.83A64.92,64.92,0,0,1,64,152,64.07,64.07,0,0,1,128,88Zm99.74,13a8,8,0,0,0-14.24,7.3,96.27,96.27,0,0,1,5,75.71l-181.1-.07A96.24,96.24,0,0,1,128,56h.88a95,95,0,0,1,42.82,10.5A8,8,0,1,0,179,52.27,110.8,110.8,0,0,0,129,40h-1A112.05,112.05,0,0,0,22.35,189.25,16.07,16.07,0,0,0,37.46,200H218.53a16,16,0,0,0,15.11-10.71,112.35,112.35,0,0,0-5.9-88.3Z"
|
|
21
|
+
></path>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class GaugeIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-gear-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M207.86,123.18l16.78-21a99.14,99.14,0,0,0-10.07-24.29l-26.7-3a81,81,0,0,0-6.81-6.81l-3-26.71a99.43,99.43,0,0,0-24.3-10l-21,16.77a81.59,81.59,0,0,0-9.64,0l-21-16.78A99.14,99.14,0,0,0,77.91,41.43l-3,26.7a81,81,0,0,0-6.81,6.81l-26.71,3a99.43,99.43,0,0,0-10,24.3l16.77,21a81.59,81.59,0,0,0,0,9.64l-16.78,21a99.14,99.14,0,0,0,10.07,24.29l26.7,3a81,81,0,0,0,6.81,6.81l3,26.71a99.43,99.43,0,0,0,24.3,10l21-16.77a81.59,81.59,0,0,0,9.64,0l21,16.78a99.14,99.14,0,0,0,24.29-10.07l3-26.7a81,81,0,0,0,6.81-6.81l26.71-3a99.43,99.43,0,0,0,10-24.3l-16.77-21A81.59,81.59,0,0,0,207.86,123.18ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
></path>
|
|
19
|
+
<path
|
|
20
|
+
d="M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8.06,8.06,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8.06,8.06,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"
|
|
21
|
+
></path>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class GearIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-git-branch-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M224,64a24,24,0,1,1-24-24A24,24,0,0,1,224,64Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
></path>
|
|
19
|
+
<path
|
|
20
|
+
d="M232,64a32,32,0,1,0-40,31v17a8,8,0,0,1-8,8H96a23.84,23.84,0,0,0-8,1.38V95a32,32,0,1,0-16,0v66a32,32,0,1,0,16,0V144a8,8,0,0,1,8-8h88a24,24,0,0,0,24-24V95A32.06,32.06,0,0,0,232,64ZM64,64A16,16,0,1,1,80,80,16,16,0,0,1,64,64ZM96,192a16,16,0,1,1-16-16A16,16,0,0,1,96,192ZM200,80a16,16,0,1,1,16-16A16,16,0,0,1,200,80Z"
|
|
21
|
+
></path>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class GitBranchIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ChangeDetectionStrategy,
|
|
3
|
+
Component,
|
|
4
|
+
computed,
|
|
5
|
+
inject,
|
|
6
|
+
input,
|
|
7
|
+
} from '@angular/core';
|
|
8
|
+
import { DevToolbarStateService } from '../../dev-toolbar-state.service';
|
|
9
|
+
import { AngularIconComponent } from './angular-icon.component';
|
|
10
|
+
import { BugIconComponent } from './bug-icon.component';
|
|
11
|
+
import { CodeIconComponent } from './code-icon.component';
|
|
12
|
+
import { DatabaseIconComponent } from './database-icon.component';
|
|
13
|
+
import { GaugeIconComponent } from './gauge-icon.component';
|
|
14
|
+
import { GearIconComponent } from './gear-icon.component';
|
|
15
|
+
import { GitBranchIconComponent } from './git-branch-icon.component';
|
|
16
|
+
import { IconName } from './icon.models';
|
|
17
|
+
import { LayoutIconComponent } from './layout-icon.component';
|
|
18
|
+
import { LightingIconComponent } from './lighting-icon.component';
|
|
19
|
+
import { MoonIconComponent } from './moon-icon.component';
|
|
20
|
+
import { NetworkIconComponent } from './network-icon.component';
|
|
21
|
+
import { PuzzleIconComponent } from './puzzle-icon.component';
|
|
22
|
+
import { RefreshIconComponent } from './refresh-icon.component';
|
|
23
|
+
import { StarIconComponent } from './star-icon.component';
|
|
24
|
+
import { SunIconComponent } from './sun-icon.component';
|
|
25
|
+
import { TerminalIconComponent } from './terminal-icon.component';
|
|
26
|
+
import { ToggleLeftIconComponent } from './toggle-left-icon.component';
|
|
27
|
+
import { TranslateIconComponent } from './translate-icon.component';
|
|
28
|
+
import { UsersIconComponent } from './users-icon.component';
|
|
29
|
+
|
|
30
|
+
@Component({
|
|
31
|
+
selector: 'ndt-icon',
|
|
32
|
+
standalone: true,
|
|
33
|
+
imports: [
|
|
34
|
+
AngularIconComponent,
|
|
35
|
+
BugIconComponent,
|
|
36
|
+
CodeIconComponent,
|
|
37
|
+
DatabaseIconComponent,
|
|
38
|
+
GaugeIconComponent,
|
|
39
|
+
GearIconComponent,
|
|
40
|
+
GitBranchIconComponent,
|
|
41
|
+
LayoutIconComponent,
|
|
42
|
+
LightingIconComponent,
|
|
43
|
+
NetworkIconComponent,
|
|
44
|
+
PuzzleIconComponent,
|
|
45
|
+
RefreshIconComponent,
|
|
46
|
+
StarIconComponent,
|
|
47
|
+
TerminalIconComponent,
|
|
48
|
+
ToggleLeftIconComponent,
|
|
49
|
+
UsersIconComponent,
|
|
50
|
+
SunIconComponent,
|
|
51
|
+
MoonIconComponent,
|
|
52
|
+
TranslateIconComponent,
|
|
53
|
+
],
|
|
54
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
55
|
+
template: `
|
|
56
|
+
@switch (name()) { @case ('angular') {
|
|
57
|
+
<ndt-angular-icon />
|
|
58
|
+
} @case ('bug') {
|
|
59
|
+
<ndt-bug-icon [fill]="fill()" />
|
|
60
|
+
} @case ('code') {
|
|
61
|
+
<ndt-code-icon [fill]="fill()" />
|
|
62
|
+
} @case ('database') {
|
|
63
|
+
<ndt-database-icon [fill]="fill()" />
|
|
64
|
+
} @case ('gauge') {
|
|
65
|
+
<ndt-gauge-icon [fill]="fill()" />
|
|
66
|
+
} @case ('gear') {
|
|
67
|
+
<ndt-gear-icon [fill]="fill()" />
|
|
68
|
+
} @case ('git-branch') {
|
|
69
|
+
<ndt-git-branch-icon [fill]="fill()" />
|
|
70
|
+
} @case ('layout') {
|
|
71
|
+
<ndt-layout-icon [fill]="fill()" />
|
|
72
|
+
} @case ('lighting') {
|
|
73
|
+
<ndt-lighting-icon [fill]="fill()" />
|
|
74
|
+
} @case ('network') {
|
|
75
|
+
<ndt-network-icon [fill]="fill()" />
|
|
76
|
+
} @case ('puzzle') {
|
|
77
|
+
<ndt-puzzle-icon [fill]="fill()" />
|
|
78
|
+
} @case ('refresh') {
|
|
79
|
+
<ndt-refresh-icon [fill]="fill()" />
|
|
80
|
+
} @case ('star') {
|
|
81
|
+
<ndt-star-icon [fill]="fill()" />
|
|
82
|
+
} @case ('terminal') {
|
|
83
|
+
<ndt-terminal-icon [fill]="fill()" />
|
|
84
|
+
} @case ('toggle-left') {
|
|
85
|
+
<ndt-toggle-left-icon [fill]="fill()" />
|
|
86
|
+
} @case ('user') {
|
|
87
|
+
<ndt-users-icon [fill]="fill()" />
|
|
88
|
+
} @case ('sun') {
|
|
89
|
+
<ndt-sun-icon [fill]="fill()" />
|
|
90
|
+
} @case ('moon') {
|
|
91
|
+
<ndt-moon-icon [fill]="fill()" />
|
|
92
|
+
} @case ('translate') {
|
|
93
|
+
<ndt-translate-icon [fill]="fill()" />
|
|
94
|
+
} }
|
|
95
|
+
`,
|
|
96
|
+
})
|
|
97
|
+
export class DevToolbarIconComponent {
|
|
98
|
+
private readonly stateService = inject(DevToolbarStateService);
|
|
99
|
+
|
|
100
|
+
name = input.required<IconName>();
|
|
101
|
+
|
|
102
|
+
fill = computed(() =>
|
|
103
|
+
this.stateService.theme() === 'dark' ? '#FFFFFF' : '#000000'
|
|
104
|
+
);
|
|
105
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type IconName =
|
|
2
|
+
| 'angular'
|
|
3
|
+
| 'bug'
|
|
4
|
+
| 'code'
|
|
5
|
+
| 'database'
|
|
6
|
+
| 'gauge'
|
|
7
|
+
| 'gear'
|
|
8
|
+
| 'git-branch'
|
|
9
|
+
| 'layout'
|
|
10
|
+
| 'lighting'
|
|
11
|
+
| 'moon'
|
|
12
|
+
| 'network'
|
|
13
|
+
| 'puzzle'
|
|
14
|
+
| 'refresh'
|
|
15
|
+
| 'star'
|
|
16
|
+
| 'sun'
|
|
17
|
+
| 'terminal'
|
|
18
|
+
| 'toggle-left'
|
|
19
|
+
| 'user'
|
|
20
|
+
| 'flag'
|
|
21
|
+
| 'translate';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-layout-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path d="M104,104V208H40a8,8,0,0,1-8-8V104Z" opacity="0.2"></path>
|
|
16
|
+
<path
|
|
17
|
+
d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V96H40V56ZM40,112H96v88H40Zm176,88H112V112H216v88Z"
|
|
18
|
+
></path>
|
|
19
|
+
</svg>
|
|
20
|
+
`,
|
|
21
|
+
})
|
|
22
|
+
export class LayoutIconComponent {
|
|
23
|
+
fill = input<string>('#FFFF');
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-lighting-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path d="M96,240l16-80L48,136,160,16,144,96l64,24Z" opacity="0.2"></path>
|
|
16
|
+
<path
|
|
17
|
+
d="M215.79,118.17a8,8,0,0,0-5-5.66L153.18,90.9l14.66-73.33a8,8,0,0,0-13.69-7l-112,120a8,8,0,0,0,3,13l57.63,21.61L88.16,238.43a8,8,0,0,0,13.69,7l112-120A8,8,0,0,0,215.79,118.17ZM109.37,214l10.47-52.38a8,8,0,0,0-5-9.06L62,132.71l84.62-90.66L136.16,94.43a8,8,0,0,0,5,9.06l52.8,19.8Z"
|
|
18
|
+
></path>
|
|
19
|
+
</svg>
|
|
20
|
+
`,
|
|
21
|
+
})
|
|
22
|
+
export class LightingIconComponent {
|
|
23
|
+
fill = input<string>('#FFFF');
|
|
24
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-moon-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M224.3,150.3a8.1,8.1,0,0,0-7.8-5.7l-2.2.4A84,84,0,0,1,111,41.6a5.7,5.7,0,0,0,.3-1.8A7.9,7.9,0,0,0,109,33a8.1,8.1,0,0,0-8.1-1.1A104,104,0,1,0,225.4,156.9,8.1,8.1,0,0,0,224.3,150.3Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
/>
|
|
19
|
+
<path
|
|
20
|
+
d="M233.5,137.3a12.1,12.1,0,0,0-11.8-8.6,7.9,7.9,0,0,0-1.3.1,80,80,0,0,1-98.2-98.2,12,12,0,0,0-15.6-14A104.2,104.2,0,0,0,32,120c0,57.4,46.6,104,104,104A104.2,104.2,0,0,0,239.4,149.6,12,12,0,0,0,233.5,137.3ZM136,208A88,88,0,0,1,48,120a87.6,87.6,0,0,1,64.8-84.7,96,96,0,0,0,111.9,112A87.6,87.6,0,0,1,136,208Z"
|
|
21
|
+
/>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class MoonIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-network-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M152,40V72a8,8,0,0,1-8,8H112a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h32A8,8,0,0,1,152,40ZM80,168H48a8,8,0,0,0-8,8v32a8,8,0,0,0,8,8H80a8,8,0,0,0,8-8V176A8,8,0,0,0,80,168Zm128,0H176a8,8,0,0,0-8,8v32a8,8,0,0,0,8,8h32a8,8,0,0,0,8-8V176A8,8,0,0,0,208,168Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
></path>
|
|
19
|
+
<path
|
|
20
|
+
d="M232,112H136V88h8a16,16,0,0,0,16-16V40a16,16,0,0,0-16-16H112A16,16,0,0,0,96,40V72a16,16,0,0,0,16,16h8v24H24a8,8,0,0,0,0,16H56v32H48a16,16,0,0,0-16,16v32a16,16,0,0,0,16,16H80a16,16,0,0,0,16-16V176a16,16,0,0,0-16-16H72V128H184v32h-8a16,16,0,0,0-16,16v32a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V176a16,16,0,0,0-16-16h-8V128h32a8,8,0,0,0,0-16ZM112,40h32V72H112ZM80,208H48V176H80Zm128,0H176V176h32Z"
|
|
21
|
+
></path>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class NetworkIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-puzzle-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M204,168a28,28,0,0,0,12-2.69V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V165.31a28,28,0,1,1,0-50.62V72a8,8,0,0,1,8-8h46.69a28,28,0,1,1,50.61,0H208a8,8,0,0,1,8,8v42.69A28,28,0,1,0,204,168Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
></path>
|
|
19
|
+
<path
|
|
20
|
+
d="M220.27,158.54a8,8,0,0,0-7.7-.46,20,20,0,1,1,0-36.16A8,8,0,0,0,224,114.69V72a16,16,0,0,0-16-16H171.78a35.36,35.36,0,0,0,.22-4,36.15,36.15,0,0,0-11.36-26.25,36,36,0,0,0-60.55,23.63,36.56,36.56,0,0,0,.14,6.62H64A16,16,0,0,0,48,72v32.22a35.36,35.36,0,0,0-4-.22,36.12,36.12,0,0,0-26.24,11.36,35.7,35.7,0,0,0-9.69,27,36.08,36.08,0,0,0,33.31,33.6,36.56,36.56,0,0,0,6.62-.14V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V165.31A8,8,0,0,0,220.27,158.54ZM208,208H64V165.31a8,8,0,0,0-11.43-7.23,20,20,0,1,1,0-36.16A8,8,0,0,0,64,114.69V72h46.69a8,8,0,0,0,7.23-11.43,20,20,0,1,1,36.16,0A8,8,0,0,0,161.31,72H208v32.23a35.68,35.68,0,0,0-6.62-.14A36,36,0,0,0,204,176a35.36,35.36,0,0,0,4-.22Z"
|
|
21
|
+
></path>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class PuzzleIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-refresh-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M216,128a88,88,0,1,1-88-88A88,88,0,0,1,216,128Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
></path>
|
|
19
|
+
<path
|
|
20
|
+
d="M224,48V96a8,8,0,0,1-8,8H168a8,8,0,0,1,0-16h28.69L182.06,73.37a79.56,79.56,0,0,0-56.13-23.43h-.45A79.52,79.52,0,0,0,69.59,72.71,8,8,0,0,1,58.41,61.27a96,96,0,0,1,135,.79L208,76.69V48a8,8,0,0,1,16,0ZM186.41,183.29a80,80,0,0,1-112.47-.66L59.31,168H88a8,8,0,0,0,0-16H40a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V179.31l14.63,14.63A95.43,95.43,0,0,0,130,222.06h.53a95.36,95.36,0,0,0,67.07-27.33,8,8,0,0,0-11.18-11.44Z"
|
|
21
|
+
></path>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class RefreshIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-star-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M229.06,108.79l-48.7,42,14.88,62.79a8.4,8.4,0,0,1-12.52,9.17L128,189.09,73.28,222.74a8.4,8.4,0,0,1-12.52-9.17l14.88-62.79-48.7-42A8.46,8.46,0,0,1,31.73,94L95.64,88.8l24.62-59.6a8.36,8.36,0,0,1,15.48,0l24.62,59.6L224.27,94A8.46,8.46,0,0,1,229.06,108.79Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
></path>
|
|
19
|
+
<path
|
|
20
|
+
d="M239.18,97.26A16.38,16.38,0,0,0,224.92,86l-59-4.76L143.14,26.15a16.36,16.36,0,0,0-30.27,0L90.11,81.23,31.08,86a16.46,16.46,0,0,0-9.37,28.86l45,38.83L53,211.75a16.38,16.38,0,0,0,24.5,17.82L128,198.49l50.53,31.08A16.4,16.4,0,0,0,203,211.75l-13.76-58.07,45-38.83A16.43,16.43,0,0,0,239.18,97.26Zm-15.34,5.47-48.7,42a8,8,0,0,0-2.56,7.91l14.88,62.8a.37.37,0,0,1-.17.48c-.18.14-.23.11-.38,0l-54.72-33.65a8,8,0,0,0-8.38,0L69.09,215.94c-.15.09-.19.12-.38,0a.37.37,0,0,1-.17-.48l14.88-62.8a8,8,0,0,0-2.56-7.91l-48.7-42c-.12-.1-.23-.19-.13-.5s.18-.27.33-.29l63.92-5.16A8,8,0,0,0,103,91.86l24.62-59.61c.08-.17.11-.25.35-.25s.27.08.35.25L153,91.86a8,8,0,0,0,6.75,4.92l63.92,5.16c.15,0,.24,0,.33.29S224,102.63,223.84,102.73Z"
|
|
21
|
+
></path>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class StarIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'ndt-sun-icon',
|
|
5
|
+
standalone: true,
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
template: `
|
|
8
|
+
<svg
|
|
9
|
+
[attr.fill]="fill()"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
width="24"
|
|
12
|
+
height="24"
|
|
13
|
+
viewBox="0 0 256 256"
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M128,60a68,68,0,1,0,68,68A68.07,68.07,0,0,0,128,60Z"
|
|
17
|
+
opacity="0.2"
|
|
18
|
+
/>
|
|
19
|
+
<path
|
|
20
|
+
d="M128,44a8,8,0,0,0,8-8V16a8,8,0,0,0-16,0V36A8,8,0,0,0,128,44ZM57.31,68.69a8,8,0,0,0,11.32-11.32L54.63,43.37A8,8,0,0,0,43.31,54.69ZM44,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H36A8,8,0,0,0,44,128Zm24.63,59.31-14,14a8,8,0,0,0,11.32,11.32l14-14a8,8,0,0,0-11.32-11.32ZM128,212a8,8,0,0,0-8,8v20a8,8,0,0,0,16,0V220A8,8,0,0,0,128,212Zm70.69-24.69a8,8,0,0,0-11.32,11.32l14,14a8,8,0,0,0,11.32-11.32ZM240,120H220a8,8,0,0,0,0,16h20a8,8,0,0,0,0-16Zm-24.69-62.63-14,14a8,8,0,0,0,11.32,11.32l14-14a8,8,0,0,0-11.32-11.32ZM128,76a52,52,0,1,0,52,52A52.06,52.06,0,0,0,128,76Zm0,88a36,36,0,1,1,36-36A36,36,0,0,1,128,164Z"
|
|
21
|
+
/>
|
|
22
|
+
</svg>
|
|
23
|
+
`,
|
|
24
|
+
})
|
|
25
|
+
export class SunIconComponent {
|
|
26
|
+
fill = input<string>('#FFFF');
|
|
27
|
+
}
|