@serve.zone/dcrouter 13.5.0 → 13.7.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 (136) hide show
  1. package/dist_serve/bundle.js +1705 -1365
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/classes.dcrouter.d.ts +2 -5
  4. package/dist_ts/classes.dcrouter.js +41 -10
  5. package/dist_ts/db/documents/classes.dns-provider.doc.d.ts +22 -0
  6. package/dist_ts/db/documents/classes.dns-provider.doc.js +134 -0
  7. package/dist_ts/db/documents/classes.dns-record.doc.d.ts +21 -0
  8. package/dist_ts/db/documents/classes.dns-record.doc.js +143 -0
  9. package/dist_ts/db/documents/classes.domain.doc.d.ts +22 -0
  10. package/dist_ts/db/documents/classes.domain.doc.js +146 -0
  11. package/dist_ts/db/documents/index.d.ts +3 -0
  12. package/dist_ts/db/documents/index.js +5 -1
  13. package/dist_ts/dns/index.d.ts +2 -0
  14. package/dist_ts/dns/index.js +3 -0
  15. package/dist_ts/dns/manager.dns.d.ts +227 -0
  16. package/dist_ts/dns/manager.dns.js +747 -0
  17. package/dist_ts/dns/providers/cloudflare.provider.d.ts +21 -0
  18. package/dist_ts/dns/providers/cloudflare.provider.js +106 -0
  19. package/dist_ts/dns/providers/factory.d.ts +23 -0
  20. package/dist_ts/dns/providers/factory.js +38 -0
  21. package/dist_ts/dns/providers/index.d.ts +3 -0
  22. package/dist_ts/dns/providers/index.js +4 -0
  23. package/dist_ts/dns/providers/interfaces.d.ts +54 -0
  24. package/dist_ts/dns/providers/interfaces.js +2 -0
  25. package/dist_ts/opsserver/classes.opsserver.d.ts +3 -0
  26. package/dist_ts/opsserver/classes.opsserver.js +7 -1
  27. package/dist_ts/opsserver/handlers/config.handler.js +11 -2
  28. package/dist_ts/opsserver/handlers/dns-provider.handler.d.ts +16 -0
  29. package/dist_ts/opsserver/handlers/dns-provider.handler.js +119 -0
  30. package/dist_ts/opsserver/handlers/dns-record.handler.d.ts +13 -0
  31. package/dist_ts/opsserver/handlers/dns-record.handler.js +98 -0
  32. package/dist_ts/opsserver/handlers/domain.handler.d.ts +13 -0
  33. package/dist_ts/opsserver/handlers/domain.handler.js +124 -0
  34. package/dist_ts/opsserver/handlers/index.d.ts +3 -0
  35. package/dist_ts/opsserver/handlers/index.js +4 -1
  36. package/dist_ts_interfaces/data/dns-provider.d.ts +112 -0
  37. package/dist_ts_interfaces/data/dns-provider.js +27 -0
  38. package/dist_ts_interfaces/data/dns-record.d.ts +40 -0
  39. package/dist_ts_interfaces/data/dns-record.js +2 -0
  40. package/dist_ts_interfaces/data/domain.d.ts +34 -0
  41. package/dist_ts_interfaces/data/domain.js +2 -0
  42. package/dist_ts_interfaces/data/index.d.ts +3 -0
  43. package/dist_ts_interfaces/data/index.js +4 -1
  44. package/dist_ts_interfaces/data/route-management.d.ts +1 -1
  45. package/dist_ts_interfaces/requests/dns-providers.d.ts +117 -0
  46. package/dist_ts_interfaces/requests/dns-providers.js +2 -0
  47. package/dist_ts_interfaces/requests/dns-records.d.ts +89 -0
  48. package/dist_ts_interfaces/requests/dns-records.js +2 -0
  49. package/dist_ts_interfaces/requests/domains.d.ts +118 -0
  50. package/dist_ts_interfaces/requests/domains.js +2 -0
  51. package/dist_ts_interfaces/requests/index.d.ts +3 -0
  52. package/dist_ts_interfaces/requests/index.js +4 -1
  53. package/dist_ts_web/00_commitinfo_data.js +1 -1
  54. package/dist_ts_web/appstate.d.ts +72 -0
  55. package/dist_ts_web/appstate.js +308 -6
  56. package/dist_ts_web/elements/access/ops-view-apitokens.js +1 -1
  57. package/dist_ts_web/elements/access/ops-view-users.js +1 -1
  58. package/dist_ts_web/elements/domains/dns-provider-form.d.ts +58 -0
  59. package/dist_ts_web/elements/domains/dns-provider-form.js +268 -0
  60. package/dist_ts_web/elements/domains/index.d.ts +5 -0
  61. package/dist_ts_web/elements/domains/index.js +6 -0
  62. package/dist_ts_web/elements/{ops-view-certificates.d.ts → domains/ops-view-certificates.d.ts} +1 -1
  63. package/dist_ts_web/elements/{ops-view-certificates.js → domains/ops-view-certificates.js} +5 -5
  64. package/dist_ts_web/elements/domains/ops-view-dns.d.ts +17 -0
  65. package/dist_ts_web/elements/domains/ops-view-dns.js +304 -0
  66. package/dist_ts_web/elements/domains/ops-view-domains.d.ts +18 -0
  67. package/dist_ts_web/elements/domains/ops-view-domains.js +361 -0
  68. package/dist_ts_web/elements/domains/ops-view-providers.d.ts +21 -0
  69. package/dist_ts_web/elements/domains/ops-view-providers.js +316 -0
  70. package/dist_ts_web/elements/email/ops-view-email-security.js +1 -1
  71. package/dist_ts_web/elements/email/ops-view-emails.js +1 -1
  72. package/dist_ts_web/elements/index.d.ts +1 -1
  73. package/dist_ts_web/elements/index.js +2 -2
  74. package/dist_ts_web/elements/network/ops-view-network-activity.js +1 -1
  75. package/dist_ts_web/elements/network/ops-view-networktargets.js +1 -1
  76. package/dist_ts_web/elements/network/ops-view-remoteingress.js +1 -1
  77. package/dist_ts_web/elements/network/ops-view-routes.js +1 -1
  78. package/dist_ts_web/elements/network/ops-view-sourceprofiles.js +1 -1
  79. package/dist_ts_web/elements/network/ops-view-targetprofiles.js +1 -1
  80. package/dist_ts_web/elements/network/ops-view-vpn.js +1 -1
  81. package/dist_ts_web/elements/ops-dashboard.js +14 -5
  82. package/dist_ts_web/elements/ops-view-logs.js +1 -1
  83. package/dist_ts_web/elements/overview/ops-view-config.js +3 -3
  84. package/dist_ts_web/elements/overview/ops-view-overview.js +1 -1
  85. package/dist_ts_web/elements/security/ops-view-security-authentication.js +1 -1
  86. package/dist_ts_web/elements/security/ops-view-security-blocked.js +1 -1
  87. package/dist_ts_web/elements/security/ops-view-security-overview.js +1 -1
  88. package/dist_ts_web/router.d.ts +1 -1
  89. package/dist_ts_web/router.js +4 -2
  90. package/package.json +2 -2
  91. package/ts/00_commitinfo_data.ts +1 -1
  92. package/ts/classes.dcrouter.ts +46 -17
  93. package/ts/db/documents/classes.dns-provider.doc.ts +63 -0
  94. package/ts/db/documents/classes.dns-record.doc.ts +62 -0
  95. package/ts/db/documents/classes.domain.doc.ts +66 -0
  96. package/ts/db/documents/index.ts +5 -0
  97. package/ts/dns/index.ts +2 -0
  98. package/ts/dns/manager.dns.ts +869 -0
  99. package/ts/dns/providers/cloudflare.provider.ts +131 -0
  100. package/ts/dns/providers/factory.ts +48 -0
  101. package/ts/dns/providers/index.ts +3 -0
  102. package/ts/dns/providers/interfaces.ts +67 -0
  103. package/ts/opsserver/classes.opsserver.ts +6 -0
  104. package/ts/opsserver/handlers/config.handler.ts +10 -1
  105. package/ts/opsserver/handlers/dns-provider.handler.ts +159 -0
  106. package/ts/opsserver/handlers/dns-record.handler.ts +127 -0
  107. package/ts/opsserver/handlers/domain.handler.ts +161 -0
  108. package/ts/opsserver/handlers/index.ts +4 -1
  109. package/ts_web/00_commitinfo_data.ts +1 -1
  110. package/ts_web/appstate.ts +403 -5
  111. package/ts_web/elements/access/ops-view-apitokens.ts +1 -1
  112. package/ts_web/elements/access/ops-view-users.ts +1 -1
  113. package/ts_web/elements/domains/dns-provider-form.ts +216 -0
  114. package/ts_web/elements/domains/index.ts +5 -0
  115. package/ts_web/elements/{ops-view-certificates.ts → domains/ops-view-certificates.ts} +4 -4
  116. package/ts_web/elements/domains/ops-view-dns.ts +273 -0
  117. package/ts_web/elements/domains/ops-view-domains.ts +335 -0
  118. package/ts_web/elements/domains/ops-view-providers.ts +284 -0
  119. package/ts_web/elements/email/ops-view-email-security.ts +1 -1
  120. package/ts_web/elements/email/ops-view-emails.ts +1 -1
  121. package/ts_web/elements/index.ts +1 -1
  122. package/ts_web/elements/network/ops-view-network-activity.ts +1 -1
  123. package/ts_web/elements/network/ops-view-networktargets.ts +1 -1
  124. package/ts_web/elements/network/ops-view-remoteingress.ts +1 -1
  125. package/ts_web/elements/network/ops-view-routes.ts +1 -1
  126. package/ts_web/elements/network/ops-view-sourceprofiles.ts +1 -1
  127. package/ts_web/elements/network/ops-view-targetprofiles.ts +1 -1
  128. package/ts_web/elements/network/ops-view-vpn.ts +1 -1
  129. package/ts_web/elements/ops-dashboard.ts +14 -4
  130. package/ts_web/elements/ops-view-logs.ts +1 -1
  131. package/ts_web/elements/overview/ops-view-config.ts +2 -2
  132. package/ts_web/elements/overview/ops-view-overview.ts +1 -1
  133. package/ts_web/elements/security/ops-view-security-authentication.ts +1 -1
  134. package/ts_web/elements/security/ops-view-security-blocked.ts +1 -1
  135. package/ts_web/elements/security/ops-view-security-overview.ts +1 -1
  136. package/ts_web/router.ts +3 -1
