@igo2/sdg-core 1.0.0 → 1.1.0-next.10

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.
@@ -18,10 +18,10 @@ class BreakpointService {
18
18
  this._isHandset.set(result.matches);
19
19
  });
20
20
  }
21
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: BreakpointService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
22
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: BreakpointService, providedIn: 'root' });
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BreakpointService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
22
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BreakpointService, providedIn: 'root' });
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: BreakpointService, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BreakpointService, decorators: [{
25
25
  type: Injectable,
26
26
  args: [{
27
27
  providedIn: 'root'
@@ -51,10 +51,10 @@ class TitleResolverPipe {
51
51
  transform(value) {
52
52
  return resolveTitle(value, this.titleResolver);
53
53
  }
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: TitleResolverPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
55
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: TitleResolverPipe, isStandalone: true, name: "titleResolver" });
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TitleResolverPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
55
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: TitleResolverPipe, isStandalone: true, name: "titleResolver" });
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: TitleResolverPipe, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TitleResolverPipe, decorators: [{
58
58
  type: Pipe,
59
59
  args: [{
60
60
  name: 'titleResolver',
@@ -88,10 +88,10 @@ class WithLabels {
88
88
  }));
89
89
  }
90
90
  }
91
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: WithLabels, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
92
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: WithLabels, isStandalone: true, inputs: { labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { labels: "labelsChange" }, ngImport: i0 });
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WithLabels, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
92
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: WithLabels, isStandalone: true, inputs: { labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { labels: "labelsChange" }, ngImport: i0 });
93
93
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: WithLabels, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WithLabels, decorators: [{
95
95
  type: Directive
96
96
  }], ctorParameters: () => [{ type: undefined }, { type: i0.InjectionToken }], propDecorators: { labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }, { type: i0.Output, args: ["labelsChange"] }] } });
