@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.
Files changed (199) hide show
  1. package/LICENCE +373 -0
  2. package/README.md +9 -2
  3. package/dist/api/client/client.gen.d.ts +2 -0
  4. package/dist/api/client/client.gen.js +216 -0
  5. package/dist/api/client/index.d.ts +10 -0
  6. package/dist/api/client/index.js +6 -0
  7. package/dist/api/client/types.gen.d.ts +120 -0
  8. package/dist/api/client/types.gen.js +2 -0
  9. package/dist/api/client/utils.gen.d.ts +37 -0
  10. package/dist/api/client/utils.gen.js +230 -0
  11. package/dist/api/client.gen.d.ts +12 -0
  12. package/dist/api/client.gen.js +4 -0
  13. package/dist/api/core/auth.gen.d.ts +25 -0
  14. package/dist/api/core/auth.gen.js +14 -0
  15. package/dist/api/core/bodySerializer.gen.d.ts +25 -0
  16. package/dist/api/core/bodySerializer.gen.js +57 -0
  17. package/dist/api/core/params.gen.d.ts +43 -0
  18. package/dist/api/core/params.gen.js +109 -0
  19. package/dist/api/core/pathSerializer.gen.d.ts +33 -0
  20. package/dist/api/core/pathSerializer.gen.js +106 -0
  21. package/dist/api/core/queryKeySerializer.gen.d.ts +18 -0
  22. package/dist/api/core/queryKeySerializer.gen.js +92 -0
  23. package/dist/api/core/serverSentEvents.gen.d.ts +71 -0
  24. package/dist/api/core/serverSentEvents.gen.js +132 -0
  25. package/dist/api/core/types.gen.d.ts +83 -0
  26. package/dist/api/core/types.gen.js +2 -0
  27. package/dist/api/core/utils.gen.d.ts +19 -0
  28. package/dist/api/core/utils.gen.js +87 -0
  29. package/dist/api/index.d.ts +3 -0
  30. package/dist/api/index.js +4 -0
  31. package/dist/api/sdk.gen.d.ts +44 -0
  32. package/dist/api/sdk.gen.js +147 -0
  33. package/dist/api/types.gen.d.ts +567 -0
  34. package/dist/api/types.gen.js +47 -0
  35. package/dist/components/events.d.ts +11 -0
  36. package/dist/components/events.js +11 -0
  37. package/dist/components/index.d.ts +8 -0
  38. package/dist/components/index.js +9 -0
  39. package/dist/components/usync-action-box.d.ts +22 -0
  40. package/dist/components/usync-action-box.js +119 -0
  41. package/dist/components/usync-change-detail.d.ts +31 -0
  42. package/dist/components/usync-change-detail.js +709 -0
  43. package/dist/components/usync-change-view.d.ts +22 -0
  44. package/dist/components/usync-change-view.js +125 -0
  45. package/dist/components/usync-progress-box.d.ts +20 -0
  46. package/dist/components/usync-progress-box.js +223 -0
  47. package/dist/components/usync-result-row.d.ts +15 -0
  48. package/dist/components/usync-result-row.js +133 -0
  49. package/dist/components/usync-results-group-view.d.ts +19 -0
  50. package/dist/components/usync-results-group-view.js +110 -0
  51. package/dist/components/usync-results-view.d.ts +17 -0
  52. package/dist/components/usync-results-view.js +176 -0
  53. package/dist/components/usync-sync-file-info-view.d.ts +15 -0
  54. package/dist/components/usync-sync-file-info-view.js +62 -0
  55. package/dist/conditions/constants.d.ts +1 -0
  56. package/dist/conditions/constants.js +1 -0
  57. package/dist/conditions/index.d.ts +2 -0
  58. package/dist/conditions/index.js +2 -0
  59. package/dist/conditions/legacy-files.condition.d.ts +10 -0
  60. package/dist/conditions/legacy-files.condition.js +16 -0
  61. package/dist/conditions/manifest.d.ts +1 -0
  62. package/dist/conditions/manifest.js +18 -0
  63. package/dist/conditions/new-section.condition.d.ts +8 -0
  64. package/dist/conditions/new-section.condition.js +48 -0
  65. package/dist/constants.d.ts +30 -0
  66. package/dist/constants.js +38 -0
  67. package/dist/dialogs/details-modal-element.d.ts +18 -0
  68. package/dist/dialogs/details-modal-element.js +98 -0
  69. package/dist/dialogs/details-modal-token.d.ts +10 -0
  70. package/dist/dialogs/details-modal-token.js +7 -0
  71. package/dist/dialogs/error-modal-element.d.ts +7 -0
  72. package/dist/dialogs/error-modal-element.js +54 -0
  73. package/dist/dialogs/error-modal-token.d.ts +9 -0
  74. package/dist/dialogs/error-modal-token.js +6 -0
  75. package/dist/dialogs/index.d.ts +6 -0
  76. package/dist/dialogs/index.js +6 -0
  77. package/dist/dialogs/legacy-modal-element.d.ts +13 -0
  78. package/dist/dialogs/legacy-modal-element.js +78 -0
  79. package/dist/dialogs/manifest.d.ts +1 -0
  80. package/dist/dialogs/manifest.js +25 -0
  81. package/dist/dialogs/single-import-modal.element.d.ts +13 -0
  82. package/dist/dialogs/single-import-modal.element.js +105 -0
  83. package/dist/dialogs/single-import-modal.token.d.ts +9 -0
  84. package/dist/dialogs/single-import-modal.token.js +6 -0
  85. package/dist/exports.d.ts +10 -0
  86. package/dist/exports.js +10 -0
  87. package/dist/external/signalr/index.d.ts +1 -0
  88. package/dist/external/signalr/index.js +1 -0
  89. package/dist/hey-api.d.ts +11 -0
  90. package/dist/hey-api.js +14 -0
  91. package/dist/icons/icons.d.ts +5 -0
  92. package/dist/icons/icons.js +6 -0
  93. package/dist/icons/manifest.d.ts +1 -0
  94. package/dist/icons/manifest.js +7 -0
  95. package/dist/icons/svg/logo.d.ts +2 -0
  96. package/dist/icons/svg/logo.js +21 -0
  97. package/dist/index.d.ts +8 -0
  98. package/dist/index.js +11 -0
  99. package/dist/lang/files/da-dk.d.ts +130 -0
  100. package/dist/lang/files/da-dk.js +141 -0
  101. package/dist/lang/files/de-de.d.ts +130 -0
  102. package/dist/lang/files/de-de.js +141 -0
  103. package/dist/lang/files/en-us.d.ts +161 -0
  104. package/dist/lang/files/en-us.js +172 -0
  105. package/dist/lang/files/es-es.d.ts +130 -0
  106. package/dist/lang/files/es-es.js +141 -0
  107. package/dist/lang/files/fr-fr.d.ts +130 -0
  108. package/dist/lang/files/fr-fr.js +141 -0
  109. package/dist/lang/files/nl-nl.d.ts +130 -0
  110. package/dist/lang/files/nl-nl.js +141 -0
  111. package/dist/lang/manifest.d.ts +1 -0
  112. package/dist/lang/manifest.js +63 -0
  113. package/dist/manifests.d.ts +1 -0
  114. package/dist/manifests.js +14 -0
  115. package/dist/repository/SyncAction.respositoy.d.ts +101 -0
  116. package/dist/repository/SyncAction.respositoy.js +125 -0
  117. package/dist/repository/index.d.ts +4 -0
  118. package/dist/repository/index.js +4 -0
  119. package/dist/repository/sources/SyncAction.source.d.ts +37 -0
  120. package/dist/repository/sources/SyncAction.source.js +57 -0
  121. package/dist/repository/sources/SyncMigration.source.d.ts +13 -0
  122. package/dist/repository/sources/SyncMigration.source.js +30 -0
  123. package/dist/repository/sources/SyncSettings.source.d.ts +23 -0
  124. package/dist/repository/sources/SyncSettings.source.js +33 -0
  125. package/dist/signalr/index.d.ts +3 -0
  126. package/dist/signalr/index.js +3 -0
  127. package/dist/signalr/signalr-reconnect-policy.d.ts +11 -0
  128. package/dist/signalr/signalr-reconnect-policy.js +14 -0
  129. package/dist/signalr/signalr.context.d.ts +34 -0
  130. package/dist/signalr/signalr.context.js +110 -0
  131. package/dist/signalr/signalr.context.token.d.ts +3 -0
  132. package/dist/signalr/signalr.context.token.js +2 -0
  133. package/dist/signalr/types.d.ts +21 -0
  134. package/dist/signalr/types.js +1 -0
  135. package/dist/tree/constants.d.ts +1 -0
  136. package/dist/tree/constants.js +1 -0
  137. package/dist/tree/index.d.ts +2 -0
  138. package/dist/tree/index.js +2 -0
  139. package/dist/tree/manifest.d.ts +1 -0
  140. package/dist/tree/manifest.js +92 -0
  141. package/dist/tree/types.d.ts +14 -0
  142. package/dist/tree/types.js +1 -0
  143. package/dist/tree/usync.menu-element.d.ts +13 -0
  144. package/dist/tree/usync.menu-element.js +74 -0
  145. package/dist/utils/diff/change-name.d.ts +13 -0
  146. package/dist/utils/diff/change-name.js +30 -0
  147. package/dist/utils/diff/classify-change.d.ts +21 -0
  148. package/dist/utils/diff/classify-change.js +111 -0
  149. package/dist/utils/diff/deep-equal.d.ts +13 -0
  150. package/dist/utils/diff/deep-equal.js +57 -0
  151. package/dist/utils/diff/format-value.d.ts +36 -0
  152. package/dist/utils/diff/format-value.js +88 -0
  153. package/dist/utils/diff/index.d.ts +7 -0
  154. package/dist/utils/diff/index.js +7 -0
  155. package/dist/utils/diff/json-diff.d.ts +34 -0
  156. package/dist/utils/diff/json-diff.js +300 -0
  157. package/dist/utils/diff/line-diff.d.ts +16 -0
  158. package/dist/utils/diff/line-diff.js +199 -0
  159. package/dist/utils/diff/types.d.ts +62 -0
  160. package/dist/utils/diff/types.js +12 -0
  161. package/dist/workspace/components/events.d.ts +31 -0
  162. package/dist/workspace/components/events.js +54 -0
  163. package/dist/workspace/components/index.d.ts +3 -0
  164. package/dist/workspace/components/index.js +3 -0
  165. package/dist/workspace/components/usync-action-button.d.ts +19 -0
  166. package/dist/workspace/components/usync-action-button.js +113 -0
  167. package/dist/workspace/components/usync-file-picker.element.d.ts +23 -0
  168. package/dist/workspace/components/usync-file-picker.element.js +106 -0
  169. package/dist/workspace/components/usync-file-upload.element.d.ts +21 -0
  170. package/dist/workspace/components/usync-file-upload.element.js +121 -0
  171. package/dist/workspace/dialogs/import-modal.element.d.ts +11 -0
  172. package/dist/workspace/dialogs/import-modal.element.js +75 -0
  173. package/dist/workspace/dialogs/import-modal.token.d.ts +6 -0
  174. package/dist/workspace/dialogs/import-modal.token.js +6 -0
  175. package/dist/workspace/dialogs/index.d.ts +2 -0
  176. package/dist/workspace/dialogs/index.js +2 -0
  177. package/dist/workspace/dialogs/manifest.d.ts +1 -0
  178. package/dist/workspace/dialogs/manifest.js +7 -0
  179. package/dist/workspace/index.d.ts +3 -0
  180. package/dist/workspace/index.js +3 -0
  181. package/dist/workspace/manifest.d.ts +3 -0
  182. package/dist/workspace/manifest.js +112 -0
  183. package/dist/workspace/types.d.ts +12 -0
  184. package/dist/workspace/types.js +1 -0
  185. package/dist/workspace/views/addons/addons.element.d.ts +7 -0
  186. package/dist/workspace/views/addons/addons.element.js +117 -0
  187. package/dist/workspace/views/default/default.element.d.ts +31 -0
  188. package/dist/workspace/views/default/default.element.js +466 -0
  189. package/dist/workspace/views/legacy/legacy.element.d.ts +14 -0
  190. package/dist/workspace/views/legacy/legacy.element.js +187 -0
  191. package/dist/workspace/views/settings/components/usyncSettingItem.element.d.ts +15 -0
  192. package/dist/workspace/views/settings/components/usyncSettingItem.element.js +96 -0
  193. package/dist/workspace/views/settings/settings.element.d.ts +17 -0
  194. package/dist/workspace/views/settings/settings.element.js +174 -0
  195. package/dist/workspace/workspace.context.d.ts +74 -0
  196. package/dist/workspace/workspace.context.js +448 -0
  197. package/dist/workspace/workspace.element.d.ts +17 -0
  198. package/dist/workspace/workspace.element.js +69 -0
  199. package/package.json +69 -5
