@smartbit4all/ng-client 7.3.46 → 7.3.47

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.46",
3
+ "version": "7.3.47",
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,188 +1,188 @@
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: #ffffff,
23
- color-surface: #f6f8fb,
24
- color-surface-alt: #f9fbff,
25
-
26
- // Borders
27
- color-border: #e4eaf2,
28
-
29
- // Tree
30
- tree-active-background: var(--accent-color),
31
- // Semantic
32
- color-danger: var(--warn-color),
33
- // UI chrome
34
- color-chip: #e8f4fd,
35
- color-input: #ffffff,
36
-
37
- // Shadows
38
- shadow-strong: 0 18px 50px rgba(1, 132, 228, 0.1),
39
- shadow-soft: 0 8px 22px rgba(1, 132, 228, 0.07),
40
- border-radius: 0.5rem,
41
- default-padding: 0.5rem
42
- ) !default;
43
-
44
- @function -text-color($text-colors, $name) {
45
- $value: map.get($text-colors, $name);
46
- @if $value {
47
- @return $value;
48
- }
49
- @return var(--text-color);
50
- }
51
-
52
- // Emits CSS variables only, so the project chooses the selector.
53
- // Usage: body { @include sb.tokens($colors, $text-colors, $overrides); }
54
- @mixin tokens($colors: (), $text-colors: (), $overrides: ()) {
55
- $all-colors: map.merge($default-colors, $colors);
56
- $all-text-colors: map.merge($default-text-colors, $text-colors);
57
- $all-tokens: map.merge($default-tokens, $overrides);
58
-
59
- // One --<name>-color and one --<name>-text-color for every color
60
- @each $name, $color in $all-colors {
61
- --#{$name}-color: #{$color};
62
- --#{$name}-text-color: #{-text-color($all-text-colors, $name)};
63
- }
64
-
65
- @each $name, $value in $all-tokens {
66
- @if $name == font-family {
67
- font-family: #{$value} !important;
68
- } @else {
69
- --#{$name}: #{$value};
70
- }
71
- }
72
- }
73
-
74
- // @use '@smartbit4all/ng-client/styles' as sb;
75
- // @include sb.buttons;
76
- // @include sb.buttons((new-color: #ff5500), (new-color: white));
77
- @mixin buttons($colors: (), $text-colors: ()) {
78
- $all-colors: map.merge($default-colors, $colors);
79
- $all-text-colors: map.merge($default-text-colors, $text-colors);
80
-
81
- @each $name, $color in $all-colors {
82
- $text: -text-color($all-text-colors, $name);
83
- $color: var(--#{$name}-color, #{$color});
84
-
85
- .sb4-raised.sb4-#{$name} {
86
- background-color: #{$color} !important;
87
- color: #{$text} !important;
88
- stroke: #{$text} !important;
89
- border: none;
90
- }
91
-
92
- .sb4-raised.sb4-#{$name}:hover {
93
- background-color: rgb(from #{$color} r g b / 0.8);
94
- }
95
-
96
- .sb4-raised.sb4-#{$name} .mdc-button__label {
97
- color: #{$text};
98
- }
99
-
100
- .sb4-normal.sb4-#{$name} {
101
- background-color: transparent;
102
- border: 1px solid #{$color};
103
- color: #{$color} !important;
104
- stroke: #{$color};
105
- box-shadow: none;
106
- }
107
-
108
- .sb4-flat.sb4-#{$name} {
109
- background-color: transparent;
110
- border: 1px solid transparent;
111
- color: #{$color} !important;
112
- stroke: #{$color};
113
- box-shadow: none;
114
- }
115
-
116
- .sb4-flat.sb4-#{$name}.sb4-view-activated {
117
- --sb4-view-activated-bg: transparent !important;
118
- --sb4-view-activated-color: #{$color} !important;
119
- border-bottom: 1px solid #{$color} !important;
120
- border-bottom-right-radius: unset !important;
121
- border-bottom-left-radius: unset !important;
122
-
123
- .mat-icon {
124
- color: #{$color} !important;
125
- fill: #{$color} !important;
126
- stroke: #{$color} !important;
127
- }
128
- }
129
-
130
- .sb4-minifab.sb4-#{$name} {
131
- background-color: transparent;
132
- border: 1px solid #{$color};
133
- color: #{$color};
134
- box-shadow: none;
135
- }
136
-
137
- .sb4-icon.sb4-#{$name} {
138
- background-color: transparent;
139
- border: 1px solid transparent;
140
- color: #{$color};
141
- box-shadow: none;
142
- }
143
-
144
- .sb4-minifab.sb4-#{$name}:hover,
145
- .sb4-normal.sb4-#{$name}:hover {
146
- background-color: rgb(from #{$color} r g b / 0.1);
147
- border-color: #{$color};
148
- }
149
-
150
- .sb4-flat.sb4-#{$name}:hover {
151
- background-color: rgb(from #{$color} r g b / 0.1);
152
- }
153
-
154
- .sb4-minifab.sb4-#{$name}:focus,
155
- .sb4-minifab.sb4-#{$name}:hover {
156
- box-shadow: none;
157
- }
158
-
159
- .sb4-minifab.sb4-#{$name},
160
- .sb4-normal.sb4-#{$name},
161
- .sb4-flat.sb4-#{$name} {
162
- .mdc-button__label {
163
- color: #{$color};
164
- }
165
- }
166
-
167
- .sb4-raised.sb4-#{$name} mat-icon,
168
- .sb4-raised.sb4-#{$name} .mat-icon,
169
- .sb4-raised.sb4-#{$name} .pi {
170
- color: #{$text} !important;
171
- fill: #{$text} !important;
172
- stroke: #{$text} !important;
173
- }
174
-
175
- .sb4-icon.sb4-#{$name},
176
- .sb4-minifab.sb4-#{$name},
177
- .sb4-normal.sb4-#{$name},
178
- .sb4-flat.sb4-#{$name} {
179
- mat-icon,
180
- .mat-icon,
181
- .pi {
182
- color: #{$color} !important;
183
- fill: #{$color} !important;
184
- stroke: #{$color} !important;
185
- }
186
- }
187
- }
188
- }
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: #ffffff,
23
+ color-surface: #f6f8fb,
24
+ color-surface-alt: #f9fbff,
25
+
26
+ // Borders
27
+ color-border: #e4eaf2,
28
+
29
+ // Tree
30
+ tree-active-background: var(--accent-color),
31
+ // Semantic
32
+ color-danger: var(--warn-color),
33
+ // UI chrome
34
+ color-chip: #e8f4fd,
35
+ color-input: #ffffff,
36
+
37
+ // Shadows
38
+ shadow-strong: 0 18px 50px rgba(1, 132, 228, 0.1),
39
+ shadow-soft: 0 8px 22px rgba(1, 132, 228, 0.07),
40
+ border-radius: 0.5rem,
41
+ default-padding: 0.5rem
42
+ ) !default;
43
+
44
+ @function -text-color($text-colors, $name) {
45
+ $value: map.get($text-colors, $name);
46
+ @if $value {
47
+ @return $value;
48
+ }
49
+ @return var(--text-color);
50
+ }
51
+
52
+ // Emits CSS variables only, so the project chooses the selector.
53
+ // Usage: body { @include sb.tokens($colors, $text-colors, $overrides); }
54
+ @mixin tokens($colors: (), $text-colors: (), $overrides: ()) {
55
+ $all-colors: map.merge($default-colors, $colors);
56
+ $all-text-colors: map.merge($default-text-colors, $text-colors);
57
+ $all-tokens: map.merge($default-tokens, $overrides);
58
+
59
+ // One --<name>-color and one --<name>-text-color for every color
60
+ @each $name, $color in $all-colors {
61
+ --#{$name}-color: #{$color};
62
+ --#{$name}-text-color: #{-text-color($all-text-colors, $name)};
63
+ }
64
+
65
+ @each $name, $value in $all-tokens {
66
+ @if $name == font-family {
67
+ font-family: #{$value} !important;
68
+ } @else {
69
+ --#{$name}: #{$value};
70
+ }
71
+ }
72
+ }
73
+
74
+ // @use '@smartbit4all/ng-client/styles' as sb;
75
+ // @include sb.buttons;
76
+ // @include sb.buttons((new-color: #ff5500), (new-color: white));
77
+ @mixin buttons($colors: (), $text-colors: ()) {
78
+ $all-colors: map.merge($default-colors, $colors);
79
+ $all-text-colors: map.merge($default-text-colors, $text-colors);
80
+
81
+ @each $name, $color in $all-colors {
82
+ $text: -text-color($all-text-colors, $name);
83
+ $color: var(--#{$name}-color, #{$color});
84
+
85
+ .sb4-raised.sb4-#{$name} {
86
+ background-color: #{$color} !important;
87
+ color: #{$text} !important;
88
+ stroke: #{$text} !important;
89
+ border: none;
90
+ }
91
+
92
+ .sb4-raised.sb4-#{$name}:hover {
93
+ background-color: rgb(from #{$color} r g b / 0.8);
94
+ }
95
+
96
+ .sb4-raised.sb4-#{$name} .mdc-button__label {
97
+ color: #{$text};
98
+ }
99
+
100
+ .sb4-normal.sb4-#{$name} {
101
+ background-color: transparent;
102
+ border: 1px solid #{$color};
103
+ color: #{$color} !important;
104
+ stroke: #{$color};
105
+ box-shadow: none;
106
+ }
107
+
108
+ .sb4-flat.sb4-#{$name} {
109
+ background-color: transparent;
110
+ border: 1px solid transparent;
111
+ color: #{$color} !important;
112
+ stroke: #{$color};
113
+ box-shadow: none;
114
+ }
115
+
116
+ .sb4-flat.sb4-#{$name}.sb4-view-activated {
117
+ --sb4-view-activated-bg: transparent !important;
118
+ --sb4-view-activated-color: #{$color} !important;
119
+ border-bottom: 1px solid #{$color} !important;
120
+ border-bottom-right-radius: unset !important;
121
+ border-bottom-left-radius: unset !important;
122
+
123
+ .mat-icon {
124
+ color: #{$color} !important;
125
+ fill: #{$color} !important;
126
+ stroke: #{$color} !important;
127
+ }
128
+ }
129
+
130
+ .sb4-minifab.sb4-#{$name} {
131
+ background-color: transparent;
132
+ border: 1px solid #{$color};
133
+ color: #{$color};
134
+ box-shadow: none;
135
+ }
136
+
137
+ .sb4-icon.sb4-#{$name} {
138
+ background-color: transparent;
139
+ border: 1px solid transparent;
140
+ color: #{$color};
141
+ box-shadow: none;
142
+ }
143
+
144
+ .sb4-minifab.sb4-#{$name}:hover,
145
+ .sb4-normal.sb4-#{$name}:hover {
146
+ background-color: rgb(from #{$color} r g b / 0.1);
147
+ border-color: #{$color};
148
+ }
149
+
150
+ .sb4-flat.sb4-#{$name}:hover {
151
+ background-color: rgb(from #{$color} r g b / 0.1);
152
+ }
153
+
154
+ .sb4-minifab.sb4-#{$name}:focus,
155
+ .sb4-minifab.sb4-#{$name}:hover {
156
+ box-shadow: none;
157
+ }
158
+
159
+ .sb4-minifab.sb4-#{$name},
160
+ .sb4-normal.sb4-#{$name},
161
+ .sb4-flat.sb4-#{$name} {
162
+ .mdc-button__label {
163
+ color: #{$color};
164
+ }
165
+ }
166
+
167
+ .sb4-raised.sb4-#{$name} mat-icon,
168
+ .sb4-raised.sb4-#{$name} .mat-icon,
169
+ .sb4-raised.sb4-#{$name} .pi {
170
+ color: #{$text} !important;
171
+ fill: #{$text} !important;
172
+ stroke: #{$text} !important;
173
+ }
174
+
175
+ .sb4-icon.sb4-#{$name},
176
+ .sb4-minifab.sb4-#{$name},
177
+ .sb4-normal.sb4-#{$name},
178
+ .sb4-flat.sb4-#{$name} {
179
+ mat-icon,
180
+ .mat-icon,
181
+ .pi {
182
+ color: #{$color} !important;
183
+ fill: #{$color} !important;
184
+ stroke: #{$color} !important;
185
+ }
186
+ }
187
+ }
188
+ }
@@ -7971,6 +7971,12 @@ interface SmartTableInterface<T> {
7971
7971
  };