97
97
 
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-sdg-core.mjs","sources":["../../../packages/core/src/layout/breakpoint/breakpoint.service.ts","../../../packages/core/src/router/router.ts","../../../packages/core/src/router/title-resolver/title-resolver.ts","../../../packages/core/src/router/title-resolver/title-resolver.pipe.ts","../../../packages/core/src/router/route.utils.ts","../../../packages/core/src/shared/with-labels.ts","../../../packages/core/src/igo2-sdg-core.ts"],"sourcesContent":["import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Injectable, Signal, inject, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreakpointService {\n private breakpointObserver = inject(BreakpointObserver);\n\n private _isHandset = signal(false);\n\n get isHandset(): Signal<boolean> {\n return this._isHandset.asReadonly();\n }\n\n constructor() {\n this.handleBreakpoint();\n }\n\n private handleBreakpoint(): void {\n this.breakpointObserver\n .observe('(max-width: 575px)')\n .subscribe((result) => {\n this._isHandset.set(result.matches);\n });\n }\n}\n","import { Route } from '@angular/router';\n\nimport { TitleResolver } from './title-resolver/title-resolver';\n\nexport const RouteTitleKey = 'RouteTitle';\nexport const RouteTranslateKey = 'TranslateKey';\n\nfunction hasStaticTitle(config: Route): boolean {\n return typeof config.title === 'string' || config.title === null;\n}\n\nexport function resolveTitle(\n config: Route,\n titleResolver?: TitleResolver | null\n): string | undefined {\n if (hasStaticTitle(config)) {\n return config.title as string;\n } else {\n return (\n titleResolver?.resolveStatic(config) ?? config.data?.[RouteTranslateKey] // try to fallback on the translation key\n );\n }\n}\n","import {\n ActivatedRouteSnapshot,\n MaybeAsync,\n Resolve,\n Route,\n RouterStateSnapshot\n} from '@angular/router';\n\nexport abstract class TitleResolver<T = string> implements Resolve<T> {\n abstract resolve(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): MaybeAsync<T>;\n abstract resolveStatic(route: Route): string | undefined;\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { SdgRoute } from '../route.interface';\nimport { resolveTitle } from '../router';\nimport { TitleResolver } from './title-resolver';\n\n@Pipe({\n name: 'titleResolver',\n standalone: true\n})\nexport class TitleResolverPipe implements PipeTransform {\n private titleResolver = inject(TitleResolver, { optional: true });\n\n transform(value: SdgRoute): string | undefined {\n return resolveTitle(value, this.titleResolver);\n }\n}\n","export function pathIsExternal(path: string): boolean {\n const regex = /^https?:\\/\\//;\n return regex.test(path);\n}\n\nexport function isSafeUrl(url: string): boolean {\n const safePattern = /^(https?:\\/\\/|\\/(?!\\/)|\\.\\/|\\.\\.\\/)/;\n const unsafePattern = /^(javascript:|data:|vbscript:)/i;\n return safePattern.test(url) && !unsafePattern.test(url.trim());\n}\n","import { Directive, InjectionToken, inject, model } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Labels = Record<string, any>;\n\n@Directive()\nexport class WithLabels<T extends Labels> {\n labels = model<T>({} as T);\n\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(defaultLabels: T | undefined, labelsToken: InjectionToken<T>) {\n this.setLabels(defaultLabels, labelsToken);\n }\n\n private setLabels(defaultLabels: T | undefined, token: InjectionToken<T>) {\n const labelsOverride = inject(token, { optional: true });\n if (labelsOverride) {\n this.labels.update((value) => ({\n ...(defaultLabels ?? {}),\n ...labelsOverride,\n ...value\n }));\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"igo2-sdg-core.mjs","sources":["../../../packages/core/src/layout/breakpoint/breakpoint.service.ts","../../../packages/core/src/router/router.ts","../../../packages/core/src/router/title-resolver/title-resolver.ts","../../../packages/core/src/router/title-resolver/title-resolver.pipe.ts","../../../packages/core/src/router/route.utils.ts","../../../packages/core/src/shared/with-labels.ts","../../../packages/core/src/igo2-sdg-core.ts"],"sourcesContent":["import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Injectable, Signal, inject, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreakpointService {\n private breakpointObserver = inject(BreakpointObserver);\n\n private _isHandset = signal(false);\n\n get isHandset(): Signal<boolean> {\n return this._isHandset.asReadonly();\n }\n\n constructor() {\n this.handleBreakpoint();\n }\n\n private handleBreakpoint(): void {\n this.breakpointObserver\n .observe('(max-width: 575px)')\n .subscribe((result) => {\n this._isHandset.set(result.matches);\n });\n }\n}\n","import { Route } from '@angular/router';\n\nimport { TitleResolver } from './title-resolver/title-resolver';\n\nexport const RouteTitleKey = 'RouteTitle';\nexport const RouteTranslateKey = 'TranslateKey';\n\nfunction hasStaticTitle(config: Route): boolean {\n return typeof config.title === 'string' || config.title === null;\n}\n\nexport function resolveTitle(\n config: Route,\n titleResolver?: TitleResolver | null\n): string | undefined {\n if (hasStaticTitle(config)) {\n return config.title as string;\n } else {\n return (\n titleResolver?.resolveStatic(config) ?? config.data?.[RouteTranslateKey] // try to fallback on the translation key\n );\n }\n}\n","import {\n ActivatedRouteSnapshot,\n MaybeAsync,\n Resolve,\n Route,\n RouterStateSnapshot\n} from '@angular/router';\n\nexport abstract class TitleResolver<T = string> implements Resolve<T> {\n abstract resolve(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): MaybeAsync<T>;\n abstract resolveStatic(route: Route): string | undefined;\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { SdgRoute } from '../route.interface';\nimport { resolveTitle } from '../router';\nimport { TitleResolver } from './title-resolver';\n\n@Pipe({\n name: 'titleResolver',\n standalone: true\n})\nexport class TitleResolverPipe implements PipeTransform {\n private titleResolver = inject(TitleResolver, { optional: true });\n\n transform(value: SdgRoute): string | undefined {\n return resolveTitle(value, this.titleResolver);\n }\n}\n","export function pathIsExternal(path: string): boolean {\n const regex = /^https?:\\/\\//;\n return regex.test(path);\n}\n\nexport function isSafeUrl(url: string): boolean {\n const safePattern = /^(https?:\\/\\/|\\/(?!\\/)|\\.\\/|\\.\\.\\/)/;\n const unsafePattern = /^(javascript:|data:|vbscript:)/i;\n return safePattern.test(url) && !unsafePattern.test(url.trim());\n}\n","import { Directive, InjectionToken, inject, model } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Labels = Record<string, any>;\n\n@Directive()\nexport class WithLabels<T extends Labels> {\n labels = model<T>({} as T);\n\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(defaultLabels: T | undefined, labelsToken: InjectionToken<T>) {\n this.setLabels(defaultLabels, labelsToken);\n }\n\n private setLabels(defaultLabels: T | undefined, token: InjectionToken<T>) {\n const labelsOverride = inject(token, { optional: true });\n if (labelsOverride) {\n this.labels.update((value) => ({\n ...(defaultLabels ?? {}),\n ...labelsOverride,\n ...value\n }));\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igo2/sdg-core",
3
- "version": "1.0.0",
3
+ "version": "1.1.0-next.10",
4
4
  "license": "LiLiQ-R",
5
5
  "repository": {
6
6
  "type": "git",
@@ -72,6 +72,7 @@
72
72
  .mat-mdc-outlined-button {
73
73
  border-color: currentColor !important;
74
74
  border-width: 2px !important;
75
+ background-color: var(--sdg-color-background) !important;
75
76
 
76
77
  &[compact] {
77
78
  border-width: 1px !important;
@@ -0,0 +1,62 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin overrides() {
4
+ .mat-expansion-panel {
5
+ $grey-pale: var(--sdg-color-grey-pale);
6
+ $grey-hover: var(#e7e7ea);
7
+
8
+ $blue-dark: var(--sdg-color-blue-dark);
9
+
10
+ @include mat.expansion-overrides(
11
+ (
12
+ container-shape: 0,
13
+ container-elevation-shadow: none,
14
+ container-text-color: none,
15
+ container-text-tracking: none,
16
+
17
+ header-description-color: var(--sdg-color-grey-medium),
18
+ header-focus-state-layer-color: $grey-pale,
19
+ header-hover-state-layer-color: $grey-hover,
20
+ header-indicator-color: $blue-dark,
21
+ header-text-color: $blue-dark,
22
+ header-text-weight: 600,
23
+ header-text-size: var(--sdg-font-size-md),
24
+ header-text-line-height: var(--sdg-line-height-md),
25
+ header-text-font: var(--sdg-font-family-text),
26
+ header-text-tracking: none,
27
+ header-collapsed-state-height: 56px,
28
+ header-expanded-state-height: 56px
29
+ )
30
+ );
31
+
32
+ &.mat-expanded {
33
+ outline: 1px solid var(--sdg-color-grey-light);
34
+ }
35
+
36
+ .mat-expansion-panel-header {
37
+ background-color: $grey-pale;
38
+ padding: 0 16px;
39
+
40
+ &-description {
41
+ justify-content: flex-end;
42
+ font-weight: normal;
43
+ }
44
+
45
+ &.cdk-keyboard-focused {
46
+ border: 2px solid var(--sdg-color-blue-light);
47
+ }
48
+
49
+ &.mat-expanded {
50
+ background-color: $grey-pale;
51
+ }
52
+ }
53
+
54
+ .mat-expansion-panel-body {
55
+ padding: 24px 16px;
56
+ }
57
+
58
+ &:hover {
59
+ outline: 1px solid var(--sdg-color-grey-light) !important;
60
+ }
61
+ }
62
+ }
@@ -1,20 +1,140 @@
1
- @use 'sass:map';
2
1
  @use '@angular/material' as mat;
3
- @use '../../../tokens/sys-colors';
4
2
 
5
3
  @mixin overrides() {
6
- .mat-mdc-text-field-wrapper,
7
- .mdc-notched-outline__leading,
8
- .mdc-notched-outline__trailing {
9
- border-radius: 0 !important;
4
+ .mat-mdc-form-field {
5
+ $blue-dark: var(--sdg-color-blue-dark);
6
+ $grey-medium: var(--sdg-color-grey-medium);
7
+ $red-normal: var(--sdg-color-red-normal);
8
+
9
+ $text-font: var(--sdg-font-family-text);
10
+ $text-line-height: var(--sdg-line-height-md);
11
+ $text-size: var(--sdg-font-size-md);
12
+
13
+ max-width: 100%;
14
+
15
+ @include mat.form-field-density(-4);
16
+
17
+ @include mat.form-field-overrides(
18
+ (
19
+ outlined-outline-width: 1px,
20
+ outlined-outline-color: $grey-medium,
21
+ outlined-disabled-input-text-color: $grey-medium,
22
+ outlined-disabled-outline-color: $grey-medium,
23
+ outlined-error-hover-outline-color: $red-normal,
24
+ outlined-focus-outline-width: 2px,
25
+ outlined-focus-outline-color: $blue-dark,
26
+ outlined-hover-outline-color: $grey-medium,
27
+ outlined-input-text-color: $blue-dark,
28
+ outlined-input-text-placeholder-color: $grey-medium,
29
+ outlined-container-shape: 0,
30
+ //
31
+ disabled-input-text-placeholder-color: $grey-medium,
32
+ //
33
+ error-text-color: $red-normal,
34
+ //
35
+ focus-state-layer-opacity: 0,
36
+ //
37
+ hover-state-layer-opacity: 0,
38
+ //
39
+ state-layer-color: transparent,
40
+ //
41
+ container-text-font: $text-font,
42
+ container-text-line-height: $text-line-height,
43
+ container-text-size: $text-size
44
+ )
45
+ );
46
+
47
+ &.mat-form-field-disabled {
48
+ .mdc-text-field {
49
+ background-color: var(--sdg-color-grey-pale);
50
+ }
51
+
52
+ mat-hint {
53
+ color: var(--sdg-color-grey-normal) !important;
54
+ }
55
+ }
56
+
57
+ .mdc-text-field {
58
+ background-color: var(--sdg-color-background);
59
+ padding: 0 8px;
60
+
61
+ &--focused {
62
+ outline: 2px solid var(--sdg-color-blue-light);
63
+ }
64
+
65
+ &--disabled {
66
+ background-color: var(--sdg-color-grey-pale);
67
+ }
68
+ }
69
+
70
+ &[xl] {
71
+ width: 825px;
72
+ }
73
+
74
+ &[lg],
75
+ &[multi] {
76
+ width: 528px;
77
+ }
78
+
79
+ &[md] {
80
+ width: 249px;
81
+ }
82
+
83
+ &[sm] {
84
+ width: 156px;
85
+ }
86
+
87
+ &[xs] {
88
+ width: 63px;
89
+ }
90
+
91
+ .mat-mdc-form-field-subscript-wrapper {
92
+ .mat-mdc-form-field-hint-wrapper {
93
+ padding: 0;
94
+
95
+ mat-hint {
96
+ padding-top: 4px;
97
+ font-family: $text-font;
98
+ font-weight: 400;
99
+ font-size: var(--sdg-font-size-sm);
100
+ line-height: var(--sdg-line-height-sm);
101
+ color: var(--sdg-color-grey-dark);
102
+ }
103
+ }
104
+ }
105
+
106
+ .mat-mdc-form-field-error-wrapper {
107
+ padding: 0;
108
+
109
+ mat-error {
110
+ display: flex;
111
+ align-items: center;
112
+ column-gap: 8px;
113
+ padding-top: 8px;
114
+ font-family: $text-font;
115
+ font-weight: 600;
116
+ font-size: $text-size;
117
+ line-height: $text-line-height;
118
+
119
+ mat-icon {
120
+ font-size: 24px;
121
+ width: 24px;
122
+ height: 24px;
123
+ }
124
+ }
125
+ }
10
126
  }
11
127
 
12
- @include mat.form-field-overrides(
13
- (
14
- outlined-outline-color: rgba(
15
- map.get(sys-colors.$light-colors, 'black'),
16
- 0.38
17
- )
18
- )
19
- );
128
+ .mat-mdc-input-element {
129
+ &::-webkit-scrollbar {
130
+ background-color: transparent;
131
+ width: 8px;
132
+ height: auto;
133
+ }
134
+
135
+ &::-webkit-scrollbar-thumb {
136
+ background: var(--sdg-color-blue-piv);
137
+ border-radius: 4px;
138
+ }
139
+ }
20
140
  }
@@ -3,9 +3,10 @@
3
3
  @use './chip';
4
4
  @use './dialog';
5
5
  @use './divider';
6
+ @use './expansion-panel';
6
7
  @use './form-field';
7
8
  @use './icon';
8
- @use './input';
9
+ @use './select';
9
10
  @use './sidenav';
10
11
  @use './radio-button';
11
12
  @use './tab';
@@ -16,9 +17,10 @@
16
17
  @include chip.overrides();
17
18
  @include dialog.overrides();
18
19
  @include divider.overrides();
20
+ @include expansion-panel.overrides();
21
+ @include select.overrides();
19
22
  @include form-field.overrides();
20
23
  @include icon.overrides();
21
- @include input.overrides();
22
24
  @include sidenav.overrides();
23
25
  @include radio-button.overrides();
24
26
  @include tab.overrides();
@@ -0,0 +1,74 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ @mixin overrides() {
4
+ $blue-dark: var(--sdg-color-blue-dark);
5
+ $blue-piv: var(--sdg-color-blue-piv);
6
+ $grey-medium: var(--sdg-color-grey-medium);
7
+
8
+ $text-font: var(--sdg-font-family-text);
9
+ $text-line-height: var(--sdg-line-height-md);
10
+ $text-size: var(--sdg-font-size-md);
11
+
12
+ .mat-mdc-form-field {
13
+ @include mat.select-overrides(
14
+ (
15
+ enabled-trigger-text-color: $blue-dark,
16
+ enabled-arrow-color: $blue-piv,
17
+ //
18
+ disabled-trigger-text-color: $grey-medium,
19
+ disabled-arrow-color: var(--sdg-color-grey-normal),
20
+ //
21
+ placeholder-text-color: $grey-medium,
22
+ //
23
+ trigger-text-font: $text-font,
24
+ trigger-text-line-height: $text-line-height,
25
+ trigger-text-size: $text-size
26
+ )
27
+ );
28
+ }
29
+
30
+ .mat-mdc-select-panel {
31
+ @include mat.select-overrides(
32
+ (
33
+ container-elevation-shadow: none,
34
+ //
35
+ panel-background-color: var(--sdg-color-background)
36
+ )
37
+ );
38
+
39
+ padding: 0 !important;
40
+ border: 1px solid $grey-medium;
41
+ border-radius: 0 !important;
42
+
43
+ .mat-mdc-option {
44
+ min-height: 0;
45
+ padding: 8px;
46
+
47
+ .mdc-list-item__primary-text {
48
+ color: $blue-dark;
49
+ font-family: $text-font;
50
+ font-size: $text-size;
51
+ line-height: $text-line-height;
52
+ }
53
+
54
+ &:hover {
55
+ background-color: var(--sdg-color-grey-pale);
56
+ }
57
+
58
+ &-active {
59
+ background-color: var(--sdg-color-blue-pale) !important;
60
+ }
61
+ }
62
+
63
+ &::-webkit-scrollbar {
64
+ background-color: transparent;
65
+ width: 8px;
66
+ height: auto;
67
+ }
68
+
69
+ &::-webkit-scrollbar-thumb {
70
+ background: $blue-piv;
71
+ border-radius: 4px;
72
+ }
73
+ }
74
+ }
@@ -1,5 +0,0 @@
1
- @mixin overrides() {
2
- .mat-mdc-input-element {
3
- color: var(--sdg-color-grey-medium) !important;
4
- }
5
- }