@@ -0,0 +1,187 @@
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 _SyncLegacyFilesElement_instances, _SyncLegacyFilesElement_actionContext, _SyncLegacyFilesElement_onCopy, _SyncLegacyFilesElement_onIgnore;
19
+ import { css, customElement, html, nothing, state, } from '@umbraco-cms/backoffice/external/lit';
20
+ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
21
+ import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal';
22
+ import { USYNC_CORE_CONTEXT_TOKEN, } from '@jumoo/uSync';
23
+ let SyncLegacyFilesElement = class SyncLegacyFilesElement extends UmbLitElement {
24
+ constructor() {
25
+ super();
26
+ _SyncLegacyFilesElement_instances.add(this);
27
+ _SyncLegacyFilesElement_actionContext.set(this, void 0);
28
+ this.consumeContext(USYNC_CORE_CONTEXT_TOKEN, (_instance) => {
29
+ if (!_instance)
30
+ return;
31
+ __classPrivateFieldSet(this, _SyncLegacyFilesElement_actionContext, _instance, "f");
32
+ this.observe(_instance.legacy, (_legacy) => {
33
+ this._legacy = _legacy;
34
+ });
35
+ });
36
+ }
37
+ render() {
38
+ return html `<umb-body-layout>
39
+ ${this.renderLegacyNote()} ${this.renderActions()}
40
+ </umb-body-layout>`;
41
+ }
42
+ renderLegacyNote() {
43
+ return html ` <uui-box headline="Legacy uSync files detected">
44
+ <p>
45
+ uSync has found an old uSync folder at
46
+ <strong>${this._legacy?.legacyFolder ?? ''}</strong>. It is likely that the
47
+ content will need converting in some way.
48
+ </p>
49
+ ${this.renderLegacyTypes(this._legacy?.legacyTypes)}
50
+ </uui-box>`;
51
+ }
52
+ renderLegacyTypes(legacyTypes) {
53
+ if (legacyTypes == undefined || legacyTypes.length == 0) {
54
+ return nothing;
55
+ }
56
+ const legacyTypeHtml = legacyTypes.map((datatype) => {
57
+ return html `<li>${datatype}</li>`;
58
+ });
59
+ return html `
60
+ <div>
61
+ <h3>Obsolete DataTypes</h3>
62
+ <p>
63
+ The following DataTypes - found in the legacy folder - are no longer supported
64
+ in Umbraco 14+ and will need to be converted.
65
+ </p>
66
+ <ul>
67
+ ${legacyTypeHtml}
68
+ </ul>
69
+ <p>
70
+ You can convert these DataTypes using
71
+ <a href="https://github.com/Jumoo/uSyncMigrations" target="_blank"
72
+ >uSync.Migrations</a
73
+ ><br />
74
+ </p>
75
+ </div>
76
+ `;
77
+ }
78
+ renderActions() {
79
+ return html `
80
+ <div class="legacy-actions">
81
+ <uui-box>
82
+ <div class="actions">
83
+ <uui-button
84
+ label="copy"
85
+ color="positive"
86
+ look="primary"
87
+ @click=${__classPrivateFieldGet(this, _SyncLegacyFilesElement_instances, "m", _SyncLegacyFilesElement_onCopy)}
88
+ >Overwrite v${this._legacy?.latestVersion} folder</uui-button
89
+ >
90
+ <p>
91
+ Copy the contents of the legacy folder to the new
92
+ ${this._legacy?.latestFolder} folder
93
+ </p>
94
+ </div>
95
+ </uui-box>
96
+
97
+ <uui-box>
98
+ <div class="actions">
99
+ <uui-button
100
+ label="ignore"
101
+ color="warning"
102
+ look="primary"
103
+ @click=${__classPrivateFieldGet(this, _SyncLegacyFilesElement_instances, "m", _SyncLegacyFilesElement_onIgnore)}
104
+ >Ignore legacy folder</uui-button
105
+ >
106
+ <p>Ignore the legacy folder and continue</p>
107
+ </div>
108
+ </uui-box>
109
+ </div>
110
+ `;
111
+ }
112
+ };
113
+ _SyncLegacyFilesElement_actionContext = new WeakMap();
114
+ _SyncLegacyFilesElement_instances = new WeakSet();
115
+ _SyncLegacyFilesElement_onCopy = async function _SyncLegacyFilesElement_onCopy() {
116
+ const modalContext = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
117
+ const confirmContext = modalContext?.open(this, UMB_CONFIRM_MODAL, {
118
+ data: {
119
+ headline: this.localize.termOrDefault('uSync_legacyCopyTitle', 'Overwrite files', this._legacy?.latestVersion),
120
+ content: html `${this.localize.termOrDefault('uSync_legacyCopyContent', 'Are you sure you want to overwrite the contents of the folder with the legacy uSync folder files?', this._legacy?.latestFolder)}`,
121
+ color: 'danger',
122
+ confirmLabel: 'Copy',
123
+ },
124
+ });
125
+ confirmContext
126
+ ?.onSubmit()
127
+ .then(async () => {
128
+ await __classPrivateFieldGet(this, _SyncLegacyFilesElement_actionContext, "f")?.copyLegacy();
129
+ window.location.reload();
130
+ })
131
+ .catch(() => {
132
+ console.log('copy cancelled by user');
133
+ });
134
+ };
135
+ _SyncLegacyFilesElement_onIgnore = async function _SyncLegacyFilesElement_onIgnore() {
136
+ const modalContext = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
137
+ const confirmContext = modalContext?.open(this, UMB_CONFIRM_MODAL, {
138
+ data: {
139
+ headline: this.localize.termOrDefault('uSync_legacyIgnoreTitle', 'Ignore legacy files'),
140
+ content: html `${this.localize.termOrDefault('uSync_legacyIgnoreContent', 'Are you sure you want to ignore the files in the legacy uSync folder?')}`,
141
+ color: 'danger',
142
+ confirmLabel: 'Ignore',
143
+ },
144
+ });
145
+ confirmContext
146
+ ?.onSubmit()
147
+ .then(async () => {
148
+ await __classPrivateFieldGet(this, _SyncLegacyFilesElement_actionContext, "f")?.ignoreLegacy();
149
+ window.location.reload();
150
+ })
151
+ .catch(() => {
152
+ console.log('ignore cancelled by user');
153
+ });
154
+ };
155
+ SyncLegacyFilesElement.styles = css `
156
+ uui-box {
157
+ margin-bottom: var(--uui-size-3);
158
+ }
159
+
160
+ .legacy-actions {
161
+ display: flex;
162
+ gap: var(--uui-size-space-4);
163
+ justify-content: space-between;
164
+ }
165
+
166
+ .legacy-actions uui-box {
167
+ flex-basis: 50%;
168
+ }
169
+
170
+ .legacy-actions .actions {
171
+ display: flex;
172
+ flex-direction: column;
173
+ align-items: center;
174
+ }
175
+
176
+ uui-button {
177
+ font-size: var(--uui-type-h5-size);
178
+ }
179
+ `;
180
+ __decorate([
181
+ state()
182
+ ], SyncLegacyFilesElement.prototype, "_legacy", void 0);
183
+ SyncLegacyFilesElement = __decorate([
184
+ customElement('usync-sync-legacy-files')
185
+ ], SyncLegacyFilesElement);
186
+ export { SyncLegacyFilesElement };
187
+ export default SyncLegacyFilesElement;
@@ -0,0 +1,15 @@
1
+ import { LitElement } from '@umbraco-cms/backoffice/external/lit';
2
+ export declare class uSyncSettingItemElement extends LitElement {
3
+ #private;
4
+ name?: string;
5
+ description?: string;
6
+ value?: Object | null | undefined;
7
+ render(): import("lit-html").TemplateResult<1>;
8
+ static styles: import("lit").CSSResult;
9
+ }
10
+ export default uSyncSettingItemElement;
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'usync-setting-item': uSyncSettingItemElement;
14
+ }
15
+ }
@@ -0,0 +1,96 @@
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 _uSyncSettingItemElement_instances, _uSyncSettingItemElement_renderValue;
13
+ import { LitElement, classMap, css, customElement, html, property, } from '@umbraco-cms/backoffice/external/lit';
14
+ let uSyncSettingItemElement = class uSyncSettingItemElement extends LitElement {
15
+ constructor() {
16
+ super(...arguments);
17
+ _uSyncSettingItemElement_instances.add(this);
18
+ }
19
+ render() {
20
+ return html `
21
+ <div class="usync-setting-value">
22
+ <div class="info">
23
+ <h5>${this.name}</h5>
24
+ <div>${this.description}</div>
25
+ </div>
26
+ <div class="value">${__classPrivateFieldGet(this, _uSyncSettingItemElement_instances, "m", _uSyncSettingItemElement_renderValue).call(this)}</div>
27
+ </div>
28
+ `;
29
+ }
30
+ };
31
+ _uSyncSettingItemElement_instances = new WeakSet();
32
+ _uSyncSettingItemElement_renderValue = function _uSyncSettingItemElement_renderValue() {
33
+ if (this.value === undefined || this.value === null) {
34
+ return html `(Not Set)`;
35
+ }
36
+ if (typeof this.value == 'boolean') {
37
+ const classes = { _set: this.value };
38
+ return html `
39
+ <uui-icon
40
+ name=${this.value ? 'icon-check' : 'icon-wrong'}
41
+ class=${classMap(classes)}></uui-icon>
42
+ `;
43
+ }
44
+ else {
45
+ if (Array.isArray(this.value)) {
46
+ const list = this.value.map((v) => {
47
+ return html `<li>${v}</li>`;
48
+ });
49
+ return html `<ul>
50
+ ${list}
51
+ </ul>`;
52
+ }
53
+ else {
54
+ return html ` <div>${this.value}</div> `;
55
+ }
56
+ }
57
+ };
58
+ uSyncSettingItemElement.styles = css `
59
+ .usync-setting-value {
60
+ display: flex;
61
+ justify-content: space-between;
62
+ padding: var(--uui-size-space-2) 0;
63
+ border-bottom: 1px solid var(--uui-color-divider);
64
+ }
65
+
66
+ .usync-setting-value h5 {
67
+ margin: 0;
68
+ padding: 0;
69
+ }
70
+
71
+ uui-icon {
72
+ color: var(--uui-color-danger);
73
+ }
74
+
75
+ uui-icon._set {
76
+ color: var(--uui-color-positive);
77
+ }
78
+
79
+ ul {
80
+ list-style: none;
81
+ }
82
+ `;
83
+ __decorate([
84
+ property({ type: String })
85
+ ], uSyncSettingItemElement.prototype, "name", void 0);
86
+ __decorate([
87
+ property({ type: String })
88
+ ], uSyncSettingItemElement.prototype, "description", void 0);
89
+ __decorate([
90
+ property()
91
+ ], uSyncSettingItemElement.prototype, "value", void 0);
92
+ uSyncSettingItemElement = __decorate([
93
+ customElement('usync-setting-item')
94
+ ], uSyncSettingItemElement);
95
+ export { uSyncSettingItemElement };
96
+ export default uSyncSettingItemElement;
@@ -0,0 +1,17 @@
1
+ import { LitElement } from '@umbraco-cms/backoffice/external/lit';
2
+ import { USyncHandlerSetSettings, USyncSettings } from '@jumoo/uSync';
3
+ export * from './components/usyncSettingItem.element.js';
4
+ declare const USyncSettingsViewElement_base: import("@umbraco-cms/backoffice/extension-api").HTMLElementConstructor<import("@umbraco-cms/backoffice/element-api").UmbElement> & typeof LitElement;
5
+ export declare class USyncSettingsViewElement extends USyncSettingsViewElement_base {
6
+ settings?: USyncSettings;
7
+ handlerSettings?: USyncHandlerSetSettings;
8
+ constructor();
9
+ render(): import("lit-html").TemplateResult<1>;
10
+ static styles: import("lit").CSSResult;
11
+ }
12
+ export default USyncSettingsViewElement;
13
+ declare global {
14
+ interface HTMLElementTagNameMap {
15
+ 'usync-settings-view': USyncSettingsViewElement;
16
+ }
17
+ }
@@ -0,0 +1,174 @@
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 { UmbElementMixin } from '@umbraco-cms/backoffice/element-api';
8
+ import { LitElement, css, customElement, html, state, when, } from '@umbraco-cms/backoffice/external/lit';
9
+ import { USYNC_CORE_CONTEXT_TOKEN, } from '@jumoo/uSync';
10
+ export * from './components/usyncSettingItem.element.js';
11
+ let USyncSettingsViewElement = class USyncSettingsViewElement extends UmbElementMixin(LitElement) {
12
+ constructor() {
13
+ super();
14
+ this.consumeContext(USYNC_CORE_CONTEXT_TOKEN, (_instance) => {
15
+ if (!_instance)
16
+ return;
17
+ this.observe(_instance.settings, (_settings) => {
18
+ if (!_settings)
19
+ return;
20
+ this.settings = _settings;
21
+ _instance.getDefaultHandlerSetSettings(this.settings.defaultSet ?? 'Default');
22
+ });
23
+ this.observe(_instance.handlerSettings, (_handlerSettings) => {
24
+ if (!_handlerSettings)
25
+ return;
26
+ this.handlerSettings = _handlerSettings;
27
+ });
28
+ _instance.getSettings();
29
+ });
30
+ }
31
+ render() {
32
+ return html `
33
+ <umb-body-layout>
34
+ <div class="usync-settings-layout">
35
+ <div>
36
+ <uui-box headline=${this.localize.termOrDefault('USyncSettings_settings', 'uSync Settings')}>
37
+ <usync-setting-item
38
+ .name=${this.localize.termOrDefault('USyncSettings_processingMode', 'Processing Mode')}
39
+ .description=${this.localize.termOrDefault('USyncSettings_processingModeDesc', 'How the uSync process runs, either in the background or interactively (Normal)')}
40
+ .value=${this.settings?.processingMode}></usync-setting-item>
41
+ <usync-setting-item
42
+ .name=${this.localize.termOrDefault('USyncSettings_importAtStartup', 'Import at startup')}
43
+ .description=${this.localize.termOrDefault('USyncSettings_importAtStartupDesc', 'Run an import of files from the disk when Umbraco starts')}
44
+ .value=${this.settings?.importAtStartup}></usync-setting-item>
45
+ <usync-setting-item
46
+ .name=${this.localize.termOrDefault('USyncSettings_exportAtStartup', 'Export at startup')}
47
+ .description=${this.localize.termOrDefault('USyncSettings_exportAtStartupDesc', 'Export the Umbraco settings when the site starts up')}
48
+ .value=${this.settings?.exportAtStartup}></usync-setting-item>
49
+
50
+ <usync-setting-item
51
+ .name=${this.localize.termOrDefault('USyncSettings_exportOnSave', 'Export on save')}
52
+ .description=${this.localize.termOrDefault('USyncSettings_exportOnSaveDesc', 'Generate uSync files when items are saved')}
53
+ .value=${this.settings?.exportOnSave}></usync-setting-item>
54
+
55
+ <usync-setting-item
56
+ .name=${this.localize.termOrDefault('USyncSettings_uiEnabledGroups', 'UI Enabled groups')}
57
+ .description=${this.localize.termOrDefault('USyncSettings_uiEnabledGroupsDesc', 'Handler groups that can be seen/used on the dashboard')}
58
+ .value=${this.settings?.uiEnabledGroups}></usync-setting-item>
59
+
60
+ <usync-setting-item
61
+ .name=${this.localize.termOrDefault('USyncSettings_failOnMissingParent', 'Fail on missing parent')}
62
+ .description=${this.localize.termOrDefault('USyncSettings_failOnMissingParentDesc', 'Fail on missing parent')}
63
+ .value=${this.settings?.failOnMissingParent}></usync-setting-item>
64
+ </uui-box>
65
+
66
+ <uui-box headline=${this.localize.termOrDefault('USyncSettings_filesAndFolders', 'File and folders')}>
67
+ <usync-setting-item
68
+ .name=${this.localize.termOrDefault('USyncSettings_rootSite', 'Root Site')}
69
+ .description=${this.localize.termOrDefault('USyncSettings_rootSiteDesc', 'Is this site a root for other sites.')}
70
+ .value=${this.settings?.isRootSite}></usync-setting-item>
71
+
72
+ <usync-setting-item
73
+ .name=${this.localize.termOrDefault('USyncSettings_rootLocked', 'Root Locked')}
74
+ .description=${this.localize.termOrDefault('USyncSettings_rootLockedDesc', 'Are changes for items that are from the root site locked?')}
75
+ .value=${this.settings?.lockRoot}></usync-setting-item>
76
+
77
+ <usync-setting-item
78
+ .name=${this.localize.termOrDefault('USyncSettings_folders', 'Folders')}
79
+ .description=${this.localize.termOrDefault('USyncSettings_foldersDesc', 'Folders uSync will look for files, (items are normally saved into last folder in the list)')}
80
+ .value=${this.settings?.folders}></usync-setting-item>
81
+ </uui-box>
82
+ </div>
83
+
84
+ <div>
85
+ <uui-box headline=${this.localize.termOrDefault('USyncSettings_handlerDefaults', 'Handler defaults')}>
86
+ <usync-setting-item
87
+ .name=${this.localize.termOrDefault('USyncSettings_handlerSet', 'Default handler set')}
88
+ .description=${this.localize.termOrDefault('USyncSettings_handlerSetDesc', 'The default handler set to use for the site')}
89
+ .value=${this.settings?.defaultSet}></usync-setting-item>
90
+
91
+ <usync-setting-item
92
+ .name=${this.localize.termOrDefault('USyncSettings_flatStructure', 'Flat structure')}
93
+ .description=${this.localize.termOrDefault('USyncSettings_flatStructureDesc', 'All items of a type are stored in a flat folder structure')}
94
+ .value=${this.handlerSettings?.handlerDefaults
95
+ ?.useFlatStructure}></usync-setting-item>
96
+
97
+ <usync-setting-item
98
+ .name=${this.localize.termOrDefault('USyncSettings_guidNames', 'Use guids for filenames')}
99
+ .description=${this.localize.termOrDefault('USyncSettings_guidNamesDesc', 'Use the GUID of an item as the filename')}
100
+ .value=${this.handlerSettings?.handlerDefaults
101
+ ?.guidNames}></usync-setting-item>
102
+
103
+ <usync-setting-item
104
+ .name=${this.localize.termOrDefault('USyncSettings_handlerGroups', 'Handler groups')}
105
+ .description=${this.localize.termOrDefault('USyncSettings_handlerGroupsDesc', 'Groups to limit handler set to')}
106
+ .value=${this.handlerSettings?.handlerDefaults
107
+ ?.group}></usync-setting-item>
108
+
109
+ <usync-setting-item
110
+ .name=${this.localize.termOrDefault('USyncSettings_failOnMissingParent', 'Fail on missing parent')}
111
+ .description=${this.localize.termOrDefault('USyncSettings_failOnMissingParentDesc', 'Fail on missing parent')}
112
+ .value=${this.handlerSettings?.handlerDefaults
113
+ ?.failOnMissingParent}></usync-setting-item>
114
+
115
+ <usync-setting-item
116
+ .name=${this.localize.termOrDefault('USyncSettings_disabledHandlers', 'Disabled Handlers')}
117
+ .description=${this.localize.termOrDefault('USyncSettings_disabledHandlersDesc', 'Handlers explicitly disabled for this handler set')}
118
+ .value=${this.handlerSettings?.disabledHandlers}></usync-setting-item>
119
+ </uui-box>
120
+ <uui-box headline=${this.localize.termOrDefault('USyncSettings_bootSettings', 'First boot settings')}>
121
+ <usync-setting-item
122
+ .name=${this.localize.termOrDefault('USyncSettings_firstBoot', 'Import on First boot')}
123
+ .description=${this.localize.termOrDefault('USyncSettings_firstBootDesc', 'Run the import process on first boot of the site')}
124
+ .value=${this.settings?.importOnFirstBoot}></usync-setting-item>
125
+ ${when(this.settings?.importOnFirstBoot, () => html ` <usync-setting-item
126
+ .name=${this.localize.termOrDefault('USyncSettings_firstBootGroup', 'First boot groups')}
127
+ .description=${this.localize.termOrDefault('USyncSettings_firstBootGroupDesc', 'The groups to run on first boot')}
128
+ .value=${this.settings?.firstBootGroup}></usync-setting-item>`)}
129
+ </uui-box>
130
+ </div>
131
+ </div>
132
+ <div class="setting-link">
133
+ <umb-localize key="USyncSettings_help"></umb-localize>
134
+ </div>
135
+ </umb-body-layout>
136
+ `;
137
+ }
138
+ };
139
+ USyncSettingsViewElement.styles = css `
140
+ :host {
141
+ display: block;
142
+ }
143
+
144
+ .usync-settings-layout {
145
+ display: grid;
146
+ grid-template-columns: 5fr 5fr;
147
+ grid-template-rows: auto auto;
148
+ gap: var(--uui-size-space-5);
149
+ row-gap: var(--uui-size-space-5);
150
+ grid-auto-flow: row;
151
+ grid-template-areas: 'settings info', 'handler info';
152
+ }
153
+
154
+ .usync-settings-layout > div {
155
+ display: flex;
156
+ flex-direction: column;
157
+ gap: var(--uui-size-space-6);
158
+ }
159
+
160
+ .setting-link {
161
+ text-align: center;
162
+ }
163
+ `;
164
+ __decorate([
165
+ state()
166
+ ], USyncSettingsViewElement.prototype, "settings", void 0);
167
+ __decorate([
168
+ state()
169
+ ], USyncSettingsViewElement.prototype, "handlerSettings", void 0);
170
+ USyncSettingsViewElement = __decorate([
171
+ customElement('usync-settings-view')
172
+ ], USyncSettingsViewElement);
173
+ export { USyncSettingsViewElement };
174
+ export default USyncSettingsViewElement;
@@ -0,0 +1,74 @@
1
+ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
2
+ import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
3
+ import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
4
+ import { SyncActionGroup, SyncHandlerSummary, SyncLegacyCheckResponse, USyncActionView, USyncHandlerSetSettings, USyncSettings, SyncPerformActionOptions, SyncSelectableSet, SyncFileVersionCheckResult } from '@jumoo/uSync';
5
+ import { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace';
6
+ /**
7
+ * Context for getting and seting up actions.
8
+ */
9
+ export declare class uSyncWorkspaceContext extends UmbControllerBase implements UmbWorkspaceContext {
10
+ #private;
11
+ readonly workspaceAlias: string;
12
+ getEntityType(): string;
13
+ readonly actions: import("rxjs").Observable<SyncActionGroup[]>;
14
+ private _currentSetName;
15
+ readonly workingGroup: import("rxjs").Observable<SyncActionGroup | undefined>;
16
+ readonly currentAction: import("rxjs").Observable<SyncHandlerSummary[]>;
17
+ readonly working: import("rxjs").Observable<boolean>;
18
+ readonly inBackground: import("rxjs").Observable<boolean>;
19
+ readonly completed: import("rxjs").Observable<boolean>;
20
+ readonly results: import("rxjs").Observable<USyncActionView[]>;
21
+ readonly settings: import("rxjs").Observable<USyncSettings | undefined>;
22
+ readonly handlerSettings: import("rxjs").Observable<USyncHandlerSetSettings | undefined>;
23
+ readonly sets: import("rxjs").Observable<SyncSelectableSet[]>;
24
+ readonly legacy: import("rxjs").Observable<SyncLegacyCheckResponse | undefined>;
25
+ readonly syncFileInfo: import("rxjs").Observable<SyncFileVersionCheckResult | undefined>;
26
+ constructor(host: UmbControllerHost);
27
+ hostDisconnected(): void;
28
+ /**
29
+ * Return the current actions from the repository
30
+ */
31
+ getActions(setName: string): Promise<void>;
32
+ /**
33
+ * Get the current uSync settings
34
+ */
35
+ getSettings(): Promise<USyncSettings | undefined>;
36
+ getAddons(): Promise<import("@jumoo/uSync").USyncAddonInfo>;
37
+ getSyncFileInfo(): Promise<SyncFileVersionCheckResult>;
38
+ /**
39
+ * Check to see if there is a legacy uSync folder on disk.
40
+ */
41
+ checkLegacy(): Promise<SyncLegacyCheckResponse | undefined>;
42
+ ignoreLegacy(): Promise<boolean>;
43
+ copyLegacy(): Promise<boolean>;
44
+ /**
45
+ * Get handler defaults.
46
+ */
47
+ getDefaultHandlerSetSettings(setName: string): Promise<void>;
48
+ getHandlerSets(): Promise<void>;
49
+ /**
50
+ * Perform an action (e.g import, export, etc) with options
51
+ * @param options options for the action
52
+ */
53
+ performAction(options: SyncPerformActionOptions): Promise<void>;
54
+ /**
55
+ * Manually clear a stuck "running in background" state - a workaround for
56
+ * when the server that was running the sync crashed or restarted and this
57
+ * client is left showing it as still active. This only resets what THIS
58
+ * client shows; it does not (and cannot - Umbraco's long-running-operation
59
+ * service has no cancel API) force the server-side operation to end. If
60
+ * the run really is still active elsewhere, starting a new one will still
61
+ * be rejected until the server-side run actually finishes or its
62
+ * expiration window passes (a few minutes by default).
63
+ */
64
+ dismissBackgroundRun(): void;
65
+ uploadFile(): Promise<boolean | undefined>;
66
+ downloadFile(): Promise<void>;
67
+ importSingle(item: USyncActionView): Promise<import("@umbraco-cms/backoffice/resources").UmbApiResponse<{
68
+ data: USyncActionView;
69
+ request: Request;
70
+ response: Response;
71
+ }> | undefined>;
72
+ }
73
+ export default uSyncWorkspaceContext;
74
+ export declare const USYNC_CORE_CONTEXT_TOKEN: UmbContextToken<uSyncWorkspaceContext, uSyncWorkspaceContext>;