@smartbit4all/ng-client 7.3.21 → 7.3.23

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartbit4all/ng-client",
3
- "version": "7.3.21",
3
+ "version": "7.3.23",
4
4
  "description": "Angular client library for the smartbit4all platform — a server-driven UI framework that renders views, pages, forms, grids, trees and dialogs from backend (ViewApi/PageApi) definitions. Provides reactive view-context state management, dynamic component layouts and OpenAPI-generated BFF clients.",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
@@ -1,192 +1,192 @@
1
- @use 'sass:map';
2
-
3
- $default-colors: (
4
- primary: #4763ff,
5
- secondary: #a6aabd60,
6
- accent: #20b6a8,
7
- warn: #d51d1d,
8
- success: #16a34a,
9
- accent-grey: #6b7280,
10
- text: #132033,
11
- text-inverted: #ffffff,
12
- text-muted: #68778e,
13
- ) !default;
14
-
15
- // Text color on the raised variant. A color missing from this map gets white.
16
- $default-text-colors: (
17
- primary: var(--text-inverted-color),
18
- ) !default;
19
-
20
- $default-tokens: (
21
- // Backgrounds
22
- color-bg: #f6f8fb,
23
- color-surface: #ffffff,
24
- color-surface-alt: #f9fbff,
25
-
26
- // Borders
27
- color-border: #e4eaf2,
28
-
29
- // Tree
30
- tree-active-background: var(--accent-color),
31
-
32
- // Semantic
33
- color-danger: var(--warn-color),
34
- color-teal: #20b6a8,
35
-
36
- // UI chrome
37
- color-chip: #e8f4fd,
38
- color-input: #ffffff,
39
-
40
- // Shadows
41
- shadow-strong: 0 18px 50px rgba(1, 132, 228, 0.1),
42
- shadow-soft: 0 8px 22px rgba(1, 132, 228, 0.07),
43
-
44
- border-radius: 0.5rem,
45
- default-padding: 0.5rem,
46
- ) !default;
47
-
48
- @function -text-color($text-colors, $name) {
49
- $value: map.get($text-colors, $name);
50
- @if $value {
51
- @return $value;
52
- }
53
- @return var(--text-color);
54
- }
55
-
56
- // Emits CSS variables only, so the project chooses the selector.
57
- // Usage: body { @include sb.tokens($colors, $text-colors, $overrides); }
58
- @mixin tokens($colors: (), $text-colors: (), $overrides: ()) {
59
- $all-colors: map.merge($default-colors, $colors);
60
- $all-text-colors: map.merge($default-text-colors, $text-colors);
61
- $all-tokens: map.merge($default-tokens, $overrides);
62
-
63
- // One --<name>-color and one --<name>-text-color for every color
64
- @each $name, $color in $all-colors {
65
- --#{$name}-color: #{$color};
66
- --#{$name}-text-color: #{-text-color($all-text-colors, $name)};
67
- }
68
-
69
- @each $name, $value in $all-tokens {
70
- @if $name == font-family {
71
- font-family: #{$value} !important;
72
- } @else {
73
- --#{$name}: #{$value};
74
- }
75
- }
76
- }
77
-
78
- // @use '@smartbit4all/ng-client/styles' as sb;
79
- // @include sb.buttons;
80
- // @include sb.buttons((new-color: #ff5500), (new-color: white));
81
- @mixin buttons($colors: (), $text-colors: ()) {
82
- $all-colors: map.merge($default-colors, $colors);
83
- $all-text-colors: map.merge($default-text-colors, $text-colors);
84
-
85
- @each $name, $color in $all-colors {
86
- $text: -text-color($all-text-colors, $name);
87
- $color: var(--#{$name}-color, #{$color});
88
-
89
- .sb4-raised.sb4-#{$name} {
90
- background-color: #{$color} !important;
91
- color: #{$text} !important;
92
- stroke: #{$text} !important;
93
- border: none;
94
- }
95
-
96
- .sb4-raised.sb4-#{$name}:hover {
97
- background-color: rgb(from #{$color} r g b / 0.8);
98
- }
99
-
100
- .sb4-raised.sb4-#{$name} .mdc-button__label {
101
- color: #{$text};
102
- }
103
-
104
- .sb4-normal.sb4-#{$name} {
105
- background-color: transparent;
106
- border: 1px solid #{$color};
107
- color: #{$color} !important;
108
- stroke: #{$color};
109
- box-shadow: none;
110
- }
111
-
112
- .sb4-flat.sb4-#{$name} {
113
- background-color: transparent;
114
- border: 1px solid transparent;
115
- color: #{$color} !important;
116
- stroke: #{$color};
117
- box-shadow: none;
118
- }
119
-
120
- .sb4-flat.sb4-#{$name}.sb4-view-activated {
121
- --sb4-view-activated-bg: transparent !important;
122
- --sb4-view-activated-color: #{$color} !important;
123
- border-bottom: 1px solid #{$color} !important;
124
- border-bottom-right-radius: unset !important;
125
- border-bottom-left-radius: unset !important;
126
-
127
- .mat-icon {
128
- color: #{$color} !important;
129
- fill: #{$color} !important;
130
- stroke: #{$color} !important;
131
- }
132
- }
133
-
134
- .sb4-minifab.sb4-#{$name} {
135
- background-color: transparent;
136
- border: 1px solid #{$color};
137
- color: #{$color};
138
- box-shadow: none;
139
- }
140
-
141
- .sb4-icon.sb4-#{$name} {
142
- background-color: transparent;
143
- border: 1px solid transparent;
144
- color: #{$color};
145
- box-shadow: none;
146
- }
147
-
148
- .sb4-minifab.sb4-#{$name}:hover,
149
- .sb4-normal.sb4-#{$name}:hover {
150
- background-color: rgb(from #{$color} r g b / 0.1);
151
- border-color: #{$color};
152
- }
153
-
154
- .sb4-flat.sb4-#{$name}:hover {
155
- background-color: rgb(from #{$color} r g b / 0.1);
156
- }
157
-
158
- .sb4-minifab.sb4-#{$name}:focus,
159
- .sb4-minifab.sb4-#{$name}:hover {
160
- box-shadow: none;
161
- }
162
-
163
- .sb4-minifab.sb4-#{$name},
164
- .sb4-normal.sb4-#{$name},
165
- .sb4-flat.sb4-#{$name} {
166
- .mdc-button__label {
167
- color: #{$color};
168
- }
169
- }
170
-
171
- .sb4-raised.sb4-#{$name} mat-icon,
172
- .sb4-raised.sb4-#{$name} .mat-icon,
173
- .sb4-raised.sb4-#{$name} .pi {
174
- color: #{$text} !important;
175
- fill: #{$text} !important;
176
- stroke: #{$text} !important;
177
- }
178
-
179
- .sb4-icon.sb4-#{$name},
180
- .sb4-minifab.sb4-#{$name},
181
- .sb4-normal.sb4-#{$name},
182
- .sb4-flat.sb4-#{$name} {
183
- mat-icon,
184
- .mat-icon,
185
- .pi {
186
- color: #{$color} !important;
187
- fill: #{$color} !important;
188
- stroke: #{$color} !important;
189
- }
190
- }
191
- }
1
+ @use 'sass:map';
2
+
3
+ $default-colors: (
4
+ primary: #4763ff,
5
+ secondary: #a6aabd60,
6
+ accent: #20b6a8,
7
+ warn: #d51d1d,
8
+ success: #16a34a,
9
+ accent-grey: #6b7280,
10
+ text: #132033,
11
+ text-inverted: #ffffff,
12
+ text-muted: #68778e,
13
+ ) !default;
14
+
15
+ // Text color on the raised variant. A color missing from this map gets white.
16
+ $default-text-colors: (
17
+ primary: var(--text-inverted-color),
18
+ ) !default;
19
+
20
+ $default-tokens: (
21
+ // Backgrounds
22
+ color-bg: #f6f8fb,
23
+ color-surface: #ffffff,
24
+ color-surface-alt: #f9fbff,
25
+
26
+ // Borders
27
+ color-border: #e4eaf2,
28
+
29
+ // Tree
30
+ tree-active-background: var(--accent-color),
31
+
32
+ // Semantic
33
+ color-danger: var(--warn-color),
34
+ color-teal: #20b6a8,
35
+
36
+ // UI chrome
37
+ color-chip: #e8f4fd,
38
+ color-input: #ffffff,
39
+
40
+ // Shadows
41
+ shadow-strong: 0 18px 50px rgba(1, 132, 228, 0.1),
42
+ shadow-soft: 0 8px 22px rgba(1, 132, 228, 0.07),
43
+
44
+ border-radius: 0.5rem,
45
+ default-padding: 0.5rem,
46
+ ) !default;
47
+
48
+ @function -text-color($text-colors, $name) {
49
+ $value: map.get($text-colors, $name);
50
+ @if $value {
51
+ @return $value;
52
+ }
53
+ @return var(--text-color);
54
+ }
55
+
56
+ // Emits CSS variables only, so the project chooses the selector.
57
+ // Usage: body { @include sb.tokens($colors, $text-colors, $overrides); }
58
+ @mixin tokens($colors: (), $text-colors: (), $overrides: ()) {
59
+ $all-colors: map.merge($default-colors, $colors);
60
+ $all-text-colors: map.merge($default-text-colors, $text-colors);
61
+ $all-tokens: map.merge($default-tokens, $overrides);
62
+
63
+ // One --<name>-color and one --<name>-text-color for every color
64
+ @each $name, $color in $all-colors {
65
+ --#{$name}-color: #{$color};
66
+ --#{$name}-text-color: #{-text-color($all-text-colors, $name)};
67
+ }
68
+
69
+ @each $name, $value in $all-tokens {
70
+ @if $name == font-family {
71
+ font-family: #{$value} !important;
72
+ } @else {
73
+ --#{$name}: #{$value};
74
+ }
75
+ }
76
+ }
77
+
78
+ // @use '@smartbit4all/ng-client/styles' as sb;
79
+ // @include sb.buttons;
80
+ // @include sb.buttons((new-color: #ff5500), (new-color: white));
81
+ @mixin buttons($colors: (), $text-colors: ()) {
82
+ $all-colors: map.merge($default-colors, $colors);
83
+ $all-text-colors: map.merge($default-text-colors, $text-colors);
84
+
85
+ @each $name, $color in $all-colors {
86
+ $text: -text-color($all-text-colors, $name);
87
+ $color: var(--#{$name}-color, #{$color});
88
+
89
+ .sb4-raised.sb4-#{$name} {
90
+ background-color: #{$color} !important;
91
+ color: #{$text} !important;
92
+ stroke: #{$text} !important;
93
+ border: none;
94
+ }
95
+
96
+ .sb4-raised.sb4-#{$name}:hover {
97
+ background-color: rgb(from #{$color} r g b / 0.8);
98
+ }
99
+
100
+ .sb4-raised.sb4-#{$name} .mdc-button__label {
101
+ color: #{$text};
102
+ }
103
+
104
+ .sb4-normal.sb4-#{$name} {
105
+ background-color: transparent;
106
+ border: 1px solid #{$color};
107
+ color: #{$color} !important;
108
+ stroke: #{$color};
109
+ box-shadow: none;
110
+ }
111
+
112
+ .sb4-flat.sb4-#{$name} {
113
+ background-color: transparent;
114
+ border: 1px solid transparent;
115
+ color: #{$color} !important;
116
+ stroke: #{$color};
117
+ box-shadow: none;
118
+ }
119
+
120
+ .sb4-flat.sb4-#{$name}.sb4-view-activated {
121
+ --sb4-view-activated-bg: transparent !important;
122
+ --sb4-view-activated-color: #{$color} !important;
123
+ border-bottom: 1px solid #{$color} !important;
124
+ border-bottom-right-radius: unset !important;
125
+ border-bottom-left-radius: unset !important;
126
+
127
+ .mat-icon {
128
+ color: #{$color} !important;
129
+ fill: #{$color} !important;
130
+ stroke: #{$color} !important;
131
+ }
132
+ }
133
+
134
+ .sb4-minifab.sb4-#{$name} {
135
+ background-color: transparent;
136
+ border: 1px solid #{$color};
137
+ color: #{$color};
138
+ box-shadow: none;
139
+ }
140
+
141
+ .sb4-icon.sb4-#{$name} {
142
+ background-color: transparent;
143
+ border: 1px solid transparent;
144
+ color: #{$color};
145
+ box-shadow: none;
146
+ }
147
+
148
+ .sb4-minifab.sb4-#{$name}:hover,
149
+ .sb4-normal.sb4-#{$name}:hover {
150
+ background-color: rgb(from #{$color} r g b / 0.1);
151
+ border-color: #{$color};
152
+ }
153
+
154
+ .sb4-flat.sb4-#{$name}:hover {
155
+ background-color: rgb(from #{$color} r g b / 0.1);
156
+ }
157
+
158
+ .sb4-minifab.sb4-#{$name}:focus,
159
+ .sb4-minifab.sb4-#{$name}:hover {
160
+ box-shadow: none;
161
+ }
162
+
163
+ .sb4-minifab.sb4-#{$name},
164
+ .sb4-normal.sb4-#{$name},
165
+ .sb4-flat.sb4-#{$name} {
166
+ .mdc-button__label {
167
+ color: #{$color};
168
+ }
169
+ }
170
+
171
+ .sb4-raised.sb4-#{$name} mat-icon,
172
+ .sb4-raised.sb4-#{$name} .mat-icon,
173
+ .sb4-raised.sb4-#{$name} .pi {
174
+ color: #{$text} !important;
175
+ fill: #{$text} !important;
176
+ stroke: #{$text} !important;
177
+ }
178
+
179
+ .sb4-icon.sb4-#{$name},
180
+ .sb4-minifab.sb4-#{$name},
181
+ .sb4-normal.sb4-#{$name},
182
+ .sb4-flat.sb4-#{$name} {
183
+ mat-icon,
184
+ .mat-icon,
185
+ .pi {
186
+ color: #{$color} !important;
187
+ fill: #{$color} !important;
188
+ stroke: #{$color} !important;
189
+ }
190
+ }
191
+ }
192
192
  }
