@jumoo/usync 17.5.0 → 17.5.1
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/LICENCE +372 -372
- package/README.md +10 -10
- package/dist/components/usync-action-box.js +61 -61
- package/dist/components/usync-change-detail.js +409 -409
- package/dist/components/usync-change-view.js +49 -49
- package/dist/components/usync-progress-box.js +106 -106
- package/dist/components/usync-result-row.js +61 -61
- package/dist/components/usync-results-group-view.js +55 -55
- package/dist/components/usync-results-view.js +63 -63
- package/dist/components/usync-sync-file-info-view.js +10 -10
- package/dist/dialogs/details-modal-element.js +37 -37
- package/dist/dialogs/error-modal-element.js +21 -21
- package/dist/dialogs/legacy-modal-element.js +22 -22
- package/dist/dialogs/single-import-modal.element.js +30 -30
- package/dist/icons/svg/logo.js +20 -20
- package/dist/lang/files/da-dk.js +12 -12
- package/dist/lang/files/de-de.js +12 -12
- package/dist/lang/files/en-us.js +12 -12
- package/dist/lang/files/es-es.js +12 -12
- package/dist/lang/files/fr-fr.js +12 -12
- package/dist/lang/files/nl-nl.js +12 -12
- package/dist/tree/usync.menu-element.js +8 -8
- package/dist/workspace/components/usync-action-button.js +50 -50
- package/dist/workspace/components/usync-file-picker.element.js +33 -33
- package/dist/workspace/components/usync-file-upload.element.js +25 -25
- package/dist/workspace/dialogs/import-modal.element.js +22 -22
- package/dist/workspace/views/addons/addons.element.js +97 -97
- package/dist/workspace/views/default/default.element.js +186 -186
- package/dist/workspace/views/legacy/legacy.element.js +81 -81
- package/dist/workspace/views/settings/components/usyncSettingItem.element.js +38 -38
- package/dist/workspace/views/settings/settings.element.js +124 -124
- package/dist/workspace/workspace.element.js +16 -16
- package/package.json +70 -70
|
@@ -43,33 +43,33 @@ let uSyncChangeView = class uSyncChangeView extends UmbLitElement {
|
|
|
43
43
|
// straight away; with more than one, start collapsed and let the user
|
|
44
44
|
// open the ones they care about.
|
|
45
45
|
const startOpen = details.length <= 1;
|
|
46
|
-
return html `
|
|
47
|
-
<div class="detail-list">
|
|
48
|
-
${repeat(details, (detail, index) => `${index}:${detail.path}:${detail.name}`, (detail) => html `<usync-change-detail
|
|
49
|
-
.detail=${detail}
|
|
50
|
-
?open=${startOpen}></usync-change-detail>`)}
|
|
51
|
-
</div>
|
|
46
|
+
return html `
|
|
47
|
+
<div class="detail-list">
|
|
48
|
+
${repeat(details, (detail, index) => `${index}:${detail.path}:${detail.name}`, (detail) => html `<usync-change-detail
|
|
49
|
+
.detail=${detail}
|
|
50
|
+
?open=${startOpen}></usync-change-detail>`)}
|
|
51
|
+
</div>
|
|
52
52
|
`;
|
|
53
53
|
}
|
|
54
54
|
renderNoChanges() {
|
|
55
|
-
return html `
|
|
56
|
-
<div class="change-box">
|
|
57
|
-
<h3>
|
|
58
|
-
<umb-localize key="uSync_noChanges${this.item?.change}"
|
|
59
|
-
>No changes</umb-localize
|
|
60
|
-
>
|
|
61
|
-
</h3>
|
|
62
|
-
${this.renderMessage()}
|
|
63
|
-
</div>
|
|
55
|
+
return html `
|
|
56
|
+
<div class="change-box">
|
|
57
|
+
<h3>
|
|
58
|
+
<umb-localize key="uSync_noChanges${this.item?.change}"
|
|
59
|
+
>No changes</umb-localize
|
|
60
|
+
>
|
|
61
|
+
</h3>
|
|
62
|
+
${this.renderMessage()}
|
|
63
|
+
</div>
|
|
64
64
|
`;
|
|
65
65
|
}
|
|
66
66
|
render_create() {
|
|
67
|
-
return html `
|
|
68
|
-
<div class="change-box">
|
|
69
|
-
<h3>
|
|
70
|
-
<umb-localize key="uSync_changeCreate">This item is being created</umb-localize>
|
|
71
|
-
</h3>
|
|
72
|
-
</div>
|
|
67
|
+
return html `
|
|
68
|
+
<div class="change-box">
|
|
69
|
+
<h3>
|
|
70
|
+
<umb-localize key="uSync_changeCreate">This item is being created</umb-localize>
|
|
71
|
+
</h3>
|
|
72
|
+
</div>
|
|
73
73
|
`;
|
|
74
74
|
}
|
|
75
75
|
renderMessage() {
|
|
@@ -86,34 +86,34 @@ _uSyncChangeView_instances = new WeakSet();
|
|
|
86
86
|
_uSyncChangeView_renderable = function _uSyncChangeView_renderable() {
|
|
87
87
|
return (this.item?.details ?? []).filter((detail) => detail.change !== ChangeDetailType.NO_CHANGE);
|
|
88
88
|
};
|
|
89
|
-
uSyncChangeView.styles = css `
|
|
90
|
-
:host {
|
|
91
|
-
display: block;
|
|
92
|
-
margin: 0;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.change-box {
|
|
96
|
-
display: block;
|
|
97
|
-
padding: var(
|
|
98
|
-
--uui-box-header-padding,
|
|
99
|
-
var(--uui-size-space-4, 12px) var(--uui-size-space-5, 18px)
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.change-box h3 {
|
|
104
|
-
margin: 0;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.error {
|
|
108
|
-
color: var(--uui-color-danger);
|
|
109
|
-
margin-top: var(--uui-size-space-2);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.detail-list {
|
|
113
|
-
display: flex;
|
|
114
|
-
flex-direction: column;
|
|
115
|
-
border-top: 1px solid var(--uui-color-border);
|
|
116
|
-
}
|
|
89
|
+
uSyncChangeView.styles = css `
|
|
90
|
+
:host {
|
|
91
|
+
display: block;
|
|
92
|
+
margin: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.change-box {
|
|
96
|
+
display: block;
|
|
97
|
+
padding: var(
|
|
98
|
+
--uui-box-header-padding,
|
|
99
|
+
var(--uui-size-space-4, 12px) var(--uui-size-space-5, 18px)
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.change-box h3 {
|
|
104
|
+
margin: 0;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.error {
|
|
108
|
+
color: var(--uui-color-danger);
|
|
109
|
+
margin-top: var(--uui-size-space-2);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.detail-list {
|
|
113
|
+
display: flex;
|
|
114
|
+
flex-direction: column;
|
|
115
|
+
border-top: 1px solid var(--uui-color-border);
|
|
116
|
+
}
|
|
117
117
|
`;
|
|
118
118
|
__decorate([
|
|
119
119
|
property({ type: Object })
|
|
@@ -49,17 +49,17 @@ let uSyncProcessBox = class uSyncProcessBox extends UmbElementMixin(LitElement)
|
|
|
49
49
|
if (action.status == HandlerStatus.COMPLETE)
|
|
50
50
|
progress++;
|
|
51
51
|
const actionName = __classPrivateFieldGet(this, _uSyncProcessBox_instances, "m", _uSyncProcessBox_camelize).call(this, action.name ?? 'unknown');
|
|
52
|
-
return html `
|
|
53
|
-
<div
|
|
54
|
-
class="action
|
|
55
|
-
${action.status == HandlerStatus.COMPLETE ? 'complete' : ''}
|
|
56
|
-
${action.status == HandlerStatus.PROCESSING ? 'working' : ''}">
|
|
57
|
-
<div class="icon-holder">
|
|
58
|
-
<uui-icon .name=${action.icon ?? 'icon-box'}></uui-icon>
|
|
59
|
-
${this.renderBadge(action)}
|
|
60
|
-
</div>
|
|
61
|
-
<h4>${this.localize.termOrDefault(`treeHeaders_${actionName}`, actionName)}</h4>
|
|
62
|
-
</div>
|
|
52
|
+
return html `
|
|
53
|
+
<div
|
|
54
|
+
class="action
|
|
55
|
+
${action.status == HandlerStatus.COMPLETE ? 'complete' : ''}
|
|
56
|
+
${action.status == HandlerStatus.PROCESSING ? 'working' : ''}">
|
|
57
|
+
<div class="icon-holder">
|
|
58
|
+
<uui-icon .name=${action.icon ?? 'icon-box'}></uui-icon>
|
|
59
|
+
${this.renderBadge(action)}
|
|
60
|
+
</div>
|
|
61
|
+
<h4>${this.localize.termOrDefault(`treeHeaders_${actionName}`, actionName)}</h4>
|
|
62
|
+
</div>
|
|
63
63
|
`;
|
|
64
64
|
});
|
|
65
65
|
let overall = this.showProgress
|
|
@@ -72,23 +72,23 @@ let uSyncProcessBox = class uSyncProcessBox extends UmbElementMixin(LitElement)
|
|
|
72
72
|
this.showProgress = true;
|
|
73
73
|
}
|
|
74
74
|
const progressClass = { hidden: !this.showProgress };
|
|
75
|
-
return html `
|
|
76
|
-
<uui-box>
|
|
77
|
-
<h2>${this.localize.termOrDefault(`uSync_group${this.title}`, this.title)}</h2>
|
|
78
|
-
<div class="action-list">${actionHtml}</div>
|
|
79
|
-
<div class="update-box">${this.updateMsg?.message}</div>
|
|
80
|
-
<uui-progress-bar
|
|
81
|
-
progress=${overall}
|
|
82
|
-
class=${classMap(progressClass)}></uui-progress-bar>
|
|
83
|
-
</uui-box>
|
|
75
|
+
return html `
|
|
76
|
+
<uui-box>
|
|
77
|
+
<h2>${this.localize.termOrDefault(`uSync_group${this.title}`, this.title)}</h2>
|
|
78
|
+
<div class="action-list">${actionHtml}</div>
|
|
79
|
+
<div class="update-box">${this.updateMsg?.message}</div>
|
|
80
|
+
<uui-progress-bar
|
|
81
|
+
progress=${overall}
|
|
82
|
+
class=${classMap(progressClass)}></uui-progress-bar>
|
|
83
|
+
</uui-box>
|
|
84
84
|
`;
|
|
85
85
|
}
|
|
86
86
|
renderBadge(action) {
|
|
87
87
|
if (action.status == HandlerStatus.PENDING)
|
|
88
88
|
return;
|
|
89
89
|
if (action.status == HandlerStatus.PROCESSING) {
|
|
90
|
-
return html `<uui-badge color="positive" look="default">
|
|
91
|
-
<uui-icon name="icon-circle-dotted" class="rotating"></uui-icon
|
|
90
|
+
return html `<uui-badge color="positive" look="default">
|
|
91
|
+
<uui-icon name="icon-circle-dotted" class="rotating"></uui-icon
|
|
92
92
|
></uui-badge>`;
|
|
93
93
|
}
|
|
94
94
|
const color = action.inError ? 'warning' : 'positive';
|
|
@@ -96,8 +96,8 @@ let uSyncProcessBox = class uSyncProcessBox extends UmbElementMixin(LitElement)
|
|
|
96
96
|
? 'Some errors occured duing import'
|
|
97
97
|
: 'Changes imported successfully';
|
|
98
98
|
if (!this.complete || action.changes == 0)
|
|
99
|
-
return html `<uui-badge .color=${color} look="default" title=${label}
|
|
100
|
-
><uui-icon name="icon-check"></uui-icon
|
|
99
|
+
return html `<uui-badge .color=${color} look="default" title=${label}
|
|
100
|
+
><uui-icon name="icon-check"></uui-icon
|
|
101
101
|
></uui-badge>`;
|
|
102
102
|
return html `<uui-badge .color=${color} title=${label}>${action.changes}</uui-badge>`;
|
|
103
103
|
}
|
|
@@ -115,88 +115,88 @@ _uSyncProcessBox_camelize = function _uSyncProcessBox_camelize(str) {
|
|
|
115
115
|
})
|
|
116
116
|
.replace(/\s+/g, '');
|
|
117
117
|
};
|
|
118
|
-
uSyncProcessBox.styles = css `
|
|
119
|
-
:host {
|
|
120
|
-
display: block;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
h2 {
|
|
124
|
-
text-align: center;
|
|
125
|
-
margin: 0;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
.action-list {
|
|
129
|
-
margin-top: var(--uui-size-space-4);
|
|
130
|
-
padding: var(--uui-size-space-4) 0;
|
|
131
|
-
display: flex;
|
|
132
|
-
flex-wrap: wrap;
|
|
133
|
-
justify-content: center;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.action {
|
|
137
|
-
display: flex;
|
|
138
|
-
flex-direction: column;
|
|
139
|
-
align-items: center;
|
|
140
|
-
min-width: var(--uui-size-layout-5);
|
|
141
|
-
color: var(--uui-color-text-alt);
|
|
142
|
-
opacity: 0.67;
|
|
143
|
-
margin: var(--uui-size-space-4) 0 var(--uui-size-space-6);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.action h4 {
|
|
147
|
-
margin: var(--uui-size-space-4) 0;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.icon-holder {
|
|
151
|
-
position: relative;
|
|
152
|
-
padding: 0 var(--uui-size-7);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
.rotating {
|
|
156
|
-
animation: spin-animation 2s infinite;
|
|
157
|
-
animation-timing-function: linear;
|
|
158
|
-
display: inline-block;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
@keyframes spin-animation {
|
|
162
|
-
0% {
|
|
163
|
-
transform: rotate(360deg);
|
|
164
|
-
}
|
|
165
|
-
100% {
|
|
166
|
-
transform: rotate(0deg);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.action uui-icon {
|
|
171
|
-
font-size: var(--uui-size-12);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
.action uui-badge uui-icon {
|
|
175
|
-
font-size: var(--uui-type-h4-size);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
.complete {
|
|
179
|
-
color: var(--uui-color-default-emphasis);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
.working {
|
|
183
|
-
color: var(--uui-color-positive);
|
|
184
|
-
opacity: 1;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
.update-box {
|
|
188
|
-
font-weight: bold;
|
|
189
|
-
text-align: center;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
uui-progress-bar {
|
|
193
|
-
padding: 0;
|
|
194
|
-
margin: 0;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.hidden {
|
|
198
|
-
opacity: 0;
|
|
199
|
-
}
|
|
118
|
+
uSyncProcessBox.styles = css `
|
|
119
|
+
:host {
|
|
120
|
+
display: block;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
h2 {
|
|
124
|
+
text-align: center;
|
|
125
|
+
margin: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.action-list {
|
|
129
|
+
margin-top: var(--uui-size-space-4);
|
|
130
|
+
padding: var(--uui-size-space-4) 0;
|
|
131
|
+
display: flex;
|
|
132
|
+
flex-wrap: wrap;
|
|
133
|
+
justify-content: center;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.action {
|
|
137
|
+
display: flex;
|
|
138
|
+
flex-direction: column;
|
|
139
|
+
align-items: center;
|
|
140
|
+
min-width: var(--uui-size-layout-5);
|
|
141
|
+
color: var(--uui-color-text-alt);
|
|
142
|
+
opacity: 0.67;
|
|
143
|
+
margin: var(--uui-size-space-4) 0 var(--uui-size-space-6);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.action h4 {
|
|
147
|
+
margin: var(--uui-size-space-4) 0;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.icon-holder {
|
|
151
|
+
position: relative;
|
|
152
|
+
padding: 0 var(--uui-size-7);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.rotating {
|
|
156
|
+
animation: spin-animation 2s infinite;
|
|
157
|
+
animation-timing-function: linear;
|
|
158
|
+
display: inline-block;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@keyframes spin-animation {
|
|
162
|
+
0% {
|
|
163
|
+
transform: rotate(360deg);
|
|
164
|
+
}
|
|
165
|
+
100% {
|
|
166
|
+
transform: rotate(0deg);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.action uui-icon {
|
|
171
|
+
font-size: var(--uui-size-12);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.action uui-badge uui-icon {
|
|
175
|
+
font-size: var(--uui-type-h4-size);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.complete {
|
|
179
|
+
color: var(--uui-color-default-emphasis);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.working {
|
|
183
|
+
color: var(--uui-color-positive);
|
|
184
|
+
opacity: 1;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.update-box {
|
|
188
|
+
font-weight: bold;
|
|
189
|
+
text-align: center;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
uui-progress-bar {
|
|
193
|
+
padding: 0;
|
|
194
|
+
margin: 0;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.hidden {
|
|
198
|
+
opacity: 0;
|
|
199
|
+
}
|
|
200
200
|
`;
|
|
201
201
|
__decorate([
|
|
202
202
|
state()
|
|
@@ -32,21 +32,21 @@ let uSyncResultRow = class uSyncResultRow extends UmbLitElement {
|
|
|
32
32
|
? 'icon-check color-green'
|
|
33
33
|
: 'icon-wrong color-red';
|
|
34
34
|
const noChange = result.change == ChangeType.NO_CHANGE || result.change == ChangeType.EXPORT;
|
|
35
|
-
return html `<div
|
|
36
|
-
class="${classMap({ no_change: noChange })} row"
|
|
37
|
-
@click=${() => __classPrivateFieldGet(this, _uSyncResultRow_instances, "m", _uSyncResultRow_showDetail).call(this, result)}>
|
|
38
|
-
<div class="icon-cell" .noPadding=${true}>
|
|
39
|
-
<umb-icon .name=${icon}></umb-icon>
|
|
40
|
-
</div>
|
|
41
|
-
<div class="row-content" .clipText=${true}>
|
|
42
|
-
<div class="item-detail">
|
|
43
|
-
<div class="item-change">${result.change}</div>
|
|
44
|
-
</div>
|
|
45
|
-
<div class="item-name">
|
|
46
|
-
<div>${result.name}</div>
|
|
47
|
-
<div>${this.renderMessage(result)}</div>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
35
|
+
return html `<div
|
|
36
|
+
class="${classMap({ no_change: noChange })} row"
|
|
37
|
+
@click=${() => __classPrivateFieldGet(this, _uSyncResultRow_instances, "m", _uSyncResultRow_showDetail).call(this, result)}>
|
|
38
|
+
<div class="icon-cell" .noPadding=${true}>
|
|
39
|
+
<umb-icon .name=${icon}></umb-icon>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="row-content" .clipText=${true}>
|
|
42
|
+
<div class="item-detail">
|
|
43
|
+
<div class="item-change">${result.change}</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="item-name">
|
|
46
|
+
<div>${result.name}</div>
|
|
47
|
+
<div>${this.renderMessage(result)}</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
50
|
</div>`;
|
|
51
51
|
}
|
|
52
52
|
renderMessage(result) {
|
|
@@ -54,11 +54,11 @@ let uSyncResultRow = class uSyncResultRow extends UmbLitElement {
|
|
|
54
54
|
result.change != ChangeType.IMPORT_FAIL) ||
|
|
55
55
|
!result.message
|
|
56
56
|
? html `<em>${result.message}</em>`
|
|
57
|
-
: html ` <uui-button
|
|
58
|
-
look="outline"
|
|
59
|
-
color="danger"
|
|
60
|
-
label="View error"
|
|
61
|
-
compact
|
|
57
|
+
: html ` <uui-button
|
|
58
|
+
look="outline"
|
|
59
|
+
color="danger"
|
|
60
|
+
label="View error"
|
|
61
|
+
compact
|
|
62
62
|
@click=${(e) => __classPrivateFieldGet(this, _uSyncResultRow_instances, "m", _uSyncResultRow_viewError).call(this, e, result)}></uui-button>`;
|
|
63
63
|
}
|
|
64
64
|
};
|
|
@@ -81,47 +81,47 @@ _uSyncResultRow_viewError = async function _uSyncResultRow_viewError(e, result)
|
|
|
81
81
|
});
|
|
82
82
|
return data;
|
|
83
83
|
};
|
|
84
|
-
uSyncResultRow.styles = css `
|
|
85
|
-
.row {
|
|
86
|
-
display: flex;
|
|
87
|
-
align-items: center;
|
|
88
|
-
gap: var(--uui-size-space-5);
|
|
89
|
-
padding: var(--uui-size-space-5);
|
|
90
|
-
border-bottom: 1px solid var(--uui-color-border);
|
|
91
|
-
cursor: pointer;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.row:hover {
|
|
95
|
-
background-color: var(--uui-color-surface-alt);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.no_change {
|
|
99
|
-
color: var(--uui-color-disabled-contrast);
|
|
100
|
-
cursor: default;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.row-content {
|
|
104
|
-
gap: 10px;
|
|
105
|
-
flex-grow: 1;
|
|
106
|
-
display: flex;
|
|
107
|
-
align-items: center;
|
|
108
|
-
justify-content: space-between;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.item-name {
|
|
112
|
-
display: flex;
|
|
113
|
-
font-weight: bold;
|
|
114
|
-
align-items: center;
|
|
115
|
-
flex-grow: 2;
|
|
116
|
-
justify-content: space-between;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.item-detail {
|
|
120
|
-
display: flex;
|
|
121
|
-
flex-direction: column;
|
|
122
|
-
font-size: smaller;
|
|
123
|
-
min-width: 60px;
|
|
124
|
-
}
|
|
84
|
+
uSyncResultRow.styles = css `
|
|
85
|
+
.row {
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
gap: var(--uui-size-space-5);
|
|
89
|
+
padding: var(--uui-size-space-5);
|
|
90
|
+
border-bottom: 1px solid var(--uui-color-border);
|
|
91
|
+
cursor: pointer;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.row:hover {
|
|
95
|
+
background-color: var(--uui-color-surface-alt);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.no_change {
|
|
99
|
+
color: var(--uui-color-disabled-contrast);
|
|
100
|
+
cursor: default;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.row-content {
|
|
104
|
+
gap: 10px;
|
|
105
|
+
flex-grow: 1;
|
|
106
|
+
display: flex;
|
|
107
|
+
align-items: center;
|
|
108
|
+
justify-content: space-between;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.item-name {
|
|
112
|
+
display: flex;
|
|
113
|
+
font-weight: bold;
|
|
114
|
+
align-items: center;
|
|
115
|
+
flex-grow: 2;
|
|
116
|
+
justify-content: space-between;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.item-detail {
|
|
120
|
+
display: flex;
|
|
121
|
+
flex-direction: column;
|
|
122
|
+
font-size: smaller;
|
|
123
|
+
min-width: 60px;
|
|
124
|
+
}
|
|
125
125
|
`;
|
|
126
126
|
__decorate([
|
|
127
127
|
property({ type: Object })
|
|
@@ -22,26 +22,26 @@ let uSyncResultGroupView = class uSyncResultGroupView extends UmbLitElement {
|
|
|
22
22
|
const changeCount = this.getChangeCount() ?? 0;
|
|
23
23
|
if (changeCount === 0 && !this.showAll)
|
|
24
24
|
return nothing;
|
|
25
|
-
return html `
|
|
26
|
-
<uui-box
|
|
25
|
+
return html `
|
|
26
|
+
<uui-box
|
|
27
27
|
class=${classMap({
|
|
28
28
|
has_changes: changeCount > 0,
|
|
29
|
-
})}>
|
|
30
|
-
<div
|
|
31
|
-
class="summary ${when(this.expanded, () => 'expanded')}"
|
|
32
|
-
@click=${() => (this.expanded = !this.expanded)}>
|
|
33
|
-
<h4>${this.localize.termOrDefault('uSync_' + this.groupName, this.groupName)}</h4>
|
|
34
|
-
<div class="summary-right">
|
|
35
|
-
<h4 class="count">${changeCount}/${this.results?.length}</h4>
|
|
36
|
-
<uui-icon
|
|
37
|
-
name="icon-play"
|
|
38
|
-
class=${classMap({ expanded: this.expanded })}></uui-icon>
|
|
39
|
-
</div>
|
|
40
|
-
</div>
|
|
41
|
-
<uui-table>
|
|
42
|
-
${when(this.expanded == true, () => html `${this.renderGroupedRows(this.results)}`)}
|
|
43
|
-
</uui-table>
|
|
44
|
-
</uui-box>
|
|
29
|
+
})}>
|
|
30
|
+
<div
|
|
31
|
+
class="summary ${when(this.expanded, () => 'expanded')}"
|
|
32
|
+
@click=${() => (this.expanded = !this.expanded)}>
|
|
33
|
+
<h4>${this.localize.termOrDefault('uSync_' + this.groupName, this.groupName)}</h4>
|
|
34
|
+
<div class="summary-right">
|
|
35
|
+
<h4 class="count">${changeCount}/${this.results?.length}</h4>
|
|
36
|
+
<uui-icon
|
|
37
|
+
name="icon-play"
|
|
38
|
+
class=${classMap({ expanded: this.expanded })}></uui-icon>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
<uui-table>
|
|
42
|
+
${when(this.expanded == true, () => html `${this.renderGroupedRows(this.results)}`)}
|
|
43
|
+
</uui-table>
|
|
44
|
+
</uui-box>
|
|
45
45
|
`;
|
|
46
46
|
}
|
|
47
47
|
renderGroupedRows(results) {
|
|
@@ -53,43 +53,43 @@ let uSyncResultGroupView = class uSyncResultGroupView extends UmbLitElement {
|
|
|
53
53
|
return rowsHtml;
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
|
-
uSyncResultGroupView.styles = css `
|
|
57
|
-
uui-box {
|
|
58
|
-
cursor: pointer;
|
|
59
|
-
--uui-box-default-padding: 0;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.expanded {
|
|
63
|
-
border-bottom: 1px solid var(--uui-color-border);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.summary {
|
|
67
|
-
display: flex;
|
|
68
|
-
margin: 0;
|
|
69
|
-
padding: 0 20px;
|
|
70
|
-
justify-content: space-between;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.summary-right {
|
|
74
|
-
display: flex;
|
|
75
|
-
align-items: center;
|
|
76
|
-
gap: var(--uui-size-space-2);
|
|
77
|
-
color: var(--uui-color-border-emphasis);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.summary-right uui-icon {
|
|
81
|
-
transform: rotate(90deg);
|
|
82
|
-
transition: transform 0.5s cubic-bezier(0.42, 0, 0.37, 1.62);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.summary-right uui-icon.expanded {
|
|
86
|
-
transform: rotate(-90deg);
|
|
87
|
-
border-bottom: none;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.count {
|
|
91
|
-
color: var(--uui-text);
|
|
92
|
-
}
|
|
56
|
+
uSyncResultGroupView.styles = css `
|
|
57
|
+
uui-box {
|
|
58
|
+
cursor: pointer;
|
|
59
|
+
--uui-box-default-padding: 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.expanded {
|
|
63
|
+
border-bottom: 1px solid var(--uui-color-border);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.summary {
|
|
67
|
+
display: flex;
|
|
68
|
+
margin: 0;
|
|
69
|
+
padding: 0 20px;
|
|
70
|
+
justify-content: space-between;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.summary-right {
|
|
74
|
+
display: flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
gap: var(--uui-size-space-2);
|
|
77
|
+
color: var(--uui-color-border-emphasis);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.summary-right uui-icon {
|
|
81
|
+
transform: rotate(90deg);
|
|
82
|
+
transition: transform 0.5s cubic-bezier(0.42, 0, 0.37, 1.62);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.summary-right uui-icon.expanded {
|
|
86
|
+
transform: rotate(-90deg);
|
|
87
|
+
border-bottom: none;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.count {
|
|
91
|
+
color: var(--uui-text);
|
|
92
|
+
}
|
|
93
93
|
`;
|
|
94
94
|
__decorate([
|
|
95
95
|
state()
|