@c8y/style 1023.85.1 → 1023.88.2
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/helper-scripts/convert-scss-to-less.sh +2 -4
- package/img/alarms/alarm-list-widget.png +0 -0
- package/img/asset-table-pr.png +0 -0
- package/img/data-points-list-widget.png +0 -0
- package/img/data-points-table-widget.png +0 -0
- package/img/datapoints-graph-widget.png +0 -0
- package/img/device-control-message-widget.png +0 -0
- package/img/event-list-widget.png +0 -0
- package/img/html-widget-pr.png +0 -0
- package/img/image-widget.png +0 -0
- package/img/info-gauge-widget-pr.png +0 -0
- package/img/kpi-widget.png +0 -0
- package/img/linear-gauge-widget-pr.png +0 -0
- package/img/map-widget-pr.png +0 -0
- package/img/markdown-widget.png +0 -0
- package/img/pie-chart-widget-pr.png +0 -0
- package/img/quick-links-widget.png +0 -0
- package/img/radial-gauge-pr.png +0 -0
- package/img/rotation-widget-pr.png +0 -0
- package/img/silo-widget-pr.png +0 -0
- package/img/welcome-widget-pr.png +0 -0
- package/markdown-files/data-prep-preview.md +54 -0
- package/package.json +1 -1
- package/styles/base/_type.less +0 -1
- package/styles/components/_markdown-content.less +21 -4
- package/styles/components/_markdown-content.scss +22 -0
- package/styles/components/data-display-and-visualization/lists/_c8y-list-group.less +4 -2
- package/styles/components/data-display-and-visualization/lists/_c8y-list-group.scss +4 -8
- package/styles/components/data-display-and-visualization/lists/_list-group.less +0 -1
- package/styles/components/navigation-and-layout/navigation/_pagination.less +0 -1
- package/styles/core/forms/_forms.less +0 -1
- package/styles/core/forms/_input-groups.less +0 -2
- package/styles/core/overlays/_c8y-dashboard-modal.less +0 -2
- package/styles/core/overlays/_c8y-wizard.less +0 -1
- package/styles/dashboard/_c8y-dashboard-style.less +26 -12
- package/styles/dashboard/_c8y-dashboard-style.scss +17 -6
- package/styles/icons/_c8y-icons.less +6 -1
- package/styles/icons/_c8y-icons.scss +5 -0
- package/styles/icons/_dlt-c8y-icons.less +0 -1
- package/styles/vendor/datepicker/_bs-datepicker.less +0 -1
- package/variables/_forms-vars.less +1 -0
|
@@ -105,8 +105,7 @@ convert_syntax() {
|
|
|
105
105
|
print_info "Removing SCSS-specific @use imports and redundant variable @use imports"
|
|
106
106
|
fi
|
|
107
107
|
content=$(echo "$content" | sed '/^@use[[:space:]]*["'"'"']sass:/d')
|
|
108
|
-
content=$(echo "$content" | sed '/^@use[[:space:]]*["'"'"'][^"'"'"']*variables\/
|
|
109
|
-
content=$(echo "$content" | sed '/^@use[[:space:]]*["'"'"'][^"'"'"']*variables\/_login-vars["'"'"']/d')
|
|
108
|
+
content=$(echo "$content" | sed '/^@use[[:space:]]*["'"'"'][^"'"'"']*variables\/[^"'"'"']*["'"'"']/d')
|
|
110
109
|
|
|
111
110
|
# 0b. Convert string.unquote() to ~'' BEFORE other conversions
|
|
112
111
|
if [[ $VERBOSE == true ]]; then
|
|
@@ -178,8 +177,7 @@ convert_syntax() {
|
|
|
178
177
|
print_info "Removing redundant variable imports (LESS has global scope)"
|
|
179
178
|
fi
|
|
180
179
|
# Remove any import of variables/index.less or _login-vars.less
|
|
181
|
-
content=$(echo "$content" | sed -E '/@import[[:space:]]+.*variables
|
|
182
|
-
content=$(echo "$content" | sed -E '/@import[[:space:]]+.*variables\/_login-vars\.less/d')
|
|
180
|
+
content=$(echo "$content" | sed -E '/@import[[:space:]]+.*variables\//d')
|
|
183
181
|
|
|
184
182
|
# 1. Remove @content keyword (LESS doesn't support it)
|
|
185
183
|
# Mixins with @content need manual expansion - just remove the keyword itself
|
|
Binary file
|
package/img/asset-table-pr.png
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/img/html-widget-pr.png
CHANGED
|
Binary file
|
package/img/image-widget.png
CHANGED
|
Binary file
|
|
Binary file
|
package/img/kpi-widget.png
CHANGED
|
Binary file
|
|
Binary file
|
package/img/map-widget-pr.png
CHANGED
|
Binary file
|
package/img/markdown-widget.png
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/img/radial-gauge-pr.png
CHANGED
|
Binary file
|
|
Binary file
|
package/img/silo-widget-pr.png
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
### Data Preparation
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Data Preparation provides an AI-assisted environment for creating and managing transformation rules that convert raw device messages into the Cumulocity data model.
|
|
8
|
+
|
|
9
|
+
IoT devices send data in many different formats, from simple JSON payloads to device-specific message structures. Data Preparation empowers you to standardize this data before it is used by Cumulocity applications and services.
|
|
10
|
+
|
|
11
|
+
Data Preparation uses smart functions to process incoming messages and produce Cumulocity-compliant measurements, events, alarms, or managed objects. The AI assistant helps you describe your business context and generate JavaScript-based transformation logic, which you can review, edit, test, and deploy as part of a rule.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Prerequisites
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
✅ **AI Provider:**
|
|
20
|
+
|
|
21
|
+
- Enable the AI Agent Manager public preview (available next to this Data Preparation preview feature).
|
|
22
|
+
- Configure a global AI provider in the Agent Manager. See [Getting started by configuring a global provider](https://cumulocity.com/docs/ai/aim-introduction/#getting-started-by-configuring-a-global-provider).
|
|
23
|
+
|
|
24
|
+
✅ **Permissions:**
|
|
25
|
+
To get started, ensure your user role is configured with the following ADMIN permissions:
|
|
26
|
+
|
|
27
|
+
- **Data Preparation rules** – Create, edit, and delete draft rules.
|
|
28
|
+
- **Data Preparation deployments** – Deploy rules in production.
|
|
29
|
+
|
|
30
|
+
By default, both permissions are included in the "Admin" role.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Why use Data Preparation?
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
✅ **Convert raw device payloads:** Transform incoming messages into standard Cumulocity measurements, events, alarms, and managed objects.
|
|
39
|
+
|
|
40
|
+
✅ **Use AI-assisted rule creation:** Describe the required transformation in natural language, or automatically generate the transformation from your device data.
|
|
41
|
+
|
|
42
|
+
✅ **Validate before deployment:** Test transformations with sample payloads or live MQTT messages and compare the generated Cumulocity output before deploying.
|
|
43
|
+
|
|
44
|
+
✅ **Process live MQTT traffic:** Deploy rules that listen to MQTT Service topics and process matching incoming messages automatically.
|
|
45
|
+
|
|
46
|
+
✅ **Prepare data for use by other applications:** Normalize raw device messages into Cumulocity-compliant objects before they are used by applications such as Streaming Analytics.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
For step-by-step onboarding and first rule deployment, refer to the [Getting started](https://cumulocity.com/docs/data-preparation/getting-started-dataprep/#create-rule) section in the Data Preparation documentation.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
For more details, refer to the [Data Preparation documentation](https://cumulocity.com/docs/data-preparation/data-preparation-introduction/#datapreparation).
|
package/package.json
CHANGED
package/styles/base/_type.less
CHANGED
|
@@ -13,9 +13,6 @@
|
|
|
13
13
|
* - Font-weight values (500, 600): Typography weights
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
// NOTE: SCSS mixin with @content removed - manually expanded below
|
|
17
|
-
// @mixin heading-elements was used in SCSS but LESS doesn't support @content
|
|
18
|
-
|
|
19
16
|
.markdown-content {
|
|
20
17
|
h1,
|
|
21
18
|
h2,
|
|
@@ -29,7 +26,6 @@
|
|
|
29
26
|
max-width: 800px;
|
|
30
27
|
}
|
|
31
28
|
|
|
32
|
-
// Manually expanded from @include heading-elements mixin
|
|
33
29
|
h1,
|
|
34
30
|
h2,
|
|
35
31
|
h3,
|
|
@@ -75,4 +71,25 @@
|
|
|
75
71
|
opacity: 0.65;
|
|
76
72
|
}
|
|
77
73
|
}
|
|
74
|
+
|
|
75
|
+
table{
|
|
76
|
+
&:extend(.table);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// ignore max width when used in the widget
|
|
81
|
+
c8y-markdown-widget-view,
|
|
82
|
+
c8y-widget-preview{
|
|
83
|
+
.markdown-content {
|
|
84
|
+
h1,
|
|
85
|
+
h2,
|
|
86
|
+
h3,
|
|
87
|
+
h4,
|
|
88
|
+
h5,
|
|
89
|
+
p,
|
|
90
|
+
ul,
|
|
91
|
+
ol {
|
|
92
|
+
max-width: unset;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
78
95
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
@use "../../variables/index" as *;
|
|
2
2
|
|
|
3
|
+
@use "data-display-and-visualization/tables/tables" as *;
|
|
3
4
|
/**
|
|
4
5
|
* Markdown Content - Styling for markdown rendered content
|
|
5
6
|
*
|
|
@@ -79,4 +80,25 @@
|
|
|
79
80
|
opacity: 0.65;
|
|
80
81
|
}
|
|
81
82
|
}
|
|
83
|
+
|
|
84
|
+
table{
|
|
85
|
+
@extend .table;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// ignore max width when used in the widget
|
|
90
|
+
c8y-markdown-widget-view,
|
|
91
|
+
c8y-widget-preview{
|
|
92
|
+
.markdown-content {
|
|
93
|
+
h1,
|
|
94
|
+
h2,
|
|
95
|
+
h3,
|
|
96
|
+
h4,
|
|
97
|
+
h5,
|
|
98
|
+
p,
|
|
99
|
+
ul,
|
|
100
|
+
ol {
|
|
101
|
+
max-width: unset;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
82
104
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
@import "../../../../variables/_dlt-c8y-icons-vars.less";
|
|
3
2
|
@import "../../../animations/_component-animations.less";
|
|
4
3
|
@import "../../../core/buttons/_buttons.less";
|
|
5
4
|
@import "../../../mixins/_tab-focus.less";
|
|
@@ -158,7 +157,7 @@
|
|
|
158
157
|
> .expanded,
|
|
159
158
|
&.expanded {
|
|
160
159
|
background-color: @component-background-expanded;
|
|
161
|
-
|
|
160
|
+
.separator-bottom();
|
|
162
161
|
--c8y-nav-tabs-background-active: @{component-background-expanded};
|
|
163
162
|
|
|
164
163
|
.c8y-list__item__title {
|
|
@@ -541,6 +540,9 @@ c8y-li-drag-handle, c8y-list-item-drag-handle {
|
|
|
541
540
|
}
|
|
542
541
|
.full-w-collapse &{
|
|
543
542
|
padding: @component-padding;
|
|
543
|
+
c8y-widget-config-section &{
|
|
544
|
+
padding-top: 0;
|
|
545
|
+
}
|
|
544
546
|
}
|
|
545
547
|
}
|
|
546
548
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
@use "../../../animations/component-animations";
|
|
5
5
|
@use "../../../core/buttons/buttons";
|
|
6
6
|
@use "../../../mixins/tab-focus";
|
|
7
|
-
|
|
7
|
+
@use "../../../utilities/separators";
|
|
8
8
|
/**
|
|
9
9
|
* C8Y List Group - Modern list component with flexible layouts
|
|
10
10
|
*
|
|
@@ -542,6 +542,9 @@ c8y-li-drag-handle, c8y-list-item-drag-handle {
|
|
|
542
542
|
}
|
|
543
543
|
.full-w-collapse &{
|
|
544
544
|
padding: $component-padding;
|
|
545
|
+
c8y-widget-config-section &{
|
|
546
|
+
padding-top: 0;
|
|
547
|
+
}
|
|
545
548
|
}
|
|
546
549
|
}
|
|
547
550
|
|
|
@@ -634,14 +637,7 @@ c8y-li-drag-handle, c8y-list-item-drag-handle {
|
|
|
634
637
|
content: '';
|
|
635
638
|
transition: top 0.35s linear;
|
|
636
639
|
}
|
|
637
|
-
//TODO: need to fix this when using the virtual scroll, for now let's leave it as is
|
|
638
|
-
// &:first-child::before {
|
|
639
|
-
// top: 50%;
|
|
640
|
-
// }
|
|
641
640
|
|
|
642
|
-
// &:last-of-type::before {
|
|
643
|
-
// bottom: 50%;
|
|
644
|
-
// }
|
|
645
641
|
&::after {
|
|
646
642
|
position: absolute;
|
|
647
643
|
top: 50%;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
@import
|
|
3
|
-
@import "../mixins/_c8y-scrollbar.less";
|
|
4
|
-
@import "../mixins/_icon-base.less";
|
|
1
|
+
@import '../mixins/_c8y-scrollbar.less';
|
|
2
|
+
@import '../mixins/_icon-base.less';
|
|
5
3
|
|
|
6
4
|
/**
|
|
7
5
|
* Dashboard Styles - Grid-based dashboard layout with drag-and-drop
|
|
@@ -159,8 +157,6 @@ body.c8y-grid-dashboard > .card.card-dashboard.cdk-drag-preview {
|
|
|
159
157
|
left: 0 !important;
|
|
160
158
|
}
|
|
161
159
|
|
|
162
|
-
|
|
163
|
-
|
|
164
160
|
.dashboard {
|
|
165
161
|
top: 0;
|
|
166
162
|
left: 0;
|
|
@@ -250,6 +246,25 @@ body fieldset > .dashboard-preview-slot {
|
|
|
250
246
|
border: 0;
|
|
251
247
|
padding: 0;
|
|
252
248
|
margin: 0 !important;
|
|
249
|
+
flex-grow: 1;
|
|
250
|
+
min-height: 0;
|
|
251
|
+
grid-template-rows: repeat(1, 1fr);
|
|
252
|
+
|
|
253
|
+
.card-inner-scroll {
|
|
254
|
+
display: flex;
|
|
255
|
+
flex-direction: column;
|
|
256
|
+
overflow: hidden;
|
|
257
|
+
|
|
258
|
+
> * {
|
|
259
|
+
flex: 1 1 0;
|
|
260
|
+
min-height: 0;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
c8y-local-controls,
|
|
264
|
+
c8y-global-context-widget-wrapper {
|
|
265
|
+
flex-grow: 0 !important;
|
|
266
|
+
min-height: min-content !important;
|
|
267
|
+
}
|
|
253
268
|
}
|
|
254
269
|
|
|
255
270
|
// title hidden
|
|
@@ -264,7 +279,6 @@ body fieldset > .dashboard-preview-slot {
|
|
|
264
279
|
width: 100%;
|
|
265
280
|
height: 0;
|
|
266
281
|
border: 0;
|
|
267
|
-
pointer-events: none;
|
|
268
282
|
&:after {
|
|
269
283
|
display: none;
|
|
270
284
|
}
|
|
@@ -406,19 +420,19 @@ body fieldset > .dashboard-preview-slot {
|
|
|
406
420
|
}
|
|
407
421
|
}
|
|
408
422
|
// Prevent interactions in dashboard preview slots except for maps
|
|
409
|
-
.dashboard-preview-slot:not(:has(c8y-map)){
|
|
423
|
+
.dashboard-preview-slot:not(:has(c8y-map)) {
|
|
410
424
|
pointer-events: none;
|
|
411
425
|
cursor: forbidden;
|
|
412
426
|
}
|
|
413
427
|
|
|
414
428
|
// data-grid--custom-column-header- styles
|
|
415
429
|
.dashboard-preview-slot,
|
|
416
|
-
.card-dashboard{
|
|
417
|
-
.table-data-grid-header > .h4{
|
|
430
|
+
.card-dashboard {
|
|
431
|
+
.table-data-grid-header > .h4 {
|
|
418
432
|
display: none;
|
|
419
433
|
}
|
|
420
|
-
.content-fullpage{
|
|
421
|
-
height: 100
|
|
434
|
+
.content-fullpage {
|
|
435
|
+
height: 100% !important;
|
|
422
436
|
}
|
|
423
437
|
c8y-asset-table-widget-view.hide-footer {
|
|
424
438
|
.table-data-grid-footer {
|
|
@@ -252,6 +252,23 @@ body fieldset > .dashboard-preview-slot {
|
|
|
252
252
|
border: 0;
|
|
253
253
|
padding: 0;
|
|
254
254
|
margin: 0 !important;
|
|
255
|
+
flex-grow: 1;
|
|
256
|
+
min-height: 0;
|
|
257
|
+
grid-template-rows: repeat(1, 1fr);
|
|
258
|
+
|
|
259
|
+
.card-inner-scroll {
|
|
260
|
+
display: flex;
|
|
261
|
+
flex-direction: column;
|
|
262
|
+
|
|
263
|
+
> * {
|
|
264
|
+
flex: 1 1 0;
|
|
265
|
+
min-height: 0;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
c8y-local-controls, c8y-global-context-widget-wrapper {
|
|
269
|
+
flex-grow: 0!important;
|
|
270
|
+
min-height: min-content!important;
|
|
271
|
+
}
|
|
255
272
|
}
|
|
256
273
|
|
|
257
274
|
// title hidden
|
|
@@ -266,7 +283,6 @@ body fieldset > .dashboard-preview-slot {
|
|
|
266
283
|
width: 100%;
|
|
267
284
|
height: 0;
|
|
268
285
|
border: 0;
|
|
269
|
-
pointer-events: none;
|
|
270
286
|
&:after {
|
|
271
287
|
display: none;
|
|
272
288
|
}
|
|
@@ -408,11 +424,6 @@ body fieldset > .dashboard-preview-slot {
|
|
|
408
424
|
}
|
|
409
425
|
}
|
|
410
426
|
|
|
411
|
-
// Prevent interactions in dashboard preview slots except for maps
|
|
412
|
-
.dashboard-preview-slot:not(:has(c8y-map)){
|
|
413
|
-
pointer-events: none;
|
|
414
|
-
cursor: forbidden;
|
|
415
|
-
}
|
|
416
427
|
|
|
417
428
|
// data-grid--custom-column-header- styles
|
|
418
429
|
.dashboard-preview-slot,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
@import "../../variables/_dlt-c8y-icons-vars.less";
|
|
3
2
|
@import "../mixins/_icon-base.less";
|
|
4
3
|
|
|
5
4
|
/**
|
|
@@ -1204,4 +1203,10 @@ c8y-icon-selector-wrapper{
|
|
|
1204
1203
|
&:hover .showOnHover{
|
|
1205
1204
|
opacity: 1;
|
|
1206
1205
|
}
|
|
1206
|
+
|
|
1207
|
+
.form-group-sm &{
|
|
1208
|
+
> div{
|
|
1209
|
+
min-height: @form-control-height-sm;
|
|
1210
|
+
}
|
|
1211
|
+
}
|
|
1207
1212
|
}
|