@smartbit4all/ng-client 7.3.21 → 7.3.22
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/HTML-WIDGET.md +743 -710
- package/MIGRATION-7.0.md +2214 -2214
- package/README.md +206 -206
- package/WIDGETS.md +254 -254
- package/fesm2022/smartbit4all-ng-client.mjs +218 -192
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-7.3.22.tgz +0 -0
- package/src/styles/_ng-client-styles.scss +191 -191
- package/types/smartbit4all-ng-client.d.ts +13 -1
- package/smartbit4all-ng-client-7.3.21.tgz +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartbit4all/ng-client",
|
|
3
|
-
"version": "7.3.
|
|
3
|
+
"version": "7.3.22",
|
|
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": {
|
|
Binary file
|
|
@@ -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
|