@@ -8618,6 +8618,8 @@ interface SmartTreeNode {
8618
8618
  childrenNodesLoaded: boolean;
8619
8619
  level: number;
8620
8620
  shortDescription?: string;
8621
+ /** The node's tooltip; when set, it is the tooltip of the icon and of the caption. */
8622
+ tooltip?: string;
8621
8623
  identifier?: string;
8622
8624
  objectUri?: string;
8623
8625
  nodeType: string;
@@ -8777,6 +8779,13 @@ declare class SmartTreeComponent implements OnInit, OnDestroy {
8777
8779
  'padding-left': string;
8778
8780
  };
8779
8781
  customButtonClicked(event: any, button: SmartTreeNodeButton, close?: boolean): void;
8782
+ /**
8783
+ * The CSS hides the short description of a row edited elsewhere, so its caption tooltip carries
8784
+ * it under the tooltip, on a line of its own.
8785
+ */
8786
+ getCaptionTooltipText(node: SmartTreeNode): string | null;
8787
+ /** The tooltip of a text, opening below like a caption's; none without a text. */
8788
+ createTooltip(text?: string | null): UiActionTooltip | undefined;
8780
8789
  getClassesForTreeNode(node: SmartTreeNode): string[];
8781
8790
  getInnerClassesForTreeNode(node: SmartTreeNode): string[];
8782
8791
  getClassesForTreeNodeChildren(node: SmartTreeNode): string[];
@@ -11473,14 +11482,17 @@ declare function hasGroupEditActions(service: ISmartFilterEditorService): boolea
11473
11482
  declare class SmartTooltipDirective {
11474
11483
  private tooltip;
11475
11484
  readonly smartTooltip: i0.InputSignal<UiActionTooltip | undefined>;
11485
+ /** A class the tooltip carries beside the directive's own, for a use that styles its tooltips. */
11486
+ readonly smartTooltipClass: i0.InputSignal<string | undefined>;
11476
11487
  cursor: string;
11477
11488
  mouseover(): void;
11478
11489
  mouseleave(): void;
11490
+ private getTooltipClass;
11479
11491
  getTooltipPos(pos?: UiActionTooltipTooltipPositionEnum): TooltipPosition;
11480
11492
  getTooltipDelay(delay?: number): number;
11481
11493
  getTooltipHideDelay(delay?: number): number;
11482
11494
  static ɵfac: i0.ɵɵFactoryDeclaration<SmartTooltipDirective, never>;
11483
- static ɵdir: i0.ɵɵDirectiveDeclaration<SmartTooltipDirective, "[smartTooltip]", never, { "smartTooltip": { "alias": "smartTooltip"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
11495
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SmartTooltipDirective, "[smartTooltip]", never, { "smartTooltip": { "alias": "smartTooltip"; "required": false; "isSignal": true; }; "smartTooltipClass": { "alias": "smartTooltipClass"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
11484
11496
  }
11485
11497
 
11486
11498
  declare class SmartDatePipe extends DatePipe implements PipeTransform {
Binary file