@serve.zone/catalog 1.0.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/dist_ts_web/00_commitinfo_data.d.ts +8 -0
- package/dist_ts_web/00_commitinfo_data.js +9 -0
- package/dist_ts_web/elements/index.d.ts +33 -0
- package/dist_ts_web/elements/index.js +45 -0
- package/dist_ts_web/elements/sz-certificates-card.d.ts +14 -0
- package/dist_ts_web/elements/sz-certificates-card.js +210 -0
- package/dist_ts_web/elements/sz-dashboard-view.d.ts +33 -0
- package/dist_ts_web/elements/sz-dashboard-view.js +242 -0
- package/dist_ts_web/elements/sz-demo-view-dashboard.d.ts +18 -0
- package/dist_ts_web/elements/sz-demo-view-dashboard.js +184 -0
- package/dist_ts_web/elements/sz-demo-view-network.d.ts +32 -0
- package/dist_ts_web/elements/sz-demo-view-network.js +384 -0
- package/dist_ts_web/elements/sz-demo-view-registries.d.ts +22 -0
- package/dist_ts_web/elements/sz-demo-view-registries.js +240 -0
- package/dist_ts_web/elements/sz-demo-view-services.d.ts +32 -0
- package/dist_ts_web/elements/sz-demo-view-services.js +468 -0
- package/dist_ts_web/elements/sz-demo-view-settings.d.ts +19 -0
- package/dist_ts_web/elements/sz-demo-view-settings.js +151 -0
- package/dist_ts_web/elements/sz-demo-view-tokens.d.ts +20 -0
- package/dist_ts_web/elements/sz-demo-view-tokens.js +141 -0
- package/dist_ts_web/elements/sz-dns-ssl-card.d.ts +13 -0
- package/dist_ts_web/elements/sz-dns-ssl-card.js +180 -0
- package/dist_ts_web/elements/sz-domain-detail-view.d.ts +48 -0
- package/dist_ts_web/elements/sz-domain-detail-view.js +789 -0
- package/dist_ts_web/elements/sz-login-view.d.ts +18 -0
- package/dist_ts_web/elements/sz-login-view.js +384 -0
- package/dist_ts_web/elements/sz-network-dns-view.d.ts +20 -0
- package/dist_ts_web/elements/sz-network-dns-view.js +244 -0
- package/dist_ts_web/elements/sz-network-domains-view.d.ts +28 -0
- package/dist_ts_web/elements/sz-network-domains-view.js +312 -0
- package/dist_ts_web/elements/sz-network-proxy-view.d.ts +39 -0
- package/dist_ts_web/elements/sz-network-proxy-view.js +510 -0
- package/dist_ts_web/elements/sz-platform-service-detail-view.d.ts +49 -0
- package/dist_ts_web/elements/sz-platform-service-detail-view.js +733 -0
- package/dist_ts_web/elements/sz-platform-services-card.d.ts +19 -0
- package/dist_ts_web/elements/sz-platform-services-card.js +196 -0
- package/dist_ts_web/elements/sz-quick-actions-card.d.ts +19 -0
- package/dist_ts_web/elements/sz-quick-actions-card.js +194 -0
- package/dist_ts_web/elements/sz-registry-external-view.d.ts +22 -0
- package/dist_ts_web/elements/sz-registry-external-view.js +313 -0
- package/dist_ts_web/elements/sz-registry-onebox-view.d.ts +14 -0
- package/dist_ts_web/elements/sz-registry-onebox-view.js +307 -0
- package/dist_ts_web/elements/sz-resource-usage-card.d.ts +25 -0
- package/dist_ts_web/elements/sz-resource-usage-card.js +323 -0
- package/dist_ts_web/elements/sz-reverse-proxy-card.d.ts +16 -0
- package/dist_ts_web/elements/sz-reverse-proxy-card.js +216 -0
- package/dist_ts_web/elements/sz-service-create-view.d.ts +67 -0
- package/dist_ts_web/elements/sz-service-create-view.js +828 -0
- package/dist_ts_web/elements/sz-service-detail-view.d.ts +57 -0
- package/dist_ts_web/elements/sz-service-detail-view.js +728 -0
- package/dist_ts_web/elements/sz-services-backups-view.d.ts +37 -0
- package/dist_ts_web/elements/sz-services-backups-view.js +413 -0
- package/dist_ts_web/elements/sz-services-list-view.d.ts +20 -0
- package/dist_ts_web/elements/sz-services-list-view.js +272 -0
- package/dist_ts_web/elements/sz-settings-view.d.ts +30 -0
- package/dist_ts_web/elements/sz-settings-view.js +448 -0
- package/dist_ts_web/elements/sz-stat-card.d.ts +17 -0
- package/dist_ts_web/elements/sz-stat-card.js +249 -0
- package/dist_ts_web/elements/sz-status-grid-cluster.d.ts +19 -0
- package/dist_ts_web/elements/sz-status-grid-cluster.js +142 -0
- package/dist_ts_web/elements/sz-status-grid-infra.d.ts +17 -0
- package/dist_ts_web/elements/sz-status-grid-infra.js +140 -0
- package/dist_ts_web/elements/sz-status-grid-network.d.ts +30 -0
- package/dist_ts_web/elements/sz-status-grid-network.js +190 -0
- package/dist_ts_web/elements/sz-status-grid-services.d.ts +17 -0
- package/dist_ts_web/elements/sz-status-grid-services.js +145 -0
- package/dist_ts_web/elements/sz-tokens-view.d.ts +26 -0
- package/dist_ts_web/elements/sz-tokens-view.js +344 -0
- package/dist_ts_web/elements/sz-traffic-card.d.ts +24 -0
- package/dist_ts_web/elements/sz-traffic-card.js +255 -0
- package/dist_ts_web/index.d.ts +2 -0
- package/dist_ts_web/index.js +3 -0
- package/dist_ts_web/pages/index.d.ts +3 -0
- package/dist_ts_web/pages/index.js +4 -0
- package/dist_ts_web/pages/mainpage.d.ts +1 -0
- package/dist_ts_web/pages/mainpage.js +46 -0
- package/dist_ts_web/pages/sz-demo-app-shell.d.ts +13 -0
- package/dist_ts_web/pages/sz-demo-app-shell.js +212 -0
- package/dist_ts_web/pages/sz-demo-app.d.ts +2 -0
- package/dist_ts_web/pages/sz-demo-app.js +20 -0
- package/npmextra.json +24 -0
- package/package.json +45 -0
- package/ts_web/00_commitinfo_data.ts +8 -0
- package/ts_web/elements/index.ts +54 -0
- package/ts_web/elements/sz-certificates-card.ts +155 -0
- package/ts_web/elements/sz-dashboard-view.ts +217 -0
- package/ts_web/elements/sz-demo-view-dashboard.ts +150 -0
- package/ts_web/elements/sz-demo-view-network.ts +354 -0
- package/ts_web/elements/sz-demo-view-registries.ts +206 -0
- package/ts_web/elements/sz-demo-view-services.ts +434 -0
- package/ts_web/elements/sz-demo-view-settings.ts +118 -0
- package/ts_web/elements/sz-demo-view-tokens.ts +109 -0
- package/ts_web/elements/sz-dns-ssl-card.ts +130 -0
- package/ts_web/elements/sz-domain-detail-view.ts +766 -0
- package/ts_web/elements/sz-login-view.ts +329 -0
- package/ts_web/elements/sz-network-dns-view.ts +208 -0
- package/ts_web/elements/sz-network-domains-view.ts +273 -0
- package/ts_web/elements/sz-network-proxy-view.ts +456 -0
- package/ts_web/elements/sz-platform-service-detail-view.ts +714 -0
- package/ts_web/elements/sz-platform-services-card.ts +163 -0
- package/ts_web/elements/sz-quick-actions-card.ts +161 -0
- package/ts_web/elements/sz-registry-external-view.ts +279 -0
- package/ts_web/elements/sz-registry-onebox-view.ts +258 -0
- package/ts_web/elements/sz-resource-usage-card.ts +284 -0
- package/ts_web/elements/sz-reverse-proxy-card.ts +151 -0
- package/ts_web/elements/sz-service-create-view.ts +773 -0
- package/ts_web/elements/sz-service-detail-view.ts +710 -0
- package/ts_web/elements/sz-services-backups-view.ts +390 -0
- package/ts_web/elements/sz-services-list-view.ts +237 -0
- package/ts_web/elements/sz-settings-view.ts +417 -0
- package/ts_web/elements/sz-stat-card.ts +187 -0
- package/ts_web/elements/sz-status-grid-cluster.ts +105 -0
- package/ts_web/elements/sz-status-grid-infra.ts +88 -0
- package/ts_web/elements/sz-status-grid-network.ts +152 -0
- package/ts_web/elements/sz-status-grid-services.ts +99 -0
- package/ts_web/elements/sz-tokens-view.ts +308 -0
- package/ts_web/elements/sz-traffic-card.ts +222 -0
- package/ts_web/index.ts +2 -0
- package/ts_web/pages/index.ts +3 -0
- package/ts_web/pages/mainpage.ts +46 -0
- package/ts_web/pages/sz-demo-app-shell.ts +179 -0
- package/ts_web/pages/sz-demo-app.ts +20 -0
|
@@ -0,0 +1,323 @@
|
|
|
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, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
|
|
36
|
+
let SzResourceUsageCard = (() => {
|
|
37
|
+
let _classDecorators = [customElement('sz-resource-usage-card')];
|
|
38
|
+
let _classDescriptor;
|
|
39
|
+
let _classExtraInitializers = [];
|
|
40
|
+
let _classThis;
|
|
41
|
+
let _classSuper = DeesElement;
|
|
42
|
+
let _data_decorators;
|
|
43
|
+
let _data_initializers = [];
|
|
44
|
+
let _data_extraInitializers = [];
|
|
45
|
+
let _serviceCount_decorators;
|
|
46
|
+
let _serviceCount_initializers = [];
|
|
47
|
+
let _serviceCount_extraInitializers = [];
|
|
48
|
+
var SzResourceUsageCard = class extends _classSuper {
|
|
49
|
+
static { _classThis = this; }
|
|
50
|
+
static {
|
|
51
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
52
|
+
_data_decorators = [property({ type: Object })];
|
|
53
|
+
_serviceCount_decorators = [property({ type: String })];
|
|
54
|
+
__esDecorate(this, null, _data_decorators, { kind: "accessor", name: "data", static: false, private: false, access: { has: obj => "data" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);
|
|
55
|
+
__esDecorate(this, null, _serviceCount_decorators, { kind: "accessor", name: "serviceCount", static: false, private: false, access: { has: obj => "serviceCount" in obj, get: obj => obj.serviceCount, set: (obj, value) => { obj.serviceCount = value; } }, metadata: _metadata }, _serviceCount_initializers, _serviceCount_extraInitializers);
|
|
56
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
57
|
+
SzResourceUsageCard = _classThis = _classDescriptor.value;
|
|
58
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
59
|
+
}
|
|
60
|
+
static demo = () => html `
|
|
61
|
+
<div style="padding: 24px; max-width: 800px;">
|
|
62
|
+
<sz-resource-usage-card
|
|
63
|
+
.data=${{
|
|
64
|
+
cpu: 0.5,
|
|
65
|
+
memoryUsed: '191 MB',
|
|
66
|
+
memoryTotal: '429.2 GB',
|
|
67
|
+
networkIn: '38.9 KB/s',
|
|
68
|
+
networkOut: '1.7 KB/s',
|
|
69
|
+
topConsumers: [
|
|
70
|
+
{ name: 'test-nginx', memory: '32.1 MB' },
|
|
71
|
+
{ name: 'test-v2', memory: '31.7 MB' },
|
|
72
|
+
],
|
|
73
|
+
}}
|
|
74
|
+
serviceCount="7"
|
|
75
|
+
></sz-resource-usage-card>
|
|
76
|
+
</div>
|
|
77
|
+
`;
|
|
78
|
+
#data_accessor_storage = __runInitializers(this, _data_initializers, {
|
|
79
|
+
cpu: 0,
|
|
80
|
+
memoryUsed: '0 MB',
|
|
81
|
+
memoryTotal: '0 GB',
|
|
82
|
+
networkIn: '0 KB/s',
|
|
83
|
+
networkOut: '0 KB/s',
|
|
84
|
+
topConsumers: [],
|
|
85
|
+
});
|
|
86
|
+
get data() { return this.#data_accessor_storage; }
|
|
87
|
+
set data(value) { this.#data_accessor_storage = value; }
|
|
88
|
+
#serviceCount_accessor_storage = (__runInitializers(this, _data_extraInitializers), __runInitializers(this, _serviceCount_initializers, '0'));
|
|
89
|
+
get serviceCount() { return this.#serviceCount_accessor_storage; }
|
|
90
|
+
set serviceCount(value) { this.#serviceCount_accessor_storage = value; }
|
|
91
|
+
static styles = [
|
|
92
|
+
cssManager.defaultStyles,
|
|
93
|
+
css `
|
|
94
|
+
:host {
|
|
95
|
+
display: block;
|
|
96
|
+
height: 100%;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.card {
|
|
100
|
+
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
|
|
101
|
+
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
|
|
102
|
+
border-radius: 8px;
|
|
103
|
+
padding: 20px;
|
|
104
|
+
height: 100%;
|
|
105
|
+
box-sizing: border-box;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.header {
|
|
109
|
+
display: flex;
|
|
110
|
+
justify-content: space-between;
|
|
111
|
+
align-items: flex-start;
|
|
112
|
+
margin-bottom: 16px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.title {
|
|
116
|
+
font-size: 16px;
|
|
117
|
+
font-weight: 600;
|
|
118
|
+
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.subtitle {
|
|
122
|
+
font-size: 13px;
|
|
123
|
+
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
|
|
124
|
+
margin-top: 2px;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.view-all {
|
|
128
|
+
font-size: 13px;
|
|
129
|
+
color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
|
|
130
|
+
text-decoration: none;
|
|
131
|
+
cursor: pointer;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.view-all:hover {
|
|
135
|
+
text-decoration: underline;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.metrics {
|
|
139
|
+
display: flex;
|
|
140
|
+
flex-direction: column;
|
|
141
|
+
gap: 16px;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.metric-row {
|
|
145
|
+
display: flex;
|
|
146
|
+
flex-direction: column;
|
|
147
|
+
gap: 6px;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.metric-header {
|
|
151
|
+
display: flex;
|
|
152
|
+
justify-content: space-between;
|
|
153
|
+
align-items: center;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.metric-label {
|
|
157
|
+
font-size: 14px;
|
|
158
|
+
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.metric-value {
|
|
162
|
+
font-size: 14px;
|
|
163
|
+
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.progress-bar {
|
|
167
|
+
height: 6px;
|
|
168
|
+
background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};
|
|
169
|
+
border-radius: 3px;
|
|
170
|
+
overflow: hidden;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.progress-fill {
|
|
174
|
+
height: 100%;
|
|
175
|
+
background: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
|
|
176
|
+
border-radius: 3px;
|
|
177
|
+
transition: width 300ms ease;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.network-row {
|
|
181
|
+
display: flex;
|
|
182
|
+
gap: 16px;
|
|
183
|
+
align-items: center;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.network-item {
|
|
187
|
+
display: flex;
|
|
188
|
+
align-items: center;
|
|
189
|
+
gap: 4px;
|
|
190
|
+
font-size: 14px;
|
|
191
|
+
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.network-icon {
|
|
195
|
+
width: 14px;
|
|
196
|
+
height: 14px;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.network-icon.down {
|
|
200
|
+
color: ${cssManager.bdTheme('#16a34a', '#22c55e')};
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.network-icon.up {
|
|
204
|
+
color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.top-consumers {
|
|
208
|
+
margin-top: 8px;
|
|
209
|
+
padding-top: 12px;
|
|
210
|
+
border-top: 1px solid ${cssManager.bdTheme('#f4f4f5', '#27272a')};
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.consumers-label {
|
|
214
|
+
font-size: 13px;
|
|
215
|
+
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
|
|
216
|
+
margin-bottom: 6px;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.consumers-list {
|
|
220
|
+
display: flex;
|
|
221
|
+
flex-wrap: wrap;
|
|
222
|
+
gap: 12px;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.consumer-item {
|
|
226
|
+
font-size: 13px;
|
|
227
|
+
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.consumer-name {
|
|
231
|
+
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
|
|
232
|
+
}
|
|
233
|
+
`,
|
|
234
|
+
];
|
|
235
|
+
render() {
|
|
236
|
+
return html `
|
|
237
|
+
<div class="card">
|
|
238
|
+
<div class="header">
|
|
239
|
+
<div>
|
|
240
|
+
<div class="title">Resource Usage</div>
|
|
241
|
+
<div class="subtitle">Aggregated across ${this.serviceCount} services</div>
|
|
242
|
+
</div>
|
|
243
|
+
<a class="view-all">View All</a>
|
|
244
|
+
</div>
|
|
245
|
+
|
|
246
|
+
<div class="metrics">
|
|
247
|
+
<div class="metric-row">
|
|
248
|
+
<div class="metric-header">
|
|
249
|
+
<span class="metric-label">CPU</span>
|
|
250
|
+
<span class="metric-value">${this.data.cpu.toFixed(1)}%</span>
|
|
251
|
+
</div>
|
|
252
|
+
<div class="progress-bar">
|
|
253
|
+
<div class="progress-fill" style="width: ${Math.min(this.data.cpu, 100)}%"></div>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
<div class="metric-row">
|
|
258
|
+
<div class="metric-header">
|
|
259
|
+
<span class="metric-label">Memory</span>
|
|
260
|
+
<span class="metric-value">${this.data.memoryUsed} / ${this.data.memoryTotal}</span>
|
|
261
|
+
</div>
|
|
262
|
+
<div class="progress-bar">
|
|
263
|
+
<div class="progress-fill" style="width: ${this.calculateMemoryPercent()}%"></div>
|
|
264
|
+
</div>
|
|
265
|
+
</div>
|
|
266
|
+
|
|
267
|
+
<div class="metric-row">
|
|
268
|
+
<div class="metric-header">
|
|
269
|
+
<span class="metric-label">Network</span>
|
|
270
|
+
<div class="network-row">
|
|
271
|
+
<span class="network-item">
|
|
272
|
+
<svg class="network-icon down" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
273
|
+
<path d="M12 5v14M19 12l-7 7-7-7"/>
|
|
274
|
+
</svg>
|
|
275
|
+
${this.data.networkIn}
|
|
276
|
+
</span>
|
|
277
|
+
<span class="network-item">
|
|
278
|
+
<svg class="network-icon up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
279
|
+
<path d="M12 19V5M5 12l7-7 7 7"/>
|
|
280
|
+
</svg>
|
|
281
|
+
${this.data.networkOut}
|
|
282
|
+
</span>
|
|
283
|
+
</div>
|
|
284
|
+
</div>
|
|
285
|
+
</div>
|
|
286
|
+
</div>
|
|
287
|
+
|
|
288
|
+
${this.data.topConsumers.length > 0 ? html `
|
|
289
|
+
<div class="top-consumers">
|
|
290
|
+
<div class="consumers-label">Top consumers</div>
|
|
291
|
+
<div class="consumers-list">
|
|
292
|
+
${this.data.topConsumers.map((consumer) => html `
|
|
293
|
+
<span class="consumer-item">
|
|
294
|
+
<span class="consumer-name">${consumer.name}:</span> ${consumer.memory}
|
|
295
|
+
</span>
|
|
296
|
+
`)}
|
|
297
|
+
</div>
|
|
298
|
+
</div>
|
|
299
|
+
` : ''}
|
|
300
|
+
</div>
|
|
301
|
+
`;
|
|
302
|
+
}
|
|
303
|
+
calculateMemoryPercent() {
|
|
304
|
+
// Simple extraction of numbers - in real app would parse properly
|
|
305
|
+
const used = parseFloat(this.data.memoryUsed);
|
|
306
|
+
const total = parseFloat(this.data.memoryTotal);
|
|
307
|
+
if (total === 0)
|
|
308
|
+
return 0;
|
|
309
|
+
// Assuming both are in same unit for demo
|
|
310
|
+
return Math.min((used / total) * 100, 100);
|
|
311
|
+
}
|
|
312
|
+
constructor() {
|
|
313
|
+
super(...arguments);
|
|
314
|
+
__runInitializers(this, _serviceCount_extraInitializers);
|
|
315
|
+
}
|
|
316
|
+
static {
|
|
317
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
return SzResourceUsageCard = _classThis;
|
|
321
|
+
})();
|
|
322
|
+
export { SzResourceUsageCard };
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otcmVzb3VyY2UtdXNhZ2UtY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1yZXNvdXJjZS11c2FnZS1jYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsRUFDVixRQUFRLEdBRVQsTUFBTSw2QkFBNkIsQ0FBQztJQWtCeEIsbUJBQW1COzRCQUQvQixhQUFhLENBQUMsd0JBQXdCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7Ozs7OzttQ0FBbkIsU0FBUSxXQUFXOzs7O2dDQW9CakQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3dDQVUxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFUM0IsaUtBQWdCLElBQUksNkJBQUosSUFBSSxtRkFPbEI7WUFHRix5TEFBZ0IsWUFBWSw2QkFBWixZQUFZLG1HQUFlO1lBL0I3Qyw2S0FpUUM7Ozs7UUFoUVEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7OztnQkFHakI7WUFDTixHQUFHLEVBQUUsR0FBRztZQUNSLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFlBQVksRUFBRTtnQkFDWixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtnQkFDekMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7YUFDdkM7U0FDRjs7OztHQUlOLENBQUM7UUFHRixxRUFBdUM7WUFDckMsR0FBRyxFQUFFLENBQUM7WUFDTixVQUFVLEVBQUUsTUFBTTtZ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
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
declare global {
|
|
3
|
+
interface HTMLElementTagNameMap {
|
|
4
|
+
'sz-reverse-proxy-card': SzReverseProxyCard;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export declare class SzReverseProxyCard extends DeesElement {
|
|
8
|
+
static demo: () => TemplateResult<1>;
|
|
9
|
+
accessor httpPort: string;
|
|
10
|
+
accessor httpsPort: string;
|
|
11
|
+
accessor httpActive: boolean;
|
|
12
|
+
accessor httpsActive: boolean;
|
|
13
|
+
accessor routeCount: string;
|
|
14
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
15
|
+
render(): TemplateResult;
|
|
16
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
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, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
|
|
36
|
+
let SzReverseProxyCard = (() => {
|
|
37
|
+
let _classDecorators = [customElement('sz-reverse-proxy-card')];
|
|
38
|
+
let _classDescriptor;
|
|
39
|
+
let _classExtraInitializers = [];
|
|
40
|
+
let _classThis;
|
|
41
|
+
let _classSuper = DeesElement;
|
|
42
|
+
let _httpPort_decorators;
|
|
43
|
+
let _httpPort_initializers = [];
|
|
44
|
+
let _httpPort_extraInitializers = [];
|
|
45
|
+
let _httpsPort_decorators;
|
|
46
|
+
let _httpsPort_initializers = [];
|
|
47
|
+
let _httpsPort_extraInitializers = [];
|
|
48
|
+
let _httpActive_decorators;
|
|
49
|
+
let _httpActive_initializers = [];
|
|
50
|
+
let _httpActive_extraInitializers = [];
|
|
51
|
+
let _httpsActive_decorators;
|
|
52
|
+
let _httpsActive_initializers = [];
|
|
53
|
+
let _httpsActive_extraInitializers = [];
|
|
54
|
+
let _routeCount_decorators;
|
|
55
|
+
let _routeCount_initializers = [];
|
|
56
|
+
let _routeCount_extraInitializers = [];
|
|
57
|
+
var SzReverseProxyCard = 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
|
+
_httpPort_decorators = [property({ type: String })];
|
|
62
|
+
_httpsPort_decorators = [property({ type: String })];
|
|
63
|
+
_httpActive_decorators = [property({ type: Boolean })];
|
|
64
|
+
_httpsActive_decorators = [property({ type: Boolean })];
|
|
65
|
+
_routeCount_decorators = [property({ type: String })];
|
|
66
|
+
__esDecorate(this, null, _httpPort_decorators, { kind: "accessor", name: "httpPort", static: false, private: false, access: { has: obj => "httpPort" in obj, get: obj => obj.httpPort, set: (obj, value) => { obj.httpPort = value; } }, metadata: _metadata }, _httpPort_initializers, _httpPort_extraInitializers);
|
|
67
|
+
__esDecorate(this, null, _httpsPort_decorators, { kind: "accessor", name: "httpsPort", static: false, private: false, access: { has: obj => "httpsPort" in obj, get: obj => obj.httpsPort, set: (obj, value) => { obj.httpsPort = value; } }, metadata: _metadata }, _httpsPort_initializers, _httpsPort_extraInitializers);
|
|
68
|
+
__esDecorate(this, null, _httpActive_decorators, { kind: "accessor", name: "httpActive", static: false, private: false, access: { has: obj => "httpActive" in obj, get: obj => obj.httpActive, set: (obj, value) => { obj.httpActive = value; } }, metadata: _metadata }, _httpActive_initializers, _httpActive_extraInitializers);
|
|
69
|
+
__esDecorate(this, null, _httpsActive_decorators, { kind: "accessor", name: "httpsActive", static: false, private: false, access: { has: obj => "httpsActive" in obj, get: obj => obj.httpsActive, set: (obj, value) => { obj.httpsActive = value; } }, metadata: _metadata }, _httpsActive_initializers, _httpsActive_extraInitializers);
|
|
70
|
+
__esDecorate(this, null, _routeCount_decorators, { kind: "accessor", name: "routeCount", static: false, private: false, access: { has: obj => "routeCount" in obj, get: obj => obj.routeCount, set: (obj, value) => { obj.routeCount = value; } }, metadata: _metadata }, _routeCount_initializers, _routeCount_extraInitializers);
|
|
71
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
72
|
+
SzReverseProxyCard = _classThis = _classDescriptor.value;
|
|
73
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
74
|
+
}
|
|
75
|
+
static demo = () => html `
|
|
76
|
+
<div style="padding: 24px; max-width: 400px;">
|
|
77
|
+
<sz-reverse-proxy-card
|
|
78
|
+
httpPort="8080"
|
|
79
|
+
httpsPort="8443"
|
|
80
|
+
httpActive
|
|
81
|
+
httpsActive
|
|
82
|
+
routeCount="3"
|
|
83
|
+
></sz-reverse-proxy-card>
|
|
84
|
+
</div>
|
|
85
|
+
`;
|
|
86
|
+
#httpPort_accessor_storage = __runInitializers(this, _httpPort_initializers, '80');
|
|
87
|
+
get httpPort() { return this.#httpPort_accessor_storage; }
|
|
88
|
+
set httpPort(value) { this.#httpPort_accessor_storage = value; }
|
|
89
|
+
#httpsPort_accessor_storage = (__runInitializers(this, _httpPort_extraInitializers), __runInitializers(this, _httpsPort_initializers, '443'));
|
|
90
|
+
get httpsPort() { return this.#httpsPort_accessor_storage; }
|
|
91
|
+
set httpsPort(value) { this.#httpsPort_accessor_storage = value; }
|
|
92
|
+
#httpActive_accessor_storage = (__runInitializers(this, _httpsPort_extraInitializers), __runInitializers(this, _httpActive_initializers, false));
|
|
93
|
+
get httpActive() { return this.#httpActive_accessor_storage; }
|
|
94
|
+
set httpActive(value) { this.#httpActive_accessor_storage = value; }
|
|
95
|
+
#httpsActive_accessor_storage = (__runInitializers(this, _httpActive_extraInitializers), __runInitializers(this, _httpsActive_initializers, false));
|
|
96
|
+
get httpsActive() { return this.#httpsActive_accessor_storage; }
|
|
97
|
+
set httpsActive(value) { this.#httpsActive_accessor_storage = value; }
|
|
98
|
+
#routeCount_accessor_storage = (__runInitializers(this, _httpsActive_extraInitializers), __runInitializers(this, _routeCount_initializers, '0'));
|
|
99
|
+
get routeCount() { return this.#routeCount_accessor_storage; }
|
|
100
|
+
set routeCount(value) { this.#routeCount_accessor_storage = value; }
|
|
101
|
+
static styles = [
|
|
102
|
+
cssManager.defaultStyles,
|
|
103
|
+
css `
|
|
104
|
+
:host {
|
|
105
|
+
display: block;
|
|
106
|
+
height: 100%;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.card {
|
|
110
|
+
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
|
|
111
|
+
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
|
|
112
|
+
border-radius: 8px;
|
|
113
|
+
padding: 20px;
|
|
114
|
+
height: 100%;
|
|
115
|
+
box-sizing: border-box;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.header {
|
|
119
|
+
margin-bottom: 16px;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.title {
|
|
123
|
+
font-size: 16px;
|
|
124
|
+
font-weight: 600;
|
|
125
|
+
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.subtitle {
|
|
129
|
+
font-size: 13px;
|
|
130
|
+
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
|
|
131
|
+
margin-top: 2px;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.items {
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: column;
|
|
137
|
+
gap: 10px;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.item {
|
|
141
|
+
display: flex;
|
|
142
|
+
justify-content: space-between;
|
|
143
|
+
align-items: center;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.item-label {
|
|
147
|
+
font-size: 14px;
|
|
148
|
+
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.item-value {
|
|
152
|
+
font-size: 14px;
|
|
153
|
+
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.badge {
|
|
157
|
+
display: inline-flex;
|
|
158
|
+
align-items: center;
|
|
159
|
+
padding: 2px 10px;
|
|
160
|
+
border-radius: 9999px;
|
|
161
|
+
font-size: 12px;
|
|
162
|
+
font-weight: 500;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.badge.active {
|
|
166
|
+
background: ${cssManager.bdTheme('#dcfce7', 'rgba(34, 197, 94, 0.2)')};
|
|
167
|
+
color: ${cssManager.bdTheme('#16a34a', '#22c55e')};
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.badge.inactive {
|
|
171
|
+
background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')};
|
|
172
|
+
color: ${cssManager.bdTheme('#dc2626', '#ef4444')};
|
|
173
|
+
}
|
|
174
|
+
`,
|
|
175
|
+
];
|
|
176
|
+
render() {
|
|
177
|
+
return html `
|
|
178
|
+
<div class="card">
|
|
179
|
+
<div class="header">
|
|
180
|
+
<div class="title">Reverse Proxy</div>
|
|
181
|
+
<div class="subtitle">HTTP/HTTPS proxy status</div>
|
|
182
|
+
</div>
|
|
183
|
+
|
|
184
|
+
<div class="items">
|
|
185
|
+
<div class="item">
|
|
186
|
+
<span class="item-label">HTTP (${this.httpPort})</span>
|
|
187
|
+
<span class="badge ${this.httpActive ? 'active' : 'inactive'}">
|
|
188
|
+
${this.httpActive ? 'Active' : 'Inactive'}
|
|
189
|
+
</span>
|
|
190
|
+
</div>
|
|
191
|
+
<div class="item">
|
|
192
|
+
<span class="item-label">HTTPS (${this.httpsPort})</span>
|
|
193
|
+
<span class="badge ${this.httpsActive ? 'active' : 'inactive'}">
|
|
194
|
+
${this.httpsActive ? 'Active' : 'Inactive'}
|
|
195
|
+
</span>
|
|
196
|
+
</div>
|
|
197
|
+
<div class="item">
|
|
198
|
+
<span class="item-label">Routes</span>
|
|
199
|
+
<span class="item-value">${this.routeCount}</span>
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
</div>
|
|
203
|
+
`;
|
|
204
|
+
}
|
|
205
|
+
constructor() {
|
|
206
|
+
super(...arguments);
|
|
207
|
+
__runInitializers(this, _routeCount_extraInitializers);
|
|
208
|
+
}
|
|
209
|
+
static {
|
|
210
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
return SzReverseProxyCard = _classThis;
|
|
214
|
+
})();
|
|
215
|
+
export { SzReverseProxyCard };
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otcmV2ZXJzZS1wcm94eS1jYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3N6LXJldmVyc2UtcHJveHktY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEVBQ1YsUUFBUSxHQUVULE1BQU0sNkJBQTZCLENBQUM7SUFTeEIsa0JBQWtCOzRCQUQ5QixhQUFhLENBQUMsdUJBQXVCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7Ozs7Ozs7Ozs7Ozs7OztrQ0FBbkIsU0FBUSxXQUFXOzs7O29DQWFoRCxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7cUNBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztzQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO3VDQUczQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7c0NBRzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztZQVgzQiw2S0FBZ0IsUUFBUSw2QkFBUixRQUFRLDJGQUFnQjtZQUd4QyxnTEFBZ0IsU0FBUyw2QkFBVCxTQUFTLDZGQUFpQjtZQUcxQyxtTEFBZ0IsVUFBVSw2QkFBVixVQUFVLCtGQUFrQjtZQUc1QyxzTEFBZ0IsV0FBVyw2QkFBWCxXQUFXLGlHQUFrQjtZQUc3QyxtTEFBZ0IsVUFBVSw2QkFBVixVQUFVLCtGQUFlO1lBMUIzQyw2S0FxSUM7Ozs7UUFwSVEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7Ozs7R0FVOUIsQ0FBQztRQUdGLDZFQUFtQyxJQUFJLEVBQUM7UUFBeEMsSUFBZ0IsUUFBUSw4Q0FBZ0I7UUFBeEMsSUFBZ0IsUUFBUSxvREFBZ0I7UUFHeEMsc0lBQW9DLEtBQUssR0FBQztRQUExQyxJQUFnQixTQUFTLCtDQUFpQjtRQUExQyxJQUFnQixTQUFTLHFEQUFpQjtRQUcxQyx5SUFBc0MsS0FBSyxHQUFDO1FBQTVDLElBQWdCLFVBQVUsZ0RBQWtCO1FBQTVDLElBQWdCLFVBQVUsc0RBQWtCO1FBRzVDLDRJQUF1QyxLQUFLLEdBQUM7UUFBN0MsSUFBZ0IsV0FBVyxpREFBa0I7UUFBN0MsSUFBZ0IsV0FBVyx1REFBa0I7UUFHN0MsMklBQXFDLEdBQUcsR0FBQztRQUF6QyxJQUFnQixVQUFVLGdEQUFlO1FBQXpDLElBQWdCLFVBQVUsc0RBQWU7UUFFbEMsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNyQixVQUFVLENBQUMsYUFBYTtZQUN4QixHQUFHLENBQUE7Ozs7Ozs7c0JBT2UsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzRCQUNsQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7O2lCQWNuRCxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7O2lCQUt4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFrQnhDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7aUJBS3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7OztzQkFhbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUM7aUJBQzVELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUM7aUJBQzVELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7S0FFcEQ7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOzs7Ozs7Ozs7NkNBUzhCLElBQUksQ0FBQyxRQUFRO2lDQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVU7Z0JBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVTs7Ozs4Q0FJVCxJQUFJLENBQUMsU0FBUztpQ0FDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVO2dCQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVU7Ozs7O3VDQUtqQixJQUFJLENBQUMsVUFBVTs7OztLQUlqRCxDQUFDO1FBQ0osQ0FBQzs7Ozs7O1lBcElVLHVEQUFrQjs7Ozs7U0FBbEIsa0JBQWtCIn0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
declare global {
|
|
3
|
+
interface HTMLElementTagNameMap {
|
|
4
|
+
'sz-service-create-view': SzServiceCreateView;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export interface IRegistry {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
url: string;
|
|
11
|
+
}
|
|
12
|
+
export interface IPortMapping {
|
|
13
|
+
hostPort: string;
|
|
14
|
+
containerPort: string;
|
|
15
|
+
protocol: 'tcp' | 'udp';
|
|
16
|
+
}
|
|
17
|
+
export interface IEnvVar {
|
|
18
|
+
key: string;
|
|
19
|
+
value: string;
|
|
20
|
+
}
|
|
21
|
+
export interface IVolumeMount {
|
|
22
|
+
hostPath: string;
|
|
23
|
+
containerPath: string;
|
|
24
|
+
readOnly: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface IServiceConfig {
|
|
27
|
+
name: string;
|
|
28
|
+
image: string;
|
|
29
|
+
ports: IPortMapping[];
|
|
30
|
+
envVars: IEnvVar[];
|
|
31
|
+
volumes: IVolumeMount[];
|
|
32
|
+
cpuLimit: string;
|
|
33
|
+
memoryLimit: string;
|
|
34
|
+
restartPolicy: 'always' | 'on-failure' | 'never';
|
|
35
|
+
networkMode: string;
|
|
36
|
+
}
|
|
37
|
+
export declare class SzServiceCreateView extends DeesElement {
|
|
38
|
+
static demo: () => TemplateResult<1>;
|
|
39
|
+
accessor registries: IRegistry[];
|
|
40
|
+
accessor loading: boolean;
|
|
41
|
+
private accessor serviceName;
|
|
42
|
+
private accessor imageUrl;
|
|
43
|
+
private accessor selectedRegistry;
|
|
44
|
+
private accessor ports;
|
|
45
|
+
private accessor envVars;
|
|
46
|
+
private accessor volumes;
|
|
47
|
+
private accessor cpuLimit;
|
|
48
|
+
private accessor memoryLimit;
|
|
49
|
+
private accessor restartPolicy;
|
|
50
|
+
private accessor networkMode;
|
|
51
|
+
private accessor showAdvanced;
|
|
52
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
53
|
+
render(): TemplateResult;
|
|
54
|
+
private isValid;
|
|
55
|
+
private addPort;
|
|
56
|
+
private removePort;
|
|
57
|
+
private updatePort;
|
|
58
|
+
private addEnvVar;
|
|
59
|
+
private removeEnvVar;
|
|
60
|
+
private updateEnvVar;
|
|
61
|
+
private addVolume;
|
|
62
|
+
private removeVolume;
|
|
63
|
+
private updateVolume;
|
|
64
|
+
private handleCancel;
|
|
65
|
+
private handleCreate;
|
|
66
|
+
reset(): void;
|
|
67
|
+
}
|