@privateaim/client-vue 0.8.3 → 0.8.5
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/components/Dropdown.d.ts +2 -2
- package/dist/components/FEntityDelete.d.ts +8 -12
- package/dist/components/FEntityDelete.d.ts.map +1 -1
- package/dist/components/analysis/FAnalyses.d.ts +7 -7
- package/dist/components/analysis/FAnalysis.d.ts +5 -5
- package/dist/components/analysis/FAnalysisBasicForm.vue.d.ts +192 -7
- package/dist/components/analysis/FAnalysisBasicForm.vue.d.ts.map +1 -1
- package/dist/components/analysis/FAnalysisBuildStatusText.vue.d.ts +5 -5
- package/dist/components/analysis/FAnalysisCommand.d.ts +5 -5
- package/dist/components/analysis/FAnalysisCommand.d.ts.map +1 -1
- package/dist/components/analysis/FAnalysisConfigurationStatusText.vue.d.ts +5 -5
- package/dist/components/analysis/FAnalysisImageCommand.d.ts +6 -6
- package/dist/components/analysis/FAnalysisItem.d.ts +325 -6
- package/dist/components/analysis/FAnalysisItem.d.ts.map +1 -1
- package/dist/components/analysis/FAnalysisItemCard.vue.d.ts +510 -8
- package/dist/components/analysis/FAnalysisItemCard.vue.d.ts.map +1 -1
- package/dist/components/analysis/FAnalysisName.d.ts +6 -6
- package/dist/components/analysis/FAnalysisPipeline.vue.d.ts +91 -6
- package/dist/components/analysis/FAnalysisPipeline.vue.d.ts.map +1 -1
- package/dist/components/analysis/wizard/FAnalysisWizard.vue.d.ts +1039 -8
- package/dist/components/analysis/wizard/FAnalysisWizard.vue.d.ts.map +1 -1
- package/dist/components/analysis/wizard/FAnalysisWizardStepBase.vue.d.ts +430 -6
- package/dist/components/analysis/wizard/FAnalysisWizardStepBase.vue.d.ts.map +1 -1
- package/dist/components/analysis/wizard/FAnalysisWizardStepFiles.vue.d.ts +523 -9
- package/dist/components/analysis/wizard/FAnalysisWizardStepFiles.vue.d.ts.map +1 -1
- package/dist/components/analysis/wizard/FAnalysisWizardStepFinal.vue.d.ts +1 -1
- package/dist/components/analysis/wizard/FAnalysisWizardStepFinal.vue.d.ts.map +1 -1
- package/dist/components/analysis-bucket/FAnalysisBucket.d.ts +5 -5
- package/dist/components/analysis-bucket/FAnalysisBucketDownload.d.ts +4 -4
- package/dist/components/analysis-bucket/FAnalysisBucketDownload.d.ts.map +1 -1
- package/dist/components/analysis-bucket-file/FAnalysisBucketFile.vue.d.ts +9 -9
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileDownload.d.ts +4 -4
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileDownload.d.ts.map +1 -1
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileManager.vue.d.ts +295 -31
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileManager.vue.d.ts.map +1 -1
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileUpload.vue.d.ts +76 -0
- package/dist/components/analysis-bucket-file/FAnalysisBucketFileUpload.vue.d.ts.map +1 -0
- package/dist/components/analysis-bucket-file/FAnalysisBucketFiles.d.ts +7 -7
- package/dist/components/analysis-bucket-file/FAnalysisBucketFiles.d.ts.map +1 -1
- package/dist/components/analysis-bucket-file/FAnalysisFormFile.vue.d.ts +6 -6
- package/dist/components/analysis-bucket-file/FAnalysisFormFile.vue.d.ts.map +1 -1
- package/dist/components/analysis-log/FAnalysisLog.d.ts +5 -5
- package/dist/components/analysis-log/FAnalysisLogs.d.ts +5 -5
- package/dist/components/analysis-node/FAnalsisNodeApprovalCommand.d.ts +9 -9
- package/dist/components/analysis-node/FAnalsisNodeApprovalCommand.d.ts.map +1 -1
- package/dist/components/analysis-node/FAnalysisNode.d.ts +5 -5
- package/dist/components/analysis-node/FAnalysisNodeApprovalStatus.d.ts +5 -5
- package/dist/components/analysis-node/FAnalysisNodeApprovalStatus.d.ts.map +1 -1
- package/dist/components/analysis-node/FAnalysisNodeAssignAction.d.ts +6 -6
- package/dist/components/analysis-node/FAnalysisNodeInCard.vue.d.ts +258 -6
- package/dist/components/analysis-node/FAnalysisNodeInCard.vue.d.ts.map +1 -1
- package/dist/components/analysis-node/FAnalysisNodeRunStatus.d.ts +5 -5
- package/dist/components/analysis-node/FAnalysisNodes.d.ts +11 -16
- package/dist/components/analysis-node/FAnalysisNodes.d.ts.map +1 -1
- package/dist/components/analysis-node/FAnalysisNodesProgress.vue.d.ts +124 -5
- package/dist/components/analysis-node/FAnalysisNodesProgress.vue.d.ts.map +1 -1
- package/dist/components/constants.d.ts +6 -0
- package/dist/components/constants.d.ts.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/login/FLoginForm.vue.d.ts +179 -6
- package/dist/components/login/FLoginForm.vue.d.ts.map +1 -1
- package/dist/components/master-image/FMasterImagePicker.d.ts +85 -6
- package/dist/components/master-image/FMasterImagePicker.d.ts.map +1 -1
- package/dist/components/master-image/FMasterImages.d.ts +7 -7
- package/dist/components/master-image/FMasterImagesSync.d.ts +149 -2
- package/dist/components/master-image/FMasterImagesSync.d.ts.map +1 -1
- package/dist/components/master-image-event-log/FMasterImageEventLog.d.ts +27 -0
- package/dist/components/master-image-event-log/FMasterImageEventLog.d.ts.map +1 -0
- package/dist/components/master-image-event-log/FMasterImageEventLogs.d.ts +5 -0
- package/dist/components/master-image-event-log/FMasterImageEventLogs.d.ts.map +1 -0
- package/dist/components/master-image-event-log/index.d.ts +3 -0
- package/dist/components/master-image-event-log/index.d.ts.map +1 -0
- package/dist/components/master-image-group/FMasterImageGroups.d.ts +7 -7
- package/dist/components/node/FNodeCrypto.vue.d.ts +30 -0
- package/dist/components/node/FNodeCrypto.vue.d.ts.map +1 -0
- package/dist/components/node/FNodeForm.d.ts +7 -7
- package/dist/components/node/FNodeRegistryProject.d.ts +5 -5
- package/dist/components/node/FNodeRobot.d.ts +5 -5
- package/dist/components/node/FNodes.d.ts +7 -7
- package/dist/components/node/index.d.ts +1 -0
- package/dist/components/node/index.d.ts.map +1 -1
- package/dist/components/project/FProject.d.ts +5 -5
- package/dist/components/project/FProject.d.ts.map +1 -1
- package/dist/components/project/FProjectForm.d.ts +7 -7
- package/dist/components/project/FProjectForm.d.ts.map +1 -1
- package/dist/components/project/FProjectInForm.d.ts +4 -4
- package/dist/components/project/FProjectInForm.d.ts.map +1 -1
- package/dist/components/project/FProjectItem.d.ts +5 -5
- package/dist/components/project/FProjectItem.d.ts.map +1 -1
- package/dist/components/project/FProjectItemCard.vue.d.ts +191 -7
- package/dist/components/project/FProjectItemCard.vue.d.ts.map +1 -1
- package/dist/components/project/FProjects.d.ts +7 -7
- package/dist/components/project/FProjects.d.ts.map +1 -1
- package/dist/components/project-node/FProjectNode.d.ts +5 -5
- package/dist/components/project-node/FProjectNodeApprovalCommand.d.ts +9 -9
- package/dist/components/project-node/FProjectNodeApprovalCommand.d.ts.map +1 -1
- package/dist/components/project-node/FProjectNodeApprovalStatus.d.ts +5 -5
- package/dist/components/project-node/FProjectNodeApprovalStatus.d.ts.map +1 -1
- package/dist/components/project-node/FProjectNodeAssignAction.d.ts +6 -6
- package/dist/components/project-node/FProjectNodeInCard.vue.d.ts +160 -7
- package/dist/components/project-node/FProjectNodeInCard.vue.d.ts.map +1 -1
- package/dist/components/project-node/FProjectNodes.d.ts +9 -13
- package/dist/components/project-node/FProjectNodes.d.ts.map +1 -1
- package/dist/components/registry/FRegistries.d.ts +7 -7
- package/dist/components/registry/FRegistryCleanup.d.ts +150 -5
- package/dist/components/registry/FRegistryCleanup.d.ts.map +1 -1
- package/dist/components/registry/FRegistryForm.d.ts +7 -7
- package/dist/components/registry/FRegistrySetup.d.ts +150 -5
- package/dist/components/registry/FRegistrySetup.d.ts.map +1 -1
- package/dist/components/registry-project/FRegistryProject.d.ts +5 -5
- package/dist/components/registry-project/FRegistryProjectForm.d.ts +5 -5
- package/dist/components/registry-project/FRegistryProjects.d.ts +7 -7
- package/dist/components/utility/pagination/FPagination.d.ts +5 -5
- package/dist/components/utility/pagination/FPagination.d.ts.map +1 -1
- package/dist/components/utility/search/FSearch.d.ts +5 -5
- package/dist/components/utility/search/FSearch.d.ts.map +1 -1
- package/dist/components/utility/title/FTitle.d.ts +5 -5
- package/dist/components/utility/title/FTitle.d.ts.map +1 -1
- package/dist/core/entity-manager/module.d.ts +2 -4
- package/dist/core/entity-manager/module.d.ts.map +1 -1
- package/dist/core/entity-manager/type.d.ts +2 -4
- package/dist/core/entity-manager/type.d.ts.map +1 -1
- package/dist/core/entity-socket/module.d.ts +2 -4
- package/dist/core/entity-socket/module.d.ts.map +1 -1
- package/dist/core/entity-socket/type.d.ts +6 -6
- package/dist/core/entity-socket/type.d.ts.map +1 -1
- package/dist/core/http-client/setup.d.ts.map +1 -1
- package/dist/core/list/module.d.ts +2 -4
- package/dist/core/list/module.d.ts.map +1 -1
- package/dist/core/list/type.d.ts +9 -9
- package/dist/core/list/type.d.ts.map +1 -1
- package/dist/core/socket/install.d.ts.map +1 -1
- package/dist/index.cjs +2185 -1061
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +2190 -1072
- package/dist/index.mjs.map +1 -1
- package/package.json +32 -31
package/dist/index.cjs
CHANGED
|
@@ -10,7 +10,7 @@ var useVuelidate = require('@vuelidate/core');
|
|
|
10
10
|
var validators = require('@vuelidate/validators');
|
|
11
11
|
var formControls = require('@vuecs/form-controls');
|
|
12
12
|
var coreKit = require('@privateaim/core-kit');
|
|
13
|
-
var crypto = require('crypto');
|
|
13
|
+
var crypto$1 = require('crypto');
|
|
14
14
|
var listControls = require('@vuecs/list-controls');
|
|
15
15
|
var rapiq = require('rapiq');
|
|
16
16
|
require('@authup/kit');
|
|
@@ -18,15 +18,118 @@ var coreHttpKit = require('@authup/core-http-kit');
|
|
|
18
18
|
var storageKit = require('@privateaim/storage-kit');
|
|
19
19
|
var coreKit$1 = require('@authup/core-kit');
|
|
20
20
|
var coreRealtimeKit = require('@authup/core-realtime-kit');
|
|
21
|
+
var timeago = require('@vuecs/timeago');
|
|
21
22
|
var link = require('@vuecs/link');
|
|
22
23
|
var bootstrapVueNext = require('bootstrap-vue-next');
|
|
23
|
-
var timeago = require('@vuecs/timeago');
|
|
24
24
|
var vue3FormWizard = require('vue3-form-wizard');
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
(
|
|
26
|
+
/*
|
|
27
|
+
* Copyright (c) 2024-2024.
|
|
28
|
+
* Author Peter Placzek (tada5hi)
|
|
29
|
+
* For the full copyright and license information,
|
|
30
|
+
* view the LICENSE file that was distributed with this source code.
|
|
31
|
+
*/ const BRACKET_NUMBER_REGEX = RegExp("(?<!\\\\)\\[(\\d+)]$");
|
|
32
|
+
/**
|
|
33
|
+
* Convert string to property path array.
|
|
34
|
+
*
|
|
35
|
+
* @see https://github.com/lodash/lodash/blob/main/src/.internal/stringToPath.ts
|
|
36
|
+
* @see https://github.com/chaijs/pathval
|
|
37
|
+
*
|
|
38
|
+
* @param segment
|
|
39
|
+
*/ function pathToArray(segment) {
|
|
40
|
+
const str = segment.replace(/([^\\])\[/g, '$1.[');
|
|
41
|
+
const parts = str.match(/(\\\.|[^.]+?)+/g);
|
|
42
|
+
if (!parts) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
const result = [];
|
|
46
|
+
for(let i = 0; i < parts.length; i++){
|
|
47
|
+
if (parts[i] === 'constructor' || parts[i] === '__proto__' || parts[i] === 'prototype') {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const regex = BRACKET_NUMBER_REGEX.exec(parts[i]);
|
|
51
|
+
if (regex) {
|
|
52
|
+
result.push(regex[1]);
|
|
53
|
+
} else {
|
|
54
|
+
result.push(parts[i].replace(/\\([.[\]])/g, '$1'));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
/*
|
|
60
|
+
* Copyright (c) 2024.
|
|
61
|
+
* Author Peter Placzek (tada5hi)
|
|
62
|
+
* For the full copyright and license information,
|
|
63
|
+
* view the LICENSE file that was distributed with this source code.
|
|
64
|
+
*/ var Character;
|
|
65
|
+
(function(Character) {
|
|
66
|
+
Character["WILDCARD"] = "*";
|
|
67
|
+
Character["GLOBSTAR"] = "**";
|
|
68
|
+
})(Character || (Character = {}));
|
|
69
|
+
/*
|
|
70
|
+
* Copyright (c) 2024.
|
|
71
|
+
* Author Peter Placzek (tada5hi)
|
|
72
|
+
* For the full copyright and license information,
|
|
73
|
+
* view the LICENSE file that was distributed with this source code.
|
|
74
|
+
*/ function isObject$4(input) {
|
|
75
|
+
return !!input && typeof input === 'object' && !Array.isArray(input);
|
|
76
|
+
}
|
|
77
|
+
function getPathValue(data, path) {
|
|
78
|
+
const parts = Array.isArray(path) ? path : pathToArray(path);
|
|
79
|
+
let res;
|
|
80
|
+
let temp = data;
|
|
81
|
+
let index = 0;
|
|
82
|
+
while(index < parts.length){
|
|
83
|
+
if (temp === null || typeof temp === 'undefined') {
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
if (parts[index] in Object(temp)) {
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
88
|
+
// @ts-expect-error
|
|
89
|
+
temp = temp[parts[index]];
|
|
90
|
+
} else {
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
if (index === parts.length - 1) {
|
|
94
|
+
res = temp;
|
|
95
|
+
}
|
|
96
|
+
index++;
|
|
97
|
+
}
|
|
98
|
+
return res;
|
|
99
|
+
}
|
|
100
|
+
const NUMBER_REGEX = /^\d+$/;
|
|
101
|
+
function setPathValue(data, path, value) {
|
|
102
|
+
const parts = Array.isArray(path) ? path : pathToArray(path);
|
|
103
|
+
let temp = data;
|
|
104
|
+
let index = 0;
|
|
105
|
+
while(index < parts.length){
|
|
106
|
+
/* istanbul ignore next */ if (!Array.isArray(temp) && !isObject$4(temp)) {
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
const key = parts[index];
|
|
110
|
+
// [foo, '0']
|
|
111
|
+
if (typeof temp[key] === 'undefined') {
|
|
112
|
+
const match = NUMBER_REGEX.test(key);
|
|
113
|
+
if (match) {
|
|
114
|
+
temp[key] = [];
|
|
115
|
+
} else {
|
|
116
|
+
temp[key] = {};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (index === parts.length - 1) {
|
|
120
|
+
temp[key] = value;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
index++;
|
|
124
|
+
temp = temp[key];
|
|
125
|
+
}
|
|
126
|
+
return data;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
var StoreName = /*#__PURE__*/ function(StoreName) {
|
|
28
130
|
StoreName["DEFAULT"] = "default";
|
|
29
|
-
|
|
131
|
+
return StoreName;
|
|
132
|
+
}({});
|
|
30
133
|
class Store {
|
|
31
134
|
/**
|
|
32
135
|
* Set options for all groups.
|
|
@@ -99,27 +202,44 @@ function applyStoreManagerOptions(manager, options) {
|
|
|
99
202
|
store.setAll(options.defaults);
|
|
100
203
|
}
|
|
101
204
|
}
|
|
205
|
+
function inject(key, instance) {
|
|
206
|
+
if (instance && instance._context && instance._context.provides && instance._context.provides[key]) {
|
|
207
|
+
return instance._context.provides[key];
|
|
208
|
+
}
|
|
209
|
+
if (vue.hasInjectionContext()) {
|
|
210
|
+
return vue.inject(key, undefined);
|
|
211
|
+
}
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
function provide(key, value, app) {
|
|
215
|
+
if (typeof app === 'undefined') {
|
|
216
|
+
const val = inject(key);
|
|
217
|
+
if (typeof val !== 'undefined') {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
vue.provide(key, value);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
if (app && app._context && app._context.provides && app._context.provides[key]) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
app.provide(key, value);
|
|
227
|
+
}
|
|
102
228
|
function getSymbol(key) {
|
|
103
229
|
return Symbol.for('VCStoreManager');
|
|
104
230
|
}
|
|
105
231
|
function installStoreManager(instance, key) {
|
|
106
|
-
let manager;
|
|
107
232
|
const symbol = getSymbol();
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (vue.hasInjectionContext()) {
|
|
112
|
-
manager = vue.inject(symbol, undefined);
|
|
113
|
-
if (manager) {
|
|
114
|
-
return manager;
|
|
115
|
-
}
|
|
233
|
+
let manager = inject(symbol, instance);
|
|
234
|
+
if (manager) {
|
|
235
|
+
return manager;
|
|
116
236
|
}
|
|
117
237
|
manager = new StoreManager();
|
|
118
|
-
|
|
238
|
+
provide(symbol, manager, instance);
|
|
119
239
|
return manager;
|
|
120
240
|
}
|
|
121
241
|
|
|
122
|
-
var _sfc_main$
|
|
242
|
+
var _sfc_main$i = vue.defineComponent({
|
|
123
243
|
components: {
|
|
124
244
|
IVuelidate: vuelidate.IVuelidate,
|
|
125
245
|
VCFormInput: formControls.VCFormInput,
|
|
@@ -135,6 +255,7 @@ var _sfc_main$g = vue.defineComponent({
|
|
|
135
255
|
'failed'
|
|
136
256
|
],
|
|
137
257
|
setup (props, { emit }) {
|
|
258
|
+
const store = clientWebKit.injectStore();
|
|
138
259
|
const realmId = vue.toRef(props, 'realmId');
|
|
139
260
|
const form = vue.reactive({
|
|
140
261
|
name: '',
|
|
@@ -160,7 +281,6 @@ var _sfc_main$g = vue.defineComponent({
|
|
|
160
281
|
},
|
|
161
282
|
realm_id: {}
|
|
162
283
|
}, form);
|
|
163
|
-
const store = clientWebKit.useStore();
|
|
164
284
|
const busy = vue.ref(false);
|
|
165
285
|
const submit = async ()=>{
|
|
166
286
|
try {
|
|
@@ -193,7 +313,7 @@ var _export_sfc = ((sfc, props)=>{
|
|
|
193
313
|
return target;
|
|
194
314
|
});
|
|
195
315
|
|
|
196
|
-
function _sfc_render$
|
|
316
|
+
function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
197
317
|
const _component_VCFormInput = vue.resolveComponent("VCFormInput");
|
|
198
318
|
const _component_VCFormGroup = vue.resolveComponent("VCFormGroup");
|
|
199
319
|
const _component_IVuelidate = vue.resolveComponent("IVuelidate");
|
|
@@ -211,9 +331,9 @@ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
211
331
|
"validation-messages": props.data,
|
|
212
332
|
"validation-severity": props.severity
|
|
213
333
|
}, {
|
|
214
|
-
label: vue.withCtx(()=>[
|
|
334
|
+
label: vue.withCtx(()=>_cache[4] || (_cache[4] = [
|
|
215
335
|
vue.createTextVNode(" Name ")
|
|
216
|
-
]),
|
|
336
|
+
])),
|
|
217
337
|
default: vue.withCtx(()=>[
|
|
218
338
|
vue.createVNode(_component_VCFormInput, {
|
|
219
339
|
modelValue: _ctx.vuelidate.name.$model,
|
|
@@ -240,9 +360,9 @@ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
240
360
|
"validation-messages": props.data,
|
|
241
361
|
"validation-severity": props.severity
|
|
242
362
|
}, {
|
|
243
|
-
label: vue.withCtx(()=>[
|
|
363
|
+
label: vue.withCtx(()=>_cache[5] || (_cache[5] = [
|
|
244
364
|
vue.createTextVNode(" Password ")
|
|
245
|
-
]),
|
|
365
|
+
])),
|
|
246
366
|
default: vue.withCtx(()=>[
|
|
247
367
|
vue.createVNode(_component_VCFormInput, {
|
|
248
368
|
modelValue: _ctx.vuelidate.password.$model,
|
|
@@ -282,10 +402,10 @@ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
282
402
|
])
|
|
283
403
|
], 32);
|
|
284
404
|
}
|
|
285
|
-
var FLoginForm = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
405
|
+
var FLoginForm = /* @__PURE__ */ _export_sfc(_sfc_main$i, [
|
|
286
406
|
[
|
|
287
407
|
"render",
|
|
288
|
-
_sfc_render$
|
|
408
|
+
_sfc_render$i
|
|
289
409
|
]
|
|
290
410
|
]);
|
|
291
411
|
|
|
@@ -294,39 +414,61 @@ var FLoginForm = /* @__PURE__ */ _export_sfc(_sfc_main$g, [
|
|
|
294
414
|
* Author Peter Placzek (tada5hi)
|
|
295
415
|
* For the full copyright and license information,
|
|
296
416
|
* view the LICENSE file that was distributed with this source code.
|
|
297
|
-
*/
|
|
298
|
-
(function(ActionCommandElementType) {
|
|
417
|
+
*/ var ActionCommandElementType = /*#__PURE__*/ function(ActionCommandElementType) {
|
|
299
418
|
ActionCommandElementType["BUTTON"] = "button";
|
|
300
419
|
ActionCommandElementType["LINK"] = "link";
|
|
301
420
|
ActionCommandElementType["DROPDOWN_ITEM"] = "dropDownItem";
|
|
302
|
-
|
|
421
|
+
return ActionCommandElementType;
|
|
422
|
+
}({});
|
|
303
423
|
|
|
424
|
+
// It is best to make fewer, larger requests to the crypto module to
|
|
425
|
+
// avoid system call overhead. So, random numbers are generated in a
|
|
426
|
+
// pool. The pool is a Buffer that is larger than the initial random
|
|
427
|
+
// request size by this multiplier. The pool is enlarged if subsequent
|
|
428
|
+
// requests exceed the maximum buffer size.
|
|
304
429
|
const POOL_SIZE_MULTIPLIER = 128;
|
|
305
430
|
let pool, poolOffset;
|
|
306
431
|
let fillPool = (bytes)=>{
|
|
307
432
|
if (!pool || pool.length < bytes) {
|
|
308
433
|
pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
|
|
309
|
-
crypto.randomFillSync(pool);
|
|
434
|
+
crypto$1.randomFillSync(pool);
|
|
310
435
|
poolOffset = 0;
|
|
311
436
|
} else if (poolOffset + bytes > pool.length) {
|
|
312
|
-
crypto.randomFillSync(pool);
|
|
437
|
+
crypto$1.randomFillSync(pool);
|
|
313
438
|
poolOffset = 0;
|
|
314
439
|
}
|
|
315
440
|
poolOffset += bytes;
|
|
316
441
|
};
|
|
317
442
|
let random = (bytes)=>{
|
|
318
|
-
|
|
443
|
+
// `|=` convert `bytes` to number to prevent `valueOf` abusing and pool pollution
|
|
444
|
+
fillPool(bytes |= 0);
|
|
319
445
|
return pool.subarray(poolOffset - bytes, poolOffset);
|
|
320
446
|
};
|
|
321
447
|
let customRandom = (alphabet, defaultSize, getRandom)=>{
|
|
448
|
+
// First, a bitmask is necessary to generate the ID. The bitmask makes bytes
|
|
449
|
+
// values closer to the alphabet size. The bitmask calculates the closest
|
|
450
|
+
// `2^31 - 1` number, which exceeds the alphabet size.
|
|
451
|
+
// For example, the bitmask for the alphabet size 30 is 31 (00011111).
|
|
322
452
|
let mask = (2 << 31 - Math.clz32(alphabet.length - 1 | 1)) - 1;
|
|
453
|
+
// Though, the bitmask solution is not perfect since the bytes exceeding
|
|
454
|
+
// the alphabet size are refused. Therefore, to reliably generate the ID,
|
|
455
|
+
// the random bytes redundancy has to be satisfied.
|
|
456
|
+
// Note: every hardware random generator call is performance expensive,
|
|
457
|
+
// because the system call for entropy collection takes a lot of time.
|
|
458
|
+
// So, to avoid additional system calls, extra bytes are requested in advance.
|
|
459
|
+
// Next, a step determines how many random bytes to generate.
|
|
460
|
+
// The number of random bytes gets decided upon the ID size, mask,
|
|
461
|
+
// alphabet size, and magic number 1.6 (using 1.6 peaks at performance
|
|
462
|
+
// according to benchmarks).
|
|
323
463
|
let step = Math.ceil(1.6 * mask * defaultSize / alphabet.length);
|
|
324
464
|
return (size = defaultSize)=>{
|
|
325
465
|
let id = '';
|
|
326
466
|
while(true){
|
|
327
467
|
let bytes = getRandom(step);
|
|
468
|
+
// A compact alternative for `for (let i = 0; i < step; i++)`.
|
|
328
469
|
let i = step;
|
|
329
470
|
while(i--){
|
|
471
|
+
// Adding `|| ''` refuses a random byte that exceeds the alphabet size.
|
|
330
472
|
id += alphabet[bytes[i] & mask] || '';
|
|
331
473
|
if (id.length === size) return id;
|
|
332
474
|
}
|
|
@@ -335,13 +477,304 @@ let customRandom = (alphabet, defaultSize, getRandom)=>{
|
|
|
335
477
|
};
|
|
336
478
|
let customAlphabet = (alphabet, size = 21)=>customRandom(alphabet, size, random);
|
|
337
479
|
|
|
480
|
+
/*
|
|
481
|
+
* Copyright (c) 2024.
|
|
482
|
+
* Author Peter Placzek (tada5hi)
|
|
483
|
+
* For the full copyright and license information,
|
|
484
|
+
* view the LICENSE file that was distributed with this source code.
|
|
485
|
+
*/ var AsymmetricCryptoAlgorithmName = /*#__PURE__*/ function(AsymmetricCryptoAlgorithmName) {
|
|
486
|
+
AsymmetricCryptoAlgorithmName["RSA_OAEP"] = "RSA-OAEP";
|
|
487
|
+
AsymmetricCryptoAlgorithmName["ECDH"] = "ECDH";
|
|
488
|
+
return AsymmetricCryptoAlgorithmName;
|
|
489
|
+
}({});
|
|
490
|
+
/*
|
|
491
|
+
* Copyright (c) 2024.
|
|
492
|
+
* Author Peter Placzek (tada5hi)
|
|
493
|
+
* For the full copyright and license information,
|
|
494
|
+
* view the LICENSE file that was distributed with this source code.
|
|
495
|
+
*/ function asyncGeneratorStep$2$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
496
|
+
try {
|
|
497
|
+
var info = gen[key](arg);
|
|
498
|
+
var value = info.value;
|
|
499
|
+
} catch (error) {
|
|
500
|
+
reject(error);
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
if (info.done) {
|
|
504
|
+
resolve(value);
|
|
505
|
+
} else {
|
|
506
|
+
Promise.resolve(value).then(_next, _throw);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
function _async_to_generator$2$1(fn) {
|
|
510
|
+
return function() {
|
|
511
|
+
var self = this, args = arguments;
|
|
512
|
+
return new Promise(function(resolve, reject) {
|
|
513
|
+
var gen = fn.apply(self, args);
|
|
514
|
+
function _next(value) {
|
|
515
|
+
asyncGeneratorStep$2$1(gen, resolve, reject, _next, _throw, "next", value);
|
|
516
|
+
}
|
|
517
|
+
function _throw(err) {
|
|
518
|
+
asyncGeneratorStep$2$1(gen, resolve, reject, _next, _throw, "throw", err);
|
|
519
|
+
}
|
|
520
|
+
_next(undefined);
|
|
521
|
+
});
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
function arrayBufferToBase64(arrayBuffer) {
|
|
525
|
+
return btoa(String.fromCharCode.apply(null, new Uint8Array(arrayBuffer)));
|
|
526
|
+
}
|
|
527
|
+
function exportAsymmetricPublicKey(key) {
|
|
528
|
+
return _exportAsymmetricPublicKey.apply(this, arguments);
|
|
529
|
+
}
|
|
530
|
+
function _exportAsymmetricPublicKey() {
|
|
531
|
+
_exportAsymmetricPublicKey = _async_to_generator$2$1(function*(key) {
|
|
532
|
+
const exported = yield crypto.subtle.exportKey('spki', key);
|
|
533
|
+
return `-----BEGIN PUBLIC KEY-----\n${arrayBufferToBase64(exported)}\n-----END PUBLIC KEY-----`;
|
|
534
|
+
});
|
|
535
|
+
return _exportAsymmetricPublicKey.apply(this, arguments);
|
|
536
|
+
}
|
|
537
|
+
function exportAsymmetricPrivateKey(key) {
|
|
538
|
+
return _exportAsymmetricPrivateKey.apply(this, arguments);
|
|
539
|
+
}
|
|
540
|
+
function _exportAsymmetricPrivateKey() {
|
|
541
|
+
_exportAsymmetricPrivateKey = _async_to_generator$2$1(function*(key) {
|
|
542
|
+
const exported = yield crypto.subtle.exportKey('pkcs8', key);
|
|
543
|
+
return `-----BEGIN PRIVATE KEY-----\n${arrayBufferToBase64(exported)}\n-----END PRIVATE KEY-----`;
|
|
544
|
+
});
|
|
545
|
+
return _exportAsymmetricPrivateKey.apply(this, arguments);
|
|
546
|
+
}
|
|
547
|
+
/*
|
|
548
|
+
* Copyright (c) 2024.
|
|
549
|
+
* Author Peter Placzek (tada5hi)
|
|
550
|
+
* For the full copyright and license information,
|
|
551
|
+
* view the LICENSE file that was distributed with this source code.
|
|
552
|
+
*/ function asyncGeneratorStep$1$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
553
|
+
try {
|
|
554
|
+
var info = gen[key](arg);
|
|
555
|
+
var value = info.value;
|
|
556
|
+
} catch (error) {
|
|
557
|
+
reject(error);
|
|
558
|
+
return;
|
|
559
|
+
}
|
|
560
|
+
if (info.done) {
|
|
561
|
+
resolve(value);
|
|
562
|
+
} else {
|
|
563
|
+
Promise.resolve(value).then(_next, _throw);
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
function _async_to_generator$1$1(fn) {
|
|
567
|
+
return function() {
|
|
568
|
+
var self = this, args = arguments;
|
|
569
|
+
return new Promise(function(resolve, reject) {
|
|
570
|
+
var gen = fn.apply(self, args);
|
|
571
|
+
function _next(value) {
|
|
572
|
+
asyncGeneratorStep$1$1(gen, resolve, reject, _next, _throw, "next", value);
|
|
573
|
+
}
|
|
574
|
+
function _throw(err) {
|
|
575
|
+
asyncGeneratorStep$1$1(gen, resolve, reject, _next, _throw, "throw", err);
|
|
576
|
+
}
|
|
577
|
+
_next(undefined);
|
|
578
|
+
});
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
function _define_property$1$1(obj, key, value) {
|
|
582
|
+
if (key in obj) {
|
|
583
|
+
Object.defineProperty(obj, key, {
|
|
584
|
+
value: value,
|
|
585
|
+
enumerable: true,
|
|
586
|
+
configurable: true,
|
|
587
|
+
writable: true
|
|
588
|
+
});
|
|
589
|
+
} else {
|
|
590
|
+
obj[key] = value;
|
|
591
|
+
}
|
|
592
|
+
return obj;
|
|
593
|
+
}
|
|
594
|
+
function _object_spread$4(target) {
|
|
595
|
+
for(var i = 1; i < arguments.length; i++){
|
|
596
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
597
|
+
var ownKeys = Object.keys(source);
|
|
598
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
599
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
600
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
601
|
+
}));
|
|
602
|
+
}
|
|
603
|
+
ownKeys.forEach(function(key) {
|
|
604
|
+
_define_property$1$1(target, key, source[key]);
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
return target;
|
|
608
|
+
}
|
|
609
|
+
function ownKeys(object, enumerableOnly) {
|
|
610
|
+
var keys = Object.keys(object);
|
|
611
|
+
if (Object.getOwnPropertySymbols) {
|
|
612
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
613
|
+
keys.push.apply(keys, symbols);
|
|
614
|
+
}
|
|
615
|
+
return keys;
|
|
616
|
+
}
|
|
617
|
+
function _object_spread_props(target, source) {
|
|
618
|
+
source = source != null ? source : {};
|
|
619
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
620
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
621
|
+
} else {
|
|
622
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
623
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
624
|
+
});
|
|
625
|
+
}
|
|
626
|
+
return target;
|
|
627
|
+
}
|
|
628
|
+
class CryptoAsymmetricAlgorithm {
|
|
629
|
+
buildImportParams() {
|
|
630
|
+
if (this.algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
631
|
+
return {
|
|
632
|
+
name: 'RSA-OAEP',
|
|
633
|
+
hash: 'SHA-256'
|
|
634
|
+
};
|
|
635
|
+
}
|
|
636
|
+
if (this.algorithm.name === AsymmetricCryptoAlgorithmName.ECDH) {
|
|
637
|
+
return {
|
|
638
|
+
name: 'ECDH',
|
|
639
|
+
namedCurve: this.algorithm.namedCurve,
|
|
640
|
+
hash: 'SHA-256'
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
throw new Error('Import params could not be created.');
|
|
644
|
+
}
|
|
645
|
+
generateKeyPair() {
|
|
646
|
+
var _this = this;
|
|
647
|
+
return _async_to_generator$1$1(function*() {
|
|
648
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
649
|
+
_this.keyPair = yield crypto.subtle.generateKey(_this.algorithm, true, [
|
|
650
|
+
'encrypt',
|
|
651
|
+
'decrypt'
|
|
652
|
+
]);
|
|
653
|
+
return _this.keyPair;
|
|
654
|
+
}
|
|
655
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.ECDH) {
|
|
656
|
+
_this.keyPair = yield crypto.subtle.generateKey(_this.algorithm, true, [
|
|
657
|
+
'deriveKey'
|
|
658
|
+
]);
|
|
659
|
+
return _this.keyPair;
|
|
660
|
+
}
|
|
661
|
+
throw new Error('The algorithm is not supported for key generation.');
|
|
662
|
+
})();
|
|
663
|
+
}
|
|
664
|
+
useKeyPair() {
|
|
665
|
+
var _this = this;
|
|
666
|
+
return _async_to_generator$1$1(function*() {
|
|
667
|
+
if (typeof _this.keyPair !== 'undefined') {
|
|
668
|
+
return _this.keyPair;
|
|
669
|
+
}
|
|
670
|
+
return _this.generateKeyPair();
|
|
671
|
+
})();
|
|
672
|
+
}
|
|
673
|
+
exportPublicKey() {
|
|
674
|
+
var _this = this;
|
|
675
|
+
return _async_to_generator$1$1(function*() {
|
|
676
|
+
const keyPair = yield _this.useKeyPair();
|
|
677
|
+
return exportAsymmetricPublicKey(keyPair.publicKey);
|
|
678
|
+
})();
|
|
679
|
+
}
|
|
680
|
+
exportPrivateKey() {
|
|
681
|
+
var _this = this;
|
|
682
|
+
return _async_to_generator$1$1(function*() {
|
|
683
|
+
const keyPair = yield _this.useKeyPair();
|
|
684
|
+
return exportAsymmetricPrivateKey(keyPair.privateKey);
|
|
685
|
+
})();
|
|
686
|
+
}
|
|
687
|
+
encrypt(data, remoteKey) {
|
|
688
|
+
var _this = this;
|
|
689
|
+
return _async_to_generator$1$1(function*() {
|
|
690
|
+
const keyPair = yield _this.useKeyPair();
|
|
691
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
692
|
+
return crypto.subtle.encrypt({
|
|
693
|
+
name: 'RSA-OAEP'
|
|
694
|
+
}, remoteKey || keyPair.publicKey, data);
|
|
695
|
+
}
|
|
696
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.ECDH) {
|
|
697
|
+
if (typeof remoteKey === 'undefined') {
|
|
698
|
+
throw new Error('Remote public key is required.');
|
|
699
|
+
}
|
|
700
|
+
const array = new Uint8Array(16);
|
|
701
|
+
const iv = crypto.getRandomValues(array);
|
|
702
|
+
const key = yield crypto.subtle.deriveKey({
|
|
703
|
+
name: 'ECDH',
|
|
704
|
+
public: remoteKey
|
|
705
|
+
}, keyPair.privateKey, {
|
|
706
|
+
name: 'AES-GCM',
|
|
707
|
+
length: 256
|
|
708
|
+
}, true, [
|
|
709
|
+
'encrypt'
|
|
710
|
+
]);
|
|
711
|
+
const arrayBuffer = yield crypto.subtle.encrypt({
|
|
712
|
+
name: 'AES-GCM',
|
|
713
|
+
length: 256,
|
|
714
|
+
iv
|
|
715
|
+
}, key, data);
|
|
716
|
+
const buffer = Buffer.from(arrayBuffer);
|
|
717
|
+
return Buffer.concat([
|
|
718
|
+
iv,
|
|
719
|
+
buffer
|
|
720
|
+
]);
|
|
721
|
+
}
|
|
722
|
+
throw new Error('Unsupported algorithm for encryption.');
|
|
723
|
+
})();
|
|
724
|
+
}
|
|
725
|
+
decrypt(data, remoteKey) {
|
|
726
|
+
var _this = this;
|
|
727
|
+
return _async_to_generator$1$1(function*() {
|
|
728
|
+
const keyPair = yield _this.useKeyPair();
|
|
729
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
730
|
+
return crypto.subtle.decrypt({
|
|
731
|
+
name: 'RSA-OAEP'
|
|
732
|
+
}, keyPair.privateKey, data);
|
|
733
|
+
}
|
|
734
|
+
if (_this.algorithm.name === AsymmetricCryptoAlgorithmName.ECDH) {
|
|
735
|
+
if (typeof remoteKey === 'undefined') {
|
|
736
|
+
throw new Error('Remote public key is required.');
|
|
737
|
+
}
|
|
738
|
+
const iv = data.slice(0, 16);
|
|
739
|
+
const key = yield crypto.subtle.deriveKey({
|
|
740
|
+
name: 'ECDH',
|
|
741
|
+
public: remoteKey
|
|
742
|
+
}, keyPair.privateKey, {
|
|
743
|
+
name: 'AES-GCM',
|
|
744
|
+
length: 256
|
|
745
|
+
}, true, [
|
|
746
|
+
'decrypt'
|
|
747
|
+
]);
|
|
748
|
+
return crypto.subtle.decrypt({
|
|
749
|
+
name: 'AES-GCM',
|
|
750
|
+
length: 256,
|
|
751
|
+
iv
|
|
752
|
+
}, key, data.slice(16));
|
|
753
|
+
}
|
|
754
|
+
throw new Error('Unsupported algorithm for decryption.');
|
|
755
|
+
})();
|
|
756
|
+
}
|
|
757
|
+
constructor(algorithm){
|
|
758
|
+
_define_property$1$1(this, "algorithm", undefined);
|
|
759
|
+
_define_property$1$1(this, "keyPair", undefined);
|
|
760
|
+
if (algorithm.name === AsymmetricCryptoAlgorithmName.RSA_OAEP) {
|
|
761
|
+
algorithm = _object_spread_props(_object_spread$4({}, algorithm), {
|
|
762
|
+
publicExponent: new Uint8Array([
|
|
763
|
+
1,
|
|
764
|
+
0,
|
|
765
|
+
1
|
|
766
|
+
])
|
|
767
|
+
});
|
|
768
|
+
}
|
|
769
|
+
this.algorithm = algorithm;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
338
772
|
/*
|
|
339
773
|
* Copyright (c) 2021-2024.
|
|
340
774
|
* Author Peter Placzek (tada5hi)
|
|
341
775
|
* For the full copyright and license information,
|
|
342
776
|
* view the LICENSE file that was distributed with this source code.
|
|
343
|
-
*/ var PermissionName
|
|
344
|
-
(function(PermissionName) {
|
|
777
|
+
*/ var PermissionName = /*#__PURE__*/ function(PermissionName) {
|
|
345
778
|
PermissionName["BUCKET_CREATE"] = "bucket_create";
|
|
346
779
|
PermissionName["BUCKET_UPDATE"] = "bucket_update";
|
|
347
780
|
PermissionName["BUCKET_DELETE"] = "bucket_delete";
|
|
@@ -364,7 +797,8 @@ let customAlphabet = (alphabet, size = 21)=>customRandom(alphabet, size, random)
|
|
|
364
797
|
PermissionName["MASTER_IMAGE_MANAGE"] = "master_image_manage";
|
|
365
798
|
PermissionName["MASTER_IMAGE_GROUP_MANAGE"] = "master_image_group_manage";
|
|
366
799
|
PermissionName["SERVICE_MANAGE"] = "service_manage";
|
|
367
|
-
|
|
800
|
+
return PermissionName;
|
|
801
|
+
}({});
|
|
368
802
|
/*
|
|
369
803
|
* Copyright (c) 2021-2024.
|
|
370
804
|
* Author Peter Placzek (tada5hi)
|
|
@@ -377,6 +811,24 @@ function hasOwnProperty(obj, prop) {
|
|
|
377
811
|
function isObject$3(item) {
|
|
378
812
|
return !!item && typeof item === 'object' && !Array.isArray(item);
|
|
379
813
|
}
|
|
814
|
+
/*
|
|
815
|
+
* Copyright (c) 2021-2024.
|
|
816
|
+
* Author Peter Placzek (tada5hi)
|
|
817
|
+
* For the full copyright and license information,
|
|
818
|
+
* view the LICENSE file that was distributed with this source code.
|
|
819
|
+
*/ function isHex(value) {
|
|
820
|
+
return /^[A-Fa-f0-9]+$/i.test(value);
|
|
821
|
+
}
|
|
822
|
+
function hexToUTF8(value) {
|
|
823
|
+
try {
|
|
824
|
+
return decodeURIComponent(`%${value.match(/.{1,2}/g).join('%')}`);
|
|
825
|
+
} catch (e) {
|
|
826
|
+
if (e instanceof URIError) {
|
|
827
|
+
return value;
|
|
828
|
+
}
|
|
829
|
+
throw e;
|
|
830
|
+
}
|
|
831
|
+
}
|
|
380
832
|
function createNanoID(alphabetOrLen, len) {
|
|
381
833
|
return customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', 21)();
|
|
382
834
|
}
|
|
@@ -386,17 +838,6 @@ function createNanoID(alphabetOrLen, len) {
|
|
|
386
838
|
* For the full copyright and license information,
|
|
387
839
|
* view the LICENSE file that was distributed with this source code.
|
|
388
840
|
*/ const alphaNumHyphenUnderscoreRegex = /^[a-z0-9-_]*$/;
|
|
389
|
-
/*
|
|
390
|
-
* Copyright (c) 2024.
|
|
391
|
-
* Author Peter Placzek (tada5hi)
|
|
392
|
-
* For the full copyright and license information,
|
|
393
|
-
* view the LICENSE file that was distributed with this source code.
|
|
394
|
-
*/ var EnvironmentName;
|
|
395
|
-
(function(EnvironmentName) {
|
|
396
|
-
EnvironmentName["TEST"] = "test";
|
|
397
|
-
EnvironmentName["DEVELOPMENT"] = "development";
|
|
398
|
-
EnvironmentName["PRODUCTION"] = "production";
|
|
399
|
-
})(EnvironmentName || (EnvironmentName = {}));
|
|
400
841
|
|
|
401
842
|
/**
|
|
402
843
|
* Returns true if either scoped or unscoped named slot exists
|
|
@@ -722,7 +1163,7 @@ function parseQuery(parametersString = "") {
|
|
|
722
1163
|
continue;
|
|
723
1164
|
}
|
|
724
1165
|
const value = decodeQueryValue(s[2] || "");
|
|
725
|
-
if (object[key] ===
|
|
1166
|
+
if (object[key] === undefined) {
|
|
726
1167
|
object[key] = value;
|
|
727
1168
|
} else if (Array.isArray(object[key])) {
|
|
728
1169
|
object[key].push(value);
|
|
@@ -748,7 +1189,7 @@ function encodeQueryItem(key, value) {
|
|
|
748
1189
|
return `${encodeQueryKey(key)}=${encodeQueryValue(value)}`;
|
|
749
1190
|
}
|
|
750
1191
|
function stringifyQuery(query) {
|
|
751
|
-
return Object.keys(query).filter((k)=>query[k] !==
|
|
1192
|
+
return Object.keys(query).filter((k)=>query[k] !== undefined).map((k)=>encodeQueryItem(k, query[k])).filter(Boolean).join("&");
|
|
752
1193
|
}
|
|
753
1194
|
const PROTOCOL_STRICT_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{1,2})/;
|
|
754
1195
|
const PROTOCOL_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{2})?/;
|
|
@@ -963,16 +1404,16 @@ class BaseError extends Error {
|
|
|
963
1404
|
var n = Object.defineProperty;
|
|
964
1405
|
var e = (t, r)=>n(t, "name", {
|
|
965
1406
|
value: r,
|
|
966
|
-
configurable:
|
|
1407
|
+
configurable: true
|
|
967
1408
|
});
|
|
968
1409
|
var i = Object.defineProperty, c = e((t, r)=>i(t, "name", {
|
|
969
1410
|
value: r,
|
|
970
|
-
configurable:
|
|
1411
|
+
configurable: true
|
|
971
1412
|
}), "e");
|
|
972
1413
|
function a() {
|
|
973
1414
|
return {
|
|
974
|
-
agent:
|
|
975
|
-
dispatcher:
|
|
1415
|
+
agent: undefined,
|
|
1416
|
+
dispatcher: undefined
|
|
976
1417
|
};
|
|
977
1418
|
}
|
|
978
1419
|
e(a, "createProxy"), c(a, "createProxy");
|
|
@@ -1008,35 +1449,35 @@ const Blob = gT.Blob || e$1;
|
|
|
1008
1449
|
* Author Peter Placzek (tada5hi)
|
|
1009
1450
|
* For the full copyright and license information,
|
|
1010
1451
|
* view the LICENSE file that was distributed with this source code.
|
|
1011
|
-
*/ var ResponseType
|
|
1012
|
-
(function(ResponseType) {
|
|
1452
|
+
*/ var ResponseType = /*#__PURE__*/ function(ResponseType) {
|
|
1013
1453
|
ResponseType["BLOB"] = "blob";
|
|
1014
1454
|
ResponseType["STREAM"] = "stream";
|
|
1015
1455
|
ResponseType["TEXT"] = "text";
|
|
1016
1456
|
ResponseType["ARRAY_BUFFER"] = "arrayBuffer";
|
|
1017
1457
|
ResponseType["JSON"] = "json";
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1458
|
+
return ResponseType;
|
|
1459
|
+
}({});
|
|
1460
|
+
var MethodName = /*#__PURE__*/ function(MethodName) {
|
|
1021
1461
|
MethodName["DELETE"] = "DELETE";
|
|
1022
1462
|
MethodName["GET"] = "GET";
|
|
1023
1463
|
MethodName["HEAD"] = "HEAD";
|
|
1024
1464
|
MethodName["PATCH"] = "PATCH";
|
|
1025
1465
|
MethodName["POST"] = "POST";
|
|
1026
1466
|
MethodName["PUT"] = "PUT";
|
|
1027
|
-
|
|
1467
|
+
return MethodName;
|
|
1468
|
+
}({});
|
|
1028
1469
|
/*
|
|
1029
1470
|
* Copyright (c) 2023.
|
|
1030
1471
|
* Author Peter Placzek (tada5hi)
|
|
1031
1472
|
* For the full copyright and license information,
|
|
1032
1473
|
* view the LICENSE file that was distributed with this source code.
|
|
1033
|
-
*/ var HookName
|
|
1034
|
-
(function(HookName) {
|
|
1474
|
+
*/ var HookName = /*#__PURE__*/ function(HookName) {
|
|
1035
1475
|
HookName["REQUEST"] = "request";
|
|
1036
1476
|
HookName["REQUEST_ERROR"] = "requestError";
|
|
1037
1477
|
HookName["RESPONSE"] = "response";
|
|
1038
1478
|
HookName["RESPONSE_ERROR"] = "responseError";
|
|
1039
|
-
|
|
1479
|
+
return HookName;
|
|
1480
|
+
}({});
|
|
1040
1481
|
function kindOf(input) {
|
|
1041
1482
|
return Object.prototype.toString.call(input).slice(8, -1).toLowerCase();
|
|
1042
1483
|
}
|
|
@@ -1121,30 +1562,29 @@ function isJSONSerializable(input) {
|
|
|
1121
1562
|
* Author Peter Placzek (tada5hi)
|
|
1122
1563
|
* For the full copyright and license information,
|
|
1123
1564
|
* view the LICENSE file that was distributed with this source code.
|
|
1124
|
-
*/ var AuthorizationHeaderType
|
|
1125
|
-
(function(AuthorizationHeaderType) {
|
|
1565
|
+
*/ var AuthorizationHeaderType = /*#__PURE__*/ function(AuthorizationHeaderType) {
|
|
1126
1566
|
AuthorizationHeaderType["BEARER"] = "Bearer";
|
|
1127
1567
|
AuthorizationHeaderType["BASIC"] = "Basic";
|
|
1128
1568
|
AuthorizationHeaderType["X_API_KEY"] = "X-API-Key";
|
|
1129
1569
|
AuthorizationHeaderType["API_KEY"] = "API-Key";
|
|
1130
|
-
|
|
1570
|
+
return AuthorizationHeaderType;
|
|
1571
|
+
}({});
|
|
1131
1572
|
/*
|
|
1132
1573
|
* Copyright (c) 2022.
|
|
1133
1574
|
* Author Peter Placzek (tada5hi)
|
|
1134
1575
|
* For the full copyright and license information,
|
|
1135
1576
|
* view the LICENSE file that was distributed with this source code.
|
|
1136
|
-
*/ var ErrorCode
|
|
1137
|
-
(function(ErrorCode) {
|
|
1577
|
+
*/ var ErrorCode = /*#__PURE__*/ function(ErrorCode) {
|
|
1138
1578
|
ErrorCode["AUTHORIZATION_HEADER_INVALID"] = "auth_header_invalid";
|
|
1139
1579
|
ErrorCode["AUTHORIZATION_HEADER_PARSE"] = "auth_header_parse";
|
|
1140
1580
|
ErrorCode["AUTHORIZATION_HEADER_TYPE_PARSE"] = "auth_header_type_parse";
|
|
1141
1581
|
ErrorCode["CONNECTION_ABORTED"] = "ECONNABORTED";
|
|
1142
1582
|
ErrorCode["CONNECTION_CLOSED"] = "ECONNRESET";
|
|
1143
|
-
|
|
1583
|
+
return ErrorCode;
|
|
1584
|
+
}({});
|
|
1144
1585
|
class ClientError extends BaseError {
|
|
1145
1586
|
constructor(ctx){
|
|
1146
|
-
super();
|
|
1147
|
-
this['@instanceof'] = Symbol.for('ClientError');
|
|
1587
|
+
super(), this['@instanceof'] = Symbol.for('ClientError');
|
|
1148
1588
|
this.request = ctx.request;
|
|
1149
1589
|
this.response = ctx.response;
|
|
1150
1590
|
this.code = ctx.code;
|
|
@@ -1224,12 +1664,12 @@ function stringifyAuthorizationHeader(header) {
|
|
|
1224
1664
|
* Author Peter Placzek (tada5hi)
|
|
1225
1665
|
* For the full copyright and license information,
|
|
1226
1666
|
* view the LICENSE file that was distributed with this source code.
|
|
1227
|
-
*/ var HeaderName
|
|
1228
|
-
(function(HeaderName) {
|
|
1667
|
+
*/ var HeaderName = /*#__PURE__*/ function(HeaderName) {
|
|
1229
1668
|
HeaderName["ACCEPT"] = "accept";
|
|
1230
1669
|
HeaderName["AUTHORIZATION"] = "authorization";
|
|
1231
1670
|
HeaderName["CONTENT_TYPE"] = "content-type";
|
|
1232
|
-
|
|
1671
|
+
return HeaderName;
|
|
1672
|
+
}({});
|
|
1233
1673
|
function createDefaultRequestTransformer() {
|
|
1234
1674
|
return (data, headers)=>{
|
|
1235
1675
|
if (isFormData(data)) {
|
|
@@ -1700,7 +2140,7 @@ let Client$1 = class Client {
|
|
|
1700
2140
|
function createClient(input) {
|
|
1701
2141
|
return new Client$1(input);
|
|
1702
2142
|
}
|
|
1703
|
-
function isClient(input) {
|
|
2143
|
+
function isClient$1(input) {
|
|
1704
2144
|
if (input instanceof Client$1) {
|
|
1705
2145
|
return true;
|
|
1706
2146
|
}
|
|
@@ -1729,11 +2169,11 @@ createClient();
|
|
|
1729
2169
|
class BaseAPI {
|
|
1730
2170
|
// -----------------------------------------------------------------------------------
|
|
1731
2171
|
setClient(input) {
|
|
1732
|
-
this.client = isClient(input) ? input : createClient(input);
|
|
2172
|
+
this.client = isClient$1(input) ? input : createClient(input);
|
|
1733
2173
|
}
|
|
1734
2174
|
// -----------------------------------------------------------------------------------
|
|
1735
2175
|
constructor(context){
|
|
1736
|
-
_define_property$5(this, "client",
|
|
2176
|
+
_define_property$5(this, "client", undefined);
|
|
1737
2177
|
context = context || {};
|
|
1738
2178
|
this.setClient(context.client);
|
|
1739
2179
|
}
|
|
@@ -1743,7 +2183,7 @@ class BaseAPI {
|
|
|
1743
2183
|
* Author Peter Placzek (tada5hi)
|
|
1744
2184
|
* For the full copyright and license information,
|
|
1745
2185
|
* view the LICENSE file that was distributed with this source code.
|
|
1746
|
-
*/ function asyncGeneratorStep$
|
|
2186
|
+
*/ function asyncGeneratorStep$e(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1747
2187
|
try {
|
|
1748
2188
|
var info = gen[key](arg);
|
|
1749
2189
|
var value = info.value;
|
|
@@ -1757,16 +2197,16 @@ class BaseAPI {
|
|
|
1757
2197
|
Promise.resolve(value).then(_next, _throw);
|
|
1758
2198
|
}
|
|
1759
2199
|
}
|
|
1760
|
-
function _async_to_generator$
|
|
2200
|
+
function _async_to_generator$e(fn) {
|
|
1761
2201
|
return function() {
|
|
1762
2202
|
var self = this, args = arguments;
|
|
1763
2203
|
return new Promise(function(resolve, reject) {
|
|
1764
2204
|
var gen = fn.apply(self, args);
|
|
1765
2205
|
function _next(value) {
|
|
1766
|
-
asyncGeneratorStep$
|
|
2206
|
+
asyncGeneratorStep$e(gen, resolve, reject, _next, _throw, "next", value);
|
|
1767
2207
|
}
|
|
1768
2208
|
function _throw(err) {
|
|
1769
|
-
asyncGeneratorStep$
|
|
2209
|
+
asyncGeneratorStep$e(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1770
2210
|
}
|
|
1771
2211
|
_next(undefined);
|
|
1772
2212
|
});
|
|
@@ -1775,21 +2215,21 @@ function _async_to_generator$d(fn) {
|
|
|
1775
2215
|
class MasterImageGroupAPI extends BaseAPI {
|
|
1776
2216
|
getMany(data) {
|
|
1777
2217
|
var _this = this;
|
|
1778
|
-
return _async_to_generator$
|
|
2218
|
+
return _async_to_generator$e(function*() {
|
|
1779
2219
|
const response = yield _this.client.get(`master-image-groups${rapiq.buildQuery(data)}`);
|
|
1780
2220
|
return response.data;
|
|
1781
2221
|
})();
|
|
1782
2222
|
}
|
|
1783
2223
|
getOne(id) {
|
|
1784
2224
|
var _this = this;
|
|
1785
|
-
return _async_to_generator$
|
|
2225
|
+
return _async_to_generator$e(function*() {
|
|
1786
2226
|
const response = yield _this.client.delete(`master-image-groups/${id}`);
|
|
1787
2227
|
return response.data;
|
|
1788
2228
|
})();
|
|
1789
2229
|
}
|
|
1790
2230
|
delete(id) {
|
|
1791
2231
|
var _this = this;
|
|
1792
|
-
return _async_to_generator$
|
|
2232
|
+
return _async_to_generator$e(function*() {
|
|
1793
2233
|
const response = yield _this.client.delete(`master-image-groups/${id}`);
|
|
1794
2234
|
return response.data;
|
|
1795
2235
|
})();
|
|
@@ -1800,7 +2240,7 @@ class MasterImageGroupAPI extends BaseAPI {
|
|
|
1800
2240
|
* Author Peter Placzek (tada5hi)
|
|
1801
2241
|
* For the full copyright and license information,
|
|
1802
2242
|
* view the LICENSE file that was distributed with this source code.
|
|
1803
|
-
*/ function asyncGeneratorStep$
|
|
2243
|
+
*/ function asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1804
2244
|
try {
|
|
1805
2245
|
var info = gen[key](arg);
|
|
1806
2246
|
var value = info.value;
|
|
@@ -1814,16 +2254,16 @@ class MasterImageGroupAPI extends BaseAPI {
|
|
|
1814
2254
|
Promise.resolve(value).then(_next, _throw);
|
|
1815
2255
|
}
|
|
1816
2256
|
}
|
|
1817
|
-
function _async_to_generator$
|
|
2257
|
+
function _async_to_generator$d(fn) {
|
|
1818
2258
|
return function() {
|
|
1819
2259
|
var self = this, args = arguments;
|
|
1820
2260
|
return new Promise(function(resolve, reject) {
|
|
1821
2261
|
var gen = fn.apply(self, args);
|
|
1822
2262
|
function _next(value) {
|
|
1823
|
-
asyncGeneratorStep$
|
|
2263
|
+
asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, "next", value);
|
|
1824
2264
|
}
|
|
1825
2265
|
function _throw(err) {
|
|
1826
|
-
asyncGeneratorStep$
|
|
2266
|
+
asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1827
2267
|
}
|
|
1828
2268
|
_next(undefined);
|
|
1829
2269
|
});
|
|
@@ -1860,28 +2300,28 @@ function _object_spread$3(target) {
|
|
|
1860
2300
|
class MasterImageAPI extends BaseAPI {
|
|
1861
2301
|
getMany(data) {
|
|
1862
2302
|
var _this = this;
|
|
1863
|
-
return _async_to_generator$
|
|
2303
|
+
return _async_to_generator$d(function*() {
|
|
1864
2304
|
const response = yield _this.client.get(`master-images${rapiq.buildQuery(data)}`);
|
|
1865
2305
|
return response.data;
|
|
1866
2306
|
})();
|
|
1867
2307
|
}
|
|
1868
2308
|
getOne(id, data) {
|
|
1869
2309
|
var _this = this;
|
|
1870
|
-
return _async_to_generator$
|
|
2310
|
+
return _async_to_generator$d(function*() {
|
|
1871
2311
|
const response = yield _this.client.get(`master-images/${id}${rapiq.buildQuery(data)}`);
|
|
1872
2312
|
return response.data;
|
|
1873
2313
|
})();
|
|
1874
2314
|
}
|
|
1875
2315
|
delete(id) {
|
|
1876
2316
|
var _this = this;
|
|
1877
|
-
return _async_to_generator$
|
|
2317
|
+
return _async_to_generator$d(function*() {
|
|
1878
2318
|
const response = yield _this.client.delete(`master-images/${id}`);
|
|
1879
2319
|
return response.data;
|
|
1880
2320
|
})();
|
|
1881
2321
|
}
|
|
1882
2322
|
runCommand(command, data = {}) {
|
|
1883
2323
|
var _this = this;
|
|
1884
|
-
return _async_to_generator$
|
|
2324
|
+
return _async_to_generator$d(function*() {
|
|
1885
2325
|
const actionData = _object_spread$3({
|
|
1886
2326
|
command
|
|
1887
2327
|
}, data);
|
|
@@ -1890,6 +2330,77 @@ class MasterImageAPI extends BaseAPI {
|
|
|
1890
2330
|
})();
|
|
1891
2331
|
}
|
|
1892
2332
|
}
|
|
2333
|
+
/*
|
|
2334
|
+
* Copyright (c) 2021-2024.
|
|
2335
|
+
* Author Peter Placzek (tada5hi)
|
|
2336
|
+
* For the full copyright and license information,
|
|
2337
|
+
* view the LICENSE file that was distributed with this source code.
|
|
2338
|
+
*/ function asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2339
|
+
try {
|
|
2340
|
+
var info = gen[key](arg);
|
|
2341
|
+
var value = info.value;
|
|
2342
|
+
} catch (error) {
|
|
2343
|
+
reject(error);
|
|
2344
|
+
return;
|
|
2345
|
+
}
|
|
2346
|
+
if (info.done) {
|
|
2347
|
+
resolve(value);
|
|
2348
|
+
} else {
|
|
2349
|
+
Promise.resolve(value).then(_next, _throw);
|
|
2350
|
+
}
|
|
2351
|
+
}
|
|
2352
|
+
function _async_to_generator$c(fn) {
|
|
2353
|
+
return function() {
|
|
2354
|
+
var self = this, args = arguments;
|
|
2355
|
+
return new Promise(function(resolve, reject) {
|
|
2356
|
+
var gen = fn.apply(self, args);
|
|
2357
|
+
function _next(value) {
|
|
2358
|
+
asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, "next", value);
|
|
2359
|
+
}
|
|
2360
|
+
function _throw(err) {
|
|
2361
|
+
asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, "throw", err);
|
|
2362
|
+
}
|
|
2363
|
+
_next(undefined);
|
|
2364
|
+
});
|
|
2365
|
+
};
|
|
2366
|
+
}
|
|
2367
|
+
class MasterImageEventLogAPI extends BaseAPI {
|
|
2368
|
+
getMany(options) {
|
|
2369
|
+
var _this = this;
|
|
2370
|
+
return _async_to_generator$c(function*() {
|
|
2371
|
+
const { data: response } = yield _this.client.get(`master-image-event-logs${rapiq.buildQuery(options)}`);
|
|
2372
|
+
return response;
|
|
2373
|
+
})();
|
|
2374
|
+
}
|
|
2375
|
+
getOne(id) {
|
|
2376
|
+
var _this = this;
|
|
2377
|
+
return _async_to_generator$c(function*() {
|
|
2378
|
+
const { data: response } = yield _this.client.get(`master-image-event-logs/${id}`);
|
|
2379
|
+
return response;
|
|
2380
|
+
})();
|
|
2381
|
+
}
|
|
2382
|
+
delete(id) {
|
|
2383
|
+
var _this = this;
|
|
2384
|
+
return _async_to_generator$c(function*() {
|
|
2385
|
+
const { data: response } = yield _this.client.delete(`master-image-event-logs/${id}`);
|
|
2386
|
+
return response;
|
|
2387
|
+
})();
|
|
2388
|
+
}
|
|
2389
|
+
update(id, data) {
|
|
2390
|
+
var _this = this;
|
|
2391
|
+
return _async_to_generator$c(function*() {
|
|
2392
|
+
const { data: response } = yield _this.client.post(`master-image-event-logs/${id}`, data);
|
|
2393
|
+
return response;
|
|
2394
|
+
})();
|
|
2395
|
+
}
|
|
2396
|
+
create(data) {
|
|
2397
|
+
var _this = this;
|
|
2398
|
+
return _async_to_generator$c(function*() {
|
|
2399
|
+
const { data: response } = yield _this.client.post('master-image-event-logs', data);
|
|
2400
|
+
return response;
|
|
2401
|
+
})();
|
|
2402
|
+
}
|
|
2403
|
+
}
|
|
1893
2404
|
function nullifyEmptyObjectProperties(data) {
|
|
1894
2405
|
const keys = Object.keys(data);
|
|
1895
2406
|
for(let i = 0; i < keys.length; i++){
|
|
@@ -2879,13 +3390,16 @@ class AnalysisBucketAPI extends BaseAPI {
|
|
|
2879
3390
|
}
|
|
2880
3391
|
class Client extends Client$1 {
|
|
2881
3392
|
constructor(config){
|
|
2882
|
-
super(config), _define_property(this, "masterImage",
|
|
3393
|
+
super(config), _define_property(this, "masterImage", undefined), _define_property(this, "masterImageGroup", undefined), _define_property(this, "masterImageEventLog", undefined), _define_property(this, "project", undefined), _define_property(this, "projectNode", undefined), _define_property(this, "registry", undefined), _define_property(this, "registryProject", undefined), _define_property(this, "node", undefined), _define_property(this, "analysis", undefined), _define_property(this, "analysisBucket", undefined), _define_property(this, "analysisBucketFile", undefined), _define_property(this, "analysisLog", undefined), _define_property(this, "analysisNode", undefined), _define_property(this, "analysisPermission", undefined), _define_property(this, "service", undefined);
|
|
2883
3394
|
this.masterImage = new MasterImageAPI({
|
|
2884
3395
|
client: this
|
|
2885
3396
|
});
|
|
2886
3397
|
this.masterImageGroup = new MasterImageGroupAPI({
|
|
2887
3398
|
client: this
|
|
2888
3399
|
});
|
|
3400
|
+
this.masterImageEventLog = new MasterImageEventLogAPI({
|
|
3401
|
+
client: this
|
|
3402
|
+
});
|
|
2889
3403
|
this.project = new ProjectAPI({
|
|
2890
3404
|
client: this
|
|
2891
3405
|
});
|
|
@@ -2932,7 +3446,7 @@ class Client extends Client$1 {
|
|
|
2932
3446
|
}
|
|
2933
3447
|
|
|
2934
3448
|
function setupBaseHTTPClient(app, client) {
|
|
2935
|
-
const storeCreator = clientWebKit.
|
|
3449
|
+
const storeCreator = clientWebKit.injectStoreFactory(app);
|
|
2936
3450
|
const store = storeCreator();
|
|
2937
3451
|
const { refreshToken } = clientWebKit.storeToRefs(store);
|
|
2938
3452
|
const authupClient = clientWebKit.injectHTTPClient(app);
|
|
@@ -2947,26 +3461,28 @@ function setupBaseHTTPClient(app, client) {
|
|
|
2947
3461
|
});
|
|
2948
3462
|
},
|
|
2949
3463
|
tokenCreated: (response)=>{
|
|
2950
|
-
store.
|
|
3464
|
+
store.applyTokenGrantResponse(response);
|
|
2951
3465
|
},
|
|
2952
3466
|
tokenFailed: ()=>{
|
|
2953
3467
|
store.logout();
|
|
2954
3468
|
},
|
|
2955
3469
|
timer: false
|
|
2956
3470
|
});
|
|
2957
|
-
|
|
2958
|
-
if (
|
|
2959
|
-
if (state.accessToken) {
|
|
3471
|
+
const handleAccessTokenEvent = (token)=>{
|
|
3472
|
+
if (token) {
|
|
2960
3473
|
client.setAuthorizationHeader({
|
|
2961
3474
|
type: 'Bearer',
|
|
2962
|
-
token
|
|
3475
|
+
token
|
|
2963
3476
|
});
|
|
2964
3477
|
tokenHook.mount();
|
|
2965
3478
|
} else {
|
|
2966
3479
|
client.unsetAuthorizationHeader();
|
|
2967
3480
|
tokenHook.unmount();
|
|
2968
3481
|
}
|
|
2969
|
-
}
|
|
3482
|
+
};
|
|
3483
|
+
const dispatcher = clientWebKit.injectStoreDispatcher(app);
|
|
3484
|
+
dispatcher.on(clientWebKit.StoreDispatcherEventName.ACCESS_TOKEN_UPDATED, (token)=>handleAccessTokenEvent(token));
|
|
3485
|
+
handleAccessTokenEvent(store.accessToken);
|
|
2970
3486
|
}
|
|
2971
3487
|
|
|
2972
3488
|
const symbol$1 = Symbol.for('FCoreHTTPClient');
|
|
@@ -3041,18 +3557,15 @@ function injectSocketManager(app) {
|
|
|
3041
3557
|
}
|
|
3042
3558
|
|
|
3043
3559
|
function installSocketManager(app, options) {
|
|
3044
|
-
const store = clientWebKit.
|
|
3560
|
+
const store = clientWebKit.injectStore();
|
|
3045
3561
|
const { accessToken } = clientWebKit.storeToRefs(store);
|
|
3046
3562
|
const manager = new coreRealtimeKit.ClientManager({
|
|
3047
3563
|
url: options.baseURL,
|
|
3048
3564
|
token: ()=>accessToken.value
|
|
3049
3565
|
});
|
|
3050
|
-
const
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
oldValue.value = state.accessToken;
|
|
3054
|
-
Promise.resolve().then(()=>manager.reconnect());
|
|
3055
|
-
}
|
|
3566
|
+
const storeDispatcher = clientWebKit.injectStoreDispatcher();
|
|
3567
|
+
storeDispatcher.on(clientWebKit.StoreDispatcherEventName.ACCESS_TOKEN_UPDATED, ()=>{
|
|
3568
|
+
Promise.resolve().then(()=>manager.reconnect());
|
|
3056
3569
|
});
|
|
3057
3570
|
provideSocketManager(manager, app);
|
|
3058
3571
|
}
|
|
@@ -3065,7 +3578,7 @@ function createEntitySocket(ctx) {
|
|
|
3065
3578
|
};
|
|
3066
3579
|
}
|
|
3067
3580
|
const socketManager = injectSocketManager();
|
|
3068
|
-
const store = clientWebKit.
|
|
3581
|
+
const store = clientWebKit.injectStore();
|
|
3069
3582
|
const storeRefs = clientWebKit.storeToRefs(store);
|
|
3070
3583
|
const realmId = vue.computed(()=>{
|
|
3071
3584
|
if (storeRefs.realmName.value === coreKit$1.REALM_MASTER_NAME) {
|
|
@@ -3171,8 +3684,7 @@ function createEntitySocket(ctx) {
|
|
|
3171
3684
|
vue.onUnmounted(()=>unmount());
|
|
3172
3685
|
vue.watch(targetId, (val, oldValue)=>{
|
|
3173
3686
|
if (val !== oldValue) {
|
|
3174
|
-
unmount();
|
|
3175
|
-
mount();
|
|
3687
|
+
Promise.resolve().then(()=>unmount()).then(()=>mount());
|
|
3176
3688
|
}
|
|
3177
3689
|
});
|
|
3178
3690
|
return {
|
|
@@ -3270,18 +3782,28 @@ function createList(context) {
|
|
|
3270
3782
|
busy.value = false;
|
|
3271
3783
|
meta.value.busy = false;
|
|
3272
3784
|
}
|
|
3273
|
-
if (context.loadAll
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3785
|
+
if (context.loadAll) {
|
|
3786
|
+
if (total.value > data.value.length) {
|
|
3787
|
+
await load({
|
|
3788
|
+
...meta.value,
|
|
3789
|
+
pagination: {
|
|
3790
|
+
...meta.value.pagination,
|
|
3791
|
+
offset: (meta.value.pagination?.offset ?? 0) + (meta.value.pagination?.limit ?? 0)
|
|
3792
|
+
}
|
|
3793
|
+
});
|
|
3794
|
+
return;
|
|
3795
|
+
}
|
|
3796
|
+
if (context.onLoaded) {
|
|
3797
|
+
context.onLoaded(meta.value);
|
|
3798
|
+
}
|
|
3799
|
+
return;
|
|
3800
|
+
}
|
|
3801
|
+
if (context.onLoaded) {
|
|
3802
|
+
context.onLoaded(meta.value);
|
|
3281
3803
|
}
|
|
3282
3804
|
}
|
|
3283
3805
|
const handleCreated = buildListCreatedHandler(data, (cbEntity)=>{
|
|
3284
|
-
total.value
|
|
3806
|
+
total.value++;
|
|
3285
3807
|
if (context.onCreated) {
|
|
3286
3808
|
context.onCreated(cbEntity, meta.value);
|
|
3287
3809
|
}
|
|
@@ -3321,21 +3843,13 @@ function createList(context) {
|
|
|
3321
3843
|
total: total.value
|
|
3322
3844
|
},
|
|
3323
3845
|
onCreated (value) {
|
|
3324
|
-
|
|
3325
|
-
context.setup.emit('created', value);
|
|
3326
|
-
}
|
|
3327
|
-
total.value++;
|
|
3846
|
+
handleCreated(value);
|
|
3328
3847
|
},
|
|
3329
3848
|
onDeleted (value) {
|
|
3330
|
-
|
|
3331
|
-
context.setup.emit('deleted', value);
|
|
3332
|
-
}
|
|
3333
|
-
total.value--;
|
|
3849
|
+
handleDeleted(value);
|
|
3334
3850
|
},
|
|
3335
3851
|
onUpdated: (value)=>{
|
|
3336
|
-
|
|
3337
|
-
context.setup.emit('updated', value);
|
|
3338
|
-
}
|
|
3852
|
+
handleUpdated(value);
|
|
3339
3853
|
},
|
|
3340
3854
|
slotItems: context.setup.slots || {}
|
|
3341
3855
|
});
|
|
@@ -3398,8 +3912,7 @@ function createList(context) {
|
|
|
3398
3912
|
};
|
|
3399
3913
|
}
|
|
3400
3914
|
|
|
3401
|
-
|
|
3402
|
-
(function(EntityListSlotName) {
|
|
3915
|
+
var EntityListSlotName = /*#__PURE__*/ function(EntityListSlotName) {
|
|
3403
3916
|
EntityListSlotName[EntityListSlotName["DEFAULT"] = listControls.SlotName.DEFAULT] = "DEFAULT";
|
|
3404
3917
|
EntityListSlotName[EntityListSlotName["BODY"] = listControls.SlotName.BODY] = "BODY";
|
|
3405
3918
|
EntityListSlotName[EntityListSlotName["ITEM"] = listControls.SlotName.ITEM] = "ITEM";
|
|
@@ -3409,7 +3922,8 @@ exports.EntityListSlotName = void 0;
|
|
|
3409
3922
|
EntityListSlotName[EntityListSlotName["FOOTER"] = listControls.SlotName.FOOTER] = "FOOTER";
|
|
3410
3923
|
EntityListSlotName[EntityListSlotName["NO_MORE"] = listControls.SlotName.NO_MORE] = "NO_MORE";
|
|
3411
3924
|
EntityListSlotName[EntityListSlotName["LOADING"] = listControls.SlotName.LOADING] = "LOADING";
|
|
3412
|
-
|
|
3925
|
+
return EntityListSlotName;
|
|
3926
|
+
}({});
|
|
3413
3927
|
|
|
3414
3928
|
/*
|
|
3415
3929
|
* Copyright (c) 2023-2024.
|
|
@@ -3816,109 +4330,6 @@ function createEntityManager(ctx) {
|
|
|
3816
4330
|
};
|
|
3817
4331
|
}
|
|
3818
4332
|
|
|
3819
|
-
/*
|
|
3820
|
-
* Copyright (c) 2024-2024.
|
|
3821
|
-
* Author Peter Placzek (tada5hi)
|
|
3822
|
-
* For the full copyright and license information,
|
|
3823
|
-
* view the LICENSE file that was distributed with this source code.
|
|
3824
|
-
*/ const BRACKET_NUMBER_REGEX = RegExp("(?<!\\\\)\\[(\\d+)]$");
|
|
3825
|
-
/**
|
|
3826
|
-
* Convert string to property path array.
|
|
3827
|
-
*
|
|
3828
|
-
* @see https://github.com/lodash/lodash/blob/main/src/.internal/stringToPath.ts
|
|
3829
|
-
* @see https://github.com/chaijs/pathval
|
|
3830
|
-
*
|
|
3831
|
-
* @param segment
|
|
3832
|
-
*/ function pathToArray(segment) {
|
|
3833
|
-
const str = segment.replace(/([^\\])\[/g, '$1.[');
|
|
3834
|
-
const parts = str.match(/(\\\.|[^.]+?)+/g);
|
|
3835
|
-
if (!parts) {
|
|
3836
|
-
return [];
|
|
3837
|
-
}
|
|
3838
|
-
const result = [];
|
|
3839
|
-
for(let i = 0; i < parts.length; i++){
|
|
3840
|
-
if (parts[i] === 'constructor' || parts[i] === '__proto__' || parts[i] === 'prototype') {
|
|
3841
|
-
continue;
|
|
3842
|
-
}
|
|
3843
|
-
const regex = BRACKET_NUMBER_REGEX.exec(parts[i]);
|
|
3844
|
-
if (regex) {
|
|
3845
|
-
result.push(regex[1]);
|
|
3846
|
-
} else {
|
|
3847
|
-
result.push(parts[i].replace(/\\([.[\]])/g, '$1'));
|
|
3848
|
-
}
|
|
3849
|
-
}
|
|
3850
|
-
return result;
|
|
3851
|
-
}
|
|
3852
|
-
/*
|
|
3853
|
-
* Copyright (c) 2024.
|
|
3854
|
-
* Author Peter Placzek (tada5hi)
|
|
3855
|
-
* For the full copyright and license information,
|
|
3856
|
-
* view the LICENSE file that was distributed with this source code.
|
|
3857
|
-
*/ var Character;
|
|
3858
|
-
(function(Character) {
|
|
3859
|
-
Character["WILDCARD"] = "*";
|
|
3860
|
-
Character["GLOBSTAR"] = "**";
|
|
3861
|
-
})(Character || (Character = {}));
|
|
3862
|
-
/*
|
|
3863
|
-
* Copyright (c) 2024.
|
|
3864
|
-
* Author Peter Placzek (tada5hi)
|
|
3865
|
-
* For the full copyright and license information,
|
|
3866
|
-
* view the LICENSE file that was distributed with this source code.
|
|
3867
|
-
*/ function isObject(input) {
|
|
3868
|
-
return !!input && typeof input === 'object' && !Array.isArray(input);
|
|
3869
|
-
}
|
|
3870
|
-
function getPathValue(data, path) {
|
|
3871
|
-
const parts = Array.isArray(path) ? path : pathToArray(path);
|
|
3872
|
-
let res;
|
|
3873
|
-
let temp = data;
|
|
3874
|
-
let index = 0;
|
|
3875
|
-
while(index < parts.length){
|
|
3876
|
-
if (temp === null || typeof temp === 'undefined') {
|
|
3877
|
-
break;
|
|
3878
|
-
}
|
|
3879
|
-
if (parts[index] in Object(temp)) {
|
|
3880
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3881
|
-
// @ts-expect-error
|
|
3882
|
-
temp = temp[parts[index]];
|
|
3883
|
-
} else {
|
|
3884
|
-
break;
|
|
3885
|
-
}
|
|
3886
|
-
if (index === parts.length - 1) {
|
|
3887
|
-
res = temp;
|
|
3888
|
-
}
|
|
3889
|
-
index++;
|
|
3890
|
-
}
|
|
3891
|
-
return res;
|
|
3892
|
-
}
|
|
3893
|
-
const NUMBER_REGEX = /^\d+$/;
|
|
3894
|
-
function setPathValue(data, path, value) {
|
|
3895
|
-
const parts = Array.isArray(path) ? path : pathToArray(path);
|
|
3896
|
-
let temp = data;
|
|
3897
|
-
let index = 0;
|
|
3898
|
-
while(index < parts.length){
|
|
3899
|
-
/* istanbul ignore next */ if (!Array.isArray(temp) && !isObject(temp)) {
|
|
3900
|
-
break;
|
|
3901
|
-
}
|
|
3902
|
-
const key = parts[index];
|
|
3903
|
-
// [foo, '0']
|
|
3904
|
-
if (typeof temp[key] === 'undefined') {
|
|
3905
|
-
const match = NUMBER_REGEX.test(key);
|
|
3906
|
-
if (match) {
|
|
3907
|
-
temp[key] = [];
|
|
3908
|
-
} else {
|
|
3909
|
-
temp[key] = {};
|
|
3910
|
-
}
|
|
3911
|
-
}
|
|
3912
|
-
if (index === parts.length - 1) {
|
|
3913
|
-
temp[key] = value;
|
|
3914
|
-
break;
|
|
3915
|
-
}
|
|
3916
|
-
index++;
|
|
3917
|
-
temp = temp[key];
|
|
3918
|
-
}
|
|
3919
|
-
return data;
|
|
3920
|
-
}
|
|
3921
|
-
|
|
3922
4333
|
class MemoryStore {
|
|
3923
4334
|
async get(context) {
|
|
3924
4335
|
if (!this.data[context.locale] || !this.data[context.locale][context.group]) {
|
|
@@ -4146,7 +4557,7 @@ var FMasterImagePicker = vue.defineComponent({
|
|
|
4146
4557
|
ref: itemListNode,
|
|
4147
4558
|
query: imageQuery.value
|
|
4148
4559
|
}, {
|
|
4149
|
-
[
|
|
4560
|
+
[EntityListSlotName.BODY]: (props)=>{
|
|
4150
4561
|
const options = props.data.map((entity)=>({
|
|
4151
4562
|
id: entity.id,
|
|
4152
4563
|
value: entity.name
|
|
@@ -4189,7 +4600,7 @@ var FMasterImagePicker = vue.defineComponent({
|
|
|
4189
4600
|
class: 'col'
|
|
4190
4601
|
}, [
|
|
4191
4602
|
vue.h(MasterImageGroupList, {}, {
|
|
4192
|
-
[
|
|
4603
|
+
[EntityListSlotName.BODY]: (props)=>{
|
|
4193
4604
|
const options = props.data.map((entity)=>({
|
|
4194
4605
|
id: entity.virtual_path,
|
|
4195
4606
|
value: entity.virtual_path
|
|
@@ -4225,12 +4636,18 @@ var FMasterImagePicker = vue.defineComponent({
|
|
|
4225
4636
|
}
|
|
4226
4637
|
});
|
|
4227
4638
|
|
|
4228
|
-
|
|
4229
|
-
(
|
|
4639
|
+
/*
|
|
4640
|
+
* Copyright (c) 2024.
|
|
4641
|
+
* Author Peter Placzek (tada5hi)
|
|
4642
|
+
* For the full copyright and license information,
|
|
4643
|
+
* view the LICENSE file that was distributed with this source code.
|
|
4644
|
+
*/ var ElementType = /*#__PURE__*/ function(ElementType) {
|
|
4230
4645
|
ElementType["BUTTON"] = "button";
|
|
4231
4646
|
ElementType["LINK"] = "link";
|
|
4232
4647
|
ElementType["DROP_DOWN_ITEM"] = "dropDownItem";
|
|
4233
|
-
|
|
4648
|
+
return ElementType;
|
|
4649
|
+
}({});
|
|
4650
|
+
|
|
4234
4651
|
var FEntityDelete = vue.defineComponent({
|
|
4235
4652
|
name: 'FEntityDelete',
|
|
4236
4653
|
props: {
|
|
@@ -4244,7 +4661,7 @@ var FEntityDelete = vue.defineComponent({
|
|
|
4244
4661
|
},
|
|
4245
4662
|
elementType: {
|
|
4246
4663
|
type: String,
|
|
4247
|
-
default:
|
|
4664
|
+
default: `${ElementType.BUTTON}`
|
|
4248
4665
|
},
|
|
4249
4666
|
entityId: {
|
|
4250
4667
|
type: String,
|
|
@@ -4294,10 +4711,10 @@ var FEntityDelete = vue.defineComponent({
|
|
|
4294
4711
|
let tag = 'button';
|
|
4295
4712
|
const data = {};
|
|
4296
4713
|
switch(props.elementType){
|
|
4297
|
-
case
|
|
4714
|
+
case ElementType.LINK:
|
|
4298
4715
|
tag = 'a';
|
|
4299
4716
|
break;
|
|
4300
|
-
case
|
|
4717
|
+
case ElementType.DROP_DOWN_ITEM:
|
|
4301
4718
|
if (instance && typeof instance.appContext.app.component('BDropdownItem') !== 'undefined') {
|
|
4302
4719
|
tag = vue.resolveDynamicComponent('BDropdownItem');
|
|
4303
4720
|
}
|
|
@@ -4364,54 +4781,177 @@ var FMasterImagesSync = vue.defineComponent({
|
|
|
4364
4781
|
if (itemList.value) {
|
|
4365
4782
|
itemList.value.handleDeleted(data.id);
|
|
4366
4783
|
}
|
|
4367
|
-
};
|
|
4368
|
-
return ()=>vue.h('div', [
|
|
4369
|
-
vue.h('
|
|
4370
|
-
|
|
4371
|
-
|
|
4784
|
+
};
|
|
4785
|
+
return ()=>vue.h('div', [
|
|
4786
|
+
vue.h('div', {
|
|
4787
|
+
class: 'mb-1'
|
|
4788
|
+
}, [
|
|
4789
|
+
vue.h('button', {
|
|
4790
|
+
type: 'button',
|
|
4791
|
+
disabled: busy.value,
|
|
4792
|
+
class: 'btn btn-xs btn-success',
|
|
4793
|
+
onClick (event) {
|
|
4794
|
+
event.preventDefault();
|
|
4795
|
+
return syncMasterImages();
|
|
4796
|
+
}
|
|
4797
|
+
}, [
|
|
4798
|
+
vue.h('i', {
|
|
4799
|
+
class: 'fa fa-sync me-1'
|
|
4800
|
+
}),
|
|
4801
|
+
'Sync'
|
|
4802
|
+
])
|
|
4803
|
+
]),
|
|
4804
|
+
vue.h(MasterImageList, {
|
|
4805
|
+
ref: itemList
|
|
4806
|
+
}, {
|
|
4807
|
+
[EntityListSlotName.ITEM_ACTIONS]: (props)=>vue.h(FEntityDelete, {
|
|
4808
|
+
class: 'btn btn-xs btn-danger',
|
|
4809
|
+
elementType: 'button',
|
|
4810
|
+
entityId: props.data.id,
|
|
4811
|
+
entityType: coreKit.DomainType.MASTER_IMAGE,
|
|
4812
|
+
withText: false,
|
|
4813
|
+
onDeleted (item) {
|
|
4814
|
+
return handleDeleted(item);
|
|
4815
|
+
}
|
|
4816
|
+
})
|
|
4817
|
+
})
|
|
4818
|
+
]);
|
|
4819
|
+
}
|
|
4820
|
+
});
|
|
4821
|
+
|
|
4822
|
+
var FMasterImageEventLog = vue.defineComponent({
|
|
4823
|
+
props: {
|
|
4824
|
+
index: {
|
|
4825
|
+
type: Number,
|
|
4826
|
+
default: 0
|
|
4827
|
+
},
|
|
4828
|
+
entity: {
|
|
4829
|
+
type: Object,
|
|
4830
|
+
required: true
|
|
4831
|
+
}
|
|
4832
|
+
},
|
|
4833
|
+
setup (props) {
|
|
4834
|
+
const entity = vue.toRef(props, 'entity');
|
|
4835
|
+
const message = [
|
|
4836
|
+
'Event '
|
|
4837
|
+
];
|
|
4838
|
+
message.push(vue.h('strong', `${entity.value.name}`));
|
|
4839
|
+
if (entity.value.master_image) {
|
|
4840
|
+
message.push(vue.h('span', {
|
|
4841
|
+
class: 'ms-1'
|
|
4842
|
+
}, [
|
|
4843
|
+
`(${entity.value.master_image.virtual_path})`
|
|
4844
|
+
]));
|
|
4845
|
+
}
|
|
4846
|
+
message.push(' triggered.');
|
|
4847
|
+
// todo: render entity.value.data depending on event name
|
|
4848
|
+
return ()=>vue.h('div', {
|
|
4849
|
+
class: `line line-${props.index + 1}`
|
|
4850
|
+
}, [
|
|
4851
|
+
vue.h('div', {
|
|
4852
|
+
class: 'd-flex flex-row'
|
|
4853
|
+
}, [
|
|
4854
|
+
vue.h('div', {
|
|
4855
|
+
class: 'line-number'
|
|
4856
|
+
}, [
|
|
4857
|
+
props.index + 1
|
|
4858
|
+
]),
|
|
4859
|
+
vue.h('div', {
|
|
4860
|
+
class: 'line-content d-flex flex-row'
|
|
4861
|
+
}, [
|
|
4862
|
+
vue.h('div', {
|
|
4863
|
+
class: [
|
|
4864
|
+
'line-message'
|
|
4865
|
+
]
|
|
4866
|
+
}, [
|
|
4867
|
+
message
|
|
4868
|
+
]),
|
|
4869
|
+
vue.h('div', {
|
|
4870
|
+
class: 'ms-auto'
|
|
4871
|
+
}, [
|
|
4872
|
+
vue.h(timeago.VCTimeago, {
|
|
4873
|
+
datetime: entity.value.created_at
|
|
4874
|
+
})
|
|
4875
|
+
])
|
|
4876
|
+
])
|
|
4877
|
+
])
|
|
4878
|
+
]);
|
|
4879
|
+
}
|
|
4880
|
+
});
|
|
4881
|
+
|
|
4882
|
+
var FMasterImageEventLogs = vue.defineComponent({
|
|
4883
|
+
setup (props, setup) {
|
|
4884
|
+
const rootNode = vue.ref(null);
|
|
4885
|
+
const scrollToLastLine = (meta)=>{
|
|
4886
|
+
if (!rootNode.value) {
|
|
4887
|
+
return;
|
|
4888
|
+
}
|
|
4889
|
+
const el = rootNode.value.getElementsByClassName(`line-${meta.total}`)[0];
|
|
4890
|
+
if (el) {
|
|
4891
|
+
el.scrollIntoView({
|
|
4892
|
+
behavior: 'smooth'
|
|
4893
|
+
});
|
|
4894
|
+
}
|
|
4895
|
+
};
|
|
4896
|
+
const { render, setDefaults } = createList({
|
|
4897
|
+
type: `${coreKit.DomainType.MASTER_IMAGE_EVENT_LOG}`,
|
|
4898
|
+
onCreated (_entity, meta) {
|
|
4899
|
+
scrollToLastLine(meta);
|
|
4900
|
+
},
|
|
4901
|
+
onLoaded (meta) {
|
|
4902
|
+
vue.nextTick(()=>{
|
|
4903
|
+
scrollToLastLine(meta);
|
|
4904
|
+
});
|
|
4905
|
+
},
|
|
4906
|
+
socket: {
|
|
4907
|
+
processEvent (event) {
|
|
4908
|
+
return event.meta.roomName !== coreKit.buildDomainChannelName(coreKit.DomainType.MASTER_IMAGE_EVENT_LOG);
|
|
4909
|
+
}
|
|
4910
|
+
},
|
|
4911
|
+
props,
|
|
4912
|
+
setup,
|
|
4913
|
+
loadAll: true,
|
|
4914
|
+
query: {
|
|
4915
|
+
sort: {
|
|
4916
|
+
created_at: 'ASC'
|
|
4917
|
+
},
|
|
4918
|
+
relations: {
|
|
4919
|
+
master_image: true
|
|
4920
|
+
}
|
|
4921
|
+
}
|
|
4922
|
+
});
|
|
4923
|
+
setDefaults({
|
|
4924
|
+
noMore: {
|
|
4925
|
+
content: 'No more logs available...'
|
|
4926
|
+
},
|
|
4927
|
+
item: {
|
|
4928
|
+
content (item, slotProps) {
|
|
4929
|
+
return vue.h(FMasterImageEventLog, {
|
|
4930
|
+
entity: item,
|
|
4931
|
+
index: slotProps.index,
|
|
4932
|
+
onDeleted () {
|
|
4933
|
+
if (slotProps && slotProps.deleted) {
|
|
4934
|
+
slotProps.deleted(item);
|
|
4935
|
+
}
|
|
4936
|
+
},
|
|
4937
|
+
onUpdated: (e)=>{
|
|
4938
|
+
if (slotProps && slotProps.updated) {
|
|
4939
|
+
slotProps.updated(e);
|
|
4940
|
+
}
|
|
4941
|
+
}
|
|
4942
|
+
});
|
|
4943
|
+
}
|
|
4944
|
+
}
|
|
4945
|
+
});
|
|
4946
|
+
return ()=>vue.h('div', {
|
|
4947
|
+
ref: rootNode,
|
|
4948
|
+
class: 'log-container'
|
|
4949
|
+
}, [
|
|
4372
4950
|
vue.h('div', {
|
|
4373
|
-
class: '
|
|
4951
|
+
class: 'log-body'
|
|
4374
4952
|
}, [
|
|
4375
|
-
|
|
4376
|
-
|
|
4377
|
-
disabled: busy.value,
|
|
4378
|
-
class: 'btn btn-xs btn-success',
|
|
4379
|
-
onClick (event) {
|
|
4380
|
-
event.preventDefault();
|
|
4381
|
-
return syncMasterImages();
|
|
4382
|
-
}
|
|
4383
|
-
}, [
|
|
4384
|
-
vue.h('i', {
|
|
4385
|
-
class: 'fa fa-sync me-1'
|
|
4386
|
-
}),
|
|
4387
|
-
'Sync'
|
|
4388
|
-
])
|
|
4389
|
-
]),
|
|
4390
|
-
vue.h(MasterImageList, {
|
|
4391
|
-
ref: itemList,
|
|
4392
|
-
scopedSlots: {
|
|
4393
|
-
[exports.EntityListSlotName.HEADER]: (props)=>[
|
|
4394
|
-
vue.h(clientWebKit.ASearch, {
|
|
4395
|
-
load: props.load,
|
|
4396
|
-
meta: props.meta,
|
|
4397
|
-
busy: props.busy
|
|
4398
|
-
}),
|
|
4399
|
-
vue.h('strong', [
|
|
4400
|
-
'Overview'
|
|
4401
|
-
])
|
|
4402
|
-
],
|
|
4403
|
-
[exports.EntityListSlotName.ITEM_ACTIONS]: (props)=>vue.h(FEntityDelete, {
|
|
4404
|
-
class: 'btn btn-xs btn-danger',
|
|
4405
|
-
elementType: 'button',
|
|
4406
|
-
entityId: props.data.id,
|
|
4407
|
-
entityType: coreKit.DomainType.MASTER_IMAGE,
|
|
4408
|
-
withText: false,
|
|
4409
|
-
onDeleted (item) {
|
|
4410
|
-
return handleDeleted(item);
|
|
4411
|
-
}
|
|
4412
|
-
})
|
|
4413
|
-
}
|
|
4414
|
-
})
|
|
4953
|
+
render()
|
|
4954
|
+
])
|
|
4415
4955
|
]);
|
|
4416
4956
|
}
|
|
4417
4957
|
});
|
|
@@ -4556,7 +5096,9 @@ const FProjectNodeApprovalCommand = vue.defineComponent({
|
|
|
4556
5096
|
emit('failed', e);
|
|
4557
5097
|
}
|
|
4558
5098
|
});
|
|
4559
|
-
const isAllowed = clientWebKit.
|
|
5099
|
+
const isAllowed = clientWebKit.usePermissionCheck({
|
|
5100
|
+
name: PermissionName.PROJECT_APPROVE
|
|
5101
|
+
});
|
|
4560
5102
|
return ()=>renderActionCommand({
|
|
4561
5103
|
execute,
|
|
4562
5104
|
elementType: props.elementType,
|
|
@@ -4676,16 +5218,6 @@ var FProjectNodeAssignAction = vue.defineComponent({
|
|
|
4676
5218
|
}
|
|
4677
5219
|
});
|
|
4678
5220
|
|
|
4679
|
-
var Direction$3;
|
|
4680
|
-
(function(Direction) {
|
|
4681
|
-
Direction["IN"] = "in";
|
|
4682
|
-
Direction["OUT"] = "out";
|
|
4683
|
-
})(Direction$3 || (Direction$3 = {}));
|
|
4684
|
-
var Target$1;
|
|
4685
|
-
(function(Target) {
|
|
4686
|
-
Target["PROJECT"] = "project";
|
|
4687
|
-
Target["NODE"] = "node";
|
|
4688
|
-
})(Target$1 || (Target$1 = {}));
|
|
4689
5221
|
var FProjectNode = vue.defineComponent({
|
|
4690
5222
|
props: {
|
|
4691
5223
|
entity: {
|
|
@@ -4778,11 +5310,6 @@ var FProjectNode = vue.defineComponent({
|
|
|
4778
5310
|
}
|
|
4779
5311
|
});
|
|
4780
5312
|
|
|
4781
|
-
var Direction$2;
|
|
4782
|
-
(function(Direction) {
|
|
4783
|
-
Direction["IN"] = "in";
|
|
4784
|
-
Direction["OUT"] = "out";
|
|
4785
|
-
})(Direction$2 || (Direction$2 = {}));
|
|
4786
5313
|
var FProjectNodes = vue.defineComponent({
|
|
4787
5314
|
props: {
|
|
4788
5315
|
...defineListProps(),
|
|
@@ -4799,7 +5326,7 @@ var FProjectNodes = vue.defineComponent({
|
|
|
4799
5326
|
},
|
|
4800
5327
|
direction: {
|
|
4801
5328
|
type: String,
|
|
4802
|
-
default: "out"
|
|
5329
|
+
default: `${"out"}`
|
|
4803
5330
|
},
|
|
4804
5331
|
includeNode: {
|
|
4805
5332
|
type: Boolean,
|
|
@@ -5056,7 +5583,7 @@ const FProjectInForm = vue.defineComponent({
|
|
|
5056
5583
|
}
|
|
5057
5584
|
});
|
|
5058
5585
|
|
|
5059
|
-
var _sfc_main$
|
|
5586
|
+
var _sfc_main$h = vue.defineComponent({
|
|
5060
5587
|
components: {
|
|
5061
5588
|
BModal: bootstrapVueNext.BModal,
|
|
5062
5589
|
FProjectInForm,
|
|
@@ -5103,99 +5630,56 @@ var _sfc_main$f = vue.defineComponent({
|
|
|
5103
5630
|
}
|
|
5104
5631
|
});
|
|
5105
5632
|
|
|
5106
|
-
const _hoisted_1$
|
|
5633
|
+
const _hoisted_1$f = {
|
|
5107
5634
|
class: "d-flex flex-column gap-1 w-100"
|
|
5108
5635
|
};
|
|
5109
|
-
const _hoisted_2$
|
|
5636
|
+
const _hoisted_2$e = {
|
|
5110
5637
|
class: "w-100"
|
|
5111
5638
|
};
|
|
5112
|
-
const _hoisted_3$
|
|
5639
|
+
const _hoisted_3$c = {
|
|
5113
5640
|
class: "d-flex flex-row align-items-center"
|
|
5114
5641
|
};
|
|
5115
|
-
const _hoisted_4$c =
|
|
5116
|
-
class: "fas fa-project-diagram me-1"
|
|
5117
|
-
}, null, -1);
|
|
5118
|
-
const _hoisted_5$a = {
|
|
5642
|
+
const _hoisted_4$c = {
|
|
5119
5643
|
class: "ms-auto d-flex flex-row gap-1"
|
|
5120
5644
|
};
|
|
5121
|
-
const
|
|
5122
|
-
class: "fa fa-bars"
|
|
5123
|
-
}, null, -1);
|
|
5124
|
-
const _hoisted_7$6 = /* @__PURE__ */ vue.createElementVNode("i", {
|
|
5125
|
-
class: "fa fa-comment-alt"
|
|
5126
|
-
}, null, -1);
|
|
5127
|
-
const _hoisted_8$6 = [
|
|
5128
|
-
_hoisted_7$6
|
|
5129
|
-
];
|
|
5130
|
-
const _hoisted_9$6 = {
|
|
5645
|
+
const _hoisted_5$8 = {
|
|
5131
5646
|
class: "row"
|
|
5132
5647
|
};
|
|
5133
|
-
const
|
|
5648
|
+
const _hoisted_6$7 = {
|
|
5134
5649
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
5135
5650
|
};
|
|
5136
|
-
const
|
|
5137
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, [
|
|
5138
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
5139
|
-
class: "fa-solid fa-server"
|
|
5140
|
-
}),
|
|
5141
|
-
/* @__PURE__ */ vue.createTextVNode(" Node")
|
|
5142
|
-
])
|
|
5143
|
-
], -1);
|
|
5144
|
-
const _hoisted_12$4 = {
|
|
5651
|
+
const _hoisted_7$6 = {
|
|
5145
5652
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
5146
5653
|
};
|
|
5147
|
-
const
|
|
5148
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, [
|
|
5149
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
5150
|
-
class: "fa-solid fa-heartbeat"
|
|
5151
|
-
}),
|
|
5152
|
-
/* @__PURE__ */ vue.createTextVNode(" Status")
|
|
5153
|
-
])
|
|
5154
|
-
], -1);
|
|
5155
|
-
const _hoisted_14$3 = {
|
|
5654
|
+
const _hoisted_8$6 = {
|
|
5156
5655
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
5157
5656
|
};
|
|
5158
|
-
const
|
|
5159
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, [
|
|
5160
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
5161
|
-
class: "fa-solid fa-user"
|
|
5162
|
-
}),
|
|
5163
|
-
/* @__PURE__ */ vue.createTextVNode(" Creator")
|
|
5164
|
-
])
|
|
5165
|
-
], -1);
|
|
5166
|
-
const _hoisted_16$3 = {
|
|
5657
|
+
const _hoisted_9$4 = {
|
|
5167
5658
|
class: "d-flex flex-row"
|
|
5168
5659
|
};
|
|
5169
|
-
const
|
|
5660
|
+
const _hoisted_10$4 = {
|
|
5170
5661
|
class: ""
|
|
5171
5662
|
};
|
|
5172
|
-
const
|
|
5173
|
-
class: "text-muted"
|
|
5174
|
-
}, " created ", -1);
|
|
5175
|
-
const _hoisted_19$1 = {
|
|
5663
|
+
const _hoisted_11$3 = {
|
|
5176
5664
|
class: "ms-auto"
|
|
5177
5665
|
};
|
|
5178
|
-
|
|
5179
|
-
class: "text-muted"
|
|
5180
|
-
}, " updated ", -1);
|
|
5181
|
-
const _hoisted_21$1 = /* @__PURE__ */ vue.createElementVNode("i", {
|
|
5182
|
-
class: "fas fa-file-import"
|
|
5183
|
-
}, null, -1);
|
|
5184
|
-
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5666
|
+
function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5185
5667
|
const _component_VCLink = vue.resolveComponent("VCLink");
|
|
5186
5668
|
const _component_FProjectNodeApprovalCommand = vue.resolveComponent("FProjectNodeApprovalCommand");
|
|
5187
5669
|
const _component_FProjectNodeApprovalStatus = vue.resolveComponent("FProjectNodeApprovalStatus");
|
|
5188
5670
|
const _component_VCTimeago = vue.resolveComponent("VCTimeago");
|
|
5189
5671
|
const _component_FProjectInForm = vue.resolveComponent("FProjectInForm");
|
|
5190
5672
|
const _component_BModal = vue.resolveComponent("BModal");
|
|
5191
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
5192
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
5193
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
5673
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
|
|
5674
|
+
vue.createElementVNode("div", _hoisted_2$e, [
|
|
5675
|
+
vue.createElementVNode("div", _hoisted_3$c, [
|
|
5194
5676
|
vue.createElementVNode("div", null, [
|
|
5195
5677
|
vue.renderSlot(_ctx.$slots, "title", {
|
|
5196
5678
|
data: _ctx.entity
|
|
5197
5679
|
}, ()=>[
|
|
5198
|
-
|
|
5680
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("i", {
|
|
5681
|
+
class: "fas fa-project-diagram me-1"
|
|
5682
|
+
}, null, -1)),
|
|
5199
5683
|
vue.createVNode(_component_VCLink, {
|
|
5200
5684
|
to: "/projects/" + _ctx.entity.project.id,
|
|
5201
5685
|
class: "mb-0"
|
|
@@ -5209,7 +5693,7 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5209
5693
|
])
|
|
5210
5694
|
])
|
|
5211
5695
|
]),
|
|
5212
|
-
vue.createElementVNode("div",
|
|
5696
|
+
vue.createElementVNode("div", _hoisted_4$c, [
|
|
5213
5697
|
vue.renderSlot(_ctx.$slots, "itemActions", {
|
|
5214
5698
|
data: _ctx.entity
|
|
5215
5699
|
}, ()=>[
|
|
@@ -5218,9 +5702,11 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5218
5702
|
disabled: _ctx.busy,
|
|
5219
5703
|
class: "btn btn-xs btn-dark"
|
|
5220
5704
|
}, {
|
|
5221
|
-
default: vue.withCtx(()=>[
|
|
5222
|
-
|
|
5223
|
-
|
|
5705
|
+
default: vue.withCtx(()=>_cache[3] || (_cache[3] = [
|
|
5706
|
+
vue.createElementVNode("i", {
|
|
5707
|
+
class: "fa fa-bars"
|
|
5708
|
+
}, null, -1)
|
|
5709
|
+
])),
|
|
5224
5710
|
_: 1
|
|
5225
5711
|
}, 8, [
|
|
5226
5712
|
"to",
|
|
@@ -5232,7 +5718,11 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5232
5718
|
onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args)=>_ctx.toggleModal && _ctx.toggleModal(...args), [
|
|
5233
5719
|
"prevent"
|
|
5234
5720
|
]))
|
|
5235
|
-
},
|
|
5721
|
+
}, _cache[4] || (_cache[4] = [
|
|
5722
|
+
vue.createElementVNode("i", {
|
|
5723
|
+
class: "fa fa-comment-alt"
|
|
5724
|
+
}, null, -1)
|
|
5725
|
+
])),
|
|
5236
5726
|
vue.createVNode(_component_FProjectNodeApprovalCommand, {
|
|
5237
5727
|
"entity-id": _ctx.entity.id,
|
|
5238
5728
|
"approval-status": _ctx.entity.approval_status,
|
|
@@ -5266,13 +5756,27 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5266
5756
|
vue.renderSlot(_ctx.$slots, "body", {
|
|
5267
5757
|
data: _ctx.entity
|
|
5268
5758
|
}, ()=>[
|
|
5269
|
-
vue.createElementVNode("div",
|
|
5270
|
-
vue.createElementVNode("div",
|
|
5271
|
-
|
|
5759
|
+
vue.createElementVNode("div", _hoisted_5$8, [
|
|
5760
|
+
vue.createElementVNode("div", _hoisted_6$7, [
|
|
5761
|
+
_cache[5] || (_cache[5] = vue.createElementVNode("div", null, [
|
|
5762
|
+
vue.createElementVNode("strong", null, [
|
|
5763
|
+
vue.createElementVNode("i", {
|
|
5764
|
+
class: "fa-solid fa-server"
|
|
5765
|
+
}),
|
|
5766
|
+
vue.createTextVNode(" Node")
|
|
5767
|
+
])
|
|
5768
|
+
], -1)),
|
|
5272
5769
|
vue.createElementVNode("div", null, vue.toDisplayString(_ctx.entity.node.name), 1)
|
|
5273
5770
|
]),
|
|
5274
|
-
vue.createElementVNode("div",
|
|
5275
|
-
|
|
5771
|
+
vue.createElementVNode("div", _hoisted_7$6, [
|
|
5772
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("div", null, [
|
|
5773
|
+
vue.createElementVNode("strong", null, [
|
|
5774
|
+
vue.createElementVNode("i", {
|
|
5775
|
+
class: "fa-solid fa-heartbeat"
|
|
5776
|
+
}),
|
|
5777
|
+
vue.createTextVNode(" Status")
|
|
5778
|
+
])
|
|
5779
|
+
], -1)),
|
|
5276
5780
|
vue.createElementVNode("div", null, [
|
|
5277
5781
|
vue.createVNode(_component_FProjectNodeApprovalStatus, {
|
|
5278
5782
|
status: _ctx.entity.approval_status
|
|
@@ -5288,8 +5792,15 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5288
5792
|
])
|
|
5289
5793
|
])
|
|
5290
5794
|
]),
|
|
5291
|
-
vue.createElementVNode("div",
|
|
5292
|
-
|
|
5795
|
+
vue.createElementVNode("div", _hoisted_8$6, [
|
|
5796
|
+
_cache[7] || (_cache[7] = vue.createElementVNode("div", null, [
|
|
5797
|
+
vue.createElementVNode("strong", null, [
|
|
5798
|
+
vue.createElementVNode("i", {
|
|
5799
|
+
class: "fa-solid fa-user"
|
|
5800
|
+
}),
|
|
5801
|
+
vue.createTextVNode(" Creator")
|
|
5802
|
+
])
|
|
5803
|
+
], -1)),
|
|
5293
5804
|
vue.createElementVNode("div", null, [
|
|
5294
5805
|
_ctx.entity.project.user_id ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
5295
5806
|
key: 0
|
|
@@ -5298,7 +5809,7 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5298
5809
|
], 64)) : _ctx.entity.project.robot_id ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
5299
5810
|
key: 1
|
|
5300
5811
|
}, [
|
|
5301
|
-
vue.createTextVNode(vue.toDisplayString(_ctx.entity.project.
|
|
5812
|
+
vue.createTextVNode(vue.toDisplayString(_ctx.entity.project.robot_id), 1)
|
|
5302
5813
|
], 64)) : vue.createCommentVNode("", true)
|
|
5303
5814
|
])
|
|
5304
5815
|
])
|
|
@@ -5307,10 +5818,12 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5307
5818
|
vue.renderSlot(_ctx.$slots, "footer", {
|
|
5308
5819
|
data: _ctx.entity
|
|
5309
5820
|
}, ()=>[
|
|
5310
|
-
vue.createElementVNode("div",
|
|
5311
|
-
vue.createElementVNode("div",
|
|
5821
|
+
vue.createElementVNode("div", _hoisted_9$4, [
|
|
5822
|
+
vue.createElementVNode("div", _hoisted_10$4, [
|
|
5312
5823
|
vue.createElementVNode("small", null, [
|
|
5313
|
-
|
|
5824
|
+
_cache[8] || (_cache[8] = vue.createElementVNode("span", {
|
|
5825
|
+
class: "text-muted"
|
|
5826
|
+
}, " created ", -1)),
|
|
5314
5827
|
vue.createVNode(_component_VCTimeago, {
|
|
5315
5828
|
datetime: _ctx.entity.created_at
|
|
5316
5829
|
}, null, 8, [
|
|
@@ -5318,9 +5831,11 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5318
5831
|
])
|
|
5319
5832
|
])
|
|
5320
5833
|
]),
|
|
5321
|
-
vue.createElementVNode("div",
|
|
5834
|
+
vue.createElementVNode("div", _hoisted_11$3, [
|
|
5322
5835
|
vue.createElementVNode("small", null, [
|
|
5323
|
-
|
|
5836
|
+
_cache[9] || (_cache[9] = vue.createElementVNode("span", {
|
|
5837
|
+
class: "text-muted"
|
|
5838
|
+
}, " updated ", -1)),
|
|
5324
5839
|
vue.createVNode(_component_VCTimeago, {
|
|
5325
5840
|
datetime: _ctx.entity.updated_at
|
|
5326
5841
|
}, null, 8, [
|
|
@@ -5340,7 +5855,9 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5340
5855
|
"hide-footer": true
|
|
5341
5856
|
}, {
|
|
5342
5857
|
title: vue.withCtx(()=>[
|
|
5343
|
-
|
|
5858
|
+
_cache[10] || (_cache[10] = vue.createElementVNode("i", {
|
|
5859
|
+
class: "fas fa-file-import"
|
|
5860
|
+
}, null, -1)),
|
|
5344
5861
|
vue.createTextVNode(" Project " + vue.toDisplayString(_ctx.entity.project.name), 1)
|
|
5345
5862
|
]),
|
|
5346
5863
|
default: vue.withCtx(()=>[
|
|
@@ -5365,10 +5882,10 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5365
5882
|
])
|
|
5366
5883
|
]);
|
|
5367
5884
|
}
|
|
5368
|
-
var FProjectNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5885
|
+
var FProjectNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$h, [
|
|
5369
5886
|
[
|
|
5370
5887
|
"render",
|
|
5371
|
-
_sfc_render$
|
|
5888
|
+
_sfc_render$h
|
|
5372
5889
|
]
|
|
5373
5890
|
]);
|
|
5374
5891
|
|
|
@@ -5587,14 +6104,14 @@ const FProjectForm = vue.defineComponent({
|
|
|
5587
6104
|
}
|
|
5588
6105
|
}
|
|
5589
6106
|
}, {
|
|
5590
|
-
[
|
|
6107
|
+
[EntityListSlotName.HEADER]: (props)=>[
|
|
5591
6108
|
vue.h('label', 'Nodes'),
|
|
5592
6109
|
vue.h(FSearch, {
|
|
5593
6110
|
load: props.load,
|
|
5594
6111
|
meta: props.meta
|
|
5595
6112
|
})
|
|
5596
6113
|
],
|
|
5597
|
-
[
|
|
6114
|
+
[EntityListSlotName.ITEM_ACTIONS]: (props)=>{
|
|
5598
6115
|
if (manager.data.value) {
|
|
5599
6116
|
return vue.h(FProjectNodeAssignAction, {
|
|
5600
6117
|
key: props.data.id,
|
|
@@ -5641,7 +6158,7 @@ const FProjectForm = vue.defineComponent({
|
|
|
5641
6158
|
}
|
|
5642
6159
|
});
|
|
5643
6160
|
|
|
5644
|
-
var _sfc_main$
|
|
6161
|
+
var _sfc_main$g = vue.defineComponent({
|
|
5645
6162
|
components: {
|
|
5646
6163
|
FEntityDelete,
|
|
5647
6164
|
VCLink: link.VCLink,
|
|
@@ -5662,7 +6179,9 @@ var _sfc_main$e = vue.defineComponent({
|
|
|
5662
6179
|
],
|
|
5663
6180
|
slots: Object,
|
|
5664
6181
|
setup (_props, { emit }) {
|
|
5665
|
-
const canDelete = clientWebKit.
|
|
6182
|
+
const canDelete = clientWebKit.usePermissionCheck({
|
|
6183
|
+
name: PermissionName.PROJECT_DELETE
|
|
6184
|
+
});
|
|
5666
6185
|
const handleDeleted = (data)=>{
|
|
5667
6186
|
emit('deleted', data);
|
|
5668
6187
|
};
|
|
@@ -5673,87 +6192,53 @@ var _sfc_main$e = vue.defineComponent({
|
|
|
5673
6192
|
}
|
|
5674
6193
|
});
|
|
5675
6194
|
|
|
5676
|
-
const _hoisted_1$
|
|
6195
|
+
const _hoisted_1$e = {
|
|
5677
6196
|
class: "d-flex flex-column w-100"
|
|
5678
6197
|
};
|
|
5679
|
-
const _hoisted_2$
|
|
6198
|
+
const _hoisted_2$d = {
|
|
5680
6199
|
class: "w-100"
|
|
5681
6200
|
};
|
|
5682
|
-
const _hoisted_3$
|
|
6201
|
+
const _hoisted_3$b = {
|
|
5683
6202
|
class: "d-flex flex-row align-items-center"
|
|
5684
6203
|
};
|
|
5685
|
-
const _hoisted_4$b =
|
|
5686
|
-
class: "fas fa-project-diagram me-1"
|
|
5687
|
-
}, null, -1);
|
|
5688
|
-
const _hoisted_5$9 = {
|
|
6204
|
+
const _hoisted_4$b = {
|
|
5689
6205
|
class: "ms-auto"
|
|
5690
6206
|
};
|
|
5691
|
-
const
|
|
5692
|
-
class: "fa fa-bars"
|
|
5693
|
-
}, null, -1);
|
|
5694
|
-
const _hoisted_7$5 = {
|
|
6207
|
+
const _hoisted_5$7 = {
|
|
5695
6208
|
class: "d-flex justify-content-between flex-row"
|
|
5696
6209
|
};
|
|
5697
|
-
const
|
|
6210
|
+
const _hoisted_6$6 = {
|
|
5698
6211
|
class: "d-flex flex-grow-1 align-items-center flex-column"
|
|
5699
6212
|
};
|
|
5700
|
-
const
|
|
5701
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, [
|
|
5702
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
5703
|
-
class: "fa fa-microscope"
|
|
5704
|
-
}),
|
|
5705
|
-
/* @__PURE__ */ vue.createTextVNode(" Analyses")
|
|
5706
|
-
])
|
|
5707
|
-
], -1);
|
|
5708
|
-
const _hoisted_10$4 = {
|
|
6213
|
+
const _hoisted_7$5 = {
|
|
5709
6214
|
class: "d-flex flex-grow-1 align-items-center flex-column"
|
|
5710
6215
|
};
|
|
5711
|
-
const
|
|
5712
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, [
|
|
5713
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
5714
|
-
class: "fa-solid fa-server"
|
|
5715
|
-
}),
|
|
5716
|
-
/* @__PURE__ */ vue.createTextVNode(" Nodes")
|
|
5717
|
-
])
|
|
5718
|
-
], -1);
|
|
5719
|
-
const _hoisted_12$3 = {
|
|
6216
|
+
const _hoisted_8$5 = {
|
|
5720
6217
|
class: "d-flex flex-grow-1 align-items-center flex-column"
|
|
5721
6218
|
};
|
|
5722
|
-
const
|
|
5723
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, [
|
|
5724
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
5725
|
-
class: "fa-solid fa-user"
|
|
5726
|
-
}),
|
|
5727
|
-
/* @__PURE__ */ vue.createTextVNode(" Creator")
|
|
5728
|
-
])
|
|
5729
|
-
], -1);
|
|
5730
|
-
const _hoisted_14$2 = {
|
|
6219
|
+
const _hoisted_9$3 = {
|
|
5731
6220
|
class: "d-flex flex-row"
|
|
5732
6221
|
};
|
|
5733
|
-
const
|
|
6222
|
+
const _hoisted_10$3 = {
|
|
5734
6223
|
class: ""
|
|
5735
6224
|
};
|
|
5736
|
-
const
|
|
5737
|
-
class: "text-muted"
|
|
5738
|
-
}, " created ", -1);
|
|
5739
|
-
const _hoisted_17$2 = {
|
|
6225
|
+
const _hoisted_11$2 = {
|
|
5740
6226
|
class: "ms-auto"
|
|
5741
6227
|
};
|
|
5742
|
-
|
|
5743
|
-
class: "text-muted"
|
|
5744
|
-
}, " updated ", -1);
|
|
5745
|
-
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
6228
|
+
function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5746
6229
|
const _component_VCLink = vue.resolveComponent("VCLink");
|
|
5747
6230
|
const _component_FEntityDelete = vue.resolveComponent("FEntityDelete");
|
|
5748
6231
|
const _component_VCTimeago = vue.resolveComponent("VCTimeago");
|
|
5749
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
5750
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
5751
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
6232
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
|
|
6233
|
+
vue.createElementVNode("div", _hoisted_2$d, [
|
|
6234
|
+
vue.createElementVNode("div", _hoisted_3$b, [
|
|
5752
6235
|
vue.createElementVNode("div", null, [
|
|
5753
6236
|
vue.renderSlot(_ctx.$slots, "title", {
|
|
5754
6237
|
data: _ctx.entity
|
|
5755
6238
|
}, ()=>[
|
|
5756
|
-
|
|
6239
|
+
_cache[0] || (_cache[0] = vue.createElementVNode("i", {
|
|
6240
|
+
class: "fas fa-project-diagram me-1"
|
|
6241
|
+
}, null, -1)),
|
|
5757
6242
|
vue.createVNode(_component_VCLink, {
|
|
5758
6243
|
to: "/projects/" + _ctx.entity.id,
|
|
5759
6244
|
class: "mb-0"
|
|
@@ -5767,7 +6252,7 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5767
6252
|
])
|
|
5768
6253
|
])
|
|
5769
6254
|
]),
|
|
5770
|
-
vue.createElementVNode("div",
|
|
6255
|
+
vue.createElementVNode("div", _hoisted_4$b, [
|
|
5771
6256
|
vue.renderSlot(_ctx.$slots, "itemActions", {
|
|
5772
6257
|
data: _ctx.entity
|
|
5773
6258
|
}, ()=>[
|
|
@@ -5776,9 +6261,11 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5776
6261
|
disabled: _ctx.busy,
|
|
5777
6262
|
class: "btn btn-xs btn-dark"
|
|
5778
6263
|
}, {
|
|
5779
|
-
default: vue.withCtx(()=>[
|
|
5780
|
-
|
|
5781
|
-
|
|
6264
|
+
default: vue.withCtx(()=>_cache[1] || (_cache[1] = [
|
|
6265
|
+
vue.createElementVNode("i", {
|
|
6266
|
+
class: "fa fa-bars"
|
|
6267
|
+
}, null, -1)
|
|
6268
|
+
])),
|
|
5782
6269
|
_: 1
|
|
5783
6270
|
}, 8, [
|
|
5784
6271
|
"to",
|
|
@@ -5804,9 +6291,16 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5804
6291
|
vue.renderSlot(_ctx.$slots, "body", {
|
|
5805
6292
|
data: _ctx.entity
|
|
5806
6293
|
}, ()=>[
|
|
5807
|
-
vue.createElementVNode("div",
|
|
5808
|
-
vue.createElementVNode("div",
|
|
5809
|
-
|
|
6294
|
+
vue.createElementVNode("div", _hoisted_5$7, [
|
|
6295
|
+
vue.createElementVNode("div", _hoisted_6$6, [
|
|
6296
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("div", null, [
|
|
6297
|
+
vue.createElementVNode("strong", null, [
|
|
6298
|
+
vue.createElementVNode("i", {
|
|
6299
|
+
class: "fa fa-microscope"
|
|
6300
|
+
}),
|
|
6301
|
+
vue.createTextVNode(" Analyses")
|
|
6302
|
+
])
|
|
6303
|
+
], -1)),
|
|
5810
6304
|
vue.createElementVNode("div", {
|
|
5811
6305
|
class: vue.normalizeClass({
|
|
5812
6306
|
"text-success": _ctx.entity.analyses > 0,
|
|
@@ -5814,8 +6308,15 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5814
6308
|
})
|
|
5815
6309
|
}, vue.toDisplayString(_ctx.entity.analyses), 3)
|
|
5816
6310
|
]),
|
|
5817
|
-
vue.createElementVNode("div",
|
|
5818
|
-
|
|
6311
|
+
vue.createElementVNode("div", _hoisted_7$5, [
|
|
6312
|
+
_cache[3] || (_cache[3] = vue.createElementVNode("div", null, [
|
|
6313
|
+
vue.createElementVNode("strong", null, [
|
|
6314
|
+
vue.createElementVNode("i", {
|
|
6315
|
+
class: "fa-solid fa-server"
|
|
6316
|
+
}),
|
|
6317
|
+
vue.createTextVNode(" Nodes")
|
|
6318
|
+
])
|
|
6319
|
+
], -1)),
|
|
5819
6320
|
vue.createElementVNode("div", {
|
|
5820
6321
|
class: vue.normalizeClass({
|
|
5821
6322
|
"text-success": _ctx.entity.nodes > 0,
|
|
@@ -5823,8 +6324,15 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5823
6324
|
})
|
|
5824
6325
|
}, vue.toDisplayString(_ctx.entity.nodes), 3)
|
|
5825
6326
|
]),
|
|
5826
|
-
vue.createElementVNode("div",
|
|
5827
|
-
|
|
6327
|
+
vue.createElementVNode("div", _hoisted_8$5, [
|
|
6328
|
+
_cache[4] || (_cache[4] = vue.createElementVNode("div", null, [
|
|
6329
|
+
vue.createElementVNode("strong", null, [
|
|
6330
|
+
vue.createElementVNode("i", {
|
|
6331
|
+
class: "fa-solid fa-user"
|
|
6332
|
+
}),
|
|
6333
|
+
vue.createTextVNode(" Creator")
|
|
6334
|
+
])
|
|
6335
|
+
], -1)),
|
|
5828
6336
|
vue.createElementVNode("div", null, [
|
|
5829
6337
|
_ctx.entity.user_id ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
5830
6338
|
key: 0
|
|
@@ -5842,10 +6350,12 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5842
6350
|
vue.renderSlot(_ctx.$slots, "footer", {
|
|
5843
6351
|
data: _ctx.entity
|
|
5844
6352
|
}, ()=>[
|
|
5845
|
-
vue.createElementVNode("div",
|
|
5846
|
-
vue.createElementVNode("div",
|
|
6353
|
+
vue.createElementVNode("div", _hoisted_9$3, [
|
|
6354
|
+
vue.createElementVNode("div", _hoisted_10$3, [
|
|
5847
6355
|
vue.createElementVNode("small", null, [
|
|
5848
|
-
|
|
6356
|
+
_cache[5] || (_cache[5] = vue.createElementVNode("span", {
|
|
6357
|
+
class: "text-muted"
|
|
6358
|
+
}, " created ", -1)),
|
|
5849
6359
|
vue.createVNode(_component_VCTimeago, {
|
|
5850
6360
|
datetime: _ctx.entity.created_at
|
|
5851
6361
|
}, null, 8, [
|
|
@@ -5853,9 +6363,11 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5853
6363
|
])
|
|
5854
6364
|
])
|
|
5855
6365
|
]),
|
|
5856
|
-
vue.createElementVNode("div",
|
|
6366
|
+
vue.createElementVNode("div", _hoisted_11$2, [
|
|
5857
6367
|
vue.createElementVNode("small", null, [
|
|
5858
|
-
|
|
6368
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("span", {
|
|
6369
|
+
class: "text-muted"
|
|
6370
|
+
}, " updated ", -1)),
|
|
5859
6371
|
vue.createVNode(_component_VCTimeago, {
|
|
5860
6372
|
datetime: _ctx.entity.updated_at
|
|
5861
6373
|
}, null, 8, [
|
|
@@ -5867,10 +6379,10 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5867
6379
|
])
|
|
5868
6380
|
]);
|
|
5869
6381
|
}
|
|
5870
|
-
var FProjectItemCard = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6382
|
+
var FProjectItemCard = /* @__PURE__ */ _export_sfc(_sfc_main$g, [
|
|
5871
6383
|
[
|
|
5872
6384
|
"render",
|
|
5873
|
-
_sfc_render$
|
|
6385
|
+
_sfc_render$g
|
|
5874
6386
|
]
|
|
5875
6387
|
]);
|
|
5876
6388
|
|
|
@@ -6310,7 +6822,7 @@ var RegistryProjectDetails = vue.defineComponent({
|
|
|
6310
6822
|
}, [
|
|
6311
6823
|
vue.h('label', {
|
|
6312
6824
|
class: 'pe-1'
|
|
6313
|
-
}, '
|
|
6825
|
+
}, 'Project'),
|
|
6314
6826
|
vue.h('input', {
|
|
6315
6827
|
class: 'form-control',
|
|
6316
6828
|
type: 'text',
|
|
@@ -6324,7 +6836,7 @@ var RegistryProjectDetails = vue.defineComponent({
|
|
|
6324
6836
|
}, [
|
|
6325
6837
|
vue.h('label', {
|
|
6326
6838
|
class: 'pe-1'
|
|
6327
|
-
}, 'ID'),
|
|
6839
|
+
}, 'Account ID'),
|
|
6328
6840
|
vue.h('input', {
|
|
6329
6841
|
class: 'form-control',
|
|
6330
6842
|
type: 'text',
|
|
@@ -6335,7 +6847,7 @@ var RegistryProjectDetails = vue.defineComponent({
|
|
|
6335
6847
|
]),
|
|
6336
6848
|
formControls.buildFormGroup({
|
|
6337
6849
|
label: true,
|
|
6338
|
-
labelContent: 'Secret',
|
|
6850
|
+
labelContent: 'Account Secret',
|
|
6339
6851
|
validationMessages: translationsValidation.secret.value,
|
|
6340
6852
|
validationSeverity: vuelidate.getSeverity(vuelidate$1.value.secret),
|
|
6341
6853
|
content: formControls.buildFormInput({
|
|
@@ -6632,7 +7144,7 @@ var FRegistryProjectForm = vue.defineComponent({
|
|
|
6632
7144
|
registry = [
|
|
6633
7145
|
vue.h('hr'),
|
|
6634
7146
|
vue.h(RegistryList, {
|
|
6635
|
-
[
|
|
7147
|
+
[EntityListSlotName.ITEM_ACTIONS]: (props)=>vue.h('button', {
|
|
6636
7148
|
attrs: {
|
|
6637
7149
|
disabled: props.busy
|
|
6638
7150
|
},
|
|
@@ -6739,9 +7251,7 @@ var FNodeForm = vue.defineComponent({
|
|
|
6739
7251
|
realm_id: {
|
|
6740
7252
|
required: validators.required
|
|
6741
7253
|
},
|
|
6742
|
-
registry_id: {
|
|
6743
|
-
required: validators.required
|
|
6744
|
-
},
|
|
7254
|
+
registry_id: {},
|
|
6745
7255
|
external_name: {
|
|
6746
7256
|
alphaNumHyphenUnderscore: validators.helpers.regex(alphaNumHyphenUnderscoreRegex),
|
|
6747
7257
|
minLength: validators.minLength(3),
|
|
@@ -6791,7 +7301,7 @@ var FNodeForm = vue.defineComponent({
|
|
|
6791
7301
|
if (!isRealmLocked.value) {
|
|
6792
7302
|
realm = [
|
|
6793
7303
|
vue.h(clientWebKit.ARealms, {}, {
|
|
6794
|
-
[
|
|
7304
|
+
[EntityListSlotName.BODY]: (props)=>formControls.buildFormGroup({
|
|
6795
7305
|
validationMessages: translationsValidation.realm_id.value,
|
|
6796
7306
|
validationSeverity: vuelidate.getSeverity($v.value.realm_id),
|
|
6797
7307
|
label: true,
|
|
@@ -6870,7 +7380,7 @@ var FNodeForm = vue.defineComponent({
|
|
|
6870
7380
|
label: true,
|
|
6871
7381
|
labelContent: 'Registry',
|
|
6872
7382
|
content: vue.h(RegistryList, {}, {
|
|
6873
|
-
[
|
|
7383
|
+
[EntityListSlotName.ITEM_ACTIONS]: (props)=>vue.h('button', {
|
|
6874
7384
|
disabled: props.busy,
|
|
6875
7385
|
class: [
|
|
6876
7386
|
'btn btn-xs',
|
|
@@ -6924,10 +7434,539 @@ var FNodeForm = vue.defineComponent({
|
|
|
6924
7434
|
submitNode
|
|
6925
7435
|
])
|
|
6926
7436
|
])
|
|
6927
|
-
]);
|
|
6928
|
-
};
|
|
6929
|
-
}
|
|
6930
|
-
});
|
|
7437
|
+
]);
|
|
7438
|
+
};
|
|
7439
|
+
}
|
|
7440
|
+
});
|
|
7441
|
+
|
|
7442
|
+
function tryOnScopeDispose(fn) {
|
|
7443
|
+
if (vue.getCurrentScope()) {
|
|
7444
|
+
vue.onScopeDispose(fn);
|
|
7445
|
+
return true;
|
|
7446
|
+
}
|
|
7447
|
+
return false;
|
|
7448
|
+
}
|
|
7449
|
+
function toValue(r) {
|
|
7450
|
+
return typeof r === "function" ? r() : vue.unref(r);
|
|
7451
|
+
}
|
|
7452
|
+
const isClient = typeof window !== "undefined" && typeof document !== "undefined";
|
|
7453
|
+
typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
|
|
7454
|
+
const toString = Object.prototype.toString;
|
|
7455
|
+
const isObject = (val)=>toString.call(val) === "[object Object]";
|
|
7456
|
+
const noop = ()=>{};
|
|
7457
|
+
function createSingletonPromise(fn) {
|
|
7458
|
+
let _promise;
|
|
7459
|
+
function wrapper() {
|
|
7460
|
+
if (!_promise) _promise = fn();
|
|
7461
|
+
return _promise;
|
|
7462
|
+
}
|
|
7463
|
+
wrapper.reset = async ()=>{
|
|
7464
|
+
const _prev = _promise;
|
|
7465
|
+
_promise = undefined;
|
|
7466
|
+
if (_prev) await _prev;
|
|
7467
|
+
};
|
|
7468
|
+
return wrapper;
|
|
7469
|
+
}
|
|
7470
|
+
function useTimeoutFn(cb, interval, options = {}) {
|
|
7471
|
+
const { immediate = true } = options;
|
|
7472
|
+
const isPending = vue.ref(false);
|
|
7473
|
+
let timer = null;
|
|
7474
|
+
function clear() {
|
|
7475
|
+
if (timer) {
|
|
7476
|
+
clearTimeout(timer);
|
|
7477
|
+
timer = null;
|
|
7478
|
+
}
|
|
7479
|
+
}
|
|
7480
|
+
function stop() {
|
|
7481
|
+
isPending.value = false;
|
|
7482
|
+
clear();
|
|
7483
|
+
}
|
|
7484
|
+
function start(...args) {
|
|
7485
|
+
clear();
|
|
7486
|
+
isPending.value = true;
|
|
7487
|
+
timer = setTimeout(()=>{
|
|
7488
|
+
isPending.value = false;
|
|
7489
|
+
timer = null;
|
|
7490
|
+
cb(...args);
|
|
7491
|
+
}, toValue(interval));
|
|
7492
|
+
}
|
|
7493
|
+
if (immediate) {
|
|
7494
|
+
isPending.value = true;
|
|
7495
|
+
if (isClient) start();
|
|
7496
|
+
}
|
|
7497
|
+
tryOnScopeDispose(stop);
|
|
7498
|
+
return {
|
|
7499
|
+
isPending: vue.readonly(isPending),
|
|
7500
|
+
start,
|
|
7501
|
+
stop
|
|
7502
|
+
};
|
|
7503
|
+
}
|
|
7504
|
+
|
|
7505
|
+
const defaultWindow = isClient ? window : undefined;
|
|
7506
|
+
const defaultNavigator = isClient ? window.navigator : undefined;
|
|
7507
|
+
function unrefElement(elRef) {
|
|
7508
|
+
var _a;
|
|
7509
|
+
const plain = toValue(elRef);
|
|
7510
|
+
return (_a = plain == null ? undefined : plain.$el) != null ? _a : plain;
|
|
7511
|
+
}
|
|
7512
|
+
function useEventListener(...args) {
|
|
7513
|
+
let target;
|
|
7514
|
+
let events;
|
|
7515
|
+
let listeners;
|
|
7516
|
+
let options;
|
|
7517
|
+
if (typeof args[0] === "string" || Array.isArray(args[0])) {
|
|
7518
|
+
[events, listeners, options] = args;
|
|
7519
|
+
target = defaultWindow;
|
|
7520
|
+
} else {
|
|
7521
|
+
[target, events, listeners, options] = args;
|
|
7522
|
+
}
|
|
7523
|
+
if (!target) return noop;
|
|
7524
|
+
if (!Array.isArray(events)) events = [
|
|
7525
|
+
events
|
|
7526
|
+
];
|
|
7527
|
+
if (!Array.isArray(listeners)) listeners = [
|
|
7528
|
+
listeners
|
|
7529
|
+
];
|
|
7530
|
+
const cleanups = [];
|
|
7531
|
+
const cleanup = ()=>{
|
|
7532
|
+
cleanups.forEach((fn)=>fn());
|
|
7533
|
+
cleanups.length = 0;
|
|
7534
|
+
};
|
|
7535
|
+
const register = (el, event, listener, options2)=>{
|
|
7536
|
+
el.addEventListener(event, listener, options2);
|
|
7537
|
+
return ()=>el.removeEventListener(event, listener, options2);
|
|
7538
|
+
};
|
|
7539
|
+
const stopWatch = vue.watch(()=>[
|
|
7540
|
+
unrefElement(target),
|
|
7541
|
+
toValue(options)
|
|
7542
|
+
], ([el, options2])=>{
|
|
7543
|
+
cleanup();
|
|
7544
|
+
if (!el) return;
|
|
7545
|
+
const optionsClone = isObject(options2) ? {
|
|
7546
|
+
...options2
|
|
7547
|
+
} : options2;
|
|
7548
|
+
cleanups.push(...events.flatMap((event)=>{
|
|
7549
|
+
return listeners.map((listener)=>register(el, event, listener, optionsClone));
|
|
7550
|
+
}));
|
|
7551
|
+
}, {
|
|
7552
|
+
immediate: true,
|
|
7553
|
+
flush: "post"
|
|
7554
|
+
});
|
|
7555
|
+
const stop = ()=>{
|
|
7556
|
+
stopWatch();
|
|
7557
|
+
cleanup();
|
|
7558
|
+
};
|
|
7559
|
+
tryOnScopeDispose(stop);
|
|
7560
|
+
return stop;
|
|
7561
|
+
}
|
|
7562
|
+
function useMounted() {
|
|
7563
|
+
const isMounted = vue.ref(false);
|
|
7564
|
+
const instance = vue.getCurrentInstance();
|
|
7565
|
+
if (instance) {
|
|
7566
|
+
vue.onMounted(()=>{
|
|
7567
|
+
isMounted.value = true;
|
|
7568
|
+
}, instance);
|
|
7569
|
+
}
|
|
7570
|
+
return isMounted;
|
|
7571
|
+
}
|
|
7572
|
+
function useSupported(callback) {
|
|
7573
|
+
const isMounted = useMounted();
|
|
7574
|
+
return vue.computed(()=>{
|
|
7575
|
+
isMounted.value;
|
|
7576
|
+
return Boolean(callback());
|
|
7577
|
+
});
|
|
7578
|
+
}
|
|
7579
|
+
function usePermission(permissionDesc, options = {}) {
|
|
7580
|
+
const { controls = false, navigator = defaultNavigator } = options;
|
|
7581
|
+
const isSupported = useSupported(()=>navigator && "permissions" in navigator);
|
|
7582
|
+
const permissionStatus = vue.shallowRef();
|
|
7583
|
+
const desc = typeof permissionDesc === "string" ? {
|
|
7584
|
+
name: permissionDesc
|
|
7585
|
+
} : permissionDesc;
|
|
7586
|
+
const state = vue.shallowRef();
|
|
7587
|
+
const update = ()=>{
|
|
7588
|
+
var _a, _b;
|
|
7589
|
+
state.value = (_b = (_a = permissionStatus.value) == null ? undefined : _a.state) != null ? _b : "prompt";
|
|
7590
|
+
};
|
|
7591
|
+
useEventListener(permissionStatus, "change", update);
|
|
7592
|
+
const query = createSingletonPromise(async ()=>{
|
|
7593
|
+
if (!isSupported.value) return;
|
|
7594
|
+
if (!permissionStatus.value) {
|
|
7595
|
+
try {
|
|
7596
|
+
permissionStatus.value = await navigator.permissions.query(desc);
|
|
7597
|
+
} catch (e) {
|
|
7598
|
+
permissionStatus.value = undefined;
|
|
7599
|
+
} finally{
|
|
7600
|
+
update();
|
|
7601
|
+
}
|
|
7602
|
+
}
|
|
7603
|
+
if (controls) return vue.toRaw(permissionStatus.value);
|
|
7604
|
+
});
|
|
7605
|
+
query();
|
|
7606
|
+
if (controls) {
|
|
7607
|
+
return {
|
|
7608
|
+
state,
|
|
7609
|
+
isSupported,
|
|
7610
|
+
query
|
|
7611
|
+
};
|
|
7612
|
+
} else {
|
|
7613
|
+
return state;
|
|
7614
|
+
}
|
|
7615
|
+
}
|
|
7616
|
+
function useClipboard(options = {}) {
|
|
7617
|
+
const { navigator = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;
|
|
7618
|
+
const isClipboardApiSupported = useSupported(()=>navigator && "clipboard" in navigator);
|
|
7619
|
+
const permissionRead = usePermission("clipboard-read");
|
|
7620
|
+
const permissionWrite = usePermission("clipboard-write");
|
|
7621
|
+
const isSupported = vue.computed(()=>isClipboardApiSupported.value || legacy);
|
|
7622
|
+
const text = vue.ref("");
|
|
7623
|
+
const copied = vue.ref(false);
|
|
7624
|
+
const timeout = useTimeoutFn(()=>copied.value = false, copiedDuring);
|
|
7625
|
+
function updateText() {
|
|
7626
|
+
if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {
|
|
7627
|
+
navigator.clipboard.readText().then((value)=>{
|
|
7628
|
+
text.value = value;
|
|
7629
|
+
});
|
|
7630
|
+
} else {
|
|
7631
|
+
text.value = legacyRead();
|
|
7632
|
+
}
|
|
7633
|
+
}
|
|
7634
|
+
if (isSupported.value && read) useEventListener([
|
|
7635
|
+
"copy",
|
|
7636
|
+
"cut"
|
|
7637
|
+
], updateText);
|
|
7638
|
+
async function copy(value = toValue(source)) {
|
|
7639
|
+
if (isSupported.value && value != null) {
|
|
7640
|
+
if (isClipboardApiSupported.value && isAllowed(permissionWrite.value)) await navigator.clipboard.writeText(value);
|
|
7641
|
+
else legacyCopy(value);
|
|
7642
|
+
text.value = value;
|
|
7643
|
+
copied.value = true;
|
|
7644
|
+
timeout.start();
|
|
7645
|
+
}
|
|
7646
|
+
}
|
|
7647
|
+
function legacyCopy(value) {
|
|
7648
|
+
const ta = document.createElement("textarea");
|
|
7649
|
+
ta.value = value != null ? value : "";
|
|
7650
|
+
ta.style.position = "absolute";
|
|
7651
|
+
ta.style.opacity = "0";
|
|
7652
|
+
document.body.appendChild(ta);
|
|
7653
|
+
ta.select();
|
|
7654
|
+
document.execCommand("copy");
|
|
7655
|
+
ta.remove();
|
|
7656
|
+
}
|
|
7657
|
+
function legacyRead() {
|
|
7658
|
+
var _a, _b, _c;
|
|
7659
|
+
return (_c = (_b = (_a = document == null ? undefined : document.getSelection) == null ? undefined : _a.call(document)) == null ? undefined : _b.toString()) != null ? _c : "";
|
|
7660
|
+
}
|
|
7661
|
+
function isAllowed(status) {
|
|
7662
|
+
return status === "granted" || status === "prompt";
|
|
7663
|
+
}
|
|
7664
|
+
return {
|
|
7665
|
+
isSupported,
|
|
7666
|
+
text,
|
|
7667
|
+
copied,
|
|
7668
|
+
copy
|
|
7669
|
+
};
|
|
7670
|
+
}
|
|
7671
|
+
|
|
7672
|
+
var _sfc_main$f = vue.defineComponent({
|
|
7673
|
+
props: {
|
|
7674
|
+
entity: {
|
|
7675
|
+
type: Object,
|
|
7676
|
+
required: true
|
|
7677
|
+
}
|
|
7678
|
+
},
|
|
7679
|
+
emits: [
|
|
7680
|
+
'updated',
|
|
7681
|
+
'failed',
|
|
7682
|
+
'keyCopied',
|
|
7683
|
+
'keyPairGenerated'
|
|
7684
|
+
],
|
|
7685
|
+
setup (props, { emit }) {
|
|
7686
|
+
const httpClient = injectCoreHTTPClient();
|
|
7687
|
+
const keyTypeOptions = [
|
|
7688
|
+
{
|
|
7689
|
+
id: 'rsa',
|
|
7690
|
+
value: 'RSA'
|
|
7691
|
+
},
|
|
7692
|
+
{
|
|
7693
|
+
id: 'ecdh',
|
|
7694
|
+
value: 'ECDH'
|
|
7695
|
+
}
|
|
7696
|
+
];
|
|
7697
|
+
const keyType = vue.ref('rsa');
|
|
7698
|
+
const privateKey = vue.ref(null);
|
|
7699
|
+
const publicKey = vue.ref(null);
|
|
7700
|
+
const clipboard = useClipboard();
|
|
7701
|
+
const init = ()=>{
|
|
7702
|
+
if (props.entity.public_key) {
|
|
7703
|
+
publicKey.value = isHex(props.entity.public_key) ? hexToUTF8(props.entity.public_key) : props.entity.public_key;
|
|
7704
|
+
}
|
|
7705
|
+
};
|
|
7706
|
+
init();
|
|
7707
|
+
const copy = (type)=>{
|
|
7708
|
+
if (type === 'privateKey') {
|
|
7709
|
+
if (!privateKey.value) {
|
|
7710
|
+
return;
|
|
7711
|
+
}
|
|
7712
|
+
clipboard.copy(privateKey.value);
|
|
7713
|
+
emit('keyCopied');
|
|
7714
|
+
return;
|
|
7715
|
+
}
|
|
7716
|
+
if (!publicKey.value) {
|
|
7717
|
+
return;
|
|
7718
|
+
}
|
|
7719
|
+
clipboard.copy(publicKey.value);
|
|
7720
|
+
emit('keyCopied');
|
|
7721
|
+
};
|
|
7722
|
+
const busy = vue.ref(false);
|
|
7723
|
+
const save = async ()=>{
|
|
7724
|
+
if (busy.value) return;
|
|
7725
|
+
busy.value = true;
|
|
7726
|
+
try {
|
|
7727
|
+
const response = await httpClient.node.update(props.entity.id, {
|
|
7728
|
+
public_key: publicKey.value
|
|
7729
|
+
});
|
|
7730
|
+
emit('updated', response);
|
|
7731
|
+
} catch (e) {
|
|
7732
|
+
emit('failed', e);
|
|
7733
|
+
} finally{
|
|
7734
|
+
busy.value = false;
|
|
7735
|
+
}
|
|
7736
|
+
};
|
|
7737
|
+
const generate = async ()=>{
|
|
7738
|
+
if (busy.value) return;
|
|
7739
|
+
busy.value = true;
|
|
7740
|
+
try {
|
|
7741
|
+
let algorithmOptions;
|
|
7742
|
+
if (keyType.value === 'ecdh') {
|
|
7743
|
+
algorithmOptions = {
|
|
7744
|
+
name: 'ECDH',
|
|
7745
|
+
namedCurve: 'P-384'
|
|
7746
|
+
};
|
|
7747
|
+
} else {
|
|
7748
|
+
algorithmOptions = {
|
|
7749
|
+
name: 'RSA-OAEP',
|
|
7750
|
+
modulusLength: 2048,
|
|
7751
|
+
hash: 'SHA-256',
|
|
7752
|
+
publicExponent: new Uint8Array([
|
|
7753
|
+
1,
|
|
7754
|
+
0,
|
|
7755
|
+
1
|
|
7756
|
+
])
|
|
7757
|
+
};
|
|
7758
|
+
}
|
|
7759
|
+
console.log(algorithmOptions);
|
|
7760
|
+
const algorithm = new CryptoAsymmetricAlgorithm(algorithmOptions);
|
|
7761
|
+
const keyPair = await algorithm.generateKeyPair();
|
|
7762
|
+
publicKey.value = await exportAsymmetricPublicKey(keyPair.publicKey);
|
|
7763
|
+
privateKey.value = await exportAsymmetricPrivateKey(keyPair.privateKey);
|
|
7764
|
+
emit('keyPairGenerated');
|
|
7765
|
+
} finally{
|
|
7766
|
+
busy.value = false;
|
|
7767
|
+
}
|
|
7768
|
+
};
|
|
7769
|
+
return {
|
|
7770
|
+
keyType,
|
|
7771
|
+
keyTypeOptions,
|
|
7772
|
+
busy,
|
|
7773
|
+
copy,
|
|
7774
|
+
generate,
|
|
7775
|
+
save,
|
|
7776
|
+
publicKey,
|
|
7777
|
+
privateKey
|
|
7778
|
+
};
|
|
7779
|
+
}
|
|
7780
|
+
});
|
|
7781
|
+
|
|
7782
|
+
const _hoisted_1$d = {
|
|
7783
|
+
class: "d-flex flex-column gap-1"
|
|
7784
|
+
};
|
|
7785
|
+
const _hoisted_2$c = {
|
|
7786
|
+
class: "row"
|
|
7787
|
+
};
|
|
7788
|
+
const _hoisted_3$a = {
|
|
7789
|
+
class: "col-4"
|
|
7790
|
+
};
|
|
7791
|
+
const _hoisted_4$a = {
|
|
7792
|
+
class: "d-flex flex-row"
|
|
7793
|
+
};
|
|
7794
|
+
const _hoisted_5$6 = {
|
|
7795
|
+
class: "ms-auto"
|
|
7796
|
+
};
|
|
7797
|
+
const _hoisted_6$5 = {
|
|
7798
|
+
class: "col-8"
|
|
7799
|
+
};
|
|
7800
|
+
const _hoisted_7$4 = {
|
|
7801
|
+
class: "d-flex flex-row"
|
|
7802
|
+
};
|
|
7803
|
+
const _hoisted_8$4 = {
|
|
7804
|
+
class: "ms-auto"
|
|
7805
|
+
};
|
|
7806
|
+
const _hoisted_9$2 = {
|
|
7807
|
+
key: 0,
|
|
7808
|
+
class: "alert alert-sm alert-warning"
|
|
7809
|
+
};
|
|
7810
|
+
const _hoisted_10$2 = {
|
|
7811
|
+
class: "d-flex flex-row gap-1"
|
|
7812
|
+
};
|
|
7813
|
+
const _hoisted_11$1 = [
|
|
7814
|
+
"disabled"
|
|
7815
|
+
];
|
|
7816
|
+
const _hoisted_12 = [
|
|
7817
|
+
"disabled"
|
|
7818
|
+
];
|
|
7819
|
+
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7820
|
+
const _component_VCFormTextarea = vue.resolveComponent("VCFormTextarea");
|
|
7821
|
+
const _component_VCFormGroup = vue.resolveComponent("VCFormGroup");
|
|
7822
|
+
const _component_VCFormSelect = vue.resolveComponent("VCFormSelect");
|
|
7823
|
+
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
7824
|
+
_cache[14] || (_cache[14] = vue.createElementVNode("h6", null, "KeyPair", -1)),
|
|
7825
|
+
_cache[15] || (_cache[15] = vue.createElementVNode("p", null, " The public key of the key pair is used to encrypt data that is transmitted between different nodes through the storage service. ", -1)),
|
|
7826
|
+
vue.createElementVNode("div", _hoisted_1$d, [
|
|
7827
|
+
vue.createElementVNode("div", _hoisted_2$c, [
|
|
7828
|
+
vue.createElementVNode("div", _hoisted_3$a, [
|
|
7829
|
+
vue.createVNode(_component_VCFormGroup, {
|
|
7830
|
+
"label-class": "w-100 mb-1"
|
|
7831
|
+
}, {
|
|
7832
|
+
label: vue.withCtx(()=>[
|
|
7833
|
+
vue.createElementVNode("div", _hoisted_4$a, [
|
|
7834
|
+
_cache[8] || (_cache[8] = vue.createElementVNode("div", null, " PublicKey ", -1)),
|
|
7835
|
+
vue.createElementVNode("div", _hoisted_5$6, [
|
|
7836
|
+
vue.withDirectives(vue.createElementVNode("button", {
|
|
7837
|
+
type: "button",
|
|
7838
|
+
class: "btn btn-xs btn-dark",
|
|
7839
|
+
onClick: _cache[0] || (_cache[0] = vue.withModifiers(($event)=>_ctx.copy("publicKey"), [
|
|
7840
|
+
"prevent"
|
|
7841
|
+
]))
|
|
7842
|
+
}, _cache[7] || (_cache[7] = [
|
|
7843
|
+
vue.createElementVNode("i", {
|
|
7844
|
+
class: "fa fa-copy"
|
|
7845
|
+
}, null, -1),
|
|
7846
|
+
vue.createTextVNode(" Copy ")
|
|
7847
|
+
]), 512), [
|
|
7848
|
+
[
|
|
7849
|
+
vue.vShow,
|
|
7850
|
+
!!_ctx.publicKey
|
|
7851
|
+
]
|
|
7852
|
+
])
|
|
7853
|
+
])
|
|
7854
|
+
])
|
|
7855
|
+
]),
|
|
7856
|
+
default: vue.withCtx(()=>[
|
|
7857
|
+
vue.createVNode(_component_VCFormTextarea, {
|
|
7858
|
+
modelValue: _ctx.publicKey,
|
|
7859
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.publicKey = $event),
|
|
7860
|
+
rows: "8"
|
|
7861
|
+
}, null, 8, [
|
|
7862
|
+
"modelValue"
|
|
7863
|
+
])
|
|
7864
|
+
]),
|
|
7865
|
+
_: 1
|
|
7866
|
+
})
|
|
7867
|
+
]),
|
|
7868
|
+
vue.createElementVNode("div", _hoisted_6$5, [
|
|
7869
|
+
vue.createVNode(_component_VCFormGroup, {
|
|
7870
|
+
"label-class": "w-100 mb-1"
|
|
7871
|
+
}, {
|
|
7872
|
+
label: vue.withCtx(()=>[
|
|
7873
|
+
vue.createElementVNode("div", _hoisted_7$4, [
|
|
7874
|
+
_cache[10] || (_cache[10] = vue.createElementVNode("div", null, " PrivateKey ", -1)),
|
|
7875
|
+
vue.createElementVNode("div", _hoisted_8$4, [
|
|
7876
|
+
vue.withDirectives(vue.createElementVNode("button", {
|
|
7877
|
+
type: "button",
|
|
7878
|
+
class: "btn btn-xs btn-dark",
|
|
7879
|
+
onClick: _cache[2] || (_cache[2] = vue.withModifiers(($event)=>_ctx.copy("privateKey"), [
|
|
7880
|
+
"prevent"
|
|
7881
|
+
]))
|
|
7882
|
+
}, _cache[9] || (_cache[9] = [
|
|
7883
|
+
vue.createElementVNode("i", {
|
|
7884
|
+
class: "fa fa-copy"
|
|
7885
|
+
}, null, -1),
|
|
7886
|
+
vue.createTextVNode(" Copy ")
|
|
7887
|
+
]), 512), [
|
|
7888
|
+
[
|
|
7889
|
+
vue.vShow,
|
|
7890
|
+
!!_ctx.privateKey
|
|
7891
|
+
]
|
|
7892
|
+
])
|
|
7893
|
+
])
|
|
7894
|
+
])
|
|
7895
|
+
]),
|
|
7896
|
+
default: vue.withCtx(()=>[
|
|
7897
|
+
vue.createVNode(_component_VCFormTextarea, {
|
|
7898
|
+
modelValue: _ctx.privateKey,
|
|
7899
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event)=>_ctx.privateKey = $event),
|
|
7900
|
+
disabled: true,
|
|
7901
|
+
rows: "8"
|
|
7902
|
+
}, null, 8, [
|
|
7903
|
+
"modelValue"
|
|
7904
|
+
])
|
|
7905
|
+
]),
|
|
7906
|
+
_: 1
|
|
7907
|
+
}),
|
|
7908
|
+
_ctx.privateKey ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$2, " Please copy the key to a safe location, as it is not stored remotely. ")) : vue.createCommentVNode("", true)
|
|
7909
|
+
])
|
|
7910
|
+
]),
|
|
7911
|
+
vue.createElementVNode("div", null, [
|
|
7912
|
+
vue.createVNode(_component_VCFormGroup, null, {
|
|
7913
|
+
label: vue.withCtx(()=>_cache[11] || (_cache[11] = [
|
|
7914
|
+
vue.createTextVNode(" KeyType ")
|
|
7915
|
+
])),
|
|
7916
|
+
default: vue.withCtx(()=>[
|
|
7917
|
+
vue.createVNode(_component_VCFormSelect, {
|
|
7918
|
+
modelValue: _ctx.keyType,
|
|
7919
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event)=>_ctx.keyType = $event),
|
|
7920
|
+
options: _ctx.keyTypeOptions
|
|
7921
|
+
}, null, 8, [
|
|
7922
|
+
"modelValue",
|
|
7923
|
+
"options"
|
|
7924
|
+
])
|
|
7925
|
+
]),
|
|
7926
|
+
_: 1
|
|
7927
|
+
})
|
|
7928
|
+
]),
|
|
7929
|
+
vue.createElementVNode("div", _hoisted_10$2, [
|
|
7930
|
+
vue.createElementVNode("div", null, [
|
|
7931
|
+
vue.createElementVNode("button", {
|
|
7932
|
+
disabled: _ctx.busy,
|
|
7933
|
+
type: "button",
|
|
7934
|
+
class: "btn btn-primary btn-xs",
|
|
7935
|
+
onClick: _cache[5] || (_cache[5] = vue.withModifiers((...args)=>_ctx.save && _ctx.save(...args), [
|
|
7936
|
+
"prevent"
|
|
7937
|
+
]))
|
|
7938
|
+
}, _cache[12] || (_cache[12] = [
|
|
7939
|
+
vue.createElementVNode("i", {
|
|
7940
|
+
class: "fa fa-save"
|
|
7941
|
+
}, null, -1),
|
|
7942
|
+
vue.createTextVNode(" Save ")
|
|
7943
|
+
]), 8, _hoisted_11$1)
|
|
7944
|
+
]),
|
|
7945
|
+
vue.createElementVNode("div", null, [
|
|
7946
|
+
vue.createElementVNode("button", {
|
|
7947
|
+
disabled: _ctx.busy,
|
|
7948
|
+
type: "button",
|
|
7949
|
+
class: "btn btn-dark btn-xs",
|
|
7950
|
+
onClick: _cache[6] || (_cache[6] = vue.withModifiers((...args)=>_ctx.generate && _ctx.generate(...args), [
|
|
7951
|
+
"prevent"
|
|
7952
|
+
]))
|
|
7953
|
+
}, _cache[13] || (_cache[13] = [
|
|
7954
|
+
vue.createElementVNode("i", {
|
|
7955
|
+
class: "fas fa-sync-alt"
|
|
7956
|
+
}, null, -1),
|
|
7957
|
+
vue.createTextVNode(" Generate ")
|
|
7958
|
+
]), 8, _hoisted_12)
|
|
7959
|
+
])
|
|
7960
|
+
])
|
|
7961
|
+
])
|
|
7962
|
+
]);
|
|
7963
|
+
}
|
|
7964
|
+
var FNodeCrypto = /* @__PURE__ */ _export_sfc(_sfc_main$f, [
|
|
7965
|
+
[
|
|
7966
|
+
"render",
|
|
7967
|
+
_sfc_render$f
|
|
7968
|
+
]
|
|
7969
|
+
]);
|
|
6931
7970
|
|
|
6932
7971
|
var FNodeRegistryProject = vue.defineComponent({
|
|
6933
7972
|
props: {
|
|
@@ -7124,7 +8163,9 @@ const FAnalysisNodeApprovalCommand = vue.defineComponent({
|
|
|
7124
8163
|
}
|
|
7125
8164
|
busy.value = false;
|
|
7126
8165
|
};
|
|
7127
|
-
const isAllowed = clientWebKit.
|
|
8166
|
+
const isAllowed = clientWebKit.usePermissionCheck({
|
|
8167
|
+
name: PermissionName.ANALYSIS_APPROVE
|
|
8168
|
+
});
|
|
7128
8169
|
return ()=>renderActionCommand({
|
|
7129
8170
|
execute,
|
|
7130
8171
|
elementType: props.elementType,
|
|
@@ -7243,16 +8284,6 @@ var FAnalysisNodeAssignAction = vue.defineComponent({
|
|
|
7243
8284
|
}
|
|
7244
8285
|
});
|
|
7245
8286
|
|
|
7246
|
-
var Direction$1;
|
|
7247
|
-
(function(Direction) {
|
|
7248
|
-
Direction["IN"] = "in";
|
|
7249
|
-
Direction["OUT"] = "out";
|
|
7250
|
-
})(Direction$1 || (Direction$1 = {}));
|
|
7251
|
-
var Target;
|
|
7252
|
-
(function(Target) {
|
|
7253
|
-
Target["ANALYSIS"] = "analysis";
|
|
7254
|
-
Target["NODE"] = "node";
|
|
7255
|
-
})(Target || (Target = {}));
|
|
7256
8287
|
var FAnalysisNode = vue.defineComponent({
|
|
7257
8288
|
props: {
|
|
7258
8289
|
entity: {
|
|
@@ -7345,11 +8376,6 @@ var FAnalysisNode = vue.defineComponent({
|
|
|
7345
8376
|
}
|
|
7346
8377
|
});
|
|
7347
8378
|
|
|
7348
|
-
var Direction;
|
|
7349
|
-
(function(Direction) {
|
|
7350
|
-
Direction["IN"] = "in";
|
|
7351
|
-
Direction["OUT"] = "out";
|
|
7352
|
-
})(Direction || (Direction = {}));
|
|
7353
8379
|
var FAnalysisNodes = vue.defineComponent({
|
|
7354
8380
|
props: {
|
|
7355
8381
|
...defineListProps(),
|
|
@@ -7362,11 +8388,11 @@ var FAnalysisNodes = vue.defineComponent({
|
|
|
7362
8388
|
},
|
|
7363
8389
|
target: {
|
|
7364
8390
|
type: String,
|
|
7365
|
-
default: coreKit.DomainType.NODE
|
|
8391
|
+
default: `${coreKit.DomainType.NODE}`
|
|
7366
8392
|
},
|
|
7367
8393
|
direction: {
|
|
7368
8394
|
type: String,
|
|
7369
|
-
default: "out"
|
|
8395
|
+
default: `${"out"}`
|
|
7370
8396
|
}
|
|
7371
8397
|
},
|
|
7372
8398
|
slots: Object,
|
|
@@ -7571,7 +8597,7 @@ var FAnalysisNodeRunStatus = vue.defineComponent({
|
|
|
7571
8597
|
}
|
|
7572
8598
|
});
|
|
7573
8599
|
|
|
7574
|
-
var _sfc_main$
|
|
8600
|
+
var _sfc_main$e = vue.defineComponent({
|
|
7575
8601
|
components: {
|
|
7576
8602
|
FAnalysisNodes,
|
|
7577
8603
|
FAnalysisNodeRunStatus
|
|
@@ -7615,30 +8641,25 @@ var _sfc_main$d = vue.defineComponent({
|
|
|
7615
8641
|
}
|
|
7616
8642
|
});
|
|
7617
8643
|
|
|
7618
|
-
const _hoisted_1$
|
|
8644
|
+
const _hoisted_1$c = {
|
|
7619
8645
|
key: 0,
|
|
7620
8646
|
class: "train-stations-progress"
|
|
7621
8647
|
};
|
|
7622
8648
|
const _hoisted_2$b = {
|
|
7623
8649
|
class: "icon"
|
|
7624
8650
|
};
|
|
7625
|
-
const _hoisted_3$
|
|
7626
|
-
class: "mt-1"
|
|
7627
|
-
}, [
|
|
7628
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, "Status")
|
|
7629
|
-
], -1);
|
|
7630
|
-
const _hoisted_4$a = {
|
|
8651
|
+
const _hoisted_3$9 = {
|
|
7631
8652
|
key: 1,
|
|
7632
8653
|
class: "progress bg-white"
|
|
7633
8654
|
};
|
|
7634
|
-
const
|
|
8655
|
+
const _hoisted_4$9 = [
|
|
7635
8656
|
"aria-valuenow"
|
|
7636
8657
|
];
|
|
7637
|
-
function _sfc_render$
|
|
8658
|
+
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7638
8659
|
const _component_FAnalysisNodeRunStatus = vue.resolveComponent("FAnalysisNodeRunStatus");
|
|
7639
8660
|
const _component_FAnalysisNodes = vue.resolveComponent("FAnalysisNodes");
|
|
7640
8661
|
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
7641
|
-
_ctx.elementType === "steps" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
8662
|
+
_ctx.elementType === "steps" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
|
|
7642
8663
|
vue.createVNode(_component_FAnalysisNodes, {
|
|
7643
8664
|
header: false,
|
|
7644
8665
|
query: _ctx.query,
|
|
@@ -7667,7 +8688,11 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7667
8688
|
}, [
|
|
7668
8689
|
vue.createElementVNode("span", _hoisted_2$b, vue.toDisplayString(item.node.name), 1)
|
|
7669
8690
|
], 2),
|
|
7670
|
-
|
|
8691
|
+
_cache[0] || (_cache[0] = vue.createElementVNode("div", {
|
|
8692
|
+
class: "mt-1"
|
|
8693
|
+
}, [
|
|
8694
|
+
vue.createElementVNode("strong", null, "Status")
|
|
8695
|
+
], -1)),
|
|
7671
8696
|
vue.createElementVNode("div", null, [
|
|
7672
8697
|
vue.createVNode(_component_FAnalysisNodeRunStatus, {
|
|
7673
8698
|
status: item.run_status
|
|
@@ -7684,7 +8709,7 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7684
8709
|
"realm-id",
|
|
7685
8710
|
"source-id"
|
|
7686
8711
|
])
|
|
7687
|
-
])) : (vue.openBlock(), vue.createElementBlock("div",
|
|
8712
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$9, [
|
|
7688
8713
|
vue.createElementVNode("div", {
|
|
7689
8714
|
class: vue.normalizeClass([
|
|
7690
8715
|
"progress-bar",
|
|
@@ -7699,14 +8724,14 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7699
8724
|
"aria-valuenow": _ctx.progressPercentage,
|
|
7700
8725
|
"aria-valuemin": "0",
|
|
7701
8726
|
"aria-valuemax": "100"
|
|
7702
|
-
}, null, 14,
|
|
8727
|
+
}, null, 14, _hoisted_4$9)
|
|
7703
8728
|
]))
|
|
7704
8729
|
]);
|
|
7705
8730
|
}
|
|
7706
|
-
var FAnalysisNodesProgress = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
8731
|
+
var FAnalysisNodesProgress = /* @__PURE__ */ _export_sfc(_sfc_main$e, [
|
|
7707
8732
|
[
|
|
7708
8733
|
"render",
|
|
7709
|
-
_sfc_render$
|
|
8734
|
+
_sfc_render$e
|
|
7710
8735
|
]
|
|
7711
8736
|
]);
|
|
7712
8737
|
|
|
@@ -7733,7 +8758,7 @@ const FAnalysisBucketDownload = vue.defineComponent({
|
|
|
7733
8758
|
},
|
|
7734
8759
|
elementType: {
|
|
7735
8760
|
type: String,
|
|
7736
|
-
default:
|
|
8761
|
+
default: ActionCommandElementType.BUTTON
|
|
7737
8762
|
},
|
|
7738
8763
|
withIcon: {
|
|
7739
8764
|
type: Boolean,
|
|
@@ -7895,7 +8920,7 @@ var TrainName = vue.defineComponent({
|
|
|
7895
8920
|
}
|
|
7896
8921
|
});
|
|
7897
8922
|
|
|
7898
|
-
var _sfc_main$
|
|
8923
|
+
var _sfc_main$d = vue.defineComponent({
|
|
7899
8924
|
components: {
|
|
7900
8925
|
FAnalysisBucket,
|
|
7901
8926
|
FAnalysisBucketDownload,
|
|
@@ -7944,76 +8969,40 @@ var _sfc_main$c = vue.defineComponent({
|
|
|
7944
8969
|
}
|
|
7945
8970
|
});
|
|
7946
8971
|
|
|
7947
|
-
const _hoisted_1$
|
|
8972
|
+
const _hoisted_1$b = {
|
|
7948
8973
|
class: "d-flex flex-column gap-1 w-100"
|
|
7949
8974
|
};
|
|
7950
8975
|
const _hoisted_2$a = {
|
|
7951
8976
|
class: "w-100"
|
|
7952
8977
|
};
|
|
7953
|
-
const _hoisted_3$
|
|
8978
|
+
const _hoisted_3$8 = {
|
|
7954
8979
|
class: "d-flex flex-row align-items-center"
|
|
7955
8980
|
};
|
|
7956
|
-
const _hoisted_4$
|
|
7957
|
-
class: "fas fa-microscope me-1"
|
|
7958
|
-
}, null, -1);
|
|
7959
|
-
const _hoisted_5$7 = {
|
|
8981
|
+
const _hoisted_4$8 = {
|
|
7960
8982
|
class: "ms-auto d-flex flex-row gap-1"
|
|
7961
8983
|
};
|
|
7962
|
-
const
|
|
7963
|
-
class: "fa fa-bars"
|
|
7964
|
-
}, null, -1);
|
|
7965
|
-
const _hoisted_7$4 = {
|
|
8984
|
+
const _hoisted_5$5 = {
|
|
7966
8985
|
class: "row"
|
|
7967
8986
|
};
|
|
7968
|
-
const
|
|
8987
|
+
const _hoisted_6$4 = {
|
|
7969
8988
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
7970
8989
|
};
|
|
7971
|
-
const
|
|
7972
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, [
|
|
7973
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
7974
|
-
class: "fa-solid fa-server"
|
|
7975
|
-
}),
|
|
7976
|
-
/* @__PURE__ */ vue.createTextVNode(" Node")
|
|
7977
|
-
])
|
|
7978
|
-
], -1);
|
|
7979
|
-
const _hoisted_10$3 = {
|
|
8990
|
+
const _hoisted_7$3 = {
|
|
7980
8991
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
7981
8992
|
};
|
|
7982
|
-
const
|
|
7983
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, [
|
|
7984
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
7985
|
-
class: "fa-solid fa-heartbeat"
|
|
7986
|
-
}),
|
|
7987
|
-
/* @__PURE__ */ vue.createTextVNode(" Status")
|
|
7988
|
-
])
|
|
7989
|
-
], -1);
|
|
7990
|
-
const _hoisted_12$2 = {
|
|
8993
|
+
const _hoisted_8$3 = {
|
|
7991
8994
|
class: "col-12 col-md-4 d-flex align-items-center flex-column"
|
|
7992
8995
|
};
|
|
7993
|
-
const
|
|
7994
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, [
|
|
7995
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
7996
|
-
class: "fa-solid fa-user"
|
|
7997
|
-
}),
|
|
7998
|
-
/* @__PURE__ */ vue.createTextVNode(" Creator")
|
|
7999
|
-
])
|
|
8000
|
-
], -1);
|
|
8001
|
-
const _hoisted_14$1 = {
|
|
8996
|
+
const _hoisted_9$1 = {
|
|
8002
8997
|
class: "d-flex flex-row"
|
|
8003
8998
|
};
|
|
8004
|
-
const
|
|
8999
|
+
const _hoisted_10$1 = {
|
|
8005
9000
|
class: ""
|
|
8006
9001
|
};
|
|
8007
|
-
const
|
|
8008
|
-
class: "text-muted"
|
|
8009
|
-
}, " created ", -1);
|
|
8010
|
-
const _hoisted_17$1 = {
|
|
9002
|
+
const _hoisted_11 = {
|
|
8011
9003
|
class: "ms-auto"
|
|
8012
9004
|
};
|
|
8013
|
-
|
|
8014
|
-
class: "text-muted"
|
|
8015
|
-
}, " updated ", -1);
|
|
8016
|
-
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9005
|
+
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8017
9006
|
const _component_FAnalysisName = vue.resolveComponent("FAnalysisName");
|
|
8018
9007
|
const _component_VCLink = vue.resolveComponent("VCLink");
|
|
8019
9008
|
const _component_FAnalysisBucketDownload = vue.resolveComponent("FAnalysisBucketDownload");
|
|
@@ -8021,14 +9010,16 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8021
9010
|
const _component_FAnalysisNodeApprovalCommand = vue.resolveComponent("FAnalysisNodeApprovalCommand");
|
|
8022
9011
|
const _component_FAnalysisNodeApprovalStatus = vue.resolveComponent("FAnalysisNodeApprovalStatus");
|
|
8023
9012
|
const _component_VCTimeago = vue.resolveComponent("VCTimeago");
|
|
8024
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
9013
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
|
|
8025
9014
|
vue.createElementVNode("div", _hoisted_2$a, [
|
|
8026
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
9015
|
+
vue.createElementVNode("div", _hoisted_3$8, [
|
|
8027
9016
|
vue.createElementVNode("div", null, [
|
|
8028
9017
|
vue.renderSlot(_ctx.$slots, "title", {
|
|
8029
9018
|
data: _ctx.entity
|
|
8030
9019
|
}, ()=>[
|
|
8031
|
-
|
|
9020
|
+
_cache[0] || (_cache[0] = vue.createElementVNode("i", {
|
|
9021
|
+
class: "fas fa-microscope me-1"
|
|
9022
|
+
}, null, -1)),
|
|
8032
9023
|
vue.createVNode(_component_FAnalysisName, {
|
|
8033
9024
|
"entity-id": _ctx.entity.analysis.id,
|
|
8034
9025
|
"entity-name": _ctx.entity.analysis.name
|
|
@@ -8038,7 +9029,7 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8038
9029
|
])
|
|
8039
9030
|
])
|
|
8040
9031
|
]),
|
|
8041
|
-
vue.createElementVNode("div",
|
|
9032
|
+
vue.createElementVNode("div", _hoisted_4$8, [
|
|
8042
9033
|
vue.renderSlot(_ctx.$slots, "itemActions", {
|
|
8043
9034
|
data: _ctx.entity
|
|
8044
9035
|
}, ()=>[
|
|
@@ -8047,9 +9038,11 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8047
9038
|
disabled: _ctx.busy,
|
|
8048
9039
|
class: "btn btn-xs btn-dark"
|
|
8049
9040
|
}, {
|
|
8050
|
-
default: vue.withCtx(()=>[
|
|
8051
|
-
|
|
8052
|
-
|
|
9041
|
+
default: vue.withCtx(()=>_cache[1] || (_cache[1] = [
|
|
9042
|
+
vue.createElementVNode("i", {
|
|
9043
|
+
class: "fa fa-bars"
|
|
9044
|
+
}, null, -1)
|
|
9045
|
+
])),
|
|
8053
9046
|
_: 1
|
|
8054
9047
|
}, 8, [
|
|
8055
9048
|
"to",
|
|
@@ -8104,13 +9097,27 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8104
9097
|
vue.renderSlot(_ctx.$slots, "body", {
|
|
8105
9098
|
data: _ctx.entity
|
|
8106
9099
|
}, ()=>[
|
|
8107
|
-
vue.createElementVNode("div",
|
|
8108
|
-
vue.createElementVNode("div",
|
|
8109
|
-
|
|
9100
|
+
vue.createElementVNode("div", _hoisted_5$5, [
|
|
9101
|
+
vue.createElementVNode("div", _hoisted_6$4, [
|
|
9102
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("div", null, [
|
|
9103
|
+
vue.createElementVNode("strong", null, [
|
|
9104
|
+
vue.createElementVNode("i", {
|
|
9105
|
+
class: "fa-solid fa-server"
|
|
9106
|
+
}),
|
|
9107
|
+
vue.createTextVNode(" Node")
|
|
9108
|
+
])
|
|
9109
|
+
], -1)),
|
|
8110
9110
|
vue.createElementVNode("div", null, vue.toDisplayString(_ctx.entity.node.name), 1)
|
|
8111
9111
|
]),
|
|
8112
|
-
vue.createElementVNode("div",
|
|
8113
|
-
|
|
9112
|
+
vue.createElementVNode("div", _hoisted_7$3, [
|
|
9113
|
+
_cache[3] || (_cache[3] = vue.createElementVNode("div", null, [
|
|
9114
|
+
vue.createElementVNode("strong", null, [
|
|
9115
|
+
vue.createElementVNode("i", {
|
|
9116
|
+
class: "fa-solid fa-heartbeat"
|
|
9117
|
+
}),
|
|
9118
|
+
vue.createTextVNode(" Status")
|
|
9119
|
+
])
|
|
9120
|
+
], -1)),
|
|
8114
9121
|
vue.createElementVNode("div", null, [
|
|
8115
9122
|
vue.createVNode(_component_FAnalysisNodeApprovalStatus, {
|
|
8116
9123
|
status: _ctx.entity.approval_status
|
|
@@ -8126,8 +9133,15 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8126
9133
|
])
|
|
8127
9134
|
])
|
|
8128
9135
|
]),
|
|
8129
|
-
vue.createElementVNode("div",
|
|
8130
|
-
|
|
9136
|
+
vue.createElementVNode("div", _hoisted_8$3, [
|
|
9137
|
+
_cache[4] || (_cache[4] = vue.createElementVNode("div", null, [
|
|
9138
|
+
vue.createElementVNode("strong", null, [
|
|
9139
|
+
vue.createElementVNode("i", {
|
|
9140
|
+
class: "fa-solid fa-user"
|
|
9141
|
+
}),
|
|
9142
|
+
vue.createTextVNode(" Creator")
|
|
9143
|
+
])
|
|
9144
|
+
], -1)),
|
|
8131
9145
|
vue.createElementVNode("div", null, [
|
|
8132
9146
|
_ctx.entity.analysis.user_id ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
8133
9147
|
key: 0
|
|
@@ -8141,10 +9155,12 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8141
9155
|
vue.renderSlot(_ctx.$slots, "footer", {
|
|
8142
9156
|
data: _ctx.entity
|
|
8143
9157
|
}, ()=>[
|
|
8144
|
-
vue.createElementVNode("div",
|
|
8145
|
-
vue.createElementVNode("div",
|
|
9158
|
+
vue.createElementVNode("div", _hoisted_9$1, [
|
|
9159
|
+
vue.createElementVNode("div", _hoisted_10$1, [
|
|
8146
9160
|
vue.createElementVNode("small", null, [
|
|
8147
|
-
|
|
9161
|
+
_cache[5] || (_cache[5] = vue.createElementVNode("span", {
|
|
9162
|
+
class: "text-muted"
|
|
9163
|
+
}, " created ", -1)),
|
|
8148
9164
|
vue.createVNode(_component_VCTimeago, {
|
|
8149
9165
|
datetime: _ctx.entity.created_at
|
|
8150
9166
|
}, null, 8, [
|
|
@@ -8152,9 +9168,11 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8152
9168
|
])
|
|
8153
9169
|
])
|
|
8154
9170
|
]),
|
|
8155
|
-
vue.createElementVNode("div",
|
|
9171
|
+
vue.createElementVNode("div", _hoisted_11, [
|
|
8156
9172
|
vue.createElementVNode("small", null, [
|
|
8157
|
-
|
|
9173
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("span", {
|
|
9174
|
+
class: "text-muted"
|
|
9175
|
+
}, " updated ", -1)),
|
|
8158
9176
|
vue.createVNode(_component_VCTimeago, {
|
|
8159
9177
|
datetime: _ctx.entity.updated_at
|
|
8160
9178
|
}, null, 8, [
|
|
@@ -8166,14 +9184,14 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8166
9184
|
])
|
|
8167
9185
|
]);
|
|
8168
9186
|
}
|
|
8169
|
-
var FAnalysisNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9187
|
+
var FAnalysisNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$d, [
|
|
8170
9188
|
[
|
|
8171
9189
|
"render",
|
|
8172
|
-
_sfc_render$
|
|
9190
|
+
_sfc_render$d
|
|
8173
9191
|
]
|
|
8174
9192
|
]);
|
|
8175
9193
|
|
|
8176
|
-
var _sfc_main$
|
|
9194
|
+
var _sfc_main$c = vue.defineComponent({
|
|
8177
9195
|
components: {
|
|
8178
9196
|
ListPagination: FPagination,
|
|
8179
9197
|
ListSearch: FSearch,
|
|
@@ -8236,47 +9254,22 @@ var _sfc_main$b = vue.defineComponent({
|
|
|
8236
9254
|
}
|
|
8237
9255
|
});
|
|
8238
9256
|
|
|
8239
|
-
const _hoisted_1$
|
|
9257
|
+
const _hoisted_1$a = {
|
|
8240
9258
|
class: "mb-2"
|
|
8241
9259
|
};
|
|
8242
|
-
const _hoisted_2$9 =
|
|
8243
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
8244
|
-
class: "fa fa-compact-disc"
|
|
8245
|
-
}),
|
|
8246
|
-
/* @__PURE__ */ vue.createTextVNode(" MasterImage")
|
|
8247
|
-
], -1);
|
|
8248
|
-
const _hoisted_3$9 = {
|
|
9260
|
+
const _hoisted_2$9 = {
|
|
8249
9261
|
class: "mb-2"
|
|
8250
9262
|
};
|
|
8251
|
-
const
|
|
8252
|
-
const _hoisted_5$6 = /* @__PURE__ */ vue.createElementVNode("h6", null, [
|
|
8253
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
8254
|
-
class: "fa fa-city"
|
|
8255
|
-
}),
|
|
8256
|
-
/* @__PURE__ */ vue.createTextVNode(" Nodes")
|
|
8257
|
-
], -1);
|
|
8258
|
-
const _hoisted_6$5 = {
|
|
9263
|
+
const _hoisted_3$7 = {
|
|
8259
9264
|
class: "row"
|
|
8260
9265
|
};
|
|
8261
|
-
const
|
|
9266
|
+
const _hoisted_4$7 = {
|
|
8262
9267
|
class: "col-12 col-xl-6"
|
|
8263
9268
|
};
|
|
8264
|
-
const
|
|
8265
|
-
/* @__PURE__ */ vue.createTextVNode("Nodes "),
|
|
8266
|
-
/* @__PURE__ */ vue.createElementVNode("span", {
|
|
8267
|
-
class: "text-info"
|
|
8268
|
-
}, "available")
|
|
8269
|
-
], -1);
|
|
8270
|
-
const _hoisted_9$3 = {
|
|
9269
|
+
const _hoisted_5$4 = {
|
|
8271
9270
|
class: "col-12 col-xl-6"
|
|
8272
9271
|
};
|
|
8273
|
-
|
|
8274
|
-
/* @__PURE__ */ vue.createTextVNode("Nodes "),
|
|
8275
|
-
/* @__PURE__ */ vue.createElementVNode("span", {
|
|
8276
|
-
class: "text-success"
|
|
8277
|
-
}, "selected")
|
|
8278
|
-
], -1);
|
|
8279
|
-
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9272
|
+
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8280
9273
|
const _component_FMasterImagePicker = vue.resolveComponent("FMasterImagePicker");
|
|
8281
9274
|
const _component_ListSearch = vue.resolveComponent("ListSearch");
|
|
8282
9275
|
const _component_ListPagination = vue.resolveComponent("ListPagination");
|
|
@@ -8284,9 +9277,14 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8284
9277
|
const _component_FProjectNodes = vue.resolveComponent("FProjectNodes");
|
|
8285
9278
|
const _component_FAnalysisNodes = vue.resolveComponent("FAnalysisNodes");
|
|
8286
9279
|
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
8287
|
-
vue.createElementVNode("div", _hoisted_1$
|
|
8288
|
-
|
|
8289
|
-
|
|
9280
|
+
vue.createElementVNode("div", _hoisted_1$a, [
|
|
9281
|
+
_cache[0] || (_cache[0] = vue.createElementVNode("h6", null, [
|
|
9282
|
+
vue.createElementVNode("i", {
|
|
9283
|
+
class: "fa fa-compact-disc"
|
|
9284
|
+
}),
|
|
9285
|
+
vue.createTextVNode(" MasterImage")
|
|
9286
|
+
], -1)),
|
|
9287
|
+
vue.createElementVNode("div", _hoisted_2$9, [
|
|
8290
9288
|
vue.createVNode(_component_FMasterImagePicker, {
|
|
8291
9289
|
"entity-id": _ctx.entity.master_image_id,
|
|
8292
9290
|
onSelected: _ctx.handleMasterImageSelected
|
|
@@ -8296,11 +9294,16 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8296
9294
|
])
|
|
8297
9295
|
])
|
|
8298
9296
|
]),
|
|
8299
|
-
|
|
9297
|
+
_cache[4] || (_cache[4] = vue.createElementVNode("hr", null, null, -1)),
|
|
8300
9298
|
vue.createElementVNode("div", null, [
|
|
8301
|
-
|
|
8302
|
-
|
|
8303
|
-
|
|
9299
|
+
_cache[3] || (_cache[3] = vue.createElementVNode("h6", null, [
|
|
9300
|
+
vue.createElementVNode("i", {
|
|
9301
|
+
class: "fa fa-city"
|
|
9302
|
+
}),
|
|
9303
|
+
vue.createTextVNode(" Nodes")
|
|
9304
|
+
], -1)),
|
|
9305
|
+
vue.createElementVNode("div", _hoisted_3$7, [
|
|
9306
|
+
vue.createElementVNode("div", _hoisted_4$7, [
|
|
8304
9307
|
vue.createVNode(_component_FProjectNodes, {
|
|
8305
9308
|
ref: "FProjectNodes",
|
|
8306
9309
|
"realm-id": _ctx.entity.realm_id,
|
|
@@ -8312,7 +9315,12 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8312
9315
|
}
|
|
8313
9316
|
}, {
|
|
8314
9317
|
header: vue.withCtx((props)=>[
|
|
8315
|
-
|
|
9318
|
+
_cache[1] || (_cache[1] = vue.createElementVNode("span", null, [
|
|
9319
|
+
vue.createTextVNode("Nodes "),
|
|
9320
|
+
vue.createElementVNode("span", {
|
|
9321
|
+
class: "text-info"
|
|
9322
|
+
}, "available")
|
|
9323
|
+
], -1)),
|
|
8316
9324
|
vue.createVNode(_component_ListSearch, {
|
|
8317
9325
|
load: props.load,
|
|
8318
9326
|
meta: props.meta
|
|
@@ -8354,7 +9362,7 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8354
9362
|
"query"
|
|
8355
9363
|
])
|
|
8356
9364
|
]),
|
|
8357
|
-
vue.createElementVNode("div",
|
|
9365
|
+
vue.createElementVNode("div", _hoisted_5$4, [
|
|
8358
9366
|
vue.createVNode(_component_FAnalysisNodes, {
|
|
8359
9367
|
ref: "FAnalysisNodes",
|
|
8360
9368
|
"realm-id": _ctx.entity.realm_id,
|
|
@@ -8365,9 +9373,14 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8365
9373
|
}
|
|
8366
9374
|
}
|
|
8367
9375
|
}, {
|
|
8368
|
-
header: vue.withCtx(()=>[
|
|
8369
|
-
|
|
8370
|
-
|
|
9376
|
+
header: vue.withCtx(()=>_cache[2] || (_cache[2] = [
|
|
9377
|
+
vue.createElementVNode("span", null, [
|
|
9378
|
+
vue.createTextVNode("Nodes "),
|
|
9379
|
+
vue.createElementVNode("span", {
|
|
9380
|
+
class: "text-success"
|
|
9381
|
+
}, "selected")
|
|
9382
|
+
], -1)
|
|
9383
|
+
])),
|
|
8371
9384
|
_: 1
|
|
8372
9385
|
}, 8, [
|
|
8373
9386
|
"realm-id",
|
|
@@ -8378,14 +9391,14 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8378
9391
|
])
|
|
8379
9392
|
]);
|
|
8380
9393
|
}
|
|
8381
|
-
var FAnalysisWizardStepBase = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9394
|
+
var FAnalysisWizardStepBase = /* @__PURE__ */ _export_sfc(_sfc_main$c, [
|
|
8382
9395
|
[
|
|
8383
9396
|
"render",
|
|
8384
|
-
_sfc_render$
|
|
9397
|
+
_sfc_render$c
|
|
8385
9398
|
]
|
|
8386
9399
|
]);
|
|
8387
9400
|
|
|
8388
|
-
var _sfc_main$
|
|
9401
|
+
var _sfc_main$b = vue.defineComponent({
|
|
8389
9402
|
props: {
|
|
8390
9403
|
entity: {
|
|
8391
9404
|
type: Object,
|
|
@@ -8437,25 +9450,19 @@ var _sfc_main$a = vue.defineComponent({
|
|
|
8437
9450
|
}
|
|
8438
9451
|
});
|
|
8439
9452
|
|
|
8440
|
-
const _hoisted_1$
|
|
9453
|
+
const _hoisted_1$9 = {
|
|
8441
9454
|
class: "title"
|
|
8442
9455
|
};
|
|
8443
9456
|
const _hoisted_2$8 = {
|
|
8444
9457
|
class: "ms-auto d-flex flex-row me-1"
|
|
8445
9458
|
};
|
|
8446
|
-
const _hoisted_3$
|
|
9459
|
+
const _hoisted_3$6 = {
|
|
8447
9460
|
class: "ms-1"
|
|
8448
9461
|
};
|
|
8449
|
-
const _hoisted_4$
|
|
9462
|
+
const _hoisted_4$6 = [
|
|
8450
9463
|
"disabled"
|
|
8451
9464
|
];
|
|
8452
|
-
|
|
8453
|
-
class: "fa fa-trash"
|
|
8454
|
-
}, null, -1);
|
|
8455
|
-
const _hoisted_6$4 = [
|
|
8456
|
-
_hoisted_5$5
|
|
8457
|
-
];
|
|
8458
|
-
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9465
|
+
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8459
9466
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
8460
9467
|
class: vue.normalizeClass([
|
|
8461
9468
|
"card card-file d-flex flex-row align-items-center p-1",
|
|
@@ -8470,7 +9477,7 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8470
9477
|
"prevent"
|
|
8471
9478
|
]))
|
|
8472
9479
|
}, [
|
|
8473
|
-
vue.createElementVNode("span", _hoisted_1$
|
|
9480
|
+
vue.createElementVNode("span", _hoisted_1$9, vue.toDisplayString(_ctx.entity.name), 1)
|
|
8474
9481
|
]),
|
|
8475
9482
|
vue.createElementVNode("div", _hoisted_2$8, [
|
|
8476
9483
|
vue.createElementVNode("div", null, [
|
|
@@ -8496,7 +9503,7 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8496
9503
|
}, null, 2)
|
|
8497
9504
|
], 2)) : vue.createCommentVNode("", true)
|
|
8498
9505
|
]),
|
|
8499
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
9506
|
+
vue.createElementVNode("div", _hoisted_3$6, [
|
|
8500
9507
|
vue.createElementVNode("button", {
|
|
8501
9508
|
type: "button",
|
|
8502
9509
|
class: "btn btn-danger btn-xs",
|
|
@@ -8504,15 +9511,19 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8504
9511
|
onClick: _cache[2] || (_cache[2] = vue.withModifiers((...args)=>_ctx.drop && _ctx.drop(...args), [
|
|
8505
9512
|
"prevent"
|
|
8506
9513
|
]))
|
|
8507
|
-
},
|
|
9514
|
+
}, _cache[3] || (_cache[3] = [
|
|
9515
|
+
vue.createElementVNode("i", {
|
|
9516
|
+
class: "fa fa-trash"
|
|
9517
|
+
}, null, -1)
|
|
9518
|
+
]), 8, _hoisted_4$6)
|
|
8508
9519
|
])
|
|
8509
9520
|
])
|
|
8510
9521
|
], 2);
|
|
8511
9522
|
}
|
|
8512
|
-
var FAnalysisFile = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9523
|
+
var FAnalysisFile = /* @__PURE__ */ _export_sfc(_sfc_main$b, [
|
|
8513
9524
|
[
|
|
8514
9525
|
"render",
|
|
8515
|
-
_sfc_render$
|
|
9526
|
+
_sfc_render$b
|
|
8516
9527
|
]
|
|
8517
9528
|
]);
|
|
8518
9529
|
|
|
@@ -8542,7 +9553,7 @@ const FAnalysisBucketFiles = vue.defineComponent({
|
|
|
8542
9553
|
}
|
|
8543
9554
|
});
|
|
8544
9555
|
|
|
8545
|
-
var _sfc_main$
|
|
9556
|
+
var _sfc_main$a = vue.defineComponent({
|
|
8546
9557
|
props: {
|
|
8547
9558
|
file: {
|
|
8548
9559
|
type: Object,
|
|
@@ -8574,41 +9585,229 @@ var _sfc_main$9 = vue.defineComponent({
|
|
|
8574
9585
|
}
|
|
8575
9586
|
});
|
|
8576
9587
|
|
|
8577
|
-
const _hoisted_1$
|
|
9588
|
+
const _hoisted_1$8 = {
|
|
8578
9589
|
class: "card card-file d-flex flex-row align-items-center p-1"
|
|
8579
9590
|
};
|
|
8580
9591
|
const _hoisted_2$7 = {
|
|
8581
9592
|
class: "card-heading"
|
|
8582
9593
|
};
|
|
8583
|
-
const _hoisted_3$
|
|
9594
|
+
const _hoisted_3$5 = {
|
|
8584
9595
|
class: "title"
|
|
8585
9596
|
};
|
|
8586
|
-
const _hoisted_4$
|
|
9597
|
+
const _hoisted_4$5 = {
|
|
8587
9598
|
class: "ms-auto"
|
|
8588
9599
|
};
|
|
8589
|
-
|
|
8590
|
-
|
|
8591
|
-
}, null, -1);
|
|
8592
|
-
const _hoisted_6$3 = [
|
|
8593
|
-
_hoisted_5$4
|
|
8594
|
-
];
|
|
8595
|
-
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8596
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
|
|
9600
|
+
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9601
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
|
|
8597
9602
|
vue.createElementVNode("div", _hoisted_2$7, [
|
|
8598
|
-
vue.createElementVNode("span", _hoisted_3$
|
|
9603
|
+
vue.createElementVNode("span", _hoisted_3$5, vue.toDisplayString(_ctx.path), 1)
|
|
8599
9604
|
]),
|
|
8600
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
9605
|
+
vue.createElementVNode("div", _hoisted_4$5, [
|
|
8601
9606
|
vue.createElementVNode("button", {
|
|
8602
9607
|
type: "button",
|
|
8603
9608
|
class: "btn btn-dark btn-xs",
|
|
8604
9609
|
onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args)=>_ctx.drop && _ctx.drop(...args), [
|
|
8605
9610
|
"prevent"
|
|
8606
9611
|
]))
|
|
8607
|
-
},
|
|
9612
|
+
}, _cache[1] || (_cache[1] = [
|
|
9613
|
+
vue.createElementVNode("i", {
|
|
9614
|
+
class: "fa fa fa-trash"
|
|
9615
|
+
}, null, -1)
|
|
9616
|
+
]))
|
|
9617
|
+
])
|
|
9618
|
+
]);
|
|
9619
|
+
}
|
|
9620
|
+
var FAnalysisFormFile = /* @__PURE__ */ _export_sfc(_sfc_main$a, [
|
|
9621
|
+
[
|
|
9622
|
+
"render",
|
|
9623
|
+
_sfc_render$a
|
|
9624
|
+
]
|
|
9625
|
+
]);
|
|
9626
|
+
|
|
9627
|
+
var _sfc_main$9 = vue.defineComponent({
|
|
9628
|
+
components: {
|
|
9629
|
+
FAnalysisFormFile
|
|
9630
|
+
},
|
|
9631
|
+
props: {
|
|
9632
|
+
entity: {
|
|
9633
|
+
type: Object,
|
|
9634
|
+
required: true
|
|
9635
|
+
}
|
|
9636
|
+
},
|
|
9637
|
+
emits: [
|
|
9638
|
+
'fileUploaded',
|
|
9639
|
+
'uploaded',
|
|
9640
|
+
'failed'
|
|
9641
|
+
],
|
|
9642
|
+
setup (props, { emit }) {
|
|
9643
|
+
const coreClient = injectCoreHTTPClient();
|
|
9644
|
+
const storageClient = injectStorageHTTPClient();
|
|
9645
|
+
const busy = vue.ref(false);
|
|
9646
|
+
const tempFiles = vue.ref([]);
|
|
9647
|
+
const directoryMode = vue.ref(true);
|
|
9648
|
+
const vNode = vue.ref(null);
|
|
9649
|
+
const checkTempFiles = ($event)=>{
|
|
9650
|
+
$event.preventDefault();
|
|
9651
|
+
for(let i = 0; i < $event.target.files.length; i++){
|
|
9652
|
+
tempFiles.value.push($event.target.files[i]);
|
|
9653
|
+
}
|
|
9654
|
+
if (vNode.value) {
|
|
9655
|
+
vNode.value = '';
|
|
9656
|
+
}
|
|
9657
|
+
};
|
|
9658
|
+
const dropTempFile = ($event)=>{
|
|
9659
|
+
const index = tempFiles.value.findIndex((file)=>{
|
|
9660
|
+
if (hasOwnProperty(file, 'webkitRelativePath') && hasOwnProperty($event, 'webkitRelativePath')) {
|
|
9661
|
+
return file.webkitRelativePath === $event.webkitRelativePath;
|
|
9662
|
+
}
|
|
9663
|
+
return file.name === $event.name;
|
|
9664
|
+
});
|
|
9665
|
+
if (index !== -1) {
|
|
9666
|
+
tempFiles.value.splice(index, 1);
|
|
9667
|
+
}
|
|
9668
|
+
};
|
|
9669
|
+
const upload = wrapFnWithBusyState(busy, async ()=>{
|
|
9670
|
+
if (tempFiles.value.length === 0) return;
|
|
9671
|
+
if (!props.entity.external_id) {
|
|
9672
|
+
emit('failed', new Error('The analysis bucket has not created yet.'));
|
|
9673
|
+
return;
|
|
9674
|
+
}
|
|
9675
|
+
try {
|
|
9676
|
+
const formData = new FormData();
|
|
9677
|
+
for(let i = 0; i < tempFiles.value.length; i++){
|
|
9678
|
+
formData.append(`files[${i}]`, tempFiles.value[i]);
|
|
9679
|
+
}
|
|
9680
|
+
const { data: bucketFiles } = await storageClient.bucket.upload(props.entity.external_id, formData);
|
|
9681
|
+
for(let i = 0; i < bucketFiles.length; i++){
|
|
9682
|
+
const file = await coreClient.analysisBucketFile.create({
|
|
9683
|
+
external_id: bucketFiles[i].id,
|
|
9684
|
+
bucket_id: props.entity.id,
|
|
9685
|
+
analysis_id: props.entity.analysis_id,
|
|
9686
|
+
name: bucketFiles[i].path
|
|
9687
|
+
});
|
|
9688
|
+
emit('fileUploaded', file);
|
|
9689
|
+
}
|
|
9690
|
+
tempFiles.value = [];
|
|
9691
|
+
emit('uploaded');
|
|
9692
|
+
} catch (e) {
|
|
9693
|
+
emit('failed', e);
|
|
9694
|
+
}
|
|
9695
|
+
});
|
|
9696
|
+
return {
|
|
9697
|
+
directoryMode,
|
|
9698
|
+
busy,
|
|
9699
|
+
vNode,
|
|
9700
|
+
tempFiles,
|
|
9701
|
+
checkTempFiles,
|
|
9702
|
+
dropTempFile,
|
|
9703
|
+
upload
|
|
9704
|
+
};
|
|
9705
|
+
}
|
|
9706
|
+
});
|
|
9707
|
+
|
|
9708
|
+
const _hoisted_1$7 = {
|
|
9709
|
+
class: "d-flex flex-column"
|
|
9710
|
+
};
|
|
9711
|
+
const _hoisted_2$6 = {
|
|
9712
|
+
class: "form-group"
|
|
9713
|
+
};
|
|
9714
|
+
const _hoisted_3$4 = {
|
|
9715
|
+
class: "form-label"
|
|
9716
|
+
};
|
|
9717
|
+
const _hoisted_4$4 = [
|
|
9718
|
+
"webkitdirectory",
|
|
9719
|
+
"disbaled"
|
|
9720
|
+
];
|
|
9721
|
+
const _hoisted_5$3 = {
|
|
9722
|
+
class: "form-group mb-0"
|
|
9723
|
+
};
|
|
9724
|
+
const _hoisted_6$3 = {
|
|
9725
|
+
class: "form-check form-switch"
|
|
9726
|
+
};
|
|
9727
|
+
const _hoisted_7$2 = {
|
|
9728
|
+
key: 0,
|
|
9729
|
+
class: "alert alert-info alert-sm m-t-10"
|
|
9730
|
+
};
|
|
9731
|
+
const _hoisted_8$2 = {
|
|
9732
|
+
class: "d-flex flex-column"
|
|
9733
|
+
};
|
|
9734
|
+
const _hoisted_9 = {
|
|
9735
|
+
class: "form-group"
|
|
9736
|
+
};
|
|
9737
|
+
const _hoisted_10 = [
|
|
9738
|
+
"disabled"
|
|
9739
|
+
];
|
|
9740
|
+
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9741
|
+
const _component_FAnalysisFormFile = vue.resolveComponent("FAnalysisFormFile");
|
|
9742
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
|
|
9743
|
+
vue.createElementVNode("div", null, [
|
|
9744
|
+
vue.createElementVNode("div", _hoisted_2$6, [
|
|
9745
|
+
vue.createElementVNode("label", _hoisted_3$4, vue.toDisplayString(_ctx.directoryMode ? "Directories" : "Files"), 1),
|
|
9746
|
+
vue.createElementVNode("input", {
|
|
9747
|
+
id: "files",
|
|
9748
|
+
ref: "vNode",
|
|
9749
|
+
type: "file",
|
|
9750
|
+
webkitdirectory: _ctx.directoryMode,
|
|
9751
|
+
class: "form-control",
|
|
9752
|
+
multiple: "",
|
|
9753
|
+
disbaled: _ctx.busy,
|
|
9754
|
+
onChange: _cache[0] || (_cache[0] = (...args)=>_ctx.checkTempFiles && _ctx.checkTempFiles(...args))
|
|
9755
|
+
}, null, 40, _hoisted_4$4)
|
|
9756
|
+
]),
|
|
9757
|
+
vue.createElementVNode("div", _hoisted_5$3, [
|
|
9758
|
+
vue.createElementVNode("div", _hoisted_6$3, [
|
|
9759
|
+
vue.withDirectives(vue.createElementVNode("input", {
|
|
9760
|
+
id: "train-file-manager-switch",
|
|
9761
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.directoryMode = $event),
|
|
9762
|
+
class: "form-check-input",
|
|
9763
|
+
type: "checkbox"
|
|
9764
|
+
}, null, 512), [
|
|
9765
|
+
[
|
|
9766
|
+
vue.vModelCheckbox,
|
|
9767
|
+
_ctx.directoryMode
|
|
9768
|
+
]
|
|
9769
|
+
]),
|
|
9770
|
+
_cache[3] || (_cache[3] = vue.createElementVNode("label", {
|
|
9771
|
+
class: "form-check-label",
|
|
9772
|
+
for: "train-file-manager-switch"
|
|
9773
|
+
}, "Directory Mode", -1))
|
|
9774
|
+
])
|
|
9775
|
+
])
|
|
9776
|
+
]),
|
|
9777
|
+
vue.createElementVNode("div", null, [
|
|
9778
|
+
_ctx.tempFiles.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$2, " You have not selected any " + vue.toDisplayString(_ctx.directoryMode ? "directories" : "files") + " to upload. ", 1)) : vue.createCommentVNode("", true),
|
|
9779
|
+
vue.createElementVNode("div", _hoisted_8$2, [
|
|
9780
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tempFiles, (file, key)=>{
|
|
9781
|
+
return vue.openBlock(), vue.createBlock(_component_FAnalysisFormFile, {
|
|
9782
|
+
key,
|
|
9783
|
+
class: "me-1",
|
|
9784
|
+
file,
|
|
9785
|
+
onDrop: _ctx.dropTempFile
|
|
9786
|
+
}, null, 8, [
|
|
9787
|
+
"file",
|
|
9788
|
+
"onDrop"
|
|
9789
|
+
]);
|
|
9790
|
+
}), 128))
|
|
9791
|
+
]),
|
|
9792
|
+
vue.createElementVNode("div", _hoisted_9, [
|
|
9793
|
+
vue.createElementVNode("button", {
|
|
9794
|
+
type: "button",
|
|
9795
|
+
class: "btn btn-sm btn-primary btn-block",
|
|
9796
|
+
disabled: _ctx.busy || _ctx.tempFiles.length === 0,
|
|
9797
|
+
onClick: _cache[2] || (_cache[2] = vue.withModifiers((...args)=>_ctx.upload && _ctx.upload(...args), [
|
|
9798
|
+
"prevent"
|
|
9799
|
+
]))
|
|
9800
|
+
}, _cache[4] || (_cache[4] = [
|
|
9801
|
+
vue.createElementVNode("i", {
|
|
9802
|
+
class: "fa fa-upload"
|
|
9803
|
+
}, null, -1),
|
|
9804
|
+
vue.createTextVNode(" Upload ")
|
|
9805
|
+
]), 8, _hoisted_10)
|
|
9806
|
+
])
|
|
8608
9807
|
])
|
|
8609
9808
|
]);
|
|
8610
9809
|
}
|
|
8611
|
-
var
|
|
9810
|
+
var FAnalysisBucketFileUpload = /* @__PURE__ */ _export_sfc(_sfc_main$9, [
|
|
8612
9811
|
[
|
|
8613
9812
|
"render",
|
|
8614
9813
|
_sfc_render$9
|
|
@@ -8617,8 +9816,9 @@ var FAnalysisFormFile = /* @__PURE__ */ _export_sfc(_sfc_main$9, [
|
|
|
8617
9816
|
|
|
8618
9817
|
var _sfc_main$8 = vue.defineComponent({
|
|
8619
9818
|
components: {
|
|
9819
|
+
BModal: bootstrapVueNext.BModal,
|
|
9820
|
+
FAnalysisBucketFileUpload,
|
|
8620
9821
|
FAnalysisBucketFiles,
|
|
8621
|
-
FAnalysisFormFile,
|
|
8622
9822
|
FAnalysisFile
|
|
8623
9823
|
},
|
|
8624
9824
|
props: {
|
|
@@ -8640,7 +9840,6 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8640
9840
|
],
|
|
8641
9841
|
setup (props, { emit }) {
|
|
8642
9842
|
const coreClient = injectCoreHTTPClient();
|
|
8643
|
-
const storageClient = injectStorageHTTPClient();
|
|
8644
9843
|
const entrypointFile = vue.ref(null);
|
|
8645
9844
|
if (props.fileEntity) {
|
|
8646
9845
|
entrypointFile.value = props.fileEntity;
|
|
@@ -8651,10 +9850,12 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8651
9850
|
}
|
|
8652
9851
|
return undefined;
|
|
8653
9852
|
});
|
|
8654
|
-
const
|
|
9853
|
+
const modal = vue.ref(false);
|
|
9854
|
+
const toggleModal = ()=>{
|
|
9855
|
+
modal.value = !modal.value;
|
|
9856
|
+
};
|
|
8655
9857
|
const selected = vue.ref([]);
|
|
8656
9858
|
const selectAll = vue.ref(false);
|
|
8657
|
-
const directoryMode = vue.ref(true);
|
|
8658
9859
|
const busy = vue.ref(false);
|
|
8659
9860
|
const fileListNode = vue.ref(null);
|
|
8660
9861
|
const fileListQuery = vue.computed(()=>({
|
|
@@ -8685,32 +9886,16 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8685
9886
|
}
|
|
8686
9887
|
emit('updated', entity);
|
|
8687
9888
|
};
|
|
8688
|
-
const
|
|
8689
|
-
|
|
8690
|
-
|
|
8691
|
-
|
|
8692
|
-
|
|
8693
|
-
|
|
8694
|
-
|
|
8695
|
-
|
|
8696
|
-
|
|
8697
|
-
|
|
8698
|
-
const { data: bucketFiles } = await storageClient.bucket.upload(props.entity.external_id, formData);
|
|
8699
|
-
for(let i = 0; i < bucketFiles.length; i++){
|
|
8700
|
-
const file = await coreClient.analysisBucketFile.create({
|
|
8701
|
-
external_id: bucketFiles[i].id,
|
|
8702
|
-
bucket_id: props.entity.id,
|
|
8703
|
-
analysis_id: props.entity.analysis_id,
|
|
8704
|
-
name: bucketFiles[i].path
|
|
8705
|
-
});
|
|
8706
|
-
handleCreated(file);
|
|
8707
|
-
}
|
|
8708
|
-
tempFiles.value = [];
|
|
8709
|
-
emit('uploaded');
|
|
8710
|
-
} catch (e) {
|
|
8711
|
-
emit('failed', e);
|
|
8712
|
-
}
|
|
8713
|
-
});
|
|
9889
|
+
const handleFailed = (e)=>{
|
|
9890
|
+
emit('failed', e);
|
|
9891
|
+
};
|
|
9892
|
+
const handleUploaded = ()=>{
|
|
9893
|
+
emit('uploaded');
|
|
9894
|
+
toggleModal();
|
|
9895
|
+
};
|
|
9896
|
+
const handleFileUploaded = (entity)=>{
|
|
9897
|
+
handleCreated(entity);
|
|
9898
|
+
};
|
|
8714
9899
|
const dropSelected = wrapFnWithBusyState(busy, async ()=>{
|
|
8715
9900
|
if (selected.value.length === 0) return;
|
|
8716
9901
|
try {
|
|
@@ -8741,27 +9926,6 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8741
9926
|
selected.value.splice(index, 1);
|
|
8742
9927
|
}
|
|
8743
9928
|
};
|
|
8744
|
-
const filesNode = vue.ref(null);
|
|
8745
|
-
const checkTempFiles = ($event)=>{
|
|
8746
|
-
$event.preventDefault();
|
|
8747
|
-
for(let i = 0; i < $event.target.files.length; i++){
|
|
8748
|
-
tempFiles.value.push($event.target.files[i]);
|
|
8749
|
-
}
|
|
8750
|
-
if (filesNode.value) {
|
|
8751
|
-
filesNode.value = '';
|
|
8752
|
-
}
|
|
8753
|
-
};
|
|
8754
|
-
const dropTempFile = ($event)=>{
|
|
8755
|
-
const index = tempFiles.value.findIndex((file)=>{
|
|
8756
|
-
if (hasOwnProperty(file, 'webkitRelativePath') && hasOwnProperty($event, 'webkitRelativePath')) {
|
|
8757
|
-
return file.webkitRelativePath === $event.webkitRelativePath;
|
|
8758
|
-
}
|
|
8759
|
-
return file.name === $event.name;
|
|
8760
|
-
});
|
|
8761
|
-
if (index !== -1) {
|
|
8762
|
-
tempFiles.value.splice(index, 1);
|
|
8763
|
-
}
|
|
8764
|
-
};
|
|
8765
9929
|
const changeEntryPointFile = async (file)=>{
|
|
8766
9930
|
if (entrypointFile.value) {
|
|
8767
9931
|
if (entrypointFile.value.id === file.id) {
|
|
@@ -8789,261 +9953,199 @@ var _sfc_main$8 = vue.defineComponent({
|
|
|
8789
9953
|
}
|
|
8790
9954
|
};
|
|
8791
9955
|
return {
|
|
8792
|
-
directoryMode,
|
|
8793
9956
|
busy,
|
|
8794
|
-
checkTempFiles,
|
|
8795
|
-
tempFiles,
|
|
8796
9957
|
selected,
|
|
8797
9958
|
selectAll,
|
|
8798
9959
|
dropSelected,
|
|
8799
9960
|
selectAllFiles,
|
|
8800
|
-
dropTempFile,
|
|
8801
|
-
upload,
|
|
8802
9961
|
handleCreated,
|
|
8803
9962
|
handleDeleted,
|
|
8804
9963
|
handleUpdated,
|
|
9964
|
+
handleFailed,
|
|
9965
|
+
handleUploaded,
|
|
9966
|
+
handleFileUploaded,
|
|
8805
9967
|
toggleFile,
|
|
8806
9968
|
entrypointFile,
|
|
8807
9969
|
entrypointFileId,
|
|
8808
9970
|
changeEntryPointFile,
|
|
8809
|
-
filesNode,
|
|
8810
9971
|
fileListNode,
|
|
8811
|
-
fileListQuery
|
|
9972
|
+
fileListQuery,
|
|
9973
|
+
modal,
|
|
9974
|
+
toggleModal
|
|
8812
9975
|
};
|
|
8813
9976
|
}
|
|
8814
9977
|
});
|
|
8815
9978
|
|
|
8816
9979
|
const _hoisted_1$6 = {
|
|
8817
|
-
class: "
|
|
8818
|
-
};
|
|
8819
|
-
const _hoisted_2$6 = {
|
|
8820
|
-
class: "col"
|
|
8821
|
-
};
|
|
8822
|
-
const _hoisted_3$6 = /* @__PURE__ */ vue.createElementVNode("h6", null, [
|
|
8823
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
8824
|
-
class: "fa fa-upload"
|
|
8825
|
-
}),
|
|
8826
|
-
/* @__PURE__ */ vue.createTextVNode(" Upload")
|
|
8827
|
-
], -1);
|
|
8828
|
-
const _hoisted_4$5 = {
|
|
8829
|
-
class: "form-group"
|
|
8830
|
-
};
|
|
8831
|
-
const _hoisted_5$3 = {
|
|
8832
|
-
class: "form-label"
|
|
8833
|
-
};
|
|
8834
|
-
const _hoisted_6$2 = [
|
|
8835
|
-
"webkitdirectory",
|
|
8836
|
-
"disbaled"
|
|
8837
|
-
];
|
|
8838
|
-
const _hoisted_7$2 = {
|
|
8839
|
-
class: "form-group"
|
|
8840
|
-
};
|
|
8841
|
-
const _hoisted_8$2 = {
|
|
8842
|
-
class: "form-check form-switch"
|
|
8843
|
-
};
|
|
8844
|
-
const _hoisted_9$2 = /* @__PURE__ */ vue.createElementVNode("label", {
|
|
8845
|
-
class: "form-check-label",
|
|
8846
|
-
for: "train-file-manager-switch"
|
|
8847
|
-
}, "Directory Mode", -1);
|
|
8848
|
-
const _hoisted_10$1 = {
|
|
8849
|
-
class: "row"
|
|
9980
|
+
class: "d-flex flex-column gap-1"
|
|
8850
9981
|
};
|
|
8851
|
-
const
|
|
8852
|
-
class: "
|
|
8853
|
-
};
|
|
8854
|
-
const _hoisted_12$1 = /* @__PURE__ */ vue.createStaticVNode('<div class="d-flex flex-row"><div><h6 class="title text-muted"> Files <span style="font-size:0.65rem;"><span class="text-info"><i class="fa fa-memory"></i> in Memory </span></span></h6></div><div class="ms-auto"><h6 class="title text-muted"> Path: <span class="sub-title"> [root] </span></h6></div></div>', 1);
|
|
8855
|
-
const _hoisted_13 = {
|
|
8856
|
-
key: 0,
|
|
8857
|
-
class: "alert alert-info alert-sm m-t-10"
|
|
9982
|
+
const _hoisted_2$5 = {
|
|
9983
|
+
class: "form-check"
|
|
8858
9984
|
};
|
|
8859
|
-
const
|
|
9985
|
+
const _hoisted_3$3 = {
|
|
8860
9986
|
class: "d-flex flex-column"
|
|
8861
9987
|
};
|
|
8862
|
-
const
|
|
9988
|
+
const _hoisted_4$3 = {
|
|
8863
9989
|
class: "form-group"
|
|
8864
9990
|
};
|
|
8865
|
-
const
|
|
9991
|
+
const _hoisted_5$2 = [
|
|
8866
9992
|
"disabled"
|
|
8867
9993
|
];
|
|
8868
|
-
const
|
|
8869
|
-
class: "
|
|
9994
|
+
const _hoisted_6$2 = {
|
|
9995
|
+
class: "d-flex flex-row w-100"
|
|
8870
9996
|
};
|
|
8871
|
-
const
|
|
8872
|
-
class: "
|
|
8873
|
-
}, [
|
|
8874
|
-
/* @__PURE__ */ vue.createTextVNode(" Files "),
|
|
8875
|
-
/* @__PURE__ */ vue.createElementVNode("span", {
|
|
8876
|
-
style: {
|
|
8877
|
-
"font-size": "0.65rem"
|
|
8878
|
-
}
|
|
8879
|
-
}, [
|
|
8880
|
-
/* @__PURE__ */ vue.createElementVNode("span", {
|
|
8881
|
-
class: "text-success"
|
|
8882
|
-
}, [
|
|
8883
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
8884
|
-
class: "fa fa-file"
|
|
8885
|
-
}),
|
|
8886
|
-
/* @__PURE__ */ vue.createTextVNode(" uploaded ")
|
|
8887
|
-
])
|
|
8888
|
-
])
|
|
8889
|
-
], -1);
|
|
8890
|
-
const _hoisted_19 = {
|
|
8891
|
-
class: "form-check"
|
|
8892
|
-
};
|
|
8893
|
-
const _hoisted_20 = /* @__PURE__ */ vue.createElementVNode("label", {
|
|
8894
|
-
for: "selectAllFiles"
|
|
8895
|
-
}, "Select all", -1);
|
|
8896
|
-
const _hoisted_21 = {
|
|
8897
|
-
class: "d-flex flex-column"
|
|
8898
|
-
};
|
|
8899
|
-
const _hoisted_22 = {
|
|
8900
|
-
class: "form-group"
|
|
9997
|
+
const _hoisted_7$1 = {
|
|
9998
|
+
class: "ms-auto"
|
|
8901
9999
|
};
|
|
8902
|
-
const
|
|
8903
|
-
"
|
|
10000
|
+
const _hoisted_8$1 = [
|
|
10001
|
+
"onClick"
|
|
8904
10002
|
];
|
|
8905
|
-
const _hoisted_24 = /* @__PURE__ */ vue.createElementVNode("i", {
|
|
8906
|
-
class: "fa fa-trash"
|
|
8907
|
-
}, null, -1);
|
|
8908
10003
|
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8909
|
-
const _component_FAnalysisFormFile = vue.resolveComponent("FAnalysisFormFile");
|
|
8910
10004
|
const _component_FAnalysisFile = vue.resolveComponent("FAnalysisFile");
|
|
8911
10005
|
const _component_FAnalysisBucketFiles = vue.resolveComponent("FAnalysisBucketFiles");
|
|
8912
|
-
|
|
8913
|
-
|
|
8914
|
-
|
|
8915
|
-
|
|
8916
|
-
|
|
8917
|
-
|
|
8918
|
-
|
|
8919
|
-
|
|
8920
|
-
|
|
8921
|
-
|
|
8922
|
-
|
|
8923
|
-
|
|
8924
|
-
|
|
8925
|
-
|
|
8926
|
-
|
|
8927
|
-
|
|
8928
|
-
]),
|
|
8929
|
-
vue.createElementVNode("div", _hoisted_7$2, [
|
|
8930
|
-
vue.createElementVNode("div", _hoisted_8$2, [
|
|
8931
|
-
vue.withDirectives(vue.createElementVNode("input", {
|
|
8932
|
-
id: "train-file-manager-switch",
|
|
8933
|
-
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.directoryMode = $event),
|
|
8934
|
-
class: "form-check-input",
|
|
8935
|
-
type: "checkbox"
|
|
8936
|
-
}, null, 512), [
|
|
8937
|
-
[
|
|
8938
|
-
vue.vModelCheckbox,
|
|
8939
|
-
_ctx.directoryMode
|
|
8940
|
-
]
|
|
8941
|
-
]),
|
|
8942
|
-
_hoisted_9$2
|
|
8943
|
-
])
|
|
8944
|
-
])
|
|
8945
|
-
])
|
|
10006
|
+
const _component_FAnalysisBucketFileUpload = vue.resolveComponent("FAnalysisBucketFileUpload");
|
|
10007
|
+
const _component_BModal = vue.resolveComponent("BModal");
|
|
10008
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
|
|
10009
|
+
vue.createElementVNode("div", null, [
|
|
10010
|
+
vue.createElementVNode("button", {
|
|
10011
|
+
type: "button",
|
|
10012
|
+
class: "btn btn-primary btn-block",
|
|
10013
|
+
onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args)=>_ctx.toggleModal && _ctx.toggleModal(...args), [
|
|
10014
|
+
"prevent"
|
|
10015
|
+
]))
|
|
10016
|
+
}, _cache[5] || (_cache[5] = [
|
|
10017
|
+
vue.createElementVNode("i", {
|
|
10018
|
+
class: "fa fa-upload"
|
|
10019
|
+
}, null, -1),
|
|
10020
|
+
vue.createTextVNode(" Upload ")
|
|
10021
|
+
]))
|
|
8946
10022
|
]),
|
|
8947
|
-
vue.createElementVNode("div",
|
|
8948
|
-
vue.createElementVNode("div",
|
|
8949
|
-
|
|
8950
|
-
|
|
8951
|
-
|
|
8952
|
-
|
|
8953
|
-
|
|
8954
|
-
|
|
8955
|
-
|
|
8956
|
-
|
|
8957
|
-
|
|
8958
|
-
|
|
8959
|
-
|
|
8960
|
-
"onDrop"
|
|
8961
|
-
]);
|
|
8962
|
-
}), 128))
|
|
10023
|
+
vue.createElementVNode("div", null, [
|
|
10024
|
+
vue.createElementVNode("div", _hoisted_2$5, [
|
|
10025
|
+
vue.withDirectives(vue.createElementVNode("input", {
|
|
10026
|
+
id: "selectAllFiles",
|
|
10027
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.selectAll = $event),
|
|
10028
|
+
type: "checkbox",
|
|
10029
|
+
class: "form-check-input",
|
|
10030
|
+
onChange: _cache[2] || (_cache[2] = (...args)=>_ctx.selectAllFiles && _ctx.selectAllFiles(...args))
|
|
10031
|
+
}, null, 544), [
|
|
10032
|
+
[
|
|
10033
|
+
vue.vModelCheckbox,
|
|
10034
|
+
_ctx.selectAll
|
|
10035
|
+
]
|
|
8963
10036
|
]),
|
|
8964
|
-
vue.createElementVNode("
|
|
8965
|
-
|
|
8966
|
-
|
|
8967
|
-
class: "btn btn-xs btn-dark",
|
|
8968
|
-
disabled: _ctx.busy || _ctx.tempFiles.length === 0,
|
|
8969
|
-
onClick: _cache[2] || (_cache[2] = vue.withModifiers((...args)=>_ctx.upload && _ctx.upload(...args), [
|
|
8970
|
-
"prevent"
|
|
8971
|
-
]))
|
|
8972
|
-
}, " Upload ", 8, _hoisted_16)
|
|
8973
|
-
])
|
|
10037
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("label", {
|
|
10038
|
+
for: "selectAllFiles"
|
|
10039
|
+
}, "Select all", -1))
|
|
8974
10040
|
]),
|
|
8975
|
-
vue.
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
|
|
8988
|
-
|
|
10041
|
+
vue.createVNode(_component_FAnalysisBucketFiles, {
|
|
10042
|
+
ref: "fileListNode",
|
|
10043
|
+
query: _ctx.fileListQuery,
|
|
10044
|
+
"header-search": false,
|
|
10045
|
+
"header-title": false,
|
|
10046
|
+
"footer-pagination": false,
|
|
10047
|
+
onCreated: _ctx.handleCreated,
|
|
10048
|
+
onUpdated: _ctx.handleUpdated,
|
|
10049
|
+
onDeleted: _ctx.handleDeleted
|
|
10050
|
+
}, {
|
|
10051
|
+
body: vue.withCtx((props)=>[
|
|
10052
|
+
vue.createElementVNode("div", _hoisted_3$3, [
|
|
10053
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(props.data, (file)=>{
|
|
10054
|
+
return vue.openBlock(), vue.createBlock(_component_FAnalysisFile, {
|
|
10055
|
+
key: file.id,
|
|
10056
|
+
class: "me-1",
|
|
10057
|
+
entity: file,
|
|
10058
|
+
"files-selected": _ctx.selected,
|
|
10059
|
+
"file-selected-id": _ctx.entrypointFileId,
|
|
10060
|
+
onCheck: _ctx.toggleFile,
|
|
10061
|
+
onUpdated: props.updated,
|
|
10062
|
+
onDeleted: props.deleted,
|
|
10063
|
+
onToggle: _ctx.changeEntryPointFile
|
|
10064
|
+
}, null, 8, [
|
|
10065
|
+
"entity",
|
|
10066
|
+
"files-selected",
|
|
10067
|
+
"file-selected-id",
|
|
10068
|
+
"onCheck",
|
|
10069
|
+
"onUpdated",
|
|
10070
|
+
"onDeleted",
|
|
10071
|
+
"onToggle"
|
|
10072
|
+
]);
|
|
10073
|
+
}), 128))
|
|
10074
|
+
])
|
|
8989
10075
|
]),
|
|
8990
|
-
|
|
8991
|
-
|
|
8992
|
-
|
|
8993
|
-
|
|
8994
|
-
|
|
8995
|
-
|
|
8996
|
-
|
|
8997
|
-
|
|
8998
|
-
|
|
8999
|
-
|
|
9000
|
-
|
|
9001
|
-
|
|
9002
|
-
|
|
9003
|
-
|
|
9004
|
-
|
|
9005
|
-
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9010
|
-
|
|
9011
|
-
|
|
9012
|
-
|
|
9013
|
-
|
|
9014
|
-
|
|
9015
|
-
|
|
9016
|
-
|
|
9017
|
-
|
|
9018
|
-
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
|
|
10076
|
+
_: 1
|
|
10077
|
+
}, 8, [
|
|
10078
|
+
"query",
|
|
10079
|
+
"onCreated",
|
|
10080
|
+
"onUpdated",
|
|
10081
|
+
"onDeleted"
|
|
10082
|
+
]),
|
|
10083
|
+
vue.createElementVNode("div", _hoisted_4$3, [
|
|
10084
|
+
vue.createElementVNode("button", {
|
|
10085
|
+
type: "button",
|
|
10086
|
+
class: "btn btn-warning btn-xs",
|
|
10087
|
+
disabled: _ctx.busy || _ctx.selected.length === 0,
|
|
10088
|
+
onClick: _cache[3] || (_cache[3] = vue.withModifiers((...args)=>_ctx.dropSelected && _ctx.dropSelected(...args), [
|
|
10089
|
+
"prevent"
|
|
10090
|
+
]))
|
|
10091
|
+
}, _cache[7] || (_cache[7] = [
|
|
10092
|
+
vue.createElementVNode("i", {
|
|
10093
|
+
class: "fa fa-trash"
|
|
10094
|
+
}, null, -1),
|
|
10095
|
+
vue.createTextVNode(" Delete ")
|
|
10096
|
+
]), 8, _hoisted_5$2)
|
|
10097
|
+
])
|
|
10098
|
+
]),
|
|
10099
|
+
vue.createElementVNode("div", null, [
|
|
10100
|
+
vue.createVNode(_component_BModal, {
|
|
10101
|
+
modelValue: _ctx.modal,
|
|
10102
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event)=>_ctx.modal = $event),
|
|
10103
|
+
"no-footer": true,
|
|
10104
|
+
size: "lg"
|
|
10105
|
+
}, {
|
|
10106
|
+
header: vue.withCtx((props)=>[
|
|
10107
|
+
vue.createElementVNode("div", _hoisted_6$2, [
|
|
10108
|
+
_cache[9] || (_cache[9] = vue.createElementVNode("div", null, [
|
|
10109
|
+
vue.createElementVNode("h5", {
|
|
10110
|
+
class: "mb-0"
|
|
10111
|
+
}, [
|
|
10112
|
+
vue.createElementVNode("i", {
|
|
10113
|
+
class: "fa fa-upload"
|
|
10114
|
+
}),
|
|
10115
|
+
vue.createTextVNode(" Upload ")
|
|
10116
|
+
])
|
|
10117
|
+
], -1)),
|
|
10118
|
+
vue.createElementVNode("div", _hoisted_7$1, [
|
|
10119
|
+
vue.createElementVNode("button", {
|
|
10120
|
+
type: "button",
|
|
10121
|
+
class: "btn btn-xs btn-secondary",
|
|
10122
|
+
onClick: vue.withModifiers(($event)=>props.close(), [
|
|
10123
|
+
"prevent"
|
|
10124
|
+
])
|
|
10125
|
+
}, _cache[8] || (_cache[8] = [
|
|
10126
|
+
vue.createElementVNode("i", {
|
|
10127
|
+
class: "fa fa-times"
|
|
10128
|
+
}, null, -1)
|
|
10129
|
+
]), 8, _hoisted_8$1)
|
|
9025
10130
|
])
|
|
9026
|
-
])
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
|
|
9032
|
-
|
|
9033
|
-
|
|
9034
|
-
|
|
9035
|
-
|
|
9036
|
-
|
|
9037
|
-
|
|
9038
|
-
|
|
9039
|
-
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
|
|
9043
|
-
|
|
9044
|
-
vue.createTextVNode(" Delete ")
|
|
9045
|
-
], 8, _hoisted_23)
|
|
9046
|
-
])
|
|
10131
|
+
])
|
|
10132
|
+
]),
|
|
10133
|
+
default: vue.withCtx(()=>[
|
|
10134
|
+
vue.createVNode(_component_FAnalysisBucketFileUpload, {
|
|
10135
|
+
entity: _ctx.entity,
|
|
10136
|
+
onFileUploaded: _ctx.handleFileUploaded,
|
|
10137
|
+
onUploaded: _ctx.handleUploaded,
|
|
10138
|
+
onFailed: _ctx.handleFailed
|
|
10139
|
+
}, null, 8, [
|
|
10140
|
+
"entity",
|
|
10141
|
+
"onFileUploaded",
|
|
10142
|
+
"onUploaded",
|
|
10143
|
+
"onFailed"
|
|
10144
|
+
])
|
|
10145
|
+
]),
|
|
10146
|
+
_: 1
|
|
10147
|
+
}, 8, [
|
|
10148
|
+
"modelValue"
|
|
9047
10149
|
])
|
|
9048
10150
|
])
|
|
9049
10151
|
]);
|
|
@@ -9223,18 +10325,21 @@ var _sfc_main$7 = vue.defineComponent({
|
|
|
9223
10325
|
}
|
|
9224
10326
|
});
|
|
9225
10327
|
|
|
9226
|
-
const _hoisted_1$5 =
|
|
9227
|
-
|
|
9228
|
-
|
|
10328
|
+
const _hoisted_1$5 = {
|
|
10329
|
+
class: "row"
|
|
10330
|
+
};
|
|
10331
|
+
const _hoisted_2$4 = {
|
|
10332
|
+
class: "col-9"
|
|
10333
|
+
};
|
|
10334
|
+
const _hoisted_3$2 = {
|
|
10335
|
+
class: "col-3"
|
|
10336
|
+
};
|
|
10337
|
+
const _hoisted_4$2 = {
|
|
9229
10338
|
class: "alert alert-sm alert-warning"
|
|
9230
10339
|
};
|
|
9231
|
-
const _hoisted_4$4 = /* @__PURE__ */ vue.createElementVNode("p", null, " The code bucket does not exist. Therefore, no files can be uploaded. ", -1);
|
|
9232
|
-
const _hoisted_5$2 = /* @__PURE__ */ vue.createElementVNode("i", {
|
|
9233
|
-
class: "fas fa-rotate-right"
|
|
9234
|
-
}, null, -1);
|
|
9235
10340
|
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9236
|
-
const _component_FAnalysisImageCommand = vue.resolveComponent("FAnalysisImageCommand");
|
|
9237
10341
|
const _component_FAnalysisBucketFileManager = vue.resolveComponent("FAnalysisBucketFileManager");
|
|
10342
|
+
const _component_FAnalysisImageCommand = vue.resolveComponent("FAnalysisImageCommand");
|
|
9238
10343
|
const _component_FAnalysisBucket = vue.resolveComponent("FAnalysisBucket");
|
|
9239
10344
|
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
9240
10345
|
vue.createVNode(_component_FAnalysisBucket, {
|
|
@@ -9242,43 +10347,61 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9242
10347
|
"query-filters": _ctx.queryFilters
|
|
9243
10348
|
}, {
|
|
9244
10349
|
default: vue.withCtx(({ data: bucket })=>[
|
|
9245
|
-
_hoisted_1$5,
|
|
9246
|
-
|
|
9247
|
-
|
|
9248
|
-
|
|
9249
|
-
|
|
9250
|
-
|
|
9251
|
-
|
|
9252
|
-
|
|
9253
|
-
|
|
9254
|
-
|
|
9255
|
-
|
|
9256
|
-
|
|
9257
|
-
|
|
9258
|
-
|
|
9259
|
-
|
|
9260
|
-
|
|
9261
|
-
|
|
9262
|
-
|
|
9263
|
-
|
|
9264
|
-
|
|
9265
|
-
"
|
|
9266
|
-
|
|
10350
|
+
vue.createElementVNode("div", _hoisted_1$5, [
|
|
10351
|
+
vue.createElementVNode("div", _hoisted_2$4, [
|
|
10352
|
+
_cache[1] || (_cache[1] = vue.createElementVNode("h6", null, [
|
|
10353
|
+
vue.createElementVNode("i", {
|
|
10354
|
+
class: "fa fa-file"
|
|
10355
|
+
}),
|
|
10356
|
+
vue.createTextVNode(" Files")
|
|
10357
|
+
], -1)),
|
|
10358
|
+
vue.createVNode(_component_FAnalysisBucketFileManager, {
|
|
10359
|
+
entity: bucket,
|
|
10360
|
+
"file-entity": _ctx.entrypointEntity,
|
|
10361
|
+
onSetEntrypointFile: _ctx.handleEntrypointChanged,
|
|
10362
|
+
onFailed: _ctx.handleFailed
|
|
10363
|
+
}, null, 8, [
|
|
10364
|
+
"entity",
|
|
10365
|
+
"file-entity",
|
|
10366
|
+
"onSetEntrypointFile",
|
|
10367
|
+
"onFailed"
|
|
10368
|
+
])
|
|
10369
|
+
]),
|
|
10370
|
+
vue.createElementVNode("div", _hoisted_3$2, [
|
|
10371
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("h6", null, [
|
|
10372
|
+
vue.createElementVNode("i", {
|
|
10373
|
+
class: "fa fa-terminal"
|
|
10374
|
+
}),
|
|
10375
|
+
vue.createTextVNode(" Command")
|
|
10376
|
+
], -1)),
|
|
10377
|
+
vue.createVNode(_component_FAnalysisImageCommand, {
|
|
10378
|
+
class: "mt-2 mb-2",
|
|
10379
|
+
"master-image-id": _ctx.entity.master_image_id,
|
|
10380
|
+
"analysis-file": _ctx.entrypointEntity,
|
|
10381
|
+
"analysis-id": _ctx.entity.id
|
|
10382
|
+
}, null, 8, [
|
|
10383
|
+
"master-image-id",
|
|
10384
|
+
"analysis-file",
|
|
10385
|
+
"analysis-id"
|
|
10386
|
+
])
|
|
10387
|
+
])
|
|
9267
10388
|
])
|
|
9268
10389
|
]),
|
|
9269
10390
|
error: vue.withCtx(()=>[
|
|
9270
|
-
vue.createElementVNode("div",
|
|
9271
|
-
|
|
10391
|
+
vue.createElementVNode("div", _hoisted_4$2, [
|
|
10392
|
+
_cache[4] || (_cache[4] = vue.createElementVNode("p", null, " The code bucket does not exist. Therefore, no files can be uploaded. ", -1)),
|
|
9272
10393
|
vue.createElementVNode("button", {
|
|
9273
10394
|
type: "button",
|
|
9274
10395
|
class: "btn btn-xs btn-dark",
|
|
9275
10396
|
onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args)=>_ctx.retry && _ctx.retry(...args), [
|
|
9276
10397
|
"prevent"
|
|
9277
10398
|
]))
|
|
9278
|
-
}, [
|
|
9279
|
-
|
|
10399
|
+
}, _cache[3] || (_cache[3] = [
|
|
10400
|
+
vue.createElementVNode("i", {
|
|
10401
|
+
class: "fas fa-rotate-right"
|
|
10402
|
+
}, null, -1),
|
|
9280
10403
|
vue.createTextVNode(" Retry ")
|
|
9281
|
-
])
|
|
10404
|
+
]))
|
|
9282
10405
|
])
|
|
9283
10406
|
]),
|
|
9284
10407
|
_: 1
|
|
@@ -9298,17 +10421,15 @@ const _sfc_main$6 = {};
|
|
|
9298
10421
|
const _hoisted_1$4 = {
|
|
9299
10422
|
class: "alert alert-info alert-sm"
|
|
9300
10423
|
};
|
|
9301
|
-
const _hoisted_2$4 = /*#__PURE__*/ vue.createElementVNode("i", {
|
|
9302
|
-
class: "fa fa-info"
|
|
9303
|
-
}, null, -1);
|
|
9304
|
-
const _hoisted_3$4 = /*#__PURE__*/ vue.createElementVNode("br", null, null, -1);
|
|
9305
10424
|
function _sfc_render$6(_ctx, _cache) {
|
|
9306
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
|
|
9307
|
-
|
|
10425
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, _cache[0] || (_cache[0] = [
|
|
10426
|
+
vue.createElementVNode("i", {
|
|
10427
|
+
class: "fa fa-info"
|
|
10428
|
+
}, null, -1),
|
|
9308
10429
|
vue.createTextVNode(" The analysis is now fully configured and can now be built."),
|
|
9309
|
-
|
|
10430
|
+
vue.createElementVNode("br", null, null, -1),
|
|
9310
10431
|
vue.createTextVNode(" Be aware that when you start the building process, you are not longer able to modify the configuration. ")
|
|
9311
|
-
]);
|
|
10432
|
+
]));
|
|
9312
10433
|
}
|
|
9313
10434
|
var FAnalysisWizardStepFinal = /*#__PURE__*/ _export_sfc(_sfc_main$6, [
|
|
9314
10435
|
[
|
|
@@ -9499,21 +10620,10 @@ var _sfc_main$5 = vue.defineComponent({
|
|
|
9499
10620
|
}
|
|
9500
10621
|
});
|
|
9501
10622
|
|
|
9502
|
-
const _hoisted_1$3 =
|
|
9503
|
-
class: "wizard-title"
|
|
9504
|
-
}, [
|
|
9505
|
-
/* @__PURE__ */ vue.createElementVNode("i", {
|
|
9506
|
-
class: "fa fa-hat-wizard"
|
|
9507
|
-
}),
|
|
9508
|
-
/* @__PURE__ */ vue.createTextVNode(" Wizard ")
|
|
9509
|
-
], -1);
|
|
9510
|
-
const _hoisted_2$3 = /* @__PURE__ */ vue.createElementVNode("p", {
|
|
9511
|
-
class: "category"
|
|
9512
|
-
}, " Configure your analysis step by step ", -1);
|
|
9513
|
-
const _hoisted_3$3 = {
|
|
10623
|
+
const _hoisted_1$3 = {
|
|
9514
10624
|
class: "wizard-footer-left"
|
|
9515
10625
|
};
|
|
9516
|
-
const
|
|
10626
|
+
const _hoisted_2$3 = {
|
|
9517
10627
|
class: "wizard-footer-right"
|
|
9518
10628
|
};
|
|
9519
10629
|
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
@@ -9533,36 +10643,45 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9533
10643
|
onOnComplete: _ctx.handleWizardFinishedEvent,
|
|
9534
10644
|
onOnError: _ctx.handleWizardErrorEvent
|
|
9535
10645
|
}, {
|
|
9536
|
-
title: vue.withCtx(()=>[
|
|
9537
|
-
|
|
9538
|
-
|
|
9539
|
-
|
|
10646
|
+
title: vue.withCtx(()=>_cache[0] || (_cache[0] = [
|
|
10647
|
+
vue.createElementVNode("h4", {
|
|
10648
|
+
class: "wizard-title"
|
|
10649
|
+
}, [
|
|
10650
|
+
vue.createElementVNode("i", {
|
|
10651
|
+
class: "fa fa-hat-wizard"
|
|
10652
|
+
}),
|
|
10653
|
+
vue.createTextVNode(" Wizard ")
|
|
10654
|
+
], -1),
|
|
10655
|
+
vue.createElementVNode("p", {
|
|
10656
|
+
class: "category"
|
|
10657
|
+
}, " Configure your analysis step by step ", -1)
|
|
10658
|
+
])),
|
|
9540
10659
|
footer: vue.withCtx((props)=>[
|
|
9541
|
-
vue.createElementVNode("div",
|
|
10660
|
+
vue.createElementVNode("div", _hoisted_1$3, [
|
|
9542
10661
|
props.activeTabIndex > 0 && !props.isLastStep ? (vue.openBlock(), vue.createBlock(_component_WizardButton, {
|
|
9543
10662
|
key: 0,
|
|
9544
10663
|
style: vue.normalizeStyle(props.fillButtonStyle),
|
|
9545
10664
|
onClick: _ctx.prevWizardStep
|
|
9546
10665
|
}, {
|
|
9547
|
-
default: vue.withCtx(()=>[
|
|
10666
|
+
default: vue.withCtx(()=>_cache[1] || (_cache[1] = [
|
|
9548
10667
|
vue.createTextVNode(" Back ")
|
|
9549
|
-
]),
|
|
10668
|
+
])),
|
|
9550
10669
|
_: 2
|
|
9551
10670
|
}, 1032, [
|
|
9552
10671
|
"style",
|
|
9553
10672
|
"onClick"
|
|
9554
10673
|
])) : vue.createCommentVNode("", true)
|
|
9555
10674
|
]),
|
|
9556
|
-
vue.createElementVNode("div",
|
|
10675
|
+
vue.createElementVNode("div", _hoisted_2$3, [
|
|
9557
10676
|
!props.isLastStep ? (vue.openBlock(), vue.createBlock(_component_WizardButton, {
|
|
9558
10677
|
key: 0,
|
|
9559
10678
|
class: "wizard-footer-right",
|
|
9560
10679
|
style: vue.normalizeStyle(props.fillButtonStyle),
|
|
9561
10680
|
onClick: _ctx.nextWizardStep
|
|
9562
10681
|
}, {
|
|
9563
|
-
default: vue.withCtx(()=>[
|
|
10682
|
+
default: vue.withCtx(()=>_cache[2] || (_cache[2] = [
|
|
9564
10683
|
vue.createTextVNode(" Next ")
|
|
9565
|
-
]),
|
|
10684
|
+
])),
|
|
9566
10685
|
_: 2
|
|
9567
10686
|
}, 1032, [
|
|
9568
10687
|
"style",
|
|
@@ -9573,9 +10692,9 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9573
10692
|
style: vue.normalizeStyle(props.fillButtonStyle),
|
|
9574
10693
|
onClick: _ctx.handleWizardFinishedEvent
|
|
9575
10694
|
}, {
|
|
9576
|
-
default: vue.withCtx(()=>[
|
|
10695
|
+
default: vue.withCtx(()=>_cache[3] || (_cache[3] = [
|
|
9577
10696
|
vue.createTextVNode(" Finish ")
|
|
9578
|
-
]),
|
|
10697
|
+
])),
|
|
9579
10698
|
_: 2
|
|
9580
10699
|
}, 1032, [
|
|
9581
10700
|
"style",
|
|
@@ -9727,23 +10846,18 @@ const _hoisted_1$2 = {
|
|
|
9727
10846
|
const _hoisted_2$2 = {
|
|
9728
10847
|
class: "col"
|
|
9729
10848
|
};
|
|
9730
|
-
const _hoisted_3$
|
|
9731
|
-
const _hoisted_4$2 = [
|
|
10849
|
+
const _hoisted_3$1 = [
|
|
9732
10850
|
"disabled"
|
|
9733
10851
|
];
|
|
9734
|
-
const
|
|
9735
|
-
class: "fa fa-plus"
|
|
9736
|
-
}, null, -1);
|
|
9737
|
-
const _hoisted_6$1 = {
|
|
10852
|
+
const _hoisted_4$1 = {
|
|
9738
10853
|
key: 0,
|
|
9739
10854
|
class: "col"
|
|
9740
10855
|
};
|
|
9741
|
-
const
|
|
9742
|
-
const _hoisted_8$1 = [
|
|
10856
|
+
const _hoisted_5$1 = [
|
|
9743
10857
|
"disabled",
|
|
9744
10858
|
"onClick"
|
|
9745
10859
|
];
|
|
9746
|
-
const
|
|
10860
|
+
const _hoisted_6$1 = {
|
|
9747
10861
|
key: 0,
|
|
9748
10862
|
class: "alert alert-sm alert-warning"
|
|
9749
10863
|
};
|
|
@@ -9769,9 +10883,9 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9769
10883
|
"validation-messages": props.data,
|
|
9770
10884
|
"validation-severity": props.severity
|
|
9771
10885
|
}, {
|
|
9772
|
-
label: vue.withCtx(()=>[
|
|
10886
|
+
label: vue.withCtx(()=>_cache[4] || (_cache[4] = [
|
|
9773
10887
|
vue.createTextVNode(" Name ")
|
|
9774
|
-
]),
|
|
10888
|
+
])),
|
|
9775
10889
|
default: vue.withCtx(()=>[
|
|
9776
10890
|
vue.createVNode(_component_VCFormInput, {
|
|
9777
10891
|
modelValue: _ctx.v$.name.$model,
|
|
@@ -9790,7 +10904,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9790
10904
|
}, 8, [
|
|
9791
10905
|
"validation"
|
|
9792
10906
|
]),
|
|
9793
|
-
|
|
10907
|
+
_cache[7] || (_cache[7] = vue.createElementVNode("hr", null, null, -1)),
|
|
9794
10908
|
vue.createVNode(_component_IVuelidate, {
|
|
9795
10909
|
validation: _ctx.v$.description
|
|
9796
10910
|
}, {
|
|
@@ -9799,9 +10913,9 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9799
10913
|
"validation-messages": props.data,
|
|
9800
10914
|
"validation-severity": props.severity
|
|
9801
10915
|
}, {
|
|
9802
|
-
label: vue.withCtx(()=>[
|
|
10916
|
+
label: vue.withCtx(()=>_cache[5] || (_cache[5] = [
|
|
9803
10917
|
vue.createTextVNode(" Description ")
|
|
9804
|
-
]),
|
|
10918
|
+
])),
|
|
9805
10919
|
default: vue.withCtx(()=>[
|
|
9806
10920
|
vue.createVNode(_component_VCFormTextarea, {
|
|
9807
10921
|
modelValue: _ctx.v$.description.$model,
|
|
@@ -9829,18 +10943,20 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9829
10943
|
onClick: _cache[2] || (_cache[2] = vue.withModifiers((...args)=>_ctx.add && _ctx.add(...args), [
|
|
9830
10944
|
"prevent"
|
|
9831
10945
|
]))
|
|
9832
|
-
}, [
|
|
9833
|
-
|
|
10946
|
+
}, _cache[6] || (_cache[6] = [
|
|
10947
|
+
vue.createElementVNode("i", {
|
|
10948
|
+
class: "fa fa-plus"
|
|
10949
|
+
}, null, -1),
|
|
9834
10950
|
vue.createTextVNode(" create ")
|
|
9835
|
-
], 8,
|
|
10951
|
+
]), 8, _hoisted_3$1)
|
|
9836
10952
|
])
|
|
9837
10953
|
]),
|
|
9838
|
-
!_ctx.projectId ? (vue.openBlock(), vue.createElementBlock("div",
|
|
10954
|
+
!_ctx.projectId ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$1, [
|
|
9839
10955
|
vue.createVNode(_component_FProjects, {
|
|
9840
10956
|
query: _ctx.proposalQuery
|
|
9841
10957
|
}, {
|
|
9842
10958
|
header: vue.withCtx((props)=>[
|
|
9843
|
-
|
|
10959
|
+
_cache[8] || (_cache[8] = vue.createElementVNode("label", null, "Projects", -1)),
|
|
9844
10960
|
vue.createVNode(_component_FSearch, {
|
|
9845
10961
|
load: props.load,
|
|
9846
10962
|
meta: props.meta
|
|
@@ -9870,13 +10986,13 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9870
10986
|
"fa fa-minus": _ctx.form.project_id === props.data.id
|
|
9871
10987
|
})
|
|
9872
10988
|
}, null, 2)
|
|
9873
|
-
], 10,
|
|
10989
|
+
], 10, _hoisted_5$1)
|
|
9874
10990
|
]),
|
|
9875
10991
|
_: 1
|
|
9876
10992
|
}, 8, [
|
|
9877
10993
|
"query"
|
|
9878
10994
|
]),
|
|
9879
|
-
!_ctx.v$.project_id.required && !_ctx.v$.project_id.$model ? (vue.openBlock(), vue.createElementBlock("div",
|
|
10995
|
+
!_ctx.v$.project_id.required && !_ctx.v$.project_id.$model ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$1, " Choose a project as base of your analysis ")) : vue.createCommentVNode("", true)
|
|
9880
10996
|
])) : vue.createCommentVNode("", true)
|
|
9881
10997
|
])
|
|
9882
10998
|
], 32);
|
|
@@ -9915,7 +11031,7 @@ const FAnalysisCommand = vue.defineComponent({
|
|
|
9915
11031
|
},
|
|
9916
11032
|
elementType: {
|
|
9917
11033
|
type: String,
|
|
9918
|
-
default:
|
|
11034
|
+
default: ActionCommandElementType.BUTTON
|
|
9919
11035
|
},
|
|
9920
11036
|
withIcon: {
|
|
9921
11037
|
type: Boolean,
|
|
@@ -9946,7 +11062,9 @@ const FAnalysisCommand = vue.defineComponent({
|
|
|
9946
11062
|
}
|
|
9947
11063
|
}
|
|
9948
11064
|
});
|
|
9949
|
-
const isAllowed = clientWebKit.
|
|
11065
|
+
const isAllowed = clientWebKit.usePermissionCheck({
|
|
11066
|
+
name: PermissionName.ANALYSIS_UPDATE
|
|
11067
|
+
});
|
|
9950
11068
|
const isHidden = vue.computed(()=>{
|
|
9951
11069
|
if (props.command === coreKit.AnalysisAPICommand.CONFIGURATION_LOCK) {
|
|
9952
11070
|
return entity.value.configuration_locked;
|
|
@@ -10207,21 +11325,11 @@ var _sfc_main$1 = vue.defineComponent({
|
|
|
10207
11325
|
}
|
|
10208
11326
|
});
|
|
10209
11327
|
|
|
10210
|
-
const _hoisted_1$1 =
|
|
10211
|
-
class: "me-1"
|
|
10212
|
-
}, [
|
|
10213
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, "1. Configuration")
|
|
10214
|
-
], -1);
|
|
10215
|
-
const _hoisted_2$1 = {
|
|
11328
|
+
const _hoisted_1$1 = {
|
|
10216
11329
|
key: 0,
|
|
10217
11330
|
class: "ms-auto"
|
|
10218
11331
|
};
|
|
10219
|
-
const
|
|
10220
|
-
class: "me-1"
|
|
10221
|
-
}, [
|
|
10222
|
-
/* @__PURE__ */ vue.createElementVNode("strong", null, "2. Build")
|
|
10223
|
-
], -1);
|
|
10224
|
-
const _hoisted_4$1 = {
|
|
11332
|
+
const _hoisted_2$1 = {
|
|
10225
11333
|
key: 0,
|
|
10226
11334
|
class: "ms-auto flex-row d-flex justify-between gap-1"
|
|
10227
11335
|
};
|
|
@@ -10250,7 +11358,11 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10250
11358
|
"flex-basis": "0"
|
|
10251
11359
|
}
|
|
10252
11360
|
}, [
|
|
10253
|
-
|
|
11361
|
+
_cache[5] || (_cache[5] = vue.createElementVNode("div", {
|
|
11362
|
+
class: "me-1"
|
|
11363
|
+
}, [
|
|
11364
|
+
vue.createElementVNode("strong", null, "1. Configuration")
|
|
11365
|
+
], -1)),
|
|
10254
11366
|
vue.createElementVNode("div", null, [
|
|
10255
11367
|
vue.createVNode(_component_FAnalysisConfigurationStatusText, {
|
|
10256
11368
|
locked: _ctx.entity.configuration_locked
|
|
@@ -10258,7 +11370,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10258
11370
|
"locked"
|
|
10259
11371
|
])
|
|
10260
11372
|
]),
|
|
10261
|
-
_ctx.withCommand ? (vue.openBlock(), vue.createElementBlock("div",
|
|
11373
|
+
_ctx.withCommand ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
|
|
10262
11374
|
vue.createVNode(_component_FAnalysisCommand, {
|
|
10263
11375
|
command: _ctx.trainCommand.CONFIGURATION_LOCK,
|
|
10264
11376
|
"with-icon": true,
|
|
@@ -10299,7 +11411,11 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10299
11411
|
"flex-basis": "0"
|
|
10300
11412
|
}
|
|
10301
11413
|
}, [
|
|
10302
|
-
|
|
11414
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("div", {
|
|
11415
|
+
class: "me-1"
|
|
11416
|
+
}, [
|
|
11417
|
+
vue.createElementVNode("strong", null, "2. Build")
|
|
11418
|
+
], -1)),
|
|
10303
11419
|
vue.createElementVNode("div", null, [
|
|
10304
11420
|
vue.createVNode(_component_FAnalysisBuildStatusText, {
|
|
10305
11421
|
status: _ctx.entity.build_status
|
|
@@ -10307,7 +11423,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10307
11423
|
"status"
|
|
10308
11424
|
])
|
|
10309
11425
|
]),
|
|
10310
|
-
_ctx.withCommand ? (vue.openBlock(), vue.createElementBlock("div",
|
|
11426
|
+
_ctx.withCommand ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$1, [
|
|
10311
11427
|
vue.createElementVNode("div", null, [
|
|
10312
11428
|
vue.createVNode(_component_FAnalysisCommand, {
|
|
10313
11429
|
command: _ctx.trainCommand.BUILD_START,
|
|
@@ -10395,7 +11511,9 @@ var _sfc_main = vue.defineComponent({
|
|
|
10395
11511
|
const toggleView = ()=>{
|
|
10396
11512
|
extendedView.value = !extendedView.value;
|
|
10397
11513
|
};
|
|
10398
|
-
const canDelete = clientWebKit.
|
|
11514
|
+
const canDelete = clientWebKit.usePermissionCheck({
|
|
11515
|
+
name: PermissionName.ANALYSIS_DELETE
|
|
11516
|
+
});
|
|
10399
11517
|
const handleDeleted = (data)=>{
|
|
10400
11518
|
emit('deleted', data);
|
|
10401
11519
|
};
|
|
@@ -10429,34 +11547,22 @@ const _hoisted_2 = {
|
|
|
10429
11547
|
const _hoisted_3 = {
|
|
10430
11548
|
class: "me-1"
|
|
10431
11549
|
};
|
|
10432
|
-
const _hoisted_4 =
|
|
10433
|
-
class: "fas fa-microscope me-1"
|
|
10434
|
-
}, null, -1);
|
|
10435
|
-
const _hoisted_5 = {
|
|
11550
|
+
const _hoisted_4 = {
|
|
10436
11551
|
key: 0,
|
|
10437
11552
|
class: "text-muted ms-1"
|
|
10438
11553
|
};
|
|
10439
|
-
const
|
|
11554
|
+
const _hoisted_5 = {
|
|
10440
11555
|
class: "ms-auto"
|
|
10441
11556
|
};
|
|
10442
|
-
const
|
|
10443
|
-
class: "fa fa-bars"
|
|
10444
|
-
}, null, -1);
|
|
10445
|
-
const _hoisted_8 = {
|
|
11557
|
+
const _hoisted_6 = {
|
|
10446
11558
|
class: "d-flex flex-row"
|
|
10447
11559
|
};
|
|
10448
|
-
const
|
|
11560
|
+
const _hoisted_7 = {
|
|
10449
11561
|
class: ""
|
|
10450
11562
|
};
|
|
10451
|
-
const
|
|
10452
|
-
class: "text-muted"
|
|
10453
|
-
}, " created ", -1);
|
|
10454
|
-
const _hoisted_11 = {
|
|
11563
|
+
const _hoisted_8 = {
|
|
10455
11564
|
class: "ms-auto"
|
|
10456
11565
|
};
|
|
10457
|
-
const _hoisted_12 = /* @__PURE__ */ vue.createElementVNode("span", {
|
|
10458
|
-
class: "text-muted"
|
|
10459
|
-
}, " updated ", -1);
|
|
10460
11566
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10461
11567
|
const _component_VCLink = vue.resolveComponent("VCLink");
|
|
10462
11568
|
const _component_FAnalysisName = vue.resolveComponent("FAnalysisName");
|
|
@@ -10475,7 +11581,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10475
11581
|
onUpdated: _ctx.handleUpdated
|
|
10476
11582
|
}, {
|
|
10477
11583
|
default: vue.withCtx((props)=>[
|
|
10478
|
-
|
|
11584
|
+
_cache[1] || (_cache[1] = vue.createElementVNode("i", {
|
|
11585
|
+
class: "fas fa-microscope me-1"
|
|
11586
|
+
}, null, -1)),
|
|
10479
11587
|
vue.createVNode(_component_VCLink, {
|
|
10480
11588
|
to: "/analyses/" + props.entityId
|
|
10481
11589
|
}, {
|
|
@@ -10486,7 +11594,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10486
11594
|
}, 1032, [
|
|
10487
11595
|
"to"
|
|
10488
11596
|
]),
|
|
10489
|
-
props.entityName ? (vue.openBlock(), vue.createElementBlock("span",
|
|
11597
|
+
props.entityName ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4, vue.toDisplayString(props.entityId), 1)) : vue.createCommentVNode("", true)
|
|
10490
11598
|
]),
|
|
10491
11599
|
_: 1
|
|
10492
11600
|
}, 8, [
|
|
@@ -10495,7 +11603,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10495
11603
|
"onUpdated"
|
|
10496
11604
|
])
|
|
10497
11605
|
]),
|
|
10498
|
-
vue.createElementVNode("div",
|
|
11606
|
+
vue.createElementVNode("div", _hoisted_5, [
|
|
10499
11607
|
vue.renderSlot(_ctx.$slots, "itemActions", {
|
|
10500
11608
|
data: _ctx.entity
|
|
10501
11609
|
}, ()=>[
|
|
@@ -10517,9 +11625,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10517
11625
|
disabled: _ctx.busy,
|
|
10518
11626
|
class: "btn btn-xs btn-dark ms-1"
|
|
10519
11627
|
}, {
|
|
10520
|
-
default: vue.withCtx(()=>[
|
|
10521
|
-
|
|
10522
|
-
|
|
11628
|
+
default: vue.withCtx(()=>_cache[2] || (_cache[2] = [
|
|
11629
|
+
vue.createElementVNode("i", {
|
|
11630
|
+
class: "fa fa-bars"
|
|
11631
|
+
}, null, -1)
|
|
11632
|
+
])),
|
|
10523
11633
|
_: 1
|
|
10524
11634
|
}, 8, [
|
|
10525
11635
|
"to",
|
|
@@ -10566,10 +11676,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10566
11676
|
}, null, 8, [
|
|
10567
11677
|
"entity"
|
|
10568
11678
|
]),
|
|
10569
|
-
vue.createElementVNode("div",
|
|
10570
|
-
vue.createElementVNode("div",
|
|
11679
|
+
vue.createElementVNode("div", _hoisted_6, [
|
|
11680
|
+
vue.createElementVNode("div", _hoisted_7, [
|
|
10571
11681
|
vue.createElementVNode("small", null, [
|
|
10572
|
-
|
|
11682
|
+
_cache[3] || (_cache[3] = vue.createElementVNode("span", {
|
|
11683
|
+
class: "text-muted"
|
|
11684
|
+
}, " created ", -1)),
|
|
10573
11685
|
vue.createVNode(_component_VCTimeago, {
|
|
10574
11686
|
datetime: _ctx.entity.created_at
|
|
10575
11687
|
}, null, 8, [
|
|
@@ -10577,9 +11689,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10577
11689
|
])
|
|
10578
11690
|
])
|
|
10579
11691
|
]),
|
|
10580
|
-
vue.createElementVNode("div",
|
|
11692
|
+
vue.createElementVNode("div", _hoisted_8, [
|
|
10581
11693
|
vue.createElementVNode("small", null, [
|
|
10582
|
-
|
|
11694
|
+
_cache[4] || (_cache[4] = vue.createElementVNode("span", {
|
|
11695
|
+
class: "text-muted"
|
|
11696
|
+
}, " updated ", -1)),
|
|
10583
11697
|
vue.createVNode(_component_VCTimeago, {
|
|
10584
11698
|
datetime: _ctx.entity.updated_at
|
|
10585
11699
|
}, null, 8, [
|
|
@@ -10691,7 +11805,7 @@ const FAnalysisBucketFileDownload = vue.defineComponent({
|
|
|
10691
11805
|
},
|
|
10692
11806
|
elementType: {
|
|
10693
11807
|
type: String,
|
|
10694
|
-
default:
|
|
11808
|
+
default: ActionCommandElementType.BUTTON
|
|
10695
11809
|
},
|
|
10696
11810
|
withIcon: {
|
|
10697
11811
|
type: Boolean,
|
|
@@ -10907,6 +12021,7 @@ var FAnalysisLogs = vue.defineComponent({
|
|
|
10907
12021
|
|
|
10908
12022
|
var components = /*#__PURE__*/Object.freeze({
|
|
10909
12023
|
__proto__: null,
|
|
12024
|
+
ElementType: ElementType,
|
|
10910
12025
|
FAnalyses: FAnalyses,
|
|
10911
12026
|
FAnalysis: TrainEntity,
|
|
10912
12027
|
FAnalysisBasicForm: FAnalysisBasicForm,
|
|
@@ -10932,6 +12047,9 @@ var components = /*#__PURE__*/Object.freeze({
|
|
|
10932
12047
|
FAnalysisPipeline: TrainPipeline,
|
|
10933
12048
|
FAnalysisWizard: FAnalysisWizard,
|
|
10934
12049
|
FEntityDelete: FEntityDelete,
|
|
12050
|
+
FMasterImageEventLog: FMasterImageEventLog,
|
|
12051
|
+
FMasterImageEventLogs: FMasterImageEventLogs,
|
|
12052
|
+
FNodeCrypto: FNodeCrypto,
|
|
10935
12053
|
FNodeForm: FNodeForm,
|
|
10936
12054
|
FNodeRegistryProject: FNodeRegistryProject,
|
|
10937
12055
|
FNodeRobotEntity: FNodeRobot,
|
|
@@ -11001,6 +12119,9 @@ var index = {
|
|
|
11001
12119
|
install
|
|
11002
12120
|
};
|
|
11003
12121
|
|
|
12122
|
+
exports.ActionCommandElementType = ActionCommandElementType;
|
|
12123
|
+
exports.ElementType = ElementType;
|
|
12124
|
+
exports.EntityListSlotName = EntityListSlotName;
|
|
11004
12125
|
exports.EntityManagerError = EntityManagerError;
|
|
11005
12126
|
exports.FAnalyses = FAnalyses;
|
|
11006
12127
|
exports.FAnalysis = TrainEntity;
|
|
@@ -11027,6 +12148,9 @@ exports.FAnalysisNodes = FAnalysisNodes;
|
|
|
11027
12148
|
exports.FAnalysisPipeline = TrainPipeline;
|
|
11028
12149
|
exports.FAnalysisWizard = FAnalysisWizard;
|
|
11029
12150
|
exports.FEntityDelete = FEntityDelete;
|
|
12151
|
+
exports.FMasterImageEventLog = FMasterImageEventLog;
|
|
12152
|
+
exports.FMasterImageEventLogs = FMasterImageEventLogs;
|
|
12153
|
+
exports.FNodeCrypto = FNodeCrypto;
|
|
11030
12154
|
exports.FNodeForm = FNodeForm;
|
|
11031
12155
|
exports.FNodeRegistryProject = FNodeRegistryProject;
|
|
11032
12156
|
exports.FNodeRobotEntity = FNodeRobot;
|