@jumoo/usync 0.0.0-stage → 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 +373 -0
- package/README.md +9 -2
- 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 +4 -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 +3 -0
- package/dist/api/index.js +4 -0
- package/dist/api/sdk.gen.d.ts +44 -0
- package/dist/api/sdk.gen.js +147 -0
- package/dist/api/types.gen.d.ts +567 -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 +119 -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 +223 -0
- package/dist/components/usync-result-row.d.ts +15 -0
- package/dist/components/usync-result-row.js +133 -0
- package/dist/components/usync-results-group-view.d.ts +19 -0
- package/dist/components/usync-results-group-view.js +110 -0
- package/dist/components/usync-results-view.d.ts +17 -0
- package/dist/components/usync-results-view.js +176 -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 +98 -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 +54 -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 +105 -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/hey-api.d.ts +11 -0
- package/dist/hey-api.js +14 -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 +11 -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 +161 -0
- package/dist/lang/files/en-us.js +172 -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 +101 -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 +37 -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 +23 -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 +19 -0
- package/dist/workspace/components/usync-action-button.js +113 -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 +74 -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 +69 -5
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { nothing } from '@umbraco-cms/backoffice/external/lit';
|
|
2
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
3
|
+
import { SyncActionButton } from '@jumoo/uSync';
|
|
4
|
+
import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui';
|
|
5
|
+
export declare class SyncActionButtonElement extends UmbLitElement {
|
|
6
|
+
#private;
|
|
7
|
+
button?: SyncActionButton;
|
|
8
|
+
state?: UUIButtonState;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
_popoverOpen: boolean;
|
|
11
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
12
|
+
renderDropdown(parent?: SyncActionButton): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
13
|
+
static styles: import("lit").CSSResult;
|
|
14
|
+
}
|
|
15
|
+
declare global {
|
|
16
|
+
interface HTMLElementTagNameMap {
|
|
17
|
+
'usync-action-button': SyncActionButtonElement;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
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 _SyncActionButtonElement_instances, _SyncActionButtonElement_onClick, _SyncActionButtonElement_onPopoverToggle;
|
|
13
|
+
import { css, customElement, html, ifDefined, nothing, property, state, } from '@umbraco-cms/backoffice/external/lit';
|
|
14
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
15
|
+
import { uSyncActionButtonClickEvent } from './events';
|
|
16
|
+
let SyncActionButtonElement = class SyncActionButtonElement extends UmbLitElement {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
_SyncActionButtonElement_instances.add(this);
|
|
20
|
+
this.disabled = false;
|
|
21
|
+
this._popoverOpen = false;
|
|
22
|
+
}
|
|
23
|
+
render() {
|
|
24
|
+
return html `
|
|
25
|
+
<uui-button-group>
|
|
26
|
+
<uui-button
|
|
27
|
+
class="action-button"
|
|
28
|
+
.disabled=${this.disabled}
|
|
29
|
+
label=${this.localize.termOrDefault(`uSync_${this.button?.label}`, this.button?.label ?? '')}
|
|
30
|
+
color=${this.button?.color}
|
|
31
|
+
look=${this.button?.look}
|
|
32
|
+
state=${ifDefined(this.state)}
|
|
33
|
+
@click=${() => __classPrivateFieldGet(this, _SyncActionButtonElement_instances, "m", _SyncActionButtonElement_onClick).call(this, this.button)}></uui-button>
|
|
34
|
+
|
|
35
|
+
${this.renderDropdown(this.button)}
|
|
36
|
+
</uui-button-group>
|
|
37
|
+
`;
|
|
38
|
+
}
|
|
39
|
+
renderDropdown(parent) {
|
|
40
|
+
if (!this.button?.children)
|
|
41
|
+
return nothing;
|
|
42
|
+
const buttons = this.button?.children.map((item) => {
|
|
43
|
+
return html ` <uui-menu-item
|
|
44
|
+
.disabled=${this.disabled}
|
|
45
|
+
.label=${this.localize.termOrDefault(`uSync_${item.label}`, item.label)}
|
|
46
|
+
@click-label=${() => __classPrivateFieldGet(this, _SyncActionButtonElement_instances, "m", _SyncActionButtonElement_onClick).call(this, item)}></uui-menu-item>`;
|
|
47
|
+
});
|
|
48
|
+
if (buttons.length == 0)
|
|
49
|
+
return nothing;
|
|
50
|
+
const popoverId = `popover_${parent?.key}`;
|
|
51
|
+
return html `
|
|
52
|
+
<uui-button
|
|
53
|
+
.disabled=${this.disabled}
|
|
54
|
+
popovertarget=${popoverId}
|
|
55
|
+
.label=${this.button.label}
|
|
56
|
+
color=${parent?.color}
|
|
57
|
+
look=${parent?.look}
|
|
58
|
+
compact>
|
|
59
|
+
<uui-symbol-expand
|
|
60
|
+
class="expand-symbol"
|
|
61
|
+
.open=${this._popoverOpen}></uui-symbol-expand>
|
|
62
|
+
</uui-button>
|
|
63
|
+
|
|
64
|
+
<uui-popover-container
|
|
65
|
+
id=${popoverId}
|
|
66
|
+
margin="6"
|
|
67
|
+
placement="bottom-end"
|
|
68
|
+
@toggle=${__classPrivateFieldGet(this, _SyncActionButtonElement_instances, "m", _SyncActionButtonElement_onPopoverToggle)}>
|
|
69
|
+
<umb-popover-layout>
|
|
70
|
+
<uui-scroll-container> ${buttons} </uui-scroll-container>
|
|
71
|
+
</umb-popover-layout>
|
|
72
|
+
</uui-popover-container>
|
|
73
|
+
`;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
_SyncActionButtonElement_instances = new WeakSet();
|
|
77
|
+
_SyncActionButtonElement_onClick = function _SyncActionButtonElement_onClick(item) {
|
|
78
|
+
if (!item)
|
|
79
|
+
return;
|
|
80
|
+
this.dispatchEvent(new uSyncActionButtonClickEvent(item));
|
|
81
|
+
};
|
|
82
|
+
_SyncActionButtonElement_onPopoverToggle = function _SyncActionButtonElement_onPopoverToggle(e) {
|
|
83
|
+
this._popoverOpen = e.newState === 'open';
|
|
84
|
+
};
|
|
85
|
+
SyncActionButtonElement.styles = css `
|
|
86
|
+
.action-button {
|
|
87
|
+
min-width: 110px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.expand-symbol {
|
|
91
|
+
transform: rotate(90deg);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.expand-symbol[open] {
|
|
95
|
+
transform: rotate(180deg);
|
|
96
|
+
}
|
|
97
|
+
`;
|
|
98
|
+
__decorate([
|
|
99
|
+
property({ type: Object })
|
|
100
|
+
], SyncActionButtonElement.prototype, "button", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
property({ type: String })
|
|
103
|
+
], SyncActionButtonElement.prototype, "state", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
property({ type: Boolean })
|
|
106
|
+
], SyncActionButtonElement.prototype, "disabled", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
state()
|
|
109
|
+
], SyncActionButtonElement.prototype, "_popoverOpen", void 0);
|
|
110
|
+
SyncActionButtonElement = __decorate([
|
|
111
|
+
customElement('usync-action-button')
|
|
112
|
+
], SyncActionButtonElement);
|
|
113
|
+
export { SyncActionButtonElement };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { nothing } from '@umbraco-cms/backoffice/external/lit';
|
|
2
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
3
|
+
export declare class uSyncFilePicker extends UmbLitElement {
|
|
4
|
+
label: string;
|
|
5
|
+
accept: string;
|
|
6
|
+
_input: HTMLInputElement;
|
|
7
|
+
private _file;
|
|
8
|
+
private _getFile;
|
|
9
|
+
private _onFilePickerChange;
|
|
10
|
+
private _removeFile;
|
|
11
|
+
private _onUpload;
|
|
12
|
+
private _dispachChangeEvent;
|
|
13
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
14
|
+
_renderFile(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
15
|
+
_renderButton(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
16
|
+
static styles: import("lit").CSSResult[];
|
|
17
|
+
}
|
|
18
|
+
export default uSyncFilePicker;
|
|
19
|
+
declare global {
|
|
20
|
+
interface HTMLElementTagNameMap {
|
|
21
|
+
'usync-upload-file-picker': uSyncFilePicker;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
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 { css, customElement, html, nothing, property, query, state, } from '@umbraco-cms/backoffice/external/lit';
|
|
8
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
9
|
+
import { uSyncFilePickerChangeEvent } from './events';
|
|
10
|
+
let uSyncFilePicker = class uSyncFilePicker extends UmbLitElement {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.label = 'Upload';
|
|
14
|
+
this.accept = '';
|
|
15
|
+
}
|
|
16
|
+
async _getFile(fileEntry) {
|
|
17
|
+
return await new Promise((resolve, reject) => {
|
|
18
|
+
fileEntry.file(resolve, reject);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
async _onFilePickerChange() {
|
|
22
|
+
const files = this._input.files ? Array.from(this._input.files) : [];
|
|
23
|
+
const entry = files[0];
|
|
24
|
+
const isFile = entry instanceof File;
|
|
25
|
+
const file = isFile ? entry : await this._getFile(entry);
|
|
26
|
+
this._file = file;
|
|
27
|
+
this._dispachChangeEvent();
|
|
28
|
+
}
|
|
29
|
+
async _removeFile() {
|
|
30
|
+
this._file = undefined;
|
|
31
|
+
this._input.value = '';
|
|
32
|
+
this._dispachChangeEvent();
|
|
33
|
+
}
|
|
34
|
+
_onUpload() {
|
|
35
|
+
this._input.click();
|
|
36
|
+
}
|
|
37
|
+
_dispachChangeEvent() {
|
|
38
|
+
this.dispatchEvent(new uSyncFilePickerChangeEvent(this._file));
|
|
39
|
+
}
|
|
40
|
+
render() {
|
|
41
|
+
return html `<input
|
|
42
|
+
@click=${(e) => e.stopPropagation()}
|
|
43
|
+
type="file"
|
|
44
|
+
id="file"
|
|
45
|
+
this.accept=${this.accept}
|
|
46
|
+
@change=${this._onFilePickerChange} />
|
|
47
|
+
${this._renderFile()} ${this._renderButton()}`;
|
|
48
|
+
}
|
|
49
|
+
_renderFile() {
|
|
50
|
+
if (!this._file)
|
|
51
|
+
return nothing;
|
|
52
|
+
return html ` <div class="file">
|
|
53
|
+
<div>${this._file.name}</div>
|
|
54
|
+
<uui-button
|
|
55
|
+
@click="${() => this._removeFile()}"
|
|
56
|
+
compact
|
|
57
|
+
color="danger"
|
|
58
|
+
label="Remove">
|
|
59
|
+
<umb-icon name="icon-trash"></umb-icon>
|
|
60
|
+
</uui-button>
|
|
61
|
+
</div>`;
|
|
62
|
+
}
|
|
63
|
+
_renderButton() {
|
|
64
|
+
return this._file
|
|
65
|
+
? nothing
|
|
66
|
+
: html ` <uui-button
|
|
67
|
+
id="add-button"
|
|
68
|
+
look="placeholder"
|
|
69
|
+
label=${this.label}
|
|
70
|
+
@click="${this._onUpload}"></uui-button>`;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
uSyncFilePicker.styles = [
|
|
74
|
+
css `
|
|
75
|
+
.file {
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
gap: var(--uui-size-space-2);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
#file {
|
|
82
|
+
display: none;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
#add-button {
|
|
86
|
+
width: 100%;
|
|
87
|
+
}
|
|
88
|
+
`,
|
|
89
|
+
];
|
|
90
|
+
__decorate([
|
|
91
|
+
property({ type: String })
|
|
92
|
+
], uSyncFilePicker.prototype, "label", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
property({ type: String })
|
|
95
|
+
], uSyncFilePicker.prototype, "accept", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
query('#file')
|
|
98
|
+
], uSyncFilePicker.prototype, "_input", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
state()
|
|
101
|
+
], uSyncFilePicker.prototype, "_file", void 0);
|
|
102
|
+
uSyncFilePicker = __decorate([
|
|
103
|
+
customElement('usync-upload-file-picker')
|
|
104
|
+
], uSyncFilePicker);
|
|
105
|
+
export { uSyncFilePicker };
|
|
106
|
+
export default uSyncFilePicker;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { nothing } from '@umbraco-cms/backoffice/external/lit';
|
|
2
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
3
|
+
import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui';
|
|
4
|
+
export declare class uSyncFileUploadElement extends UmbLitElement {
|
|
5
|
+
#private;
|
|
6
|
+
buttonState?: UUIButtonState;
|
|
7
|
+
selected: File | null | undefined;
|
|
8
|
+
result: string | undefined;
|
|
9
|
+
constructor();
|
|
10
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
11
|
+
renderUploadForm(): import("lit-html").TemplateResult<1>;
|
|
12
|
+
renderFile(): import("lit-html").TemplateResult<1>;
|
|
13
|
+
renderUploadButton(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
14
|
+
static styles: import("lit").CSSResult;
|
|
15
|
+
}
|
|
16
|
+
export default uSyncFileUploadElement;
|
|
17
|
+
declare global {
|
|
18
|
+
interface HTMLElementTagNameMap {
|
|
19
|
+
'usync-file-upload': uSyncFileUploadElement;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
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 __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
14
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
15
|
+
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");
|
|
16
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
17
|
+
};
|
|
18
|
+
var _uSyncFileUploadElement_instances, _uSyncFileUploadElement_fileManager, _uSyncFileUploadElement_repository, _uSyncFileUploadElement_onUpload, _uSyncFileUploadElement_uploadComplete, _uSyncFileUploadElement_onFileChange;
|
|
19
|
+
import { uSyncActionRepository } from '@jumoo/uSync';
|
|
20
|
+
import { css, customElement, html, nothing, state, } from '@umbraco-cms/backoffice/external/lit';
|
|
21
|
+
import { UmbId } from '@umbraco-cms/backoffice/id';
|
|
22
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
23
|
+
import { TemporaryFileStatus, UmbTemporaryFileManager, } from '@umbraco-cms/backoffice/temporary-file';
|
|
24
|
+
import { uSyncFilePickerUploadedEvent } from './events';
|
|
25
|
+
let uSyncFileUploadElement = class uSyncFileUploadElement extends UmbLitElement {
|
|
26
|
+
constructor() {
|
|
27
|
+
super();
|
|
28
|
+
_uSyncFileUploadElement_instances.add(this);
|
|
29
|
+
_uSyncFileUploadElement_fileManager.set(this, void 0);
|
|
30
|
+
_uSyncFileUploadElement_repository.set(this, void 0);
|
|
31
|
+
__classPrivateFieldSet(this, _uSyncFileUploadElement_fileManager, new UmbTemporaryFileManager(this), "f");
|
|
32
|
+
__classPrivateFieldSet(this, _uSyncFileUploadElement_repository, new uSyncActionRepository(this), "f");
|
|
33
|
+
this.observe(__classPrivateFieldGet(this, _uSyncFileUploadElement_fileManager, "f").queue, (value) => {
|
|
34
|
+
value.forEach((file) => {
|
|
35
|
+
if (file.status === TemporaryFileStatus.SUCCESS) {
|
|
36
|
+
__classPrivateFieldGet(this, _uSyncFileUploadElement_instances, "m", _uSyncFileUploadElement_uploadComplete).call(this, file.temporaryUnique);
|
|
37
|
+
this.buttonState = 'success';
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
render() {
|
|
43
|
+
return html `${this.renderUploadForm()}`;
|
|
44
|
+
}
|
|
45
|
+
renderUploadForm() {
|
|
46
|
+
return html ` ${this.renderFile()} ${this.renderUploadButton()} `;
|
|
47
|
+
}
|
|
48
|
+
renderFile() {
|
|
49
|
+
return html `
|
|
50
|
+
<div class="upload-box">
|
|
51
|
+
<usync-upload-file-picker
|
|
52
|
+
label="Select uSync Zip file"
|
|
53
|
+
@change=${__classPrivateFieldGet(this, _uSyncFileUploadElement_instances, "m", _uSyncFileUploadElement_onFileChange)}></usync-upload-file-picker>
|
|
54
|
+
</div>
|
|
55
|
+
`;
|
|
56
|
+
}
|
|
57
|
+
renderUploadButton() {
|
|
58
|
+
if (!this.selected)
|
|
59
|
+
return nothing;
|
|
60
|
+
return html `<uui-button
|
|
61
|
+
type="button"
|
|
62
|
+
look="primary"
|
|
63
|
+
@click="${__classPrivateFieldGet(this, _uSyncFileUploadElement_instances, "m", _uSyncFileUploadElement_onUpload)}"
|
|
64
|
+
label="Upload"
|
|
65
|
+
.state=${this.buttonState}></uui-button>`;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
_uSyncFileUploadElement_fileManager = new WeakMap();
|
|
69
|
+
_uSyncFileUploadElement_repository = new WeakMap();
|
|
70
|
+
_uSyncFileUploadElement_instances = new WeakSet();
|
|
71
|
+
_uSyncFileUploadElement_onUpload = function _uSyncFileUploadElement_onUpload() {
|
|
72
|
+
if (!this.selected)
|
|
73
|
+
return;
|
|
74
|
+
this.buttonState = 'waiting';
|
|
75
|
+
const upload = {
|
|
76
|
+
temporaryUnique: UmbId.new(),
|
|
77
|
+
file: this.selected,
|
|
78
|
+
status: TemporaryFileStatus.WAITING,
|
|
79
|
+
};
|
|
80
|
+
__classPrivateFieldGet(this, _uSyncFileUploadElement_fileManager, "f").upload([upload]);
|
|
81
|
+
};
|
|
82
|
+
_uSyncFileUploadElement_uploadComplete = async function _uSyncFileUploadElement_uploadComplete(temporaryUnique) {
|
|
83
|
+
const result = await __classPrivateFieldGet(this, _uSyncFileUploadElement_repository, "f").processUpload(temporaryUnique);
|
|
84
|
+
if (!result?.success) {
|
|
85
|
+
console.log('upload error', result);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.dispatchEvent(new uSyncFilePickerUploadedEvent(result));
|
|
89
|
+
};
|
|
90
|
+
_uSyncFileUploadElement_onFileChange = function _uSyncFileUploadElement_onFileChange(e) {
|
|
91
|
+
this.selected = e.file;
|
|
92
|
+
};
|
|
93
|
+
uSyncFileUploadElement.styles = css `
|
|
94
|
+
:host {
|
|
95
|
+
display: flex;
|
|
96
|
+
justify-content: space-between;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.upload-box {
|
|
100
|
+
flex-grow: 2;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
usync-upload-file-picker {
|
|
104
|
+
width: 100%;
|
|
105
|
+
flex-grow: 2;
|
|
106
|
+
}
|
|
107
|
+
`;
|
|
108
|
+
__decorate([
|
|
109
|
+
state()
|
|
110
|
+
], uSyncFileUploadElement.prototype, "buttonState", void 0);
|
|
111
|
+
__decorate([
|
|
112
|
+
state()
|
|
113
|
+
], uSyncFileUploadElement.prototype, "selected", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
state()
|
|
116
|
+
], uSyncFileUploadElement.prototype, "result", void 0);
|
|
117
|
+
uSyncFileUploadElement = __decorate([
|
|
118
|
+
customElement('usync-file-upload')
|
|
119
|
+
], uSyncFileUploadElement);
|
|
120
|
+
export { uSyncFileUploadElement };
|
|
121
|
+
export default uSyncFileUploadElement;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
|
|
2
|
+
import { UploadImportResult } from '../../api';
|
|
3
|
+
export declare class uSyncImportModalDialog extends UmbModalBaseElement<any, any> {
|
|
4
|
+
#private;
|
|
5
|
+
result: UploadImportResult | undefined;
|
|
6
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
7
|
+
renderForm(): import("lit-html").TemplateResult<1> | undefined;
|
|
8
|
+
renderResult(): import("lit-html").TemplateResult<1> | undefined;
|
|
9
|
+
static styles: import("lit").CSSResult;
|
|
10
|
+
}
|
|
11
|
+
export default uSyncImportModalDialog;
|
|
@@ -0,0 +1,75 @@
|
|
|
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 _uSyncImportModalDialog_instances, _uSyncImportModalDialog_onClose, _uSyncImportModalDialog_onImport, _uSyncImportModalDialog_onUploaded;
|
|
13
|
+
import { css, customElement, html, state, when, } from '@umbraco-cms/backoffice/external/lit';
|
|
14
|
+
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
|
|
15
|
+
let uSyncImportModalDialog = class uSyncImportModalDialog extends UmbModalBaseElement {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
_uSyncImportModalDialog_instances.add(this);
|
|
19
|
+
}
|
|
20
|
+
render() {
|
|
21
|
+
return html `
|
|
22
|
+
<umb-body-layout .headline=${this.localize.termOrDefault('uSync_importHeader', 'Import from file')}>
|
|
23
|
+
${this.renderForm()} ${this.renderResult()}
|
|
24
|
+
</umb-body-layout>
|
|
25
|
+
`;
|
|
26
|
+
}
|
|
27
|
+
renderForm() {
|
|
28
|
+
if (this.result !== undefined)
|
|
29
|
+
return;
|
|
30
|
+
return html ` ${this.localize.termOrDefault('uSync_uploadIntro', 'Select a zip file containing uSync files that you want to upload')}
|
|
31
|
+
<usync-file-upload @uploaded=${__classPrivateFieldGet(this, _uSyncImportModalDialog_instances, "m", _uSyncImportModalDialog_onUploaded)}></usync-file-upload>
|
|
32
|
+
<div slot="actions">
|
|
33
|
+
<uui-button
|
|
34
|
+
id="cancel"
|
|
35
|
+
.label=${this.localize.term('general_close')}
|
|
36
|
+
@click="${__classPrivateFieldGet(this, _uSyncImportModalDialog_instances, "m", _uSyncImportModalDialog_onClose)}"></uui-button>
|
|
37
|
+
</div>`;
|
|
38
|
+
}
|
|
39
|
+
renderResult() {
|
|
40
|
+
if (this.result == undefined)
|
|
41
|
+
return;
|
|
42
|
+
return html `${when(this.result.success, () => html `${this.localize.termOrDefault('uSync_uploadSuccess', 'The files have been uploaded and extracted to the uSync folder')}`, () => html `${this.localize.termOrDefault('uSync_uploadError', 'There was an error uploading the files')} ${this.result?.errors}`)}
|
|
43
|
+
<div slot="actions">
|
|
44
|
+
<uui-button id="continue" label="Import" @click="${__classPrivateFieldGet(this, _uSyncImportModalDialog_instances, "m", _uSyncImportModalDialog_onImport)}"></uui-button>
|
|
45
|
+
</div>`;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
_uSyncImportModalDialog_instances = new WeakSet();
|
|
49
|
+
_uSyncImportModalDialog_onClose = function _uSyncImportModalDialog_onClose() {
|
|
50
|
+
this.modalContext?.reject();
|
|
51
|
+
};
|
|
52
|
+
_uSyncImportModalDialog_onImport = function _uSyncImportModalDialog_onImport() {
|
|
53
|
+
this.value = this.result?.success;
|
|
54
|
+
this.modalContext?.submit();
|
|
55
|
+
};
|
|
56
|
+
_uSyncImportModalDialog_onUploaded = function _uSyncImportModalDialog_onUploaded(e) {
|
|
57
|
+
this.result = e.result;
|
|
58
|
+
};
|
|
59
|
+
uSyncImportModalDialog.styles = css `
|
|
60
|
+
umb-body-layout {
|
|
61
|
+
max-width: 450px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
usync-file-upload {
|
|
65
|
+
padding: 10px 0;
|
|
66
|
+
}
|
|
67
|
+
`;
|
|
68
|
+
__decorate([
|
|
69
|
+
state()
|
|
70
|
+
], uSyncImportModalDialog.prototype, "result", void 0);
|
|
71
|
+
uSyncImportModalDialog = __decorate([
|
|
72
|
+
customElement('usync-import-dialog')
|
|
73
|
+
], uSyncImportModalDialog);
|
|
74
|
+
export { uSyncImportModalDialog };
|
|
75
|
+
export default uSyncImportModalDialog;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const manifests: import("@umbraco-cms/backoffice/modal").ManifestModal[];
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { uSyncConstants } from '@jumoo/uSync';
|
|
2
|
+
import { manifests as dialogManifests } from './dialogs/manifest.js';
|
|
3
|
+
import './components/index.js';
|
|
4
|
+
import './dialogs/index.js';
|
|
5
|
+
const workspaceAlias = uSyncConstants.workspace.alias;
|
|
6
|
+
const workspace = {
|
|
7
|
+
type: 'workspace',
|
|
8
|
+
alias: workspaceAlias,
|
|
9
|
+
name: 'uSync core workspace',
|
|
10
|
+
js: () => import('./workspace.element.js'),
|
|
11
|
+
meta: {
|
|
12
|
+
entityType: uSyncConstants.workspace.rootElement,
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
const context = {
|
|
16
|
+
type: 'workspaceContext',
|
|
17
|
+
alias: uSyncConstants.workspace.contextAlias,
|
|
18
|
+
name: 'uSync workspace context',
|
|
19
|
+
js: () => import('./workspace.context.js'),
|
|
20
|
+
conditions: [
|
|
21
|
+
{
|
|
22
|
+
alias: 'Umb.Condition.WorkspaceAlias',
|
|
23
|
+
match: workspaceAlias,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
};
|
|
27
|
+
const workspaceViews = [
|
|
28
|
+
{
|
|
29
|
+
type: 'workspaceView',
|
|
30
|
+
alias: uSyncConstants.workspace.defaultView.alias,
|
|
31
|
+
name: 'uSync workspace default view',
|
|
32
|
+
js: () => import('./views/default/default.element.js'),
|
|
33
|
+
weight: 300,
|
|
34
|
+
meta: {
|
|
35
|
+
label: '#uSync_defaultView',
|
|
36
|
+
pathname: 'default',
|
|
37
|
+
icon: 'usync-logo',
|
|
38
|
+
},
|
|
39
|
+
conditions: [
|
|
40
|
+
{
|
|
41
|
+
alias: 'Umb.Condition.WorkspaceAlias',
|
|
42
|
+
match: workspaceAlias,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
type: 'workspaceView',
|
|
48
|
+
alias: uSyncConstants.workspace.settingView.alias,
|
|
49
|
+
name: 'uSync workspace settings view',
|
|
50
|
+
js: () => import('./views/settings/settings.element.js'),
|
|
51
|
+
weight: 200,
|
|
52
|
+
meta: {
|
|
53
|
+
label: '#uSync_settingsView',
|
|
54
|
+
pathname: 'settings',
|
|
55
|
+
icon: 'icon-settings',
|
|
56
|
+
},
|
|
57
|
+
conditions: [
|
|
58
|
+
{
|
|
59
|
+
alias: 'Umb.Condition.WorkspaceAlias',
|
|
60
|
+
match: workspaceAlias,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
type: 'workspaceView',
|
|
66
|
+
alias: uSyncConstants.workspace.addOnView.alias,
|
|
67
|
+
name: 'uSync addons',
|
|
68
|
+
js: () => import('./views/addons/addons.element.js'),
|
|
69
|
+
weight: 100,
|
|
70
|
+
meta: {
|
|
71
|
+
label: '#uSync_addons',
|
|
72
|
+
pathname: 'addons',
|
|
73
|
+
icon: 'icon-box',
|
|
74
|
+
},
|
|
75
|
+
conditions: [
|
|
76
|
+
{
|
|
77
|
+
alias: 'Umb.Condition.WorkspaceAlias',
|
|
78
|
+
match: workspaceAlias,
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
type: 'workspaceView',
|
|
84
|
+
alias: uSyncConstants.workspace.legacyView.alias,
|
|
85
|
+
name: 'uSync legacy',
|
|
86
|
+
js: () => import('./views/legacy/legacy.element.js'),
|
|
87
|
+
weight: 150,
|
|
88
|
+
meta: {
|
|
89
|
+
label: '#uSync_migrate',
|
|
90
|
+
pathname: 'legacy',
|
|
91
|
+
icon: 'icon-arrow-up',
|
|
92
|
+
},
|
|
93
|
+
conditions: [
|
|
94
|
+
{
|
|
95
|
+
alias: 'Umb.Condition.WorkspaceAlias',
|
|
96
|
+
match: workspaceAlias,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
alias: uSyncConstants.conditions.legacy,
|
|
100
|
+
hasLegacyFiles: true,
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
const workspaceActions = [];
|
|
106
|
+
export const manifests = [
|
|
107
|
+
context,
|
|
108
|
+
workspace,
|
|
109
|
+
...workspaceViews,
|
|
110
|
+
...workspaceActions,
|
|
111
|
+
...dialogManifests,
|
|
112
|
+
];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SyncActionGroup } from '@jumoo/uSync';
|
|
2
|
+
/**
|
|
3
|
+
* Options passed to the performAction method on the workspace context
|
|
4
|
+
*/
|
|
5
|
+
export type SyncPerformActionOptions = {
|
|
6
|
+
setName: string;
|
|
7
|
+
group: SyncActionGroup;
|
|
8
|
+
action: string;
|
|
9
|
+
force: boolean;
|
|
10
|
+
clean: boolean;
|
|
11
|
+
file: boolean;
|
|
12
|
+
};
|