7972
7972
  /** The accessible name of the column of the row states. */
7973
7973
  rowStateColumnLabel?: string;
7974
+ /** Whether the table shows the number of each row in a column of its own, before the others. */
7975
+ showRowNumbers?: boolean;
7976
+ /** The number of the rows before the first row of the table, on the pages before it. */
7977
+ rowNumberOffset?: number;
7978
+ /** The accessible name of the row number column, which shows no header text. */
7979
+ rowNumberColumnLabel?: string;
7974
7980
  /** Called with every action a toolbar of the row menu fires, and the promise of its execution. */
7975
7981
  onRowAction?: (row: T, code: string | undefined, execution: Promise<void>) => void;
7976
7982
  }
@@ -8052,6 +8058,9 @@ declare class SmartTable<T> implements SmartTableInterface<T> {
8052
8058
  [key: string]: string;
8053
8059
  };
8054
8060
  rowStateColumnLabel?: string;
8061
+ showRowNumbers?: boolean;
8062
+ rowNumberOffset?: number;
8063
+ rowNumberColumnLabel?: string;
8055
8064
  onRowAction?: (row: T, code: string | undefined, execution: Promise<void>) => void;
8056
8065
  constructor(config: SmartTableInterface<T>, gridId?: string | undefined);
8057
8066
  getPropertyNamesDeeply(element: any): string[];