@@ -0,0 +1,304 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { DeesElement, html, customElement, css, state, cssManager, } from '@design.estate/dees-element';
36
+ import * as appstate from '../../appstate.js';
37
+ import * as interfaces from '../../../dist_ts_interfaces/index.js';
38
+ import { viewHostCss } from '../shared/css.js';
39
+ const RECORD_TYPES = [
40
+ 'A',
41
+ 'AAAA',
42
+ 'CNAME',
43
+ 'MX',
44
+ 'TXT',
45
+ 'NS',
46
+ 'CAA',
47
+ ];
48
+ let OpsViewDns = (() => {
49
+ let _classDecorators = [customElement('ops-view-dns')];
50
+ let _classDescriptor;
51
+ let _classExtraInitializers = [];
52
+ let _classThis;
53
+ let _classSuper = DeesElement;
54
+ let _domainsState_decorators;
55
+ let _domainsState_initializers = [];
56
+ let _domainsState_extraInitializers = [];
57
+ var OpsViewDns = class extends _classSuper {
58
+ static { _classThis = this; }
59
+ static {
60
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
61
+ _domainsState_decorators = [state()];
62
+ __esDecorate(this, null, _domainsState_decorators, { kind: "accessor", name: "domainsState", static: false, private: false, access: { has: obj => "domainsState" in obj, get: obj => obj.domainsState, set: (obj, value) => { obj.domainsState = value; } }, metadata: _metadata }, _domainsState_initializers, _domainsState_extraInitializers);
63
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
64
+ OpsViewDns = _classThis = _classDescriptor.value;
65
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
66
+ }
67
+ #domainsState_accessor_storage = __runInitializers(this, _domainsState_initializers, appstate.domainsStatePart.getState());
68
+ get domainsState() { return this.#domainsState_accessor_storage; }
69
+ set domainsState(value) { this.#domainsState_accessor_storage = value; }
70
+ constructor() {
71
+ super();
72
+ __runInitializers(this, _domainsState_extraInitializers);
73
+ const sub = appstate.domainsStatePart.select().subscribe((newState) => {
74
+ this.domainsState = newState;
75
+ });
76
+ this.rxSubscriptions.push(sub);
77
+ }
78
+ async connectedCallback() {
79
+ await super.connectedCallback();
80
+ await appstate.domainsStatePart.dispatchAction(appstate.fetchDomainsAndProvidersAction, null);
81
+ // If a domain is already selected (e.g. via "View Records" navigation), refresh its records
82
+ const selected = this.domainsState.selectedDomainId;
83
+ if (selected) {
84
+ await appstate.domainsStatePart.dispatchAction(appstate.fetchDnsRecordsForDomainAction, {
85
+ domainId: selected,
86
+ });
87
+ }
88
+ }
89
+ static styles = [
90
+ cssManager.defaultStyles,
91
+ viewHostCss,
92
+ css `
93
+ .dnsContainer {
94
+ display: flex;
95
+ flex-direction: column;
96
+ gap: 24px;
97
+ }
98
+
99
+ .domainPicker {
100
+ display: flex;
101
+ align-items: center;
102
+ gap: 12px;
103
+ padding: 12px 16px;
104
+ background: ${cssManager.bdTheme('#f9fafb', '#111827')};
105
+ border-radius: 8px;
106
+ }
107
+
108
+ .sourceBadge {
109
+ display: inline-flex;
110
+ align-items: center;
111
+ padding: 2px 8px;
112
+ border-radius: 4px;
113
+ font-size: 11px;
114
+ font-weight: 500;
115
+ }
116
+
117
+ .sourceBadge.manual {
118
+ background: ${cssManager.bdTheme('#e0e7ff', '#1e1b4b')};
119
+ color: ${cssManager.bdTheme('#3730a3', '#a5b4fc')};
120
+ }
121
+
122
+ .sourceBadge.synced {
123
+ background: ${cssManager.bdTheme('#fef3c7', '#451a03')};
124
+ color: ${cssManager.bdTheme('#92400e', '#fde047')};
125
+ }
126
+ `,
127
+ ];
128
+ render() {
129
+ const domains = this.domainsState.domains;
130
+ const selectedId = this.domainsState.selectedDomainId;
131
+ const records = this.domainsState.records;
132
+ return html `
133
+ <dees-heading level="3">DNS Records</dees-heading>
134
+ <div class="dnsContainer">
135
+ <div class="domainPicker">
136
+ <span>Domain:</span>
137
+ <dees-input-dropdown
138
+ .options=${domains.map((d) => ({ option: d.name, key: d.id }))}
139
+ .selectedOption=${selectedId
140
+ ? { option: domains.find((d) => d.id === selectedId)?.name || '', key: selectedId }
141
+ : undefined}
142
+ @selectedOption=${async (e) => {
143
+ const id = e.detail?.key;
144
+ if (!id)
145
+ return;
146
+ await appstate.domainsStatePart.dispatchAction(appstate.fetchDnsRecordsForDomainAction, { domainId: id });
147
+ }}
148
+ ></dees-input-dropdown>
149
+ </div>
150
+
151
+ ${selectedId
152
+ ? html `
153
+ <dees-table
154
+ .heading1=${'DNS Records'}
155
+ .heading2=${this.domainHint(selectedId)}
156
+ .data=${records}
157
+ .showColumnFilters=${true}
158
+ .displayFunction=${(r) => ({
159
+ Name: r.name,
160
+ Type: r.type,
161
+ Value: r.value,
162
+ TTL: r.ttl,
163
+ Source: html `<span class="sourceBadge ${r.source}">${r.source}</span>`,
164
+ })}
165
+ .dataActions=${[
166
+ {
167
+ name: 'Add Record',
168
+ iconName: 'lucide:plus',
169
+ type: ['header'],
170
+ actionFunc: async () => {
171
+ await this.showCreateRecordDialog(selectedId);
172
+ },
173
+ },
174
+ {
175
+ name: 'Refresh',
176
+ iconName: 'lucide:rotateCw',
177
+ type: ['header'],
178
+ actionFunc: async () => {
179
+ await appstate.domainsStatePart.dispatchAction(appstate.fetchDnsRecordsForDomainAction, { domainId: selectedId });
180
+ },
181
+ },
182
+ {
183
+ name: 'Edit',
184
+ iconName: 'lucide:pencil',
185
+ type: ['inRow', 'contextmenu'],
186
+ actionFunc: async (actionData) => {
187
+ const rec = actionData.item;
188
+ await this.showEditRecordDialog(rec);
189
+ },
190
+ },
191
+ {
192
+ name: 'Delete',
193
+ iconName: 'lucide:trash2',
194
+ type: ['inRow', 'contextmenu'],
195
+ actionFunc: async (actionData) => {
196
+ const rec = actionData.item;
197
+ await appstate.domainsStatePart.dispatchAction(appstate.deleteDnsRecordAction, { id: rec.id, domainId: rec.domainId });
198
+ },
199
+ },
200
+ ]}
201
+ ></dees-table>
202
+ `
203
+ : html `<p style="opacity: 0.7;">Pick a domain above to view its records.</p>`}
204
+ </div>
205
+ `;
206
+ }
207
+ domainHint(domainId) {
208
+ const domain = this.domainsState.domains.find((d) => d.id === domainId);
209
+ if (!domain)
210
+ return '';
211
+ if (domain.source === 'manual') {
212
+ return 'Records are served by dcrouter (authoritative).';
213
+ }
214
+ return 'Records are stored at the provider — changes here are pushed via the provider API.';
215
+ }
216
+ async showCreateRecordDialog(domainId) {
217
+ const { DeesModal } = await import('@design.estate/dees-catalog');
218
+ DeesModal.createAndShow({
219
+ heading: 'Add DNS Record',
220
+ content: html `
221
+ <dees-form>
222
+ <dees-input-text .key=${'name'} .label=${'Name (FQDN)'} .required=${true}></dees-input-text>
223
+ <dees-input-dropdown
224
+ .key=${'type'}
225
+ .label=${'Type'}
226
+ .options=${RECORD_TYPES.map((t) => ({ option: t, key: t }))}
227
+ .required=${true}
228
+ ></dees-input-dropdown>
229
+ <dees-input-text
230
+ .key=${'value'}
231
+ .label=${'Value (for MX use "10 mail.example.com")'}
232
+ .required=${true}
233
+ ></dees-input-text>
234
+ <dees-input-text .key=${'ttl'} .label=${'TTL (seconds)'} .value=${'300'}></dees-input-text>
235
+ </dees-form>
236
+ `,
237
+ menuOptions: [
238
+ { name: 'Cancel', action: async (modalArg) => modalArg.destroy() },
239
+ {
240
+ name: 'Create',
241
+ action: async (modalArg) => {
242
+ const form = modalArg.shadowRoot
243
+ ?.querySelector('.content')
244
+ ?.querySelector('dees-form');
245
+ if (!form)
246
+ return;
247
+ const data = await form.collectFormData();
248
+ const type = (data.type?.key ?? data.type);
249
+ await appstate.domainsStatePart.dispatchAction(appstate.createDnsRecordAction, {
250
+ domainId,
251
+ name: String(data.name),
252
+ type,
253
+ value: String(data.value),
254
+ ttl: parseInt(String(data.ttl || '300'), 10),
255
+ });
256
+ modalArg.destroy();
257
+ },
258
+ },
259
+ ],
260
+ });
261
+ }
262
+ async showEditRecordDialog(rec) {
263
+ const { DeesModal } = await import('@design.estate/dees-catalog');
264
+ DeesModal.createAndShow({
265
+ heading: `Edit ${rec.type} ${rec.name}`,
266
+ content: html `
267
+ <dees-form>
268
+ <dees-input-text .key=${'name'} .label=${'Name (FQDN)'} .value=${rec.name}></dees-input-text>
269
+ <dees-input-text .key=${'value'} .label=${'Value'} .value=${rec.value}></dees-input-text>
270
+ <dees-input-text .key=${'ttl'} .label=${'TTL (seconds)'} .value=${String(rec.ttl)}></dees-input-text>
271
+ </dees-form>
272
+ `,
273
+ menuOptions: [
274
+ { name: 'Cancel', action: async (modalArg) => modalArg.destroy() },
275
+ {
276
+ name: 'Save',
277
+ action: async (modalArg) => {
278
+ const form = modalArg.shadowRoot
279
+ ?.querySelector('.content')
280
+ ?.querySelector('dees-form');
281
+ if (!form)
282
+ return;
283
+ const data = await form.collectFormData();
284
+ await appstate.domainsStatePart.dispatchAction(appstate.updateDnsRecordAction, {
285
+ id: rec.id,
286
+ domainId: rec.domainId,
287
+ name: String(data.name),
288
+ value: String(data.value),
289
+ ttl: parseInt(String(data.ttl || '300'), 10),
290
+ });
291
+ modalArg.destroy();
292
+ },
293
+ },
294
+ ],
295
+ });
296
+ }
297
+ static {
298
+ __runInitializers(_classThis, _classExtraInitializers);
299
+ }
300
+ };
301
+ return OpsViewDns = _classThis;
302
+ })();
303
+ export { OpsViewDns };
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctZG5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2RvbWFpbnMvb3BzLXZpZXctZG5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBUS9DLE1BQU0sWUFBWSxHQUFxQztJQUNyRCxHQUFHO0lBQ0gsTUFBTTtJQUNOLE9BQU87SUFDUCxJQUFJO0lBQ0osS0FBSztJQUNMLElBQUk7SUFDSixLQUFLO0NBQ04sQ0FBQztJQUdXLFVBQVU7NEJBRHRCLGFBQWEsQ0FBQyxjQUFjLENBQUM7Ozs7c0JBQ0UsV0FBVzs7OzswQkFBbkIsU0FBUSxXQUFXOzs7O3dDQUN4QyxLQUFLLEVBQUU7WUFDUix5TEFBUyxZQUFZLDZCQUFaLFlBQVksbUdBQWlFO1lBRnhGLDZLQWtQQzs7OztRQWhQQyxxRkFBZ0QsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRyxFQUFDO1FBQXRGLElBQVMsWUFBWSxrREFBaUU7UUFBdEYsSUFBUyxZQUFZLHdEQUFpRTtRQUV0RjtZQUNFLEtBQUssRUFBRSxDQUFDOztZQUNSLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDcEUsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7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
@@ -0,0 +1,18 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ import * as appstate from '../../appstate.js';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'ops-view-domains': OpsViewDomains;
6
+ }
7
+ }
8
+ export declare class OpsViewDomains extends DeesElement {
9
+ accessor domainsState: appstate.IDomainsState;
10
+ constructor();
11
+ connectedCallback(): Promise<void>;
12
+ static styles: import("@design.estate/dees-element").CSSResult[];
13
+ render(): TemplateResult;
14
+ private renderSourceBadge;
15
+ private showCreateManualDialog;
16
+ private showImportDialog;
17
+ private deleteDomain;
18
+ }