@jumoo/usync 0.0.0-stage → 18.2.0
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 +373 -0
- package/README.md +10 -3
- package/dist/api/client/client.gen.d.ts +2 -0
- package/dist/api/client/client.gen.js +216 -0
- package/dist/api/client/index.d.ts +10 -0
- package/dist/api/client/index.js +6 -0
- package/dist/api/client/types.gen.d.ts +120 -0
- package/dist/api/client/types.gen.js +2 -0
- package/dist/api/client/utils.gen.d.ts +37 -0
- package/dist/api/client/utils.gen.js +230 -0
- package/dist/api/client.gen.d.ts +12 -0
- package/dist/api/client.gen.js +3 -0
- package/dist/api/core/auth.gen.d.ts +25 -0
- package/dist/api/core/auth.gen.js +14 -0
- package/dist/api/core/bodySerializer.gen.d.ts +25 -0
- package/dist/api/core/bodySerializer.gen.js +57 -0
- package/dist/api/core/params.gen.d.ts +43 -0
- package/dist/api/core/params.gen.js +109 -0
- package/dist/api/core/pathSerializer.gen.d.ts +33 -0
- package/dist/api/core/pathSerializer.gen.js +106 -0
- package/dist/api/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/api/core/queryKeySerializer.gen.js +92 -0
- package/dist/api/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/api/core/serverSentEvents.gen.js +132 -0
- package/dist/api/core/types.gen.d.ts +83 -0
- package/dist/api/core/types.gen.js +2 -0
- package/dist/api/core/utils.gen.d.ts +19 -0
- package/dist/api/core/utils.gen.js +87 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.js +3 -0
- package/dist/api/sdk.gen.d.ts +32 -0
- package/dist/api/sdk.gen.js +95 -0
- package/dist/api/types.gen.d.ts +565 -0
- package/dist/api/types.gen.js +47 -0
- package/dist/components/events.d.ts +11 -0
- package/dist/components/events.js +11 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.js +9 -0
- package/dist/components/usync-action-box.d.ts +22 -0
- package/dist/components/usync-action-box.js +129 -0
- package/dist/components/usync-change-detail.d.ts +31 -0
- package/dist/components/usync-change-detail.js +709 -0
- package/dist/components/usync-change-view.d.ts +22 -0
- package/dist/components/usync-change-view.js +125 -0
- package/dist/components/usync-progress-box.d.ts +20 -0
- package/dist/components/usync-progress-box.js +231 -0
- package/dist/components/usync-result-row.d.ts +15 -0
- package/dist/components/usync-result-row.js +137 -0
- package/dist/components/usync-results-group-view.d.ts +19 -0
- package/dist/components/usync-results-group-view.js +118 -0
- package/dist/components/usync-results-view.d.ts +17 -0
- package/dist/components/usync-results-view.js +177 -0
- package/dist/components/usync-sync-file-info-view.d.ts +15 -0
- package/dist/components/usync-sync-file-info-view.js +62 -0
- package/dist/conditions/constants.d.ts +1 -0
- package/dist/conditions/constants.js +1 -0
- package/dist/conditions/index.d.ts +2 -0
- package/dist/conditions/index.js +2 -0
- package/dist/conditions/legacy-files.condition.d.ts +10 -0
- package/dist/conditions/legacy-files.condition.js +16 -0
- package/dist/conditions/manifest.d.ts +1 -0
- package/dist/conditions/manifest.js +18 -0
- package/dist/conditions/new-section.condition.d.ts +8 -0
- package/dist/conditions/new-section.condition.js +48 -0
- package/dist/constants.d.ts +30 -0
- package/dist/constants.js +38 -0
- package/dist/dialogs/details-modal-element.d.ts +18 -0
- package/dist/dialogs/details-modal-element.js +106 -0
- package/dist/dialogs/details-modal-token.d.ts +10 -0
- package/dist/dialogs/details-modal-token.js +7 -0
- package/dist/dialogs/error-modal-element.d.ts +7 -0
- package/dist/dialogs/error-modal-element.js +55 -0
- package/dist/dialogs/error-modal-token.d.ts +9 -0
- package/dist/dialogs/error-modal-token.js +6 -0
- package/dist/dialogs/index.d.ts +6 -0
- package/dist/dialogs/index.js +6 -0
- package/dist/dialogs/legacy-modal-element.d.ts +13 -0
- package/dist/dialogs/legacy-modal-element.js +78 -0
- package/dist/dialogs/manifest.d.ts +1 -0
- package/dist/dialogs/manifest.js +25 -0
- package/dist/dialogs/single-import-modal.element.d.ts +13 -0
- package/dist/dialogs/single-import-modal.element.js +106 -0
- package/dist/dialogs/single-import-modal.token.d.ts +9 -0
- package/dist/dialogs/single-import-modal.token.js +6 -0
- package/dist/exports.d.ts +10 -0
- package/dist/exports.js +10 -0
- package/dist/external/signalr/index.d.ts +1 -0
- package/dist/external/signalr/index.js +1 -0
- package/dist/icons/icons.d.ts +5 -0
- package/dist/icons/icons.js +6 -0
- package/dist/icons/manifest.d.ts +1 -0
- package/dist/icons/manifest.js +7 -0
- package/dist/icons/svg/logo.d.ts +2 -0
- package/dist/icons/svg/logo.js +21 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +19 -0
- package/dist/lang/files/da-dk.d.ts +130 -0
- package/dist/lang/files/da-dk.js +141 -0
- package/dist/lang/files/de-de.d.ts +130 -0
- package/dist/lang/files/de-de.js +141 -0
- package/dist/lang/files/en-us.d.ts +162 -0
- package/dist/lang/files/en-us.js +173 -0
- package/dist/lang/files/es-es.d.ts +130 -0
- package/dist/lang/files/es-es.js +141 -0
- package/dist/lang/files/fr-fr.d.ts +130 -0
- package/dist/lang/files/fr-fr.js +141 -0
- package/dist/lang/files/nl-nl.d.ts +130 -0
- package/dist/lang/files/nl-nl.js +141 -0
- package/dist/lang/manifest.d.ts +1 -0
- package/dist/lang/manifest.js +63 -0
- package/dist/manifests.d.ts +1 -0
- package/dist/manifests.js +14 -0
- package/dist/repository/SyncAction.respositoy.d.ts +121 -0
- package/dist/repository/SyncAction.respositoy.js +125 -0
- package/dist/repository/index.d.ts +4 -0
- package/dist/repository/index.js +4 -0
- package/dist/repository/sources/SyncAction.source.d.ts +57 -0
- package/dist/repository/sources/SyncAction.source.js +57 -0
- package/dist/repository/sources/SyncMigration.source.d.ts +13 -0
- package/dist/repository/sources/SyncMigration.source.js +30 -0
- package/dist/repository/sources/SyncSettings.source.d.ts +33 -0
- package/dist/repository/sources/SyncSettings.source.js +33 -0
- package/dist/signalr/index.d.ts +3 -0
- package/dist/signalr/index.js +3 -0
- package/dist/signalr/signalr-reconnect-policy.d.ts +11 -0
- package/dist/signalr/signalr-reconnect-policy.js +14 -0
- package/dist/signalr/signalr.context.d.ts +34 -0
- package/dist/signalr/signalr.context.js +110 -0
- package/dist/signalr/signalr.context.token.d.ts +3 -0
- package/dist/signalr/signalr.context.token.js +2 -0
- package/dist/signalr/types.d.ts +21 -0
- package/dist/signalr/types.js +1 -0
- package/dist/tree/constants.d.ts +1 -0
- package/dist/tree/constants.js +1 -0
- package/dist/tree/index.d.ts +2 -0
- package/dist/tree/index.js +2 -0
- package/dist/tree/manifest.d.ts +1 -0
- package/dist/tree/manifest.js +92 -0
- package/dist/tree/types.d.ts +14 -0
- package/dist/tree/types.js +1 -0
- package/dist/tree/usync.menu-element.d.ts +13 -0
- package/dist/tree/usync.menu-element.js +74 -0
- package/dist/utils/diff/change-name.d.ts +13 -0
- package/dist/utils/diff/change-name.js +30 -0
- package/dist/utils/diff/classify-change.d.ts +21 -0
- package/dist/utils/diff/classify-change.js +111 -0
- package/dist/utils/diff/deep-equal.d.ts +13 -0
- package/dist/utils/diff/deep-equal.js +57 -0
- package/dist/utils/diff/format-value.d.ts +36 -0
- package/dist/utils/diff/format-value.js +88 -0
- package/dist/utils/diff/index.d.ts +7 -0
- package/dist/utils/diff/index.js +7 -0
- package/dist/utils/diff/json-diff.d.ts +34 -0
- package/dist/utils/diff/json-diff.js +300 -0
- package/dist/utils/diff/line-diff.d.ts +16 -0
- package/dist/utils/diff/line-diff.js +199 -0
- package/dist/utils/diff/types.d.ts +62 -0
- package/dist/utils/diff/types.js +12 -0
- package/dist/workspace/components/events.d.ts +31 -0
- package/dist/workspace/components/events.js +54 -0
- package/dist/workspace/components/index.d.ts +3 -0
- package/dist/workspace/components/index.js +3 -0
- package/dist/workspace/components/usync-action-button.d.ts +20 -0
- package/dist/workspace/components/usync-action-button.js +121 -0
- package/dist/workspace/components/usync-file-picker.element.d.ts +23 -0
- package/dist/workspace/components/usync-file-picker.element.js +106 -0
- package/dist/workspace/components/usync-file-upload.element.d.ts +21 -0
- package/dist/workspace/components/usync-file-upload.element.js +121 -0
- package/dist/workspace/dialogs/import-modal.element.d.ts +11 -0
- package/dist/workspace/dialogs/import-modal.element.js +75 -0
- package/dist/workspace/dialogs/import-modal.token.d.ts +6 -0
- package/dist/workspace/dialogs/import-modal.token.js +6 -0
- package/dist/workspace/dialogs/index.d.ts +2 -0
- package/dist/workspace/dialogs/index.js +2 -0
- package/dist/workspace/dialogs/manifest.d.ts +1 -0
- package/dist/workspace/dialogs/manifest.js +7 -0
- package/dist/workspace/index.d.ts +3 -0
- package/dist/workspace/index.js +3 -0
- package/dist/workspace/manifest.d.ts +3 -0
- package/dist/workspace/manifest.js +112 -0
- package/dist/workspace/types.d.ts +12 -0
- package/dist/workspace/types.js +1 -0
- package/dist/workspace/views/addons/addons.element.d.ts +7 -0
- package/dist/workspace/views/addons/addons.element.js +117 -0
- package/dist/workspace/views/default/default.element.d.ts +31 -0
- package/dist/workspace/views/default/default.element.js +466 -0
- package/dist/workspace/views/legacy/legacy.element.d.ts +14 -0
- package/dist/workspace/views/legacy/legacy.element.js +187 -0
- package/dist/workspace/views/settings/components/usyncSettingItem.element.d.ts +15 -0
- package/dist/workspace/views/settings/components/usyncSettingItem.element.js +96 -0
- package/dist/workspace/views/settings/settings.element.d.ts +17 -0
- package/dist/workspace/views/settings/settings.element.js +174 -0
- package/dist/workspace/workspace.context.d.ts +79 -0
- package/dist/workspace/workspace.context.js +448 -0
- package/dist/workspace/workspace.element.d.ts +17 -0
- package/dist/workspace/workspace.element.js +69 -0
- package/package.json +77 -6
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
2
|
+
import { type USyncActionView, type USyncChange } from '@jumoo/uSync';
|
|
3
|
+
import './usync-change-detail.js';
|
|
4
|
+
/**
|
|
5
|
+
* shows the change details for an item.
|
|
6
|
+
*/
|
|
7
|
+
export declare class uSyncChangeView extends UmbLitElement {
|
|
8
|
+
#private;
|
|
9
|
+
item?: USyncActionView;
|
|
10
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
11
|
+
renderDetails(details: Array<USyncChange>): import("lit-html").TemplateResult<1>;
|
|
12
|
+
renderNoChanges(): import("lit-html").TemplateResult<1>;
|
|
13
|
+
render_create(): import("lit-html").TemplateResult<1>;
|
|
14
|
+
renderMessage(): import("lit-html").TemplateResult<1>;
|
|
15
|
+
static styles: import("lit").CSSResult;
|
|
16
|
+
}
|
|
17
|
+
export default uSyncChangeView;
|
|
18
|
+
declare global {
|
|
19
|
+
interface HTMLElementTagNameMap {
|
|
20
|
+
'usync-change-view': uSyncChangeView;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _uSyncChangeView_instances, _uSyncChangeView_renderable;
|
|
13
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
14
|
+
import { classMap, css, customElement, html, property, repeat, } from '@umbraco-cms/backoffice/external/lit';
|
|
15
|
+
import { ChangeDetailType, ChangeType, } from '@jumoo/uSync';
|
|
16
|
+
import './usync-change-detail.js';
|
|
17
|
+
/**
|
|
18
|
+
* shows the change details for an item.
|
|
19
|
+
*/
|
|
20
|
+
let uSyncChangeView = class uSyncChangeView extends UmbLitElement {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
_uSyncChangeView_instances.add(this);
|
|
24
|
+
}
|
|
25
|
+
render() {
|
|
26
|
+
if (this.item?.change === ChangeType.CREATE) {
|
|
27
|
+
return this.render_create();
|
|
28
|
+
}
|
|
29
|
+
// note: this has to test the *renderable* details, not the raw count -
|
|
30
|
+
// an unchanged item still arrives with a single `NoChange` detail, and
|
|
31
|
+
// branching on the raw length would render an empty list instead of
|
|
32
|
+
// the "no changes" message.
|
|
33
|
+
const details = __classPrivateFieldGet(this, _uSyncChangeView_instances, "m", _uSyncChangeView_renderable).call(this);
|
|
34
|
+
if (details.length > 0) {
|
|
35
|
+
return this.renderDetails(details);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return this.renderNoChanges();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
renderDetails(details) {
|
|
42
|
+
// with a single change there's nothing to scan past, so open it
|
|
43
|
+
// straight away; with more than one, start collapsed and let the user
|
|
44
|
+
// open the ones they care about.
|
|
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>
|
|
52
|
+
`;
|
|
53
|
+
}
|
|
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>
|
|
64
|
+
`;
|
|
65
|
+
}
|
|
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>
|
|
73
|
+
`;
|
|
74
|
+
}
|
|
75
|
+
renderMessage() {
|
|
76
|
+
const message = (this.item?.message?.length ?? 0) > 0
|
|
77
|
+
? this.item?.message
|
|
78
|
+
: this.item?.change == ChangeType.IMPORT
|
|
79
|
+
? 'No changes were made but the item was imported'
|
|
80
|
+
: 'There are pending changes for this item';
|
|
81
|
+
const classes = { error: this.item?.success == false };
|
|
82
|
+
return html `<div class="${classMap(classes)}">${message}</div> `;
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
_uSyncChangeView_instances = new WeakSet();
|
|
86
|
+
_uSyncChangeView_renderable = function _uSyncChangeView_renderable() {
|
|
87
|
+
return (this.item?.details ?? []).filter((detail) => detail.change !== ChangeDetailType.NO_CHANGE);
|
|
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
|
+
}
|
|
117
|
+
`;
|
|
118
|
+
__decorate([
|
|
119
|
+
property({ type: Object })
|
|
120
|
+
], uSyncChangeView.prototype, "item", void 0);
|
|
121
|
+
uSyncChangeView = __decorate([
|
|
122
|
+
customElement('usync-change-view')
|
|
123
|
+
], uSyncChangeView);
|
|
124
|
+
export { uSyncChangeView };
|
|
125
|
+
export default uSyncChangeView;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { LitElement, nothing } from '@umbraco-cms/backoffice/external/lit';
|
|
2
|
+
import { SyncUpdateMessage, SyncHandlerSummary, SyncProgressSummary } from '@jumoo/uSync';
|
|
3
|
+
declare const uSyncProcessBox_base: import("@umbraco-cms/backoffice/extension-api").HTMLElementConstructor<import("@umbraco-cms/backoffice/element-api").UmbElement> & typeof LitElement;
|
|
4
|
+
/**
|
|
5
|
+
* Provides the progress box while things happen.
|
|
6
|
+
*/
|
|
7
|
+
export declare class uSyncProcessBox extends uSyncProcessBox_base {
|
|
8
|
+
#private;
|
|
9
|
+
constructor();
|
|
10
|
+
updateMsg?: SyncUpdateMessage;
|
|
11
|
+
addMsg?: SyncProgressSummary;
|
|
12
|
+
title: string;
|
|
13
|
+
actions?: Array<SyncHandlerSummary>;
|
|
14
|
+
complete: boolean;
|
|
15
|
+
showProgress: boolean;
|
|
16
|
+
render(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
17
|
+
renderBadge(action: SyncHandlerSummary): import("lit-html").TemplateResult<1> | undefined;
|
|
18
|
+
static styles: import("lit").CSSResult;
|
|
19
|
+
}
|
|
20
|
+
export default uSyncProcessBox;
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _uSyncProcessBox_instances, _uSyncProcessBox_hideProgress, _uSyncProcessBox_camelize;
|
|
13
|
+
import { customElement, LitElement, css, html, property, nothing, state, classMap, } from '@umbraco-cms/backoffice/external/lit';
|
|
14
|
+
import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api';
|
|
15
|
+
import { HandlerStatus } from '@jumoo/uSync';
|
|
16
|
+
import { USYNC_SIGNALR_CONTEXT_TOKEN, } from '@jumoo/uSync';
|
|
17
|
+
/**
|
|
18
|
+
* Provides the progress box while things happen.
|
|
19
|
+
*/
|
|
20
|
+
let uSyncProcessBox = class uSyncProcessBox extends UmbElementMixin(LitElement) {
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
_uSyncProcessBox_instances.add(this);
|
|
24
|
+
this.title = '';
|
|
25
|
+
this.complete = false;
|
|
26
|
+
this.showProgress = true;
|
|
27
|
+
this.consumeContext(USYNC_SIGNALR_CONTEXT_TOKEN, (_signalR) => {
|
|
28
|
+
if (!_signalR)
|
|
29
|
+
return;
|
|
30
|
+
this.observe(_signalR.update, (_update) => {
|
|
31
|
+
this.updateMsg = _update;
|
|
32
|
+
});
|
|
33
|
+
this.observe(_signalR.add, (_add) => {
|
|
34
|
+
this.addMsg = _add;
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
render() {
|
|
39
|
+
let actions = this.actions;
|
|
40
|
+
if (!this.actions || this.actions.length === 0) {
|
|
41
|
+
actions = this.addMsg?.handlers;
|
|
42
|
+
}
|
|
43
|
+
if (!actions)
|
|
44
|
+
return nothing;
|
|
45
|
+
let progress = 0;
|
|
46
|
+
const actionCount = actions.length;
|
|
47
|
+
const boxSize = 100 / actionCount;
|
|
48
|
+
const actionProgress = (this.updateMsg?.count ?? 0) / (this.updateMsg?.total ?? 1);
|
|
49
|
+
let actionHtml = actions?.map((action) => {
|
|
50
|
+
if (action.status == HandlerStatus.COMPLETE)
|
|
51
|
+
progress++;
|
|
52
|
+
const actionName = __classPrivateFieldGet(this, _uSyncProcessBox_instances, "m", _uSyncProcessBox_camelize).call(this, action.name ?? 'unknown');
|
|
53
|
+
return html `
|
|
54
|
+
<div
|
|
55
|
+
class="action
|
|
56
|
+
${action.status == HandlerStatus.COMPLETE ? 'complete' : ''}
|
|
57
|
+
${action.status == HandlerStatus.PROCESSING ? 'working' : ''}">
|
|
58
|
+
<div class="icon-holder">
|
|
59
|
+
<uui-icon .name=${action.icon ?? 'icon-box'}></uui-icon>
|
|
60
|
+
${this.renderBadge(action)}
|
|
61
|
+
</div>
|
|
62
|
+
<h4>${this.localize.termOrDefault(`treeHeaders_${actionName}`, actionName)}</h4>
|
|
63
|
+
</div>
|
|
64
|
+
`;
|
|
65
|
+
});
|
|
66
|
+
let overall = this.showProgress
|
|
67
|
+
? progress * boxSize + actionProgress * boxSize - boxSize
|
|
68
|
+
: 0;
|
|
69
|
+
if (this.complete) {
|
|
70
|
+
__classPrivateFieldGet(this, _uSyncProcessBox_instances, "m", _uSyncProcessBox_hideProgress).call(this);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.showProgress = true;
|
|
74
|
+
}
|
|
75
|
+
const progressClass = { hidden: !this.showProgress };
|
|
76
|
+
return html `
|
|
77
|
+
<uui-box>
|
|
78
|
+
<div class="header">
|
|
79
|
+
<h2>${this.localize.termOrDefault(`uSync_group${this.title}`, this.title)}</h2>
|
|
80
|
+
</div>
|
|
81
|
+
<div class="action-list">${actionHtml}</div>
|
|
82
|
+
<div class="update-box">${this.updateMsg?.message}</div>
|
|
83
|
+
<uui-progress-bar
|
|
84
|
+
progress=${overall}
|
|
85
|
+
class=${classMap(progressClass)}></uui-progress-bar>
|
|
86
|
+
</uui-box>
|
|
87
|
+
`;
|
|
88
|
+
}
|
|
89
|
+
renderBadge(action) {
|
|
90
|
+
if (action.status == HandlerStatus.PENDING)
|
|
91
|
+
return;
|
|
92
|
+
if (action.status == HandlerStatus.PROCESSING) {
|
|
93
|
+
return html `<uui-badge color="positive" look="default">
|
|
94
|
+
<uui-icon name="icon-circle-dotted" class="rotating"></uui-icon
|
|
95
|
+
></uui-badge>`;
|
|
96
|
+
}
|
|
97
|
+
const color = action.inError ? 'warning' : 'positive';
|
|
98
|
+
const label = action.inError
|
|
99
|
+
? 'Some errors occured duing import'
|
|
100
|
+
: 'Changes imported successfully';
|
|
101
|
+
if (!this.complete || action.changes == 0)
|
|
102
|
+
return html `<uui-badge .color=${color} look="default" title=${label}
|
|
103
|
+
><uui-icon name="icon-check"></uui-icon
|
|
104
|
+
></uui-badge>`;
|
|
105
|
+
return html `<uui-badge .color=${color} title=${label}>${action.changes}</uui-badge>`;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
_uSyncProcessBox_instances = new WeakSet();
|
|
109
|
+
_uSyncProcessBox_hideProgress = function _uSyncProcessBox_hideProgress() {
|
|
110
|
+
window.setTimeout(() => {
|
|
111
|
+
this.showProgress = false;
|
|
112
|
+
}, 2000);
|
|
113
|
+
};
|
|
114
|
+
_uSyncProcessBox_camelize = function _uSyncProcessBox_camelize(str) {
|
|
115
|
+
return str
|
|
116
|
+
.replace(/(?:^\w|[A-Z]|\b\w)/g, function (word, index) {
|
|
117
|
+
return index === 0 ? word.toLowerCase() : word.toUpperCase();
|
|
118
|
+
})
|
|
119
|
+
.replace(/\s+/g, '');
|
|
120
|
+
};
|
|
121
|
+
uSyncProcessBox.styles = css `
|
|
122
|
+
:host {
|
|
123
|
+
display: block;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.header {
|
|
127
|
+
display: flex;
|
|
128
|
+
justify-content: center;
|
|
129
|
+
padding: var(uui-size-space-3);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
h2 {
|
|
133
|
+
margin: 0;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.action-list {
|
|
137
|
+
margin-top: var(--uui-size-space-4);
|
|
138
|
+
padding: var(--uui-size-space-4) 0;
|
|
139
|
+
display: flex;
|
|
140
|
+
flex-wrap: wrap;
|
|
141
|
+
justify-content: center;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.action {
|
|
145
|
+
display: flex;
|
|
146
|
+
flex-direction: column;
|
|
147
|
+
align-items: center;
|
|
148
|
+
min-width: var(--uui-size-layout-5);
|
|
149
|
+
color: var(--uui-color-text-alt);
|
|
150
|
+
opacity: 0.67;
|
|
151
|
+
margin: var(--uui-size-space-2) 0;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.action h4 {
|
|
155
|
+
margin: var(--uui-size-space-2) 0;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.icon-holder {
|
|
159
|
+
position: relative;
|
|
160
|
+
padding: 0 var(--uui-size-7);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.rotating {
|
|
164
|
+
animation: spin-animation 2s infinite;
|
|
165
|
+
animation-timing-function: linear;
|
|
166
|
+
display: inline-block;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
@keyframes spin-animation {
|
|
170
|
+
0% {
|
|
171
|
+
transform: rotate(360deg);
|
|
172
|
+
}
|
|
173
|
+
100% {
|
|
174
|
+
transform: rotate(0deg);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.action uui-icon {
|
|
179
|
+
font-size: var(--uui-size-12);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.action uui-badge uui-icon {
|
|
183
|
+
font-size: var(--uui-type-h4-size);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.complete {
|
|
187
|
+
color: var(--uui-color-default-emphasis);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.working {
|
|
191
|
+
color: var(--uui-color-positive);
|
|
192
|
+
opacity: 1;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.update-box {
|
|
196
|
+
font-weight: bold;
|
|
197
|
+
text-align: center;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
uui-progress-bar {
|
|
201
|
+
padding: 0;
|
|
202
|
+
margin: 0;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.hidden {
|
|
206
|
+
opacity: 0;
|
|
207
|
+
}
|
|
208
|
+
`;
|
|
209
|
+
__decorate([
|
|
210
|
+
state()
|
|
211
|
+
], uSyncProcessBox.prototype, "updateMsg", void 0);
|
|
212
|
+
__decorate([
|
|
213
|
+
state()
|
|
214
|
+
], uSyncProcessBox.prototype, "addMsg", void 0);
|
|
215
|
+
__decorate([
|
|
216
|
+
property({ type: String })
|
|
217
|
+
], uSyncProcessBox.prototype, "title", void 0);
|
|
218
|
+
__decorate([
|
|
219
|
+
property({ type: Array })
|
|
220
|
+
], uSyncProcessBox.prototype, "actions", void 0);
|
|
221
|
+
__decorate([
|
|
222
|
+
property({ type: Boolean })
|
|
223
|
+
], uSyncProcessBox.prototype, "complete", void 0);
|
|
224
|
+
__decorate([
|
|
225
|
+
state()
|
|
226
|
+
], uSyncProcessBox.prototype, "showProgress", void 0);
|
|
227
|
+
uSyncProcessBox = __decorate([
|
|
228
|
+
customElement('usync-progress-box')
|
|
229
|
+
], uSyncProcessBox);
|
|
230
|
+
export { uSyncProcessBox };
|
|
231
|
+
export default uSyncProcessBox;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
2
|
+
import { USyncActionView } from '../api';
|
|
3
|
+
export declare class uSyncResultRow extends UmbLitElement {
|
|
4
|
+
#private;
|
|
5
|
+
result?: USyncActionView;
|
|
6
|
+
render(): import("lit-html").TemplateResult<1> | null;
|
|
7
|
+
renderMessage(result: USyncActionView): import("lit-html").TemplateResult<1>;
|
|
8
|
+
static styles: import("lit").CSSResult;
|
|
9
|
+
}
|
|
10
|
+
export default uSyncResultRow;
|
|
11
|
+
declare global {
|
|
12
|
+
interface HTMLElementTagNameMap {
|
|
13
|
+
'usync-result-row': uSyncResultRow;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _uSyncResultRow_instances, _uSyncResultRow_showDetail, _uSyncResultRow_viewError;
|
|
13
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
14
|
+
import { ChangeType } from '../api';
|
|
15
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
16
|
+
import { classMap, css, html } from '@umbraco-cms/backoffice/external/lit';
|
|
17
|
+
import { uSyncShowDetailEvent } from './events';
|
|
18
|
+
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
|
|
19
|
+
import { USYNC_ERROR_MODAL } from '../dialogs';
|
|
20
|
+
let uSyncResultRow = class uSyncResultRow extends UmbLitElement {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
_uSyncResultRow_instances.add(this);
|
|
24
|
+
}
|
|
25
|
+
render() {
|
|
26
|
+
if (!this.result)
|
|
27
|
+
return null;
|
|
28
|
+
const result = this.result;
|
|
29
|
+
const icon = result.change == ChangeType.NO_CHANGE
|
|
30
|
+
? 'icon-trafic'
|
|
31
|
+
: result.success
|
|
32
|
+
? 'icon-check color-green'
|
|
33
|
+
: 'icon-wrong color-red';
|
|
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>
|
|
50
|
+
</div>`;
|
|
51
|
+
}
|
|
52
|
+
renderMessage(result) {
|
|
53
|
+
return (result.change != ChangeType.FAIL &&
|
|
54
|
+
result.change != ChangeType.IMPORT_FAIL) ||
|
|
55
|
+
!result.message
|
|
56
|
+
? html `<em>${result.message}</em>`
|
|
57
|
+
: html ` <uui-button
|
|
58
|
+
look="outline"
|
|
59
|
+
color="danger"
|
|
60
|
+
label="View error"
|
|
61
|
+
compact
|
|
62
|
+
@click=${(e) => __classPrivateFieldGet(this, _uSyncResultRow_instances, "m", _uSyncResultRow_viewError).call(this, e, result)}></uui-button>`;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
_uSyncResultRow_instances = new WeakSet();
|
|
66
|
+
_uSyncResultRow_showDetail = async function _uSyncResultRow_showDetail(action) {
|
|
67
|
+
if (action.change == ChangeType.NO_CHANGE || action.change == ChangeType.EXPORT)
|
|
68
|
+
return;
|
|
69
|
+
this.dispatchEvent(new uSyncShowDetailEvent(action));
|
|
70
|
+
};
|
|
71
|
+
_uSyncResultRow_viewError = async function _uSyncResultRow_viewError(e, result) {
|
|
72
|
+
e.stopPropagation();
|
|
73
|
+
const modalContext = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
|
|
74
|
+
const modal = modalContext?.open(this, USYNC_ERROR_MODAL, {
|
|
75
|
+
data: {
|
|
76
|
+
action: result,
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
const data = await modal?.onSubmit().catch(() => {
|
|
80
|
+
return;
|
|
81
|
+
});
|
|
82
|
+
return data;
|
|
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
|
+
:host:last-child {
|
|
95
|
+
background-color: blue;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.row:hover {
|
|
99
|
+
background-color: var(--uui-color-surface-alt);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.no_change {
|
|
103
|
+
color: var(--uui-color-disabled-contrast);
|
|
104
|
+
cursor: default;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.row-content {
|
|
108
|
+
gap: 10px;
|
|
109
|
+
flex-grow: 1;
|
|
110
|
+
display: flex;
|
|
111
|
+
align-items: center;
|
|
112
|
+
justify-content: space-between;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.item-name {
|
|
116
|
+
display: flex;
|
|
117
|
+
font-weight: bold;
|
|
118
|
+
align-items: center;
|
|
119
|
+
flex-grow: 2;
|
|
120
|
+
justify-content: space-between;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.item-detail {
|
|
124
|
+
display: flex;
|
|
125
|
+
flex-direction: column;
|
|
126
|
+
font-size: smaller;
|
|
127
|
+
min-width: 60px;
|
|
128
|
+
}
|
|
129
|
+
`;
|
|
130
|
+
__decorate([
|
|
131
|
+
property({ type: Object })
|
|
132
|
+
], uSyncResultRow.prototype, "result", void 0);
|
|
133
|
+
uSyncResultRow = __decorate([
|
|
134
|
+
customElement('usync-result-row')
|
|
135
|
+
], uSyncResultRow);
|
|
136
|
+
export { uSyncResultRow };
|
|
137
|
+
export default uSyncResultRow;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { nothing } from '@umbraco-cms/backoffice/external/lit';
|
|
2
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
3
|
+
import { USyncActionView } from '../api';
|
|
4
|
+
export declare class uSyncResultGroupView extends UmbLitElement {
|
|
5
|
+
expanded: boolean;
|
|
6
|
+
showAll: boolean;
|
|
7
|
+
results: Array<USyncActionView>;
|
|
8
|
+
groupName: string;
|
|
9
|
+
getChangeCount(): number;
|
|
10
|
+
render(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
11
|
+
renderGroupedRows(results?: USyncActionView[]): (typeof nothing | import("lit-html").TemplateResult<1>)[] | undefined;
|
|
12
|
+
static styles: import("lit").CSSResult;
|
|
13
|
+
}
|
|
14
|
+
export default uSyncResultGroupView;
|
|
15
|
+
declare global {
|
|
16
|
+
interface HTMLElementTagNameMap {
|
|
17
|
+
'usync-result-group': uSyncResultGroupView;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { classMap, css, customElement, html, nothing, property, state, when, } from '@umbraco-cms/backoffice/external/lit';
|
|
8
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
9
|
+
import { ChangeType } from '../api';
|
|
10
|
+
let uSyncResultGroupView = class uSyncResultGroupView extends UmbLitElement {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.expanded = false;
|
|
14
|
+
this.showAll = false;
|
|
15
|
+
this.results = [];
|
|
16
|
+
this.groupName = '';
|
|
17
|
+
}
|
|
18
|
+
getChangeCount() {
|
|
19
|
+
return this.results?.filter((r) => r.change !== ChangeType.NO_CHANGE).length;
|
|
20
|
+
}
|
|
21
|
+
render() {
|
|
22
|
+
const changeCount = this.getChangeCount() ?? 0;
|
|
23
|
+
if (changeCount === 0 && !this.showAll)
|
|
24
|
+
return nothing;
|
|
25
|
+
return html `
|
|
26
|
+
<uui-box
|
|
27
|
+
class=${classMap({
|
|
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
|
+
|
|
42
|
+
${when(this.expanded == true, () => html `<uui-table>${this.renderGroupedRows(this.results)}</uui-table>`)}
|
|
43
|
+
</uui-box>
|
|
44
|
+
`;
|
|
45
|
+
}
|
|
46
|
+
renderGroupedRows(results) {
|
|
47
|
+
const rowsHtml = results?.map((result) => {
|
|
48
|
+
if (!this.showAll && result.change == ChangeType.NO_CHANGE)
|
|
49
|
+
return nothing;
|
|
50
|
+
return html `<usync-result-row .result=${result}></usync-result-row>`;
|
|
51
|
+
});
|
|
52
|
+
return rowsHtml;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
uSyncResultGroupView.styles = css `
|
|
56
|
+
uui-box {
|
|
57
|
+
cursor: pointer;
|
|
58
|
+
--uui-box-default-padding: 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
uui-table {
|
|
62
|
+
border-top-left-radius: 0;
|
|
63
|
+
border-top-right-radius: 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
usync-result-row:last-child row {
|
|
67
|
+
border-bottom: none;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.expanded {
|
|
71
|
+
border-bottom: 1px solid var(--uui-color-border);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.summary {
|
|
75
|
+
display: flex;
|
|
76
|
+
margin: 0;
|
|
77
|
+
padding: 0 20px;
|
|
78
|
+
justify-content: space-between;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.summary-right {
|
|
82
|
+
display: flex;
|
|
83
|
+
align-items: center;
|
|
84
|
+
gap: var(--uui-size-space-2);
|
|
85
|
+
color: var(--uui-color-border-emphasis);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.summary-right uui-icon {
|
|
89
|
+
transform: rotate(90deg);
|
|
90
|
+
transition: transform 0.5s cubic-bezier(0.42, 0, 0.37, 1.62);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.summary-right uui-icon.expanded {
|
|
94
|
+
transform: rotate(-90deg);
|
|
95
|
+
border-bottom: none;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.count {
|
|
99
|
+
color: var(--uui-text);
|
|
100
|
+
}
|
|
101
|
+
`;
|
|
102
|
+
__decorate([
|
|
103
|
+
state()
|
|
104
|
+
], uSyncResultGroupView.prototype, "expanded", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
property({ type: Boolean })
|
|
107
|
+
], uSyncResultGroupView.prototype, "showAll", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
property({ type: Array })
|
|
110
|
+
], uSyncResultGroupView.prototype, "results", void 0);
|
|
111
|
+
__decorate([
|
|
112
|
+
property({ type: String })
|
|
113
|
+
], uSyncResultGroupView.prototype, "groupName", void 0);
|
|
114
|
+
uSyncResultGroupView = __decorate([
|
|
115
|
+
customElement('usync-result-group')
|
|
116
|
+
], uSyncResultGroupView);
|
|
117
|
+
export { uSyncResultGroupView };
|
|
118
|
+
export default uSyncResultGroupView;
|