@@ -8265,11 +8274,11 @@ interface GridRow {
8265
8274
  */
8266
8275
  interface GridPage {
8267
8276
  /**
8268
- * The index of the first row in the current page. Startes from 1 and inclusive.
8277
+ * The index of the first row in the current page. Starts from 0 and inclusive.
8269
8278
  */
8270
8279
  lowerBound?: number;
8271
8280
  /**
8272
- * The index of the last row in the current page inclusive.
8281
+ * The index after the last row in the current page, exclusive.
8273
8282
  */
8274
8283
  upperBound?: number;
8275
8284
  rows?: Array<GridRow>;
@@ -8431,6 +8440,14 @@ interface GridViewDescriptor {
8431
8440
  * The accessible name of the column of the row states, which shows no header text. The platform fills it in the locale of the session when the grid shows the column and it is not set.
8432
8441
  */
8433
8442
  rowStateColumnLabel?: string;
8443
+ /**
8444
+ * True when the table shows the number of each row, counted from 1 across the pages, in a column of its own before the columns of the descriptor. The export of the grid writes it as its first column. When not set, the platform sets it from the grid.showRowNumbers application property, false by default.
8445
+ */
8446
+ showRowNumbers?: boolean;
8447
+ /**
8448
+ * The name of the row number column: its header in the export and its accessible name in the table, which shows no header text. The platform fills it in the locale of the session when the grid shows the column and it is not set.
8449
+ */
8450
+ rowNumberColumnLabel?: string;
8434
8451
  preserveSelectionOnPageChange?: boolean;
8435
8452
  showEditColumns?: boolean;
8436
8453
  highlightProperty?: string;
@@ -8862,10 +8879,14 @@ declare class Table implements OnInit, OnDestroy {
8862
8879
  get showRowStateColumn(): boolean;
8863
8880
  private displayedColumnsCache?;
8864
8881
  /**
8865
- * The columns of the table: the row state column, when the table shows it, and the headers. The
8866
- * array is kept while the headers are, so the table does not diff its columns at every check.
8882
+ * The columns of the table: the row state column and the row number column, when the table shows
8883
+ * them, and the headers. The array is kept while these are, so the table does not diff its
8884
+ * columns at every check.
8867
8885
  */
8868
8886
  get displayedColumns(): string[];
8887
+ readonly rowNumberColumn = "sm-row-number";
8888
+ /** The number of the row at the index on its page, counted from 1 across the pages. */
8889
+ rowNumber(index: number): number;
8869
8890
  rowStateIcon(row: any): string | undefined;
8870
8891
  rowStateIconClass(row: any): string | undefined;
8871
8892
  rowStateLabel(row: any): string | undefined;
Binary file