@privateaim/client-vue 0.8.27 → 0.8.29

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/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { hasOwnProperty, isObject as isObject$1, merge, createMerger } from 'smob';
2
- import { hasInjectionContext, inject as inject$1, provide as provide$1, defineComponent, computed, renderSlot, normalizeProps, guardReactiveProps, openBlock, createBlock, resolveDynamicComponent, withCtx, mergeProps, h, withDirectives, isRef, onMounted, onUnmounted, watch, ref, unref, toRef, resolveComponent, createElementBlock, createElementVNode, normalizeStyle, normalizeClass, toDisplayString, createTextVNode, Fragment, createVNode, createCommentVNode, reactive, nextTick, withModifiers, renderList, getCurrentInstance, useTemplateRef, toHandlers, resolveDirective, vModelCheckbox, vShow } from 'vue';
2
+ import { hasInjectionContext, inject as inject$1, provide as provide$1, defineComponent, computed, renderSlot, normalizeProps, guardReactiveProps, h, resolveDynamicComponent, withDirectives, isRef, onMounted, onUnmounted, watch, ref, unref, toRef, resolveComponent, resolveDirective, openBlock, createElementBlock, createElementVNode, normalizeStyle, normalizeClass, toDisplayString, createVNode, withCtx, createBlock, createTextVNode, Fragment, createCommentVNode, useTemplateRef, reactive, nextTick, withModifiers, renderList, getCurrentInstance, mergeProps, toHandlers, vModelCheckbox, vShow } from 'vue';
3
3
  import { VCLink } from '@vuecs/link';
4
- import { AnalysisError, buildDomainNamespaceName, DomainEventSubscriptionName, buildDomainChannelName, AnalysisCommand, AnalysisConfiguratorCommandChecker, AnalysisDistributorCommandChecker, AnalysisBuilderCommandChecker, DomainType, ProjectNodeApprovalCommand, ProjectNodeApprovalStatus, DomainSubType, AnalysisBucketType, MasterImageCommand, AnalysisNodeApprovalCommand, AnalysisNodeApprovalStatus, RegistryAPICommand, registryRobotSecretRegex, ServiceID, RegistryProjectType, NodeType } from '@privateaim/core-kit';
4
+ import { AnalysisError, buildDomainNamespaceName, DomainEventSubscriptionName, buildDomainChannelName, AnalysisCommand, AnalysisConfiguratorCommandChecker, AnalysisDistributorCommandChecker, AnalysisBuilderCommandChecker, DomainType, MasterImageCommand, ProjectNodeApprovalCommand, ProjectNodeApprovalStatus, DomainSubType, AnalysisBucketType, AnalysisNodeApprovalCommand, AnalysisNodeApprovalStatus, RegistryAPICommand, registryRobotSecretRegex, ServiceID, RegistryProjectType, NodeType } from '@privateaim/core-kit';
5
5
  import { extractErrorMessage, hasOwnProperty as hasOwnProperty$1, buildDomainEventFullName, PermissionName, ProcessStatus, humanFileSize, createNanoID, alphaNumHyphenUnderscoreRegex, isHex, hexToUTF8, CryptoAsymmetricAlgorithm, exportAsymmetricPublicKey, exportAsymmetricPrivateKey } from '@privateaim/kit';
6
6
  import { injectHTTPClientAuthenticationHook, inject as inject$2, provide as provide$2, injectStore, storeToRefs, injectStoreDispatcher, StoreDispatcherEventName, usePermissionCheck, useTranslation, TranslatorTranslationGroup, ATitle, ASearch, APagination, createFormSubmitTranslations, buildFormSubmitWithTranslations, TranslatorTranslationDefaultKey, ARobot, AUser, renderToggleButton as renderToggleButton$1, APermissions, defineEntityCollectionVProps, ARealms, AClient, AClientForm } from '@authup/client-web-kit';
7
7
  import { vBTooltip, BModal } from 'bootstrap-vue-next';
@@ -12,119 +12,23 @@ import { APIClient as APIClient$1, LogLevel, LogLevelColor } from '@privateaim/t
12
12
  import { REALM_MASTER_NAME, EntityDefaultEventName } from '@authup/core-kit';
13
13
  import { ClientManager } from '@authup/core-realtime-kit';
14
14
  import { SortDirection } from 'rapiq';
15
- import { install as install$1, useTranslationsForNestedValidations, getSeverity, IVuelidate } from '@ilingo/vuelidate';
15
+ import { install as install$1, IVuelidate, useTranslationsForNestedValidations, getSeverity } from '@ilingo/vuelidate';
16
16
  import { helpers, required, maxLength, minLength } from '@vuelidate/validators';
17
17
  import useVuelidate from '@vuelidate/core';
18
- import { buildFormGroup, buildFormSelect, VCFormGroup, VCFormInput, buildFormTextarea, buildFormInput, VCFormInputCheckbox, VCFormSubmit, buildFormInputCheckbox } from '@vuecs/form-controls';
18
+ import { VCFormGroup, VCFormInput, buildFormGroup, buildFormTextarea, buildFormSelect, buildFormInput, VCFormInputCheckbox, VCFormSubmit, buildFormInputCheckbox } from '@vuecs/form-controls';
19
19
  import { VCTimeago } from '@vuecs/timeago';
20
20
  import { useClipboard } from '@vueuse/core';
21
21
 
22
- /*
23
- * Copyright (c) 2024-2024.
24
- * Author Peter Placzek (tada5hi)
25
- * For the full copyright and license information,
26
- * view the LICENSE file that was distributed with this source code.
27
- */ const BRACKET_NUMBER_REGEX = RegExp("(?<!\\\\)\\[(\\d+)]$");
28
- /**
29
- * Convert string to property path array.
30
- *
31
- * @see https://github.com/lodash/lodash/blob/main/src/.internal/stringToPath.ts
32
- * @see https://github.com/chaijs/pathval
33
- *
34
- * @param segment
35
- */ function pathToArray(segment) {
36
- const str = segment.replace(/([^\\])\[/g, '$1.[');
37
- const parts = str.match(/(\\\.|[^.]+?)+/g);
38
- if (!parts) {
39
- return [];
40
- }
41
- const result = [];
42
- for(let i = 0; i < parts.length; i++){
43
- if (parts[i] === 'constructor' || parts[i] === '__proto__' || parts[i] === 'prototype') {
44
- continue;
45
- }
46
- const regex = BRACKET_NUMBER_REGEX.exec(parts[i]);
47
- if (regex) {
48
- result.push(regex[1]);
49
- } else {
50
- result.push(parts[i].replace(/\\([.[\]])/g, '$1'));
51
- }
52
- }
53
- return result;
54
- }
55
-
56
22
  /*
57
23
  * Copyright (c) 2024.
58
24
  * Author Peter Placzek (tada5hi)
59
25
  * For the full copyright and license information,
60
26
  * view the LICENSE file that was distributed with this source code.
61
- */ var Character;
27
+ */ var Character$1;
62
28
  (function(Character) {
63
29
  Character["WILDCARD"] = "*";
64
30
  Character["GLOBSTAR"] = "**";
65
- })(Character || (Character = {}));
66
-
67
- /*
68
- * Copyright (c) 2024.
69
- * Author Peter Placzek (tada5hi)
70
- * For the full copyright and license information,
71
- * view the LICENSE file that was distributed with this source code.
72
- */ function isObject(input) {
73
- return !!input && typeof input === 'object' && !Array.isArray(input);
74
- }
75
-
76
- function getPathValue(data, path) {
77
- const parts = Array.isArray(path) ? path : pathToArray(path);
78
- let res;
79
- let temp = data;
80
- let index = 0;
81
- while(index < parts.length){
82
- if (temp === null || typeof temp === 'undefined') {
83
- break;
84
- }
85
- if (parts[index] in Object(temp)) {
86
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
87
- // @ts-expect-error
88
- temp = temp[parts[index]];
89
- } else {
90
- break;
91
- }
92
- if (index === parts.length - 1) {
93
- res = temp;
94
- }
95
- index++;
96
- }
97
- return res;
98
- }
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(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
- }
31
+ })(Character$1 || (Character$1 = {}));
128
32
 
129
33
  var StoreName = /*#__PURE__*/ function(StoreName) {
130
34
  StoreName["DEFAULT"] = "default";
@@ -245,7 +149,7 @@ function installStoreManager(instance, key) {
245
149
  return manager;
246
150
  }
247
151
 
248
- var _sfc_main$K = defineComponent({
152
+ var _sfc_main$L = defineComponent({
249
153
  props: {
250
154
  entity: {
251
155
  type: Object,
@@ -279,19 +183,12 @@ var _export_sfc = (sfc, props) => {
279
183
  return target;
280
184
  };
281
185
 
282
- function _sfc_render$K(_ctx, _cache, $props, $setup, $data, $options) {
283
- return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ passed: _ctx.passed, message: _ctx.message })), () => [
284
- (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), null, {
285
- default: withCtx(() => [
286
- _ctx.passed ? renderSlot(_ctx.$slots, "valid", normalizeProps(mergeProps({ key: 0 }, { passed: _ctx.passed, message: _ctx.message }))) : renderSlot(_ctx.$slots, "invalid", normalizeProps(mergeProps({ key: 1 }, { passed: _ctx.passed, message: _ctx.message })))
287
- ]),
288
- _: 3
289
- }))
290
- ]);
186
+ function _sfc_render$L(_ctx, _cache, $props, $setup, $data, $options) {
187
+ return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ passed: _ctx.passed, message: _ctx.message })));
291
188
  }
292
- var FAnalysisConfigurationImageStep = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["render", _sfc_render$K]]);
189
+ var FAnalysisConfigurationImageStep = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["render", _sfc_render$L]]);
293
190
 
294
- var _sfc_main$J = defineComponent({
191
+ var _sfc_main$K = defineComponent({
295
192
  props: {
296
193
  entity: {
297
194
  type: Object,
@@ -317,19 +214,12 @@ var _sfc_main$J = defineComponent({
317
214
  }
318
215
  });
319
216
 
320
- function _sfc_render$J(_ctx, _cache, $props, $setup, $data, $options) {
321
- return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ passed: _ctx.passed, message: _ctx.message })), () => [
322
- (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), null, {
323
- default: withCtx(() => [
324
- _ctx.passed ? renderSlot(_ctx.$slots, "valid", { key: 0 }) : renderSlot(_ctx.$slots, "invalid", normalizeProps(mergeProps({ key: 1 }, { message: _ctx.message })))
325
- ]),
326
- _: 3
327
- }))
328
- ]);
217
+ function _sfc_render$K(_ctx, _cache, $props, $setup, $data, $options) {
218
+ return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ passed: _ctx.passed, message: _ctx.message })));
329
219
  }
330
- var FAnalysisConfigurationEntrypointStep = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["render", _sfc_render$J]]);
220
+ var FAnalysisConfigurationEntrypointStep = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["render", _sfc_render$K]]);
331
221
 
332
- var _sfc_main$I = defineComponent({
222
+ var _sfc_main$J = defineComponent({
333
223
  props: {
334
224
  entity: {
335
225
  type: Object,
@@ -365,17 +255,10 @@ var _sfc_main$I = defineComponent({
365
255
  }
366
256
  });
367
257
 
368
- function _sfc_render$I(_ctx, _cache, $props, $setup, $data, $options) {
369
- return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ passed: _ctx.passed, message: _ctx.message })), () => [
370
- (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), null, {
371
- default: withCtx(() => [
372
- _ctx.passed ? renderSlot(_ctx.$slots, "valid", normalizeProps(mergeProps({ key: 0 }, { passed: _ctx.passed, message: _ctx.message, hasDefault: _ctx.hasDefault, hasAggregator: _ctx.hasAggregator }))) : renderSlot(_ctx.$slots, "invalid", normalizeProps(mergeProps({ key: 1 }, { passed: _ctx.passed, message: _ctx.message, hasDefault: _ctx.hasDefault, hasAggregator: _ctx.hasAggregator })))
373
- ]),
374
- _: 3
375
- }))
376
- ]);
258
+ function _sfc_render$J(_ctx, _cache, $props, $setup, $data, $options) {
259
+ return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ passed: _ctx.passed, message: _ctx.message })));
377
260
  }
378
- var FAnalysisConfigurationNodesStep = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$I]]);
261
+ var FAnalysisConfigurationNodesStep = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["render", _sfc_render$J]]);
379
262
 
380
263
  /*
381
264
  * Copyright (c) 2024.
@@ -431,7 +314,7 @@ function renderActionCommand(ctx) {
431
314
  ctx.iconClass
432
315
  ];
433
316
  if (ctx.withIcon && ctx.withText) {
434
- iconClasses.push('pe-1');
317
+ iconClasses.push('me-1');
435
318
  }
436
319
  let tag;
437
320
  if (ctx.elementType === 'dropDownItem') {
@@ -470,7 +353,8 @@ function renderActionCommand(ctx) {
470
353
  commandText: ctx.commandText,
471
354
  isDisabled: ctx.isDisabled,
472
355
  isAllowed: ctx.isAllowed,
473
- iconClass: iconClasses
356
+ iconClass: iconClasses,
357
+ execute: ()=>ctx.execute()
474
358
  }, ctx.slots);
475
359
  }
476
360
  const vNode = h(tag, attributes, text);
@@ -1367,10 +1251,14 @@ function createEntityManager(ctx) {
1367
1251
  };
1368
1252
  const resolved = (value)=>{
1369
1253
  if (ctx.setup && ctx.setup.emit) {
1370
- ctx.setup.emit('resolved', value);
1254
+ ctx.setup.emit('resolved', value ? {
1255
+ ...value
1256
+ } : null);
1371
1257
  }
1372
1258
  if (ctx.onResolved) {
1373
- ctx.onResolved(value);
1259
+ ctx.onResolved(value ? {
1260
+ ...value
1261
+ } : null);
1374
1262
  }
1375
1263
  };
1376
1264
  const failed = (error)=>{
@@ -1476,7 +1364,7 @@ function createEntityManager(ctx) {
1476
1364
  }
1477
1365
  entity.value = null;
1478
1366
  if (!domainAPI) {
1479
- resolved();
1367
+ resolved(null);
1480
1368
  return null;
1481
1369
  }
1482
1370
  if (resolveCtx.id) {
@@ -1515,6 +1403,7 @@ function createEntityManager(ctx) {
1515
1403
  }
1516
1404
  }
1517
1405
  }
1406
+ resolved(null);
1518
1407
  return null;
1519
1408
  };
1520
1409
  const resolveByProps = (resolveCtx = {})=>{
@@ -1662,6 +1551,113 @@ function createEntityManager(ctx) {
1662
1551
  };
1663
1552
  }
1664
1553
 
1554
+ /*
1555
+ * Copyright (c) 2024-2024.
1556
+ * Author Peter Placzek (tada5hi)
1557
+ * For the full copyright and license information,
1558
+ * view the LICENSE file that was distributed with this source code.
1559
+ */ const BRACKET_NUMBER_REGEX = RegExp("(?<!\\\\)\\[(\\d+)]$");
1560
+ /**
1561
+ * Convert string to property path array.
1562
+ *
1563
+ * @see https://github.com/lodash/lodash/blob/main/src/.internal/stringToPath.ts
1564
+ * @see https://github.com/chaijs/pathval
1565
+ *
1566
+ * @param segment
1567
+ */ function pathToArray(segment) {
1568
+ const str = segment.replace(/([^\\])\[/g, '$1.[');
1569
+ const parts = str.match(/(\\\.|[^.]+?)+/g);
1570
+ if (!parts) {
1571
+ return [];
1572
+ }
1573
+ const result = [];
1574
+ for(let i = 0; i < parts.length; i++){
1575
+ if (parts[i] === 'constructor' || parts[i] === '__proto__' || parts[i] === 'prototype') {
1576
+ continue;
1577
+ }
1578
+ const regex = BRACKET_NUMBER_REGEX.exec(parts[i]);
1579
+ if (regex) {
1580
+ result.push(regex[1]);
1581
+ } else {
1582
+ result.push(parts[i].replace(/\\([.[\]])/g, '$1'));
1583
+ }
1584
+ }
1585
+ return result;
1586
+ }
1587
+
1588
+ /*
1589
+ * Copyright (c) 2024.
1590
+ * Author Peter Placzek (tada5hi)
1591
+ * For the full copyright and license information,
1592
+ * view the LICENSE file that was distributed with this source code.
1593
+ */ var Character;
1594
+ (function(Character) {
1595
+ Character["WILDCARD"] = "*";
1596
+ Character["GLOBSTAR"] = "**";
1597
+ })(Character || (Character = {}));
1598
+
1599
+ /*
1600
+ * Copyright (c) 2024.
1601
+ * Author Peter Placzek (tada5hi)
1602
+ * For the full copyright and license information,
1603
+ * view the LICENSE file that was distributed with this source code.
1604
+ */ function isObject(input) {
1605
+ return !!input && typeof input === 'object' && !Array.isArray(input);
1606
+ }
1607
+
1608
+ function getPathValue(data, path) {
1609
+ const parts = Array.isArray(path) ? path : pathToArray(path);
1610
+ let res;
1611
+ let temp = data;
1612
+ let index = 0;
1613
+ while(index < parts.length){
1614
+ if (temp === null || typeof temp === 'undefined') {
1615
+ break;
1616
+ }
1617
+ if (parts[index] in Object(temp)) {
1618
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
1619
+ // @ts-expect-error
1620
+ temp = temp[parts[index]];
1621
+ } else {
1622
+ break;
1623
+ }
1624
+ if (index === parts.length - 1) {
1625
+ res = temp;
1626
+ }
1627
+ index++;
1628
+ }
1629
+ return res;
1630
+ }
1631
+
1632
+ const NUMBER_REGEX = /^\d+$/;
1633
+ function setPathValue(data, path, value) {
1634
+ const parts = Array.isArray(path) ? path : pathToArray(path);
1635
+ let temp = data;
1636
+ let index = 0;
1637
+ while(index < parts.length){
1638
+ /* istanbul ignore next */ if (!Array.isArray(temp) && !isObject(temp)) {
1639
+ break;
1640
+ }
1641
+ const key = parts[index];
1642
+ // [foo, '0']
1643
+ if (typeof temp[key] === 'undefined') {
1644
+ const match = NUMBER_REGEX.test(key);
1645
+ if (match) {
1646
+ temp[key] = [];
1647
+ } else {
1648
+ temp[key] = {};
1649
+ }
1650
+ }
1651
+ if (index === parts.length - 1) {
1652
+ temp[key] = value;
1653
+ break;
1654
+ }
1655
+ index++;
1656
+ temp = temp[key];
1657
+ }
1658
+ return data;
1659
+ }
1660
+
1665
1661
  class MemoryStore {
1666
1662
  data;
1667
1663
  constructor(options){
@@ -1861,7 +1857,7 @@ const FAnalysisCommand = defineComponent({
1861
1857
  }
1862
1858
  });
1863
1859
 
1864
- var _sfc_main$H = defineComponent({
1860
+ var _sfc_main$I = defineComponent({
1865
1861
  components: {
1866
1862
  FAnalysisCommand,
1867
1863
  FAnalysisConfigurationNodesStep,
@@ -1924,53 +1920,57 @@ var _sfc_main$H = defineComponent({
1924
1920
  }
1925
1921
  });
1926
1922
 
1927
- const _hoisted_1$t = { class: "card-grey card" };
1928
- const _hoisted_2$o = { class: "card-header" };
1929
- const _hoisted_3$m = { class: "title d-flex flex-row" };
1930
- const _hoisted_4$i = { class: "ms-auto" };
1931
- const _hoisted_5$g = {
1923
+ const _hoisted_1$u = { class: "card-grey card" };
1924
+ const _hoisted_2$p = { class: "card-header" };
1925
+ const _hoisted_3$n = { class: "title d-flex flex-row" };
1926
+ const _hoisted_4$j = { class: "ms-auto" };
1927
+ const _hoisted_5$h = {
1932
1928
  key: 0,
1933
1929
  class: "text-success"
1934
1930
  };
1935
- const _hoisted_6$e = {
1931
+ const _hoisted_6$f = {
1936
1932
  key: 1,
1937
1933
  class: "text-danger"
1938
1934
  };
1939
- const _hoisted_7$c = { class: "card-body" };
1940
- const _hoisted_8$a = { class: "d-flex flex-column h-100" };
1941
- const _hoisted_9$9 = { class: "progress bg-white" };
1935
+ const _hoisted_7$d = { class: "card-body" };
1936
+ const _hoisted_8$b = { class: "d-flex flex-column h-100" };
1937
+ const _hoisted_9$a = { class: "progress bg-white" };
1942
1938
  const _hoisted_10$9 = ["aria-valuenow"];
1943
1939
  const _hoisted_11$7 = { class: "d-flex flex-row gap-1" };
1944
- const _hoisted_12$4 = { class: "d-flex flex-column ms-4" };
1945
- const _hoisted_13$2 = { class: "d-flex flex-row gap-1" };
1940
+ const _hoisted_12$4 = ["title"];
1941
+ const _hoisted_13$2 = { class: "d-flex flex-column ms-4" };
1946
1942
  const _hoisted_14$1 = { class: "d-flex flex-row gap-1" };
1947
- const _hoisted_15$1 = { class: "mt-auto" };
1948
- const _hoisted_16$1 = { class: "d-flex flex-column gap-1" };
1949
- function _sfc_render$H(_ctx, _cache, $props, $setup, $data, $options) {
1943
+ const _hoisted_15$1 = ["title"];
1944
+ const _hoisted_16$1 = { class: "d-flex flex-row gap-1" };
1945
+ const _hoisted_17$1 = ["title"];
1946
+ const _hoisted_18$1 = { class: "mt-auto" };
1947
+ const _hoisted_19 = { class: "d-flex flex-column gap-1" };
1948
+ function _sfc_render$I(_ctx, _cache, $props, $setup, $data, $options) {
1950
1949
  const _component_VCLink = resolveComponent("VCLink");
1951
1950
  const _component_FAnalysisConfigurationNodesStep = resolveComponent("FAnalysisConfigurationNodesStep");
1952
1951
  const _component_FAnalysisConfigurationImageStep = resolveComponent("FAnalysisConfigurationImageStep");
1953
1952
  const _component_FAnalysisConfigurationEntrypointStep = resolveComponent("FAnalysisConfigurationEntrypointStep");
1954
1953
  const _component_FAnalysisCommand = resolveComponent("FAnalysisCommand");
1955
- return openBlock(), createElementBlock("div", _hoisted_1$t, [
1956
- createElementVNode("div", _hoisted_2$o, [
1957
- createElementVNode("div", _hoisted_3$m, [
1954
+ const _directive_b_tooltip = resolveDirective("b-tooltip");
1955
+ return openBlock(), createElementBlock("div", _hoisted_1$u, [
1956
+ createElementVNode("div", _hoisted_2$p, [
1957
+ createElementVNode("div", _hoisted_3$n, [
1958
1958
  _cache[4] || (_cache[4] = createElementVNode("div", null, " Configuration ", -1)),
1959
- createElementVNode("div", _hoisted_4$i, [
1960
- _ctx.passed ? (openBlock(), createElementBlock("span", _hoisted_5$g, [..._cache[2] || (_cache[2] = [
1959
+ createElementVNode("div", _hoisted_4$j, [
1960
+ _ctx.passed ? (openBlock(), createElementBlock("span", _hoisted_5$h, [..._cache[2] || (_cache[2] = [
1961
1961
  createElementVNode("i", { class: "fa fa-check" }, null, -1)
1962
- ])])) : (openBlock(), createElementBlock("span", _hoisted_6$e, [..._cache[3] || (_cache[3] = [
1962
+ ])])) : (openBlock(), createElementBlock("span", _hoisted_6$f, [..._cache[3] || (_cache[3] = [
1963
1963
  createElementVNode("i", { class: "fa fa-times" }, null, -1)
1964
1964
  ])]))
1965
1965
  ])
1966
1966
  ])
1967
1967
  ]),
1968
- createElementVNode("div", _hoisted_7$c, [
1969
- createElementVNode("div", _hoisted_8$a, [
1970
- _cache[15] || (_cache[15] = createElementVNode("div", { class: "text-center mb-3" }, [
1968
+ createElementVNode("div", _hoisted_7$d, [
1969
+ createElementVNode("div", _hoisted_8$b, [
1970
+ _cache[9] || (_cache[9] = createElementVNode("div", { class: "text-center mb-3" }, [
1971
1971
  createElementVNode("i", { class: "fas fa-gear fa-4x" })
1972
1972
  ], -1)),
1973
- createElementVNode("div", _hoisted_9$9, [
1973
+ createElementVNode("div", _hoisted_9$a, [
1974
1974
  createElementVNode("div", {
1975
1975
  class: normalizeClass(["progress-bar", "bg-success"]),
1976
1976
  style: normalizeStyle({ width: _ctx.progress + "%" }),
@@ -1979,104 +1979,148 @@ function _sfc_render$H(_ctx, _cache, $props, $setup, $data, $options) {
1979
1979
  "aria-valuemax": "100"
1980
1980
  }, toDisplayString(_ctx.progress) + "% ", 13, _hoisted_10$9)
1981
1981
  ]),
1982
- _cache[16] || (_cache[16] = createElementVNode("hr", null, null, -1)),
1983
- _cache[17] || (_cache[17] = createElementVNode("h6", { class: "mb-0" }, " Requirements ", -1)),
1982
+ _cache[10] || (_cache[10] = createElementVNode("hr", null, null, -1)),
1983
+ _cache[11] || (_cache[11] = createElementVNode("h6", { class: "mb-0" }, " Requirements ", -1)),
1984
1984
  createElementVNode("div", _hoisted_11$7, [
1985
- createElementVNode("div", null, [
1985
+ createVNode(_component_FAnalysisConfigurationNodesStep, { entity: _ctx.entity }, {
1986
+ default: withCtx(({ passed, message }) => [
1987
+ createElementVNode("div", null, [
1988
+ withDirectives((openBlock(), createElementBlock("strong", { title: message }, [
1989
+ _ctx.nodesLink ? (openBlock(), createBlock(_component_VCLink, {
1990
+ key: 0,
1991
+ to: _ctx.nodesLink
1992
+ }, {
1993
+ default: withCtx(() => [..._cache[5] || (_cache[5] = [
1994
+ createTextVNode(" Node(s) Assignment ", -1)
1995
+ ])]),
1996
+ _: 1
1997
+ }, 8, ["to"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1998
+ createTextVNode(" Node(s) Assignment ")
1999
+ ], 64))
2000
+ ], 8, _hoisted_12$4)), [
2001
+ [
2002
+ _directive_b_tooltip,
2003
+ void 0,
2004
+ void 0,
2005
+ {
2006
+ hover: true,
2007
+ top: true
2008
+ }
2009
+ ]
2010
+ ])
2011
+ ]),
2012
+ createElementVNode("span", {
2013
+ class: normalizeClass(["text-success", {
2014
+ "text-success": passed,
2015
+ "text-danger": !passed
2016
+ }])
2017
+ }, [
2018
+ createElementVNode("i", {
2019
+ class: normalizeClass(["fa", {
2020
+ "fa-check": passed,
2021
+ "fa-times": !passed
2022
+ }])
2023
+ }, null, 2)
2024
+ ], 2)
2025
+ ]),
2026
+ _: 1
2027
+ }, 8, ["entity"])
2028
+ ]),
2029
+ createElementVNode("div", null, [
2030
+ createElementVNode("strong", null, [
1986
2031
  createElementVNode("strong", null, [
1987
- _ctx.nodesLink ? (openBlock(), createBlock(_component_VCLink, {
2032
+ _ctx.imageLink ? (openBlock(), createBlock(_component_VCLink, {
1988
2033
  key: 0,
1989
- to: _ctx.nodesLink
2034
+ to: _ctx.imageLink
1990
2035
  }, {
1991
- default: withCtx(() => [..._cache[5] || (_cache[5] = [
1992
- createTextVNode(" Node(s) Assignment ", -1)
2036
+ default: withCtx(() => [..._cache[6] || (_cache[6] = [
2037
+ createTextVNode(" Image ", -1)
1993
2038
  ])]),
1994
2039
  _: 1
1995
2040
  }, 8, ["to"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1996
- createTextVNode(" Node(s) Assignment ")
1997
- ], 64))
1998
- ])
1999
- ]),
2000
- createElementVNode("div", null, [
2001
- createVNode(_component_FAnalysisConfigurationNodesStep, { entity: _ctx.entity }, {
2002
- valid: withCtx(() => [..._cache[6] || (_cache[6] = [
2003
- createElementVNode("span", { class: "text-success" }, [
2004
- createElementVNode("i", { class: "fa fa-check" })
2005
- ], -1)
2006
- ])]),
2007
- invalid: withCtx(({ message }) => [
2008
- _cache[7] || (_cache[7] = createElementVNode("span", { class: "text-danger" }, [
2009
- createElementVNode("i", { class: "fa fa-times" })
2010
- ], -1)),
2011
- createElementVNode("small", null, "( " + toDisplayString(message) + " )", 1)
2012
- ]),
2013
- _: 1
2014
- }, 8, ["entity"])
2015
- ])
2016
- ]),
2017
- createElementVNode("div", null, [
2018
- createElementVNode("strong", null, [
2019
- createElementVNode("strong", null, [
2020
- _ctx.imageLink ? (openBlock(), createBlock(_component_VCLink, {
2021
- key: 0,
2022
- to: _ctx.imageLink
2023
- }, {
2024
- default: withCtx(() => [..._cache[8] || (_cache[8] = [
2025
- createTextVNode(" Image ", -1)
2026
- ])]),
2027
- _: 1
2028
- }, 8, ["to"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
2029
- createTextVNode(" Image ")
2041
+ createTextVNode(" Image ")
2030
2042
  ], 64))
2031
2043
  ])
2032
2044
  ])
2033
2045
  ]),
2034
- createElementVNode("div", _hoisted_12$4, [
2035
- createElementVNode("div", _hoisted_13$2, [
2036
- _cache[11] || (_cache[11] = createElementVNode("div", null, [
2037
- createElementVNode("strong", null, " Base ")
2038
- ], -1)),
2039
- createElementVNode("div", null, [
2040
- createVNode(_component_FAnalysisConfigurationImageStep, { entity: _ctx.entity }, {
2041
- valid: withCtx(() => [..._cache[9] || (_cache[9] = [
2042
- createElementVNode("span", { class: "text-success" }, [
2043
- createElementVNode("i", { class: "fa fa-check" })
2044
- ], -1)
2045
- ])]),
2046
- invalid: withCtx(({ message }) => [
2047
- _cache[10] || (_cache[10] = createElementVNode("span", { class: "text-danger" }, [
2048
- createElementVNode("i", { class: "fa fa-times" })
2049
- ], -1)),
2050
- createElementVNode("small", null, "( " + toDisplayString(message) + " )", 1)
2046
+ createElementVNode("div", _hoisted_13$2, [
2047
+ createVNode(_component_FAnalysisConfigurationImageStep, { entity: _ctx.entity }, {
2048
+ default: withCtx(({ passed, message }) => [
2049
+ createElementVNode("div", _hoisted_14$1, [
2050
+ createElementVNode("div", null, [
2051
+ withDirectives((openBlock(), createElementBlock("strong", { title: message }, [..._cache[7] || (_cache[7] = [
2052
+ createTextVNode(" Base ", -1)
2053
+ ])], 8, _hoisted_15$1)), [
2054
+ [
2055
+ _directive_b_tooltip,
2056
+ void 0,
2057
+ void 0,
2058
+ {
2059
+ hover: true,
2060
+ top: true
2061
+ }
2062
+ ]
2063
+ ])
2051
2064
  ]),
2052
- _: 1
2053
- }, 8, ["entity"])
2054
- ])
2055
- ]),
2056
- createElementVNode("div", _hoisted_14$1, [
2057
- _cache[14] || (_cache[14] = createElementVNode("div", null, [
2058
- createElementVNode("strong", null, " Entrypoint ")
2059
- ], -1)),
2060
- createElementVNode("div", null, [
2061
- createVNode(_component_FAnalysisConfigurationEntrypointStep, { entity: _ctx.entity }, {
2062
- valid: withCtx(() => [..._cache[12] || (_cache[12] = [
2063
- createElementVNode("span", { class: "text-success" }, [
2064
- createElementVNode("i", { class: "fa fa-check" })
2065
- ], -1)
2066
- ])]),
2067
- invalid: withCtx(({ message }) => [
2068
- _cache[13] || (_cache[13] = createElementVNode("span", { class: "text-danger" }, [
2069
- createElementVNode("i", { class: "fa fa-times" })
2070
- ], -1)),
2071
- createElementVNode("small", null, "( " + toDisplayString(message) + " )", 1)
2065
+ createElementVNode("div", null, [
2066
+ createElementVNode("span", {
2067
+ class: normalizeClass(["text-success", {
2068
+ "text-success": passed,
2069
+ "text-danger": !passed
2070
+ }])
2071
+ }, [
2072
+ createElementVNode("i", {
2073
+ class: normalizeClass(["fa", {
2074
+ "fa-check": passed,
2075
+ "fa-times": !passed
2076
+ }])
2077
+ }, null, 2)
2078
+ ], 2)
2079
+ ])
2080
+ ])
2081
+ ]),
2082
+ _: 1
2083
+ }, 8, ["entity"]),
2084
+ createVNode(_component_FAnalysisConfigurationEntrypointStep, { entity: _ctx.entity }, {
2085
+ default: withCtx(({ passed, message }) => [
2086
+ createElementVNode("div", _hoisted_16$1, [
2087
+ createElementVNode("div", null, [
2088
+ withDirectives((openBlock(), createElementBlock("strong", { title: message }, [..._cache[8] || (_cache[8] = [
2089
+ createTextVNode(" Entrypoint ", -1)
2090
+ ])], 8, _hoisted_17$1)), [
2091
+ [
2092
+ _directive_b_tooltip,
2093
+ void 0,
2094
+ void 0,
2095
+ {
2096
+ hover: true,
2097
+ top: true
2098
+ }
2099
+ ]
2100
+ ])
2072
2101
  ]),
2073
- _: 1
2074
- }, 8, ["entity"])
2075
- ])
2076
- ])
2102
+ createElementVNode("div", null, [
2103
+ createElementVNode("span", {
2104
+ class: normalizeClass(["text-success", {
2105
+ "text-success": passed,
2106
+ "text-danger": !passed
2107
+ }])
2108
+ }, [
2109
+ createElementVNode("i", {
2110
+ class: normalizeClass(["fa", {
2111
+ "fa-check": passed,
2112
+ "fa-times": !passed
2113
+ }])
2114
+ }, null, 2)
2115
+ ], 2)
2116
+ ])
2117
+ ])
2118
+ ]),
2119
+ _: 1
2120
+ }, 8, ["entity"])
2077
2121
  ]),
2078
- createElementVNode("div", _hoisted_15$1, [
2079
- createElementVNode("div", _hoisted_16$1, [
2122
+ createElementVNode("div", _hoisted_18$1, [
2123
+ createElementVNode("div", _hoisted_19, [
2080
2124
  createElementVNode("div", null, [
2081
2125
  createVNode(_component_FAnalysisCommand, {
2082
2126
  command: "configurationLock",
@@ -2103,9 +2147,9 @@ function _sfc_render$H(_ctx, _cache, $props, $setup, $data, $options) {
2103
2147
  ])
2104
2148
  ]);
2105
2149
  }
2106
- var FAnalysisConfigurationStep = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["render", _sfc_render$H]]);
2150
+ var FAnalysisConfigurationStep = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$I]]);
2107
2151
 
2108
- var _sfc_main$G = defineComponent({
2152
+ var _sfc_main$H = defineComponent({
2109
2153
  props: {
2110
2154
  value: {
2111
2155
  type: String
@@ -2126,7 +2170,7 @@ var _sfc_main$G = defineComponent({
2126
2170
  case ProcessStatus.STARTED:
2127
2171
  case ProcessStatus.STOPPED:
2128
2172
  return 'primary';
2129
- case ProcessStatus.FINISHED:
2173
+ case ProcessStatus.EXECUTED:
2130
2174
  return 'success';
2131
2175
  case ProcessStatus.STOPPING:
2132
2176
  return 'warning';
@@ -2142,7 +2186,7 @@ var _sfc_main$G = defineComponent({
2142
2186
  case ProcessStatus.STARTED:
2143
2187
  case ProcessStatus.STOPPING:
2144
2188
  return 'fa fa-rotate fa-spin';
2145
- case ProcessStatus.FINISHED:
2189
+ case ProcessStatus.EXECUTED:
2146
2190
  return 'fa fa-check';
2147
2191
  case ProcessStatus.FAILED:
2148
2192
  case ProcessStatus.STOPPED:
@@ -2158,7 +2202,7 @@ var _sfc_main$G = defineComponent({
2158
2202
  }
2159
2203
  });
2160
2204
 
2161
- function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) {
2205
+ function _sfc_render$H(_ctx, _cache, $props, $setup, $data, $options) {
2162
2206
  return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ iconClass: _ctx.iconClass, value: _ctx.value || _ctx.defaultValue, classSuffix: _ctx.classSuffix })), () => [
2163
2207
  (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), {
2164
2208
  class: normalizeClass("text-" + _ctx.classSuffix)
@@ -2170,9 +2214,9 @@ function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) {
2170
2214
  }, 8, ["class"]))
2171
2215
  ]);
2172
2216
  }
2173
- var FProcessStatus = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["render", _sfc_render$G]]);
2217
+ var FProcessStatus = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["render", _sfc_render$H]]);
2174
2218
 
2175
- var _sfc_main$F = defineComponent({
2219
+ var _sfc_main$G = defineComponent({
2176
2220
  props: {
2177
2221
  entity: {
2178
2222
  type: Object,
@@ -2198,19 +2242,12 @@ var _sfc_main$F = defineComponent({
2198
2242
  }
2199
2243
  });
2200
2244
 
2201
- function _sfc_render$F(_ctx, _cache, $props, $setup, $data, $options) {
2202
- return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ passed: _ctx.passed, message: _ctx.message })), () => [
2203
- (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), null, {
2204
- default: withCtx(() => [
2205
- _ctx.passed ? renderSlot(_ctx.$slots, "valid", normalizeProps(mergeProps({ key: 0 }, { passed: _ctx.passed, message: _ctx.message }))) : renderSlot(_ctx.$slots, "invalid", normalizeProps(mergeProps({ key: 1 }, { passed: _ctx.passed, message: _ctx.message })))
2206
- ]),
2207
- _: 3
2208
- }))
2209
- ]);
2245
+ function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) {
2246
+ return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ passed: _ctx.passed, message: _ctx.message })));
2210
2247
  }
2211
- var FAnalysisBuildNodesStep = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["render", _sfc_render$F]]);
2248
+ var FAnalysisBuildNodesStep = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["render", _sfc_render$G]]);
2212
2249
 
2213
- var _sfc_main$E = defineComponent({
2250
+ var _sfc_main$F = defineComponent({
2214
2251
  components: {
2215
2252
  FAnalysisBuildNodesStep,
2216
2253
  FProcessStatus,
@@ -2228,7 +2265,12 @@ var _sfc_main$E = defineComponent({
2228
2265
  'failed'
2229
2266
  ],
2230
2267
  setup (props, { emit }) {
2231
- const progress = computed(()=>props.entity.build_progress || 0);
2268
+ const progress = computed(()=>{
2269
+ if (props.entity.build_status === ProcessStatus.EXECUTED) {
2270
+ return 100;
2271
+ }
2272
+ return props.entity.build_progress || 0;
2273
+ });
2232
2274
  const handleExecuted = (type, command)=>{
2233
2275
  emit('executed', type, command);
2234
2276
  };
@@ -2254,32 +2296,43 @@ var _sfc_main$E = defineComponent({
2254
2296
  }
2255
2297
  });
2256
2298
 
2257
- const _hoisted_1$s = { class: "card-grey card flex-grow-1" };
2258
- const _hoisted_2$n = { class: "card-header" };
2259
- const _hoisted_3$l = { class: "title d-flex flex-row" };
2260
- const _hoisted_4$h = { class: "ms-auto" };
2261
- const _hoisted_5$f = { class: "card-body" };
2262
- const _hoisted_6$d = { class: "d-flex flex-column h-100" };
2263
- const _hoisted_7$b = { class: "progress bg-white" };
2264
- const _hoisted_8$9 = ["aria-valuenow"];
2265
- const _hoisted_9$8 = { class: "d-flex flex-column" };
2299
+ const _hoisted_1$t = { class: "card-grey card flex-grow-1" };
2300
+ const _hoisted_2$o = { class: "card-header" };
2301
+ const _hoisted_3$m = { class: "title d-flex flex-row" };
2302
+ const _hoisted_4$i = { class: "ms-auto" };
2303
+ const _hoisted_5$g = { class: "card-body" };
2304
+ const _hoisted_6$e = { class: "d-flex flex-column h-100" };
2305
+ const _hoisted_7$c = { class: "progress bg-white" };
2306
+ const _hoisted_8$a = ["aria-valuenow"];
2307
+ const _hoisted_9$9 = { class: "d-flex flex-column" };
2266
2308
  const _hoisted_10$8 = { class: "d-flex flex-row gap-1" };
2267
- const _hoisted_11$6 = { class: "d-flex flex-column" };
2268
- const _hoisted_12$3 = { class: "d-flex flex-row gap-1" };
2269
- const _hoisted_13$1 = { class: "d-flex flex-row gap-1" };
2270
- const _hoisted_14 = { style: { "word-break": "break-all" } };
2271
- const _hoisted_15 = { class: "d-flex flex-row gap-1" };
2272
- const _hoisted_16 = { class: "mt-auto" };
2273
- const _hoisted_17 = { class: "d-flex flex-row gap-1" };
2274
- function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
2309
+ const _hoisted_11$6 = ["title"];
2310
+ const _hoisted_12$3 = { class: "d-flex flex-column" };
2311
+ const _hoisted_13$1 = {
2312
+ key: 0,
2313
+ class: "d-flex flex-row gap-1"
2314
+ };
2315
+ const _hoisted_14 = {
2316
+ key: 1,
2317
+ class: "d-flex flex-row gap-1"
2318
+ };
2319
+ const _hoisted_15 = { style: { "word-break": "break-all" } };
2320
+ const _hoisted_16 = {
2321
+ key: 2,
2322
+ class: "d-flex flex-row gap-1"
2323
+ };
2324
+ const _hoisted_17 = { class: "mt-auto" };
2325
+ const _hoisted_18 = { class: "d-flex flex-row gap-1" };
2326
+ function _sfc_render$F(_ctx, _cache, $props, $setup, $data, $options) {
2275
2327
  const _component_FProcessStatus = resolveComponent("FProcessStatus");
2276
2328
  const _component_FAnalysisBuildNodesStep = resolveComponent("FAnalysisBuildNodesStep");
2277
2329
  const _component_FAnalysisCommand = resolveComponent("FAnalysisCommand");
2278
- return openBlock(), createElementBlock("div", _hoisted_1$s, [
2279
- createElementVNode("div", _hoisted_2$n, [
2280
- createElementVNode("div", _hoisted_3$l, [
2330
+ const _directive_b_tooltip = resolveDirective("b-tooltip");
2331
+ return openBlock(), createElementBlock("div", _hoisted_1$t, [
2332
+ createElementVNode("div", _hoisted_2$o, [
2333
+ createElementVNode("div", _hoisted_3$m, [
2281
2334
  _cache[2] || (_cache[2] = createElementVNode("div", null, " Build ", -1)),
2282
- createElementVNode("div", _hoisted_4$h, [
2335
+ createElementVNode("div", _hoisted_4$i, [
2283
2336
  createVNode(_component_FProcessStatus, {
2284
2337
  value: _ctx.entity.build_status
2285
2338
  }, {
@@ -2293,88 +2346,96 @@ function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
2293
2346
  ])
2294
2347
  ])
2295
2348
  ]),
2296
- createElementVNode("div", _hoisted_5$f, [
2297
- createElementVNode("div", _hoisted_6$d, [
2298
- _cache[12] || (_cache[12] = createElementVNode("div", { class: "text-center mb-3" }, [
2349
+ createElementVNode("div", _hoisted_5$g, [
2350
+ createElementVNode("div", _hoisted_6$e, [
2351
+ _cache[10] || (_cache[10] = createElementVNode("div", { class: "text-center mb-3" }, [
2299
2352
  createElementVNode("i", { class: "fas fa-hammer fa-4x" })
2300
2353
  ], -1)),
2301
- createElementVNode("div", _hoisted_7$b, [
2354
+ createElementVNode("div", _hoisted_7$c, [
2302
2355
  createElementVNode("div", {
2303
2356
  class: normalizeClass(["progress-bar", "bg-success"]),
2304
2357
  style: normalizeStyle({ width: _ctx.progress + "%" }),
2305
2358
  "aria-valuenow": _ctx.progress,
2306
2359
  "aria-valuemin": "0",
2307
2360
  "aria-valuemax": "100"
2308
- }, toDisplayString(_ctx.progress) + "% ", 13, _hoisted_8$9)
2361
+ }, toDisplayString(_ctx.progress) + "% ", 13, _hoisted_8$a)
2309
2362
  ]),
2310
- _cache[13] || (_cache[13] = createElementVNode("hr", null, null, -1)),
2311
- createElementVNode("div", _hoisted_9$8, [
2363
+ _cache[11] || (_cache[11] = createElementVNode("hr", null, null, -1)),
2364
+ createElementVNode("div", _hoisted_9$9, [
2312
2365
  createElementVNode("div", null, [
2313
- _cache[6] || (_cache[6] = createElementVNode("h6", { class: "mb-0" }, " Requirements ", -1)),
2314
- createElementVNode("div", _hoisted_10$8, [
2315
- _cache[5] || (_cache[5] = createElementVNode("div", null, [
2316
- createElementVNode("strong", null, " Node(s) Approval ")
2317
- ], -1)),
2318
- createElementVNode("div", null, [
2319
- createVNode(_component_FAnalysisBuildNodesStep, { entity: _ctx.entity }, {
2320
- valid: withCtx(() => [..._cache[3] || (_cache[3] = [
2321
- createElementVNode("span", { class: "text-success" }, [
2322
- createElementVNode("i", { class: "fa fa-check" })
2323
- ], -1)
2324
- ])]),
2325
- invalid: withCtx(({ message }) => [
2326
- _cache[4] || (_cache[4] = createElementVNode("span", { class: "text-danger" }, [
2327
- createElementVNode("i", { class: "fa fa-times" })
2328
- ], -1)),
2329
- createElementVNode("small", null, "( " + toDisplayString(message) + " )", 1)
2366
+ _cache[4] || (_cache[4] = createElementVNode("h6", { class: "mb-0" }, " Requirements ", -1)),
2367
+ createVNode(_component_FAnalysisBuildNodesStep, { entity: _ctx.entity }, {
2368
+ default: withCtx(({ passed, message }) => [
2369
+ createElementVNode("div", _hoisted_10$8, [
2370
+ createElementVNode("div", null, [
2371
+ withDirectives((openBlock(), createElementBlock("strong", { title: message }, [..._cache[3] || (_cache[3] = [
2372
+ createTextVNode(" Node(s) Approval ", -1)
2373
+ ])], 8, _hoisted_11$6)), [
2374
+ [
2375
+ _directive_b_tooltip,
2376
+ void 0,
2377
+ void 0,
2378
+ {
2379
+ hover: true,
2380
+ top: true
2381
+ }
2382
+ ]
2383
+ ])
2330
2384
  ]),
2331
- _: 1
2332
- }, 8, ["entity"])
2333
- ])
2334
- ])
2385
+ createElementVNode("div", null, [
2386
+ createElementVNode("span", {
2387
+ class: normalizeClass(["text-success", {
2388
+ "text-success": passed,
2389
+ "text-danger": !passed
2390
+ }])
2391
+ }, [
2392
+ createElementVNode("i", {
2393
+ class: normalizeClass(["fa", {
2394
+ "fa-check": passed,
2395
+ "fa-times": !passed
2396
+ }])
2397
+ }, null, 2)
2398
+ ], 2)
2399
+ ])
2400
+ ])
2401
+ ]),
2402
+ _: 1
2403
+ }, 8, ["entity"])
2335
2404
  ]),
2336
- _cache[11] || (_cache[11] = createElementVNode("hr", null, null, -1)),
2337
- createElementVNode("div", null, [
2338
- _cache[10] || (_cache[10] = createElementVNode("h6", { class: "mb-0" }, " Info ", -1)),
2339
- createElementVNode("div", _hoisted_11$6, [
2405
+ _ctx.entity.build_os || _ctx.entity.build_hash || _ctx.size ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
2406
+ _cache[9] || (_cache[9] = createElementVNode("hr", null, null, -1)),
2407
+ createElementVNode("div", null, [
2408
+ _cache[8] || (_cache[8] = createElementVNode("h6", { class: "mb-0" }, " Info ", -1)),
2340
2409
  createElementVNode("div", _hoisted_12$3, [
2341
- _cache[7] || (_cache[7] = createElementVNode("div", null, [
2342
- createElementVNode("strong", null, "OS")
2343
- ], -1)),
2344
- createElementVNode("div", null, [
2345
- _ctx.entity.build_os ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
2410
+ _ctx.entity.build_os ? (openBlock(), createElementBlock("div", _hoisted_13$1, [
2411
+ _cache[5] || (_cache[5] = createElementVNode("div", null, [
2412
+ createElementVNode("strong", null, "OS")
2413
+ ], -1)),
2414
+ createElementVNode("div", null, [
2346
2415
  createTextVNode(toDisplayString(_ctx.entity.build_os) + " ", 1),
2347
2416
  createElementVNode("i", {
2348
2417
  class: normalizeClass(["fa-brands", "fa-" + _ctx.entity.build_os])
2349
2418
  }, null, 2)
2350
- ], 64)) : createCommentVNode("", true)
2351
- ])
2352
- ]),
2353
- createElementVNode("div", _hoisted_13$1, [
2354
- _cache[8] || (_cache[8] = createElementVNode("div", null, [
2355
- createElementVNode("strong", null, "Hash")
2356
- ], -1)),
2357
- createElementVNode("div", _hoisted_14, [
2358
- _ctx.entity.build_hash ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
2359
- createTextVNode(toDisplayString(_ctx.entity.build_hash), 1)
2360
- ], 64)) : createCommentVNode("", true)
2361
- ])
2362
- ]),
2363
- createElementVNode("div", _hoisted_15, [
2364
- _cache[9] || (_cache[9] = createElementVNode("div", null, [
2365
- createElementVNode("strong", null, "Size")
2366
- ], -1)),
2367
- createElementVNode("div", null, [
2368
- _ctx.size ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
2369
- createTextVNode(toDisplayString(_ctx.size), 1)
2370
- ], 64)) : createCommentVNode("", true)
2371
- ])
2419
+ ])
2420
+ ])) : createCommentVNode("", true),
2421
+ _ctx.entity.build_hash ? (openBlock(), createElementBlock("div", _hoisted_14, [
2422
+ _cache[6] || (_cache[6] = createElementVNode("div", null, [
2423
+ createElementVNode("strong", null, "Hash")
2424
+ ], -1)),
2425
+ createElementVNode("div", _hoisted_15, toDisplayString(_ctx.entity.build_hash), 1)
2426
+ ])) : createCommentVNode("", true),
2427
+ _ctx.size ? (openBlock(), createElementBlock("div", _hoisted_16, [
2428
+ _cache[7] || (_cache[7] = createElementVNode("div", null, [
2429
+ createElementVNode("strong", null, "Size")
2430
+ ], -1)),
2431
+ createElementVNode("div", null, toDisplayString(_ctx.size), 1)
2432
+ ])) : createCommentVNode("", true)
2372
2433
  ])
2373
2434
  ])
2374
- ])
2435
+ ], 64)) : createCommentVNode("", true)
2375
2436
  ]),
2376
- createElementVNode("div", _hoisted_16, [
2377
- createElementVNode("div", _hoisted_17, [
2437
+ createElementVNode("div", _hoisted_17, [
2438
+ createElementVNode("div", _hoisted_18, [
2378
2439
  createElementVNode("div", null, [
2379
2440
  createVNode(_component_FAnalysisCommand, {
2380
2441
  command: "buildStart",
@@ -2401,9 +2462,9 @@ function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
2401
2462
  ])
2402
2463
  ]);
2403
2464
  }
2404
- var FAnalysisBuildStep = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["render", _sfc_render$E]]);
2465
+ var FAnalysisBuildStep = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["render", _sfc_render$F]]);
2405
2466
 
2406
- var _sfc_main$D = defineComponent({
2467
+ var _sfc_main$E = defineComponent({
2407
2468
  components: {
2408
2469
  FProcessStatus,
2409
2470
  FAnalysisCommand
@@ -2429,7 +2490,12 @@ var _sfc_main$D = defineComponent({
2429
2490
  const handleFailed = (e)=>{
2430
2491
  emit('failed', e);
2431
2492
  };
2432
- const progress = computed(()=>props.entity.distribution_progress || 0);
2493
+ const progress = computed(()=>{
2494
+ if (props.entity.distribution_status === ProcessStatus.EXECUTED) {
2495
+ return 100;
2496
+ }
2497
+ return props.entity.distribution_progress || 0;
2498
+ });
2433
2499
  return {
2434
2500
  handleUpdated,
2435
2501
  handleFailed,
@@ -2439,24 +2505,24 @@ var _sfc_main$D = defineComponent({
2439
2505
  }
2440
2506
  });
2441
2507
 
2442
- const _hoisted_1$r = { class: "card-grey card flex-grow-1" };
2443
- const _hoisted_2$m = { class: "card-header" };
2444
- const _hoisted_3$k = { class: "title d-flex flex-row" };
2445
- const _hoisted_4$g = { class: "ms-auto" };
2446
- const _hoisted_5$e = { class: "card-body" };
2447
- const _hoisted_6$c = { class: "d-flex flex-column h-100" };
2448
- const _hoisted_7$a = { class: "progress bg-white" };
2449
- const _hoisted_8$8 = ["aria-valuenow"];
2450
- const _hoisted_9$7 = { class: "mt-auto" };
2508
+ const _hoisted_1$s = { class: "card-grey card flex-grow-1" };
2509
+ const _hoisted_2$n = { class: "card-header" };
2510
+ const _hoisted_3$l = { class: "title d-flex flex-row" };
2511
+ const _hoisted_4$h = { class: "ms-auto" };
2512
+ const _hoisted_5$f = { class: "card-body" };
2513
+ const _hoisted_6$d = { class: "d-flex flex-column h-100" };
2514
+ const _hoisted_7$b = { class: "progress bg-white" };
2515
+ const _hoisted_8$9 = ["aria-valuenow"];
2516
+ const _hoisted_9$8 = { class: "mt-auto" };
2451
2517
  const _hoisted_10$7 = { class: "d-flex flex-row gap-1" };
2452
- function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
2518
+ function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
2453
2519
  const _component_FProcessStatus = resolveComponent("FProcessStatus");
2454
2520
  const _component_FAnalysisCommand = resolveComponent("FAnalysisCommand");
2455
- return openBlock(), createElementBlock("div", _hoisted_1$r, [
2456
- createElementVNode("div", _hoisted_2$m, [
2457
- createElementVNode("div", _hoisted_3$k, [
2521
+ return openBlock(), createElementBlock("div", _hoisted_1$s, [
2522
+ createElementVNode("div", _hoisted_2$n, [
2523
+ createElementVNode("div", _hoisted_3$l, [
2458
2524
  _cache[2] || (_cache[2] = createElementVNode("div", null, " 3. Distribution ", -1)),
2459
- createElementVNode("div", _hoisted_4$g, [
2525
+ createElementVNode("div", _hoisted_4$h, [
2460
2526
  createVNode(_component_FProcessStatus, {
2461
2527
  value: _ctx.entity.distribution_status
2462
2528
  }, {
@@ -2470,21 +2536,21 @@ function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
2470
2536
  ])
2471
2537
  ])
2472
2538
  ]),
2473
- createElementVNode("div", _hoisted_5$e, [
2474
- createElementVNode("div", _hoisted_6$c, [
2539
+ createElementVNode("div", _hoisted_5$f, [
2540
+ createElementVNode("div", _hoisted_6$d, [
2475
2541
  _cache[3] || (_cache[3] = createElementVNode("div", { class: "text-center mb-3" }, [
2476
2542
  createElementVNode("i", { class: "fas fa-sitemap fa-4x" })
2477
2543
  ], -1)),
2478
- createElementVNode("div", _hoisted_7$a, [
2544
+ createElementVNode("div", _hoisted_7$b, [
2479
2545
  createElementVNode("div", {
2480
2546
  class: normalizeClass(["progress-bar", "bg-success"]),
2481
2547
  style: normalizeStyle({ width: _ctx.progress + "%" }),
2482
2548
  "aria-valuenow": _ctx.progress,
2483
2549
  "aria-valuemin": "0",
2484
2550
  "aria-valuemax": "100"
2485
- }, toDisplayString(_ctx.progress) + "% ", 13, _hoisted_8$8)
2551
+ }, toDisplayString(_ctx.progress) + "% ", 13, _hoisted_8$9)
2486
2552
  ]),
2487
- createElementVNode("div", _hoisted_9$7, [
2553
+ createElementVNode("div", _hoisted_9$8, [
2488
2554
  createElementVNode("div", _hoisted_10$7, [
2489
2555
  createElementVNode("div", null, [
2490
2556
  createVNode(_component_FAnalysisCommand, {
@@ -2512,9 +2578,9 @@ function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
2512
2578
  ])
2513
2579
  ]);
2514
2580
  }
2515
- var FAnalysisDistributionStep = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["render", _sfc_render$D]]);
2581
+ var FAnalysisDistributionStep = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["render", _sfc_render$E]]);
2516
2582
 
2517
- var _sfc_main$C = defineComponent({
2583
+ var _sfc_main$D = defineComponent({
2518
2584
  components: {
2519
2585
  FProcessStatus
2520
2586
  },
@@ -2530,7 +2596,12 @@ var _sfc_main$C = defineComponent({
2530
2596
  'failed'
2531
2597
  ],
2532
2598
  setup (props, { emit }) {
2533
- const progress = computed(()=>props.entity.execution_progress || 0);
2599
+ const progress = computed(()=>{
2600
+ if (props.entity.execution_status === ProcessStatus.EXECUTED) {
2601
+ return 100;
2602
+ }
2603
+ return props.entity.execution_progress || 0;
2604
+ });
2534
2605
  const handleExecuted = (type, command)=>{
2535
2606
  emit('executed', type, command);
2536
2607
  };
@@ -2549,20 +2620,20 @@ var _sfc_main$C = defineComponent({
2549
2620
  }
2550
2621
  });
2551
2622
 
2552
- const _hoisted_1$q = { class: "card-grey card flex-grow-1" };
2553
- const _hoisted_2$l = { class: "card-header" };
2554
- const _hoisted_3$j = { class: "title d-flex flex-row" };
2555
- const _hoisted_4$f = { class: "ms-auto" };
2556
- const _hoisted_5$d = { class: "card-body" };
2557
- const _hoisted_6$b = { class: "progress bg-white" };
2558
- const _hoisted_7$9 = ["aria-valuenow"];
2559
- function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) {
2623
+ const _hoisted_1$r = { class: "card-grey card flex-grow-1" };
2624
+ const _hoisted_2$m = { class: "card-header" };
2625
+ const _hoisted_3$k = { class: "title d-flex flex-row" };
2626
+ const _hoisted_4$g = { class: "ms-auto" };
2627
+ const _hoisted_5$e = { class: "card-body" };
2628
+ const _hoisted_6$c = { class: "progress bg-white" };
2629
+ const _hoisted_7$a = ["aria-valuenow"];
2630
+ function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
2560
2631
  const _component_FProcessStatus = resolveComponent("FProcessStatus");
2561
- return openBlock(), createElementBlock("div", _hoisted_1$q, [
2562
- createElementVNode("div", _hoisted_2$l, [
2563
- createElementVNode("div", _hoisted_3$j, [
2632
+ return openBlock(), createElementBlock("div", _hoisted_1$r, [
2633
+ createElementVNode("div", _hoisted_2$m, [
2634
+ createElementVNode("div", _hoisted_3$k, [
2564
2635
  _cache[0] || (_cache[0] = createElementVNode("div", null, " 4. Execution ", -1)),
2565
- createElementVNode("div", _hoisted_4$f, [
2636
+ createElementVNode("div", _hoisted_4$g, [
2566
2637
  createVNode(_component_FProcessStatus, {
2567
2638
  value: _ctx.entity.execution_status
2568
2639
  }, {
@@ -2576,25 +2647,25 @@ function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) {
2576
2647
  ])
2577
2648
  ])
2578
2649
  ]),
2579
- createElementVNode("div", _hoisted_5$d, [
2650
+ createElementVNode("div", _hoisted_5$e, [
2580
2651
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "text-center mb-3" }, [
2581
2652
  createElementVNode("i", { class: "fas fa-microchip fa-4x" })
2582
2653
  ], -1)),
2583
- createElementVNode("div", _hoisted_6$b, [
2654
+ createElementVNode("div", _hoisted_6$c, [
2584
2655
  createElementVNode("div", {
2585
2656
  class: normalizeClass(["progress-bar", "bg-success"]),
2586
2657
  style: normalizeStyle({ width: _ctx.progress + "%" }),
2587
2658
  "aria-valuenow": _ctx.progress,
2588
2659
  "aria-valuemin": "0",
2589
2660
  "aria-valuemax": "100"
2590
- }, toDisplayString(_ctx.progress) + "% ", 13, _hoisted_7$9)
2661
+ }, toDisplayString(_ctx.progress) + "% ", 13, _hoisted_7$a)
2591
2662
  ])
2592
2663
  ])
2593
2664
  ]);
2594
2665
  }
2595
- var FAnalysisExecutionStep = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render$C]]);
2666
+ var FAnalysisExecutionStep = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["render", _sfc_render$D]]);
2596
2667
 
2597
- var _sfc_main$B = defineComponent({
2668
+ var _sfc_main$C = defineComponent({
2598
2669
  components: {
2599
2670
  FAnalysisDistributionStep,
2600
2671
  FAnalysisRunStep: FAnalysisExecutionStep,
@@ -2624,13 +2695,13 @@ var _sfc_main$B = defineComponent({
2624
2695
  setup () {}
2625
2696
  });
2626
2697
 
2627
- const _hoisted_1$p = { class: "d-flex flex-row gap-3 w-100 analysis-steps" };
2628
- function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
2698
+ const _hoisted_1$q = { class: "d-flex flex-row gap-3 w-100 analysis-steps" };
2699
+ function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) {
2629
2700
  const _component_FAnalysisConfigurationStep = resolveComponent("FAnalysisConfigurationStep");
2630
2701
  const _component_FAnalysisBuildStep = resolveComponent("FAnalysisBuildStep");
2631
2702
  const _component_FAnalysisDistributionStep = resolveComponent("FAnalysisDistributionStep");
2632
2703
  const _component_FAnalysisRunStep = resolveComponent("FAnalysisRunStep");
2633
- return openBlock(), createElementBlock("div", _hoisted_1$p, [
2704
+ return openBlock(), createElementBlock("div", _hoisted_1$q, [
2634
2705
  createVNode(_component_FAnalysisConfigurationStep, {
2635
2706
  entity: _ctx.entity,
2636
2707
  "image-link": _ctx.configurationImageLink,
@@ -2656,7 +2727,7 @@ function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
2656
2727
  }, null, 8, ["entity"])
2657
2728
  ]);
2658
2729
  }
2659
- var FAnalysisSteps = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["render", _sfc_render$B], ["__scopeId", "data-v-9b5f1e78"]]);
2730
+ var FAnalysisSteps = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render$C], ["__scopeId", "data-v-9b5f1e78"]]);
2660
2731
 
2661
2732
  const FProject = defineComponent({
2662
2733
  props: defineEntityManagerProps(),
@@ -2682,29 +2753,205 @@ function useUpdatedAt(input) {
2682
2753
  });
2683
2754
  }
2684
2755
 
2685
- var FMasterImageGroups = defineComponent({
2686
- props: defineListProps(),
2756
+ var FMasterImageCommand = defineComponent({
2757
+ props: {
2758
+ entity: {
2759
+ type: Object
2760
+ },
2761
+ command: {
2762
+ type: String,
2763
+ required: true
2764
+ },
2765
+ elementType: {
2766
+ type: String,
2767
+ default: ActionCommandElementType.BUTTON
2768
+ },
2769
+ withIcon: {
2770
+ type: Boolean,
2771
+ default: false
2772
+ },
2773
+ withText: {
2774
+ type: Boolean,
2775
+ default: true
2776
+ }
2777
+ },
2778
+ emits: [
2779
+ 'updated',
2780
+ 'executed',
2781
+ 'failed'
2782
+ ],
2687
2783
  slots: Object,
2688
- emits: defineListEvents(),
2689
- setup (props, ctx) {
2690
- const { render, setDefaults } = createList({
2691
- type: `${DomainType.MASTER_IMAGE_GROUP}`,
2692
- props,
2693
- setup: ctx
2694
- });
2695
- setDefaults({
2696
- noMore: {
2697
- content: 'No more master-image-groups available...'
2784
+ setup (props, { emit, slots }) {
2785
+ const apiClient = injectCoreHTTPClient();
2786
+ const isBusy = ref(false);
2787
+ const execute = wrapFnWithBusyState(isBusy, async ()=>{
2788
+ try {
2789
+ const response = await apiClient.masterImage.runCommand(props.command, {
2790
+ ...props.entity ? {
2791
+ id: props.entity.id
2792
+ } : {}
2793
+ });
2794
+ emit('executed', props.command);
2795
+ emit('updated', response);
2796
+ } catch (e) {
2797
+ if (e instanceof Error) {
2798
+ emit('failed', e);
2799
+ }
2698
2800
  }
2699
2801
  });
2700
- return ()=>render();
2802
+ const isAllowed = usePermissionCheck({
2803
+ name: PermissionName.MASTER_IMAGE_MANAGE
2804
+ });
2805
+ const shouldDisplay = computed(()=>isAllowed.value);
2806
+ const commandText = computed(()=>{
2807
+ switch(props.command){
2808
+ case MasterImageCommand.SYNC:
2809
+ return 'Synchronize';
2810
+ case MasterImageCommand.BUILD:
2811
+ return 'Build';
2812
+ default:
2813
+ return props.command;
2814
+ }
2815
+ });
2816
+ const iconClass = computed(()=>{
2817
+ switch(props.command){
2818
+ case MasterImageCommand.SYNC:
2819
+ return 'fa fa-sync';
2820
+ case MasterImageCommand.BUILD:
2821
+ return 'fa fa-wrench';
2822
+ default:
2823
+ return '';
2824
+ }
2825
+ });
2826
+ const classSuffix = computed(()=>{
2827
+ switch(props.command){
2828
+ case MasterImageCommand.SYNC:
2829
+ return 'success';
2830
+ case MasterImageCommand.BUILD:
2831
+ return 'dark';
2832
+ default:
2833
+ return 'info';
2834
+ }
2835
+ });
2836
+ return ()=>{
2837
+ if (!shouldDisplay.value) {
2838
+ return [];
2839
+ }
2840
+ return renderActionCommand({
2841
+ execute,
2842
+ elementType: props.elementType,
2843
+ withIcon: props.withIcon,
2844
+ withText: props.withText,
2845
+ isDisabled: !shouldDisplay.value,
2846
+ iconClass: iconClass.value,
2847
+ isAllowed: isAllowed.value,
2848
+ commandText: commandText.value,
2849
+ classSuffix: classSuffix.value,
2850
+ slots
2851
+ });
2852
+ };
2853
+ }
2854
+ });
2855
+
2856
+ const FMasterImage = defineComponent({
2857
+ props: defineEntityManagerProps(),
2858
+ emits: defineEntityManagerEvents(),
2859
+ slots: Object,
2860
+ async setup (props, setup) {
2861
+ const manager = createEntityManager({
2862
+ type: `${DomainType.MASTER_IMAGE}`,
2863
+ setup,
2864
+ props
2865
+ });
2866
+ await manager.resolve();
2867
+ return ()=>manager.render();
2868
+ }
2869
+ });
2870
+
2871
+ var _sfc_main$B = defineComponent({
2872
+ components: {
2873
+ FMasterImageCommand,
2874
+ FProcessStatus
2875
+ },
2876
+ props: {
2877
+ entity: {
2878
+ type: Object,
2879
+ required: true
2880
+ }
2881
+ },
2882
+ setup (props) {
2883
+ const progress = computed(()=>{
2884
+ if (props.entity.build_status === ProcessStatus.EXECUTED) {
2885
+ return 100;
2886
+ }
2887
+ return props.entity.build_progress || 0;
2888
+ });
2889
+ return {
2890
+ progress
2891
+ };
2701
2892
  }
2702
2893
  });
2703
2894
 
2895
+ const _hoisted_1$p = { class: "card-grey card flex-grow-1" };
2896
+ const _hoisted_2$l = { class: "card-header" };
2897
+ const _hoisted_3$j = { class: "title d-flex flex-row" };
2898
+ const _hoisted_4$f = { class: "ms-auto" };
2899
+ const _hoisted_5$d = { class: "me-1" };
2900
+ const _hoisted_6$b = { class: "card-body" };
2901
+ const _hoisted_7$9 = { class: "d-flex flex-column gap-1" };
2902
+ const _hoisted_8$8 = { class: "progress bg-white" };
2903
+ const _hoisted_9$7 = ["aria-valuenow"];
2904
+ function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
2905
+ const _component_FProcessStatus = resolveComponent("FProcessStatus");
2906
+ const _component_FMasterImageCommand = resolveComponent("FMasterImageCommand");
2907
+ return openBlock(), createElementBlock("div", _hoisted_1$p, [
2908
+ createElementVNode("div", _hoisted_2$l, [
2909
+ createElementVNode("div", _hoisted_3$j, [
2910
+ createElementVNode("div", null, toDisplayString(_ctx.entity.virtual_path), 1),
2911
+ createElementVNode("div", _hoisted_4$f, [
2912
+ createVNode(_component_FProcessStatus, {
2913
+ value: _ctx.entity.build_status
2914
+ }, {
2915
+ default: withCtx(({ value, iconClass, classSuffix }) => [
2916
+ createElementVNode("span", _hoisted_5$d, toDisplayString(value), 1),
2917
+ _cache[0] || (_cache[0] = createTextVNode()),
2918
+ createElementVNode("i", {
2919
+ class: normalizeClass(iconClass + " text-" + classSuffix)
2920
+ }, null, 2)
2921
+ ]),
2922
+ _: 1
2923
+ }, 8, ["value"])
2924
+ ])
2925
+ ])
2926
+ ]),
2927
+ createElementVNode("div", _hoisted_6$b, [
2928
+ createElementVNode("div", _hoisted_7$9, [
2929
+ createElementVNode("div", _hoisted_8$8, [
2930
+ createElementVNode("div", {
2931
+ class: normalizeClass(["progress-bar", "bg-success"]),
2932
+ style: normalizeStyle({ width: _ctx.progress + "%" }),
2933
+ "aria-valuenow": _ctx.progress,
2934
+ "aria-valuemin": "0",
2935
+ "aria-valuemax": "100"
2936
+ }, toDisplayString(_ctx.progress) + "% ", 13, _hoisted_9$7)
2937
+ ]),
2938
+ createElementVNode("div", null, [
2939
+ createVNode(_component_FMasterImageCommand, {
2940
+ command: "build",
2941
+ entity: _ctx.entity,
2942
+ "with-icon": true
2943
+ }, null, 8, ["entity"])
2944
+ ])
2945
+ ])
2946
+ ])
2947
+ ]);
2948
+ }
2949
+ var FMasterImageCard = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["render", _sfc_render$B]]);
2950
+
2704
2951
  var MasterImageList = defineComponent({
2705
2952
  props: defineListProps(),
2706
- slots: Object,
2707
2953
  emits: defineListEvents(),
2954
+ slots: Object,
2708
2955
  setup (props, ctx) {
2709
2956
  const { render, setDefaults } = createList({
2710
2957
  type: `${DomainType.MASTER_IMAGE}`,
@@ -2712,13 +2959,13 @@ var MasterImageList = defineComponent({
2712
2959
  setup: ctx,
2713
2960
  queryFilters: (filters)=>{
2714
2961
  if (hasOwnProperty$1(filters, 'name') && typeof filters.name === 'string' && filters.name.length > 0) {
2715
- filters.path = filters.name;
2962
+ filters.virtual_path = filters.name;
2716
2963
  delete filters.name;
2717
2964
  }
2718
2965
  },
2719
2966
  query: {
2720
2967
  sort: {
2721
- path: 'ASC'
2968
+ virtual_path: 'ASC'
2722
2969
  }
2723
2970
  }
2724
2971
  });
@@ -2734,9 +2981,30 @@ var MasterImageList = defineComponent({
2734
2981
  }
2735
2982
  });
2736
2983
 
2737
- var MasterImagePicker = defineComponent({
2984
+ var FMasterImageGroups = defineComponent({
2985
+ props: defineListProps(),
2986
+ slots: Object,
2987
+ emits: defineListEvents(),
2988
+ setup (props, ctx) {
2989
+ const { render, setDefaults } = createList({
2990
+ type: `${DomainType.MASTER_IMAGE_GROUP}`,
2991
+ props,
2992
+ setup: ctx
2993
+ });
2994
+ setDefaults({
2995
+ noMore: {
2996
+ content: 'No more master-image-groups available...'
2997
+ }
2998
+ });
2999
+ return ()=>render();
3000
+ }
3001
+ });
3002
+
3003
+ var _sfc_main$A = defineComponent({
2738
3004
  components: {
2739
- MasterImageList
3005
+ FMasterImages: MasterImageList,
3006
+ FMasterImageGroups,
3007
+ IVuelidate
2740
3008
  },
2741
3009
  props: {
2742
3010
  entityId: {
@@ -2750,19 +3018,48 @@ var MasterImagePicker = defineComponent({
2750
3018
  default: false
2751
3019
  }
2752
3020
  },
2753
- emits: [
2754
- 'selected',
2755
- 'resolved'
2756
- ],
2757
- async setup (props, { emit }) {
3021
+ emits: {
3022
+ ...defineEntityManagerEvents()
3023
+ },
3024
+ setup (props, setup) {
2758
3025
  const entityId = toRef(props, 'entityId');
2759
- const apiClient = injectCoreHTTPClient();
2760
- const busy = ref(false);
3026
+ const vMasterImages = useTemplateRef('masterImages');
2761
3027
  const form = reactive({
2762
3028
  group_virtual_path: '',
2763
3029
  master_image_id: ''
2764
3030
  });
2765
- const $v = useVuelidate({
3031
+ const imageQuery = computed(()=>({
3032
+ filters: {
3033
+ ...form.group_virtual_path !== '' ? {
3034
+ group_virtual_path: form.group_virtual_path
3035
+ } : {}
3036
+ }
3037
+ }));
3038
+ const resolved = ref(false);
3039
+ const manager = createEntityManager({
3040
+ type: DomainType.MASTER_IMAGE,
3041
+ props,
3042
+ setup,
3043
+ onResolved: (entity)=>{
3044
+ if (entity) {
3045
+ form.group_virtual_path = entity.group_virtual_path;
3046
+ form.master_image_id = entity.id;
3047
+ } else {
3048
+ form.group_virtual_path = '';
3049
+ form.master_image_id = '';
3050
+ }
3051
+ resolved.value = true;
3052
+ setup.emit('resolved', entity);
3053
+ }
3054
+ });
3055
+ if (props.entityId) {
3056
+ form.master_image_id = props.entityId;
3057
+ }
3058
+ if (props.entity) {
3059
+ form.master_image_id = props.entity.id;
3060
+ }
3061
+ Promise.resolve().then(()=>manager.resolve());
3062
+ const v$ = useVuelidate({
2766
3063
  group_virtual_path: {
2767
3064
  required
2768
3065
  },
@@ -2772,174 +3069,160 @@ var MasterImagePicker = defineComponent({
2772
3069
  }, form, {
2773
3070
  $scope: false
2774
3071
  });
2775
- const masterImageEntity = ref(null);
2776
3072
  const isVirtualGroupPathDefined = computed(()=>!!form.group_virtual_path && form.group_virtual_path.length > 0);
2777
- const imageQuery = computed(()=>({
2778
- filters: {
2779
- ...form.group_virtual_path !== '' ? {
2780
- group_virtual_path: form.group_virtual_path
2781
- } : {}
2782
- }
2783
- }));
2784
- const loadImage = wrapFnWithBusyState(busy, async ()=>{
2785
- if (!form.master_image_id) return;
2786
- if (masterImageEntity.value && masterImageEntity.value.id === form.master_image_id) {
2787
- form.group_virtual_path = masterImageEntity.value.group_virtual_path;
2788
- return;
2789
- }
2790
- try {
2791
- masterImageEntity.value = await apiClient.masterImage.getOne(form.master_image_id);
2792
- form.group_virtual_path = masterImageEntity.value.group_virtual_path;
2793
- } catch (e) {
2794
- // ...
3073
+ watch(entityId, (val, oldValue)=>{
3074
+ if (val && val !== oldValue && manager.data.value?.id !== val) {
3075
+ manager.resolveByRest({
3076
+ id: val,
3077
+ reset: true
3078
+ });
2795
3079
  }
2796
3080
  });
2797
- const init = ()=>{
2798
- if (props.entity) {
2799
- form.master_image_id = props.entity.id;
2800
- form.group_virtual_path = props.entity.group_virtual_path;
2801
- masterImageEntity.value = props.entity;
2802
- return;
2803
- }
2804
- if (entityId.value) {
2805
- form.master_image_id = entityId.value;
2806
- }
2807
- emit('resolved', masterImageEntity.value);
2808
- };
2809
- watch(entityId, (val, oldValue)=>{
3081
+ watch(imageQuery, (val, oldValue)=>{
2810
3082
  if (val && val !== oldValue) {
2811
- init();
2812
- loadImage();
3083
+ nextTick(async ()=>{
3084
+ if (vMasterImages.value) {
3085
+ await vMasterImages.value.load();
3086
+ }
3087
+ });
2813
3088
  }
2814
3089
  });
2815
- init();
2816
- const translationsValidation = useTranslationsForNestedValidations($v.value);
2817
- Promise.resolve().then(()=>loadImage());
2818
- const itemListNode = ref(null);
2819
3090
  const selectGroup = (input)=>{
2820
3091
  if (!input) {
2821
3092
  form.master_image_id = '';
2822
3093
  form.group_virtual_path = '';
2823
- emit('selected', null); // todo: check
2824
3094
  return;
2825
3095
  }
2826
- const changed = input.virtual_path !== form.group_virtual_path;
2827
- form.group_virtual_path = input.virtual_path;
2828
- if (changed) {
2829
- form.master_image_id = '';
2830
- nextTick(async ()=>{
2831
- if (itemListNode.value) {
2832
- await itemListNode.value.load();
2833
- }
2834
- });
2835
- }
3096
+ form.group_virtual_path = input;
3097
+ form.master_image_id = '';
2836
3098
  };
2837
- const selectImage = (entity)=>{
2838
- if (entity) {
2839
- form.master_image_id = entity.id;
2840
- emit('selected', entity);
2841
- return;
2842
- }
2843
- emit('selected', null);
2844
- emit('resolved', entity);
3099
+ const selectImage = (id)=>{
3100
+ manager.data.value = null;
3101
+ manager.resolveByRest({
3102
+ reset: true,
3103
+ id
3104
+ });
2845
3105
  };
2846
- const buildMasterImageVNode = ()=>{
2847
- if (!isVirtualGroupPathDefined.value) {
2848
- return [];
2849
- }
2850
- return [
2851
- h('div', {
2852
- class: 'col'
2853
- }, [
2854
- h(MasterImageList, {
2855
- ref: itemListNode,
2856
- query: imageQuery.value
2857
- }, {
2858
- [EntityListSlotName.BODY]: (bodyProps)=>{
2859
- const options = bodyProps.data.map((entity)=>({
2860
- id: entity.id,
2861
- value: entity.name
2862
- }));
2863
- return buildFormGroup({
2864
- props: {
2865
- key: form.group_virtual_path
2866
- },
2867
- validationMessages: translationsValidation.master_image_id.value,
2868
- validationSeverity: getSeverity($v.value.master_image_id),
2869
- label: true,
2870
- labelContent: [
2871
- 'Image',
2872
- form.master_image_id ? h('i', {
2873
- class: 'fa fa-check text-success ms-1'
2874
- }) : h('')
2875
- ],
2876
- content: buildFormSelect({
2877
- props: {
2878
- disabled: props.readonly
2879
- },
2880
- value: form.master_image_id,
2881
- onChange (input) {
2882
- const index = bodyProps.data.findIndex((el)=>el.id === input);
2883
- if (index !== -1) {
2884
- selectImage(bodyProps.data[index]);
2885
- return;
2886
- }
2887
- selectImage(null);
2888
- },
2889
- options
2890
- })
2891
- });
2892
- }
2893
- })
2894
- ])
2895
- ];
3106
+ return {
3107
+ isVirtualGroupPathDefined,
3108
+ imageQuery,
3109
+ selectImage,
3110
+ selectGroup,
3111
+ v$,
3112
+ busy: manager.busy,
3113
+ data: manager.data,
3114
+ resolved
2896
3115
  };
2897
- return ()=>h('div', {
2898
- class: 'row'
2899
- }, [
2900
- h('div', {
2901
- class: 'col'
2902
- }, [
2903
- h(FMasterImageGroups, {}, {
2904
- [EntityListSlotName.BODY]: (bodyProps)=>{
2905
- const options = bodyProps.data.map((entity)=>({
2906
- id: entity.virtual_path,
2907
- value: entity.virtual_path
2908
- }));
2909
- return buildFormGroup({
2910
- validationMessages: translationsValidation.group_virtual_path.value,
2911
- validationSeverity: getSeverity($v.value.group_virtual_path),
2912
- label: true,
2913
- labelContent: [
2914
- 'Group',
2915
- isVirtualGroupPathDefined.value ? h('i', {
2916
- class: 'fa fa-check text-success ms-1'
2917
- }) : h('')
2918
- ],
2919
- content: buildFormSelect({
2920
- props: {
2921
- disabled: props.readonly
2922
- },
2923
- value: form.group_virtual_path,
2924
- onChange (input) {
2925
- const index = bodyProps.data.findIndex((el)=>el.virtual_path === input);
2926
- if (index > -1) {
2927
- selectGroup(bodyProps.data[index]);
2928
- return;
2929
- }
2930
- selectGroup(null);
2931
- },
2932
- options
2933
- })
2934
- });
2935
- }
2936
- })
2937
- ]),
2938
- buildMasterImageVNode()
2939
- ]);
2940
3116
  }
2941
3117
  });
2942
3118
 
3119
+ const _hoisted_1$o = { class: "row" };
3120
+ const _hoisted_2$k = { class: "col" };
3121
+ const _hoisted_3$i = {
3122
+ key: 0,
3123
+ class: "fa fa-check text-success"
3124
+ };
3125
+ const _hoisted_4$e = { class: "col" };
3126
+ const _hoisted_5$c = {
3127
+ key: 0,
3128
+ class: "fa fa-check text-success"
3129
+ };
3130
+ function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) {
3131
+ const _component_VCFormSelect = resolveComponent("VCFormSelect");
3132
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
3133
+ const _component_IVuelidate = resolveComponent("IVuelidate");
3134
+ const _component_FMasterImageGroups = resolveComponent("FMasterImageGroups");
3135
+ const _component_FMasterImages = resolveComponent("FMasterImages");
3136
+ return openBlock(), createElementBlock("div", _hoisted_1$o, [
3137
+ createElementVNode("div", _hoisted_2$k, [
3138
+ createVNode(_component_FMasterImageGroups, null, {
3139
+ default: withCtx(({ data }) => [
3140
+ createVNode(_component_IVuelidate, {
3141
+ validation: _ctx.v$.group_virtual_path
3142
+ }, {
3143
+ default: withCtx((props) => [
3144
+ createVNode(_component_VCFormGroup, {
3145
+ "validation-messages": props.data,
3146
+ "validation-severity": props.severity
3147
+ }, {
3148
+ label: withCtx(() => [
3149
+ _cache[2] || (_cache[2] = createTextVNode(" Group ", -1)),
3150
+ _ctx.isVirtualGroupPathDefined ? (openBlock(), createElementBlock("i", _hoisted_3$i)) : createCommentVNode("", true)
3151
+ ]),
3152
+ default: withCtx(() => [
3153
+ createVNode(_component_VCFormSelect, {
3154
+ modelValue: _ctx.v$.group_virtual_path.$model,
3155
+ "onUpdate:modelValue": [
3156
+ _cache[0] || (_cache[0] = ($event) => _ctx.v$.group_virtual_path.$model = $event),
3157
+ _ctx.selectGroup
3158
+ ],
3159
+ options: data.map((el) => {
3160
+ return {
3161
+ id: el.virtual_path,
3162
+ value: el.virtual_path
3163
+ };
3164
+ }),
3165
+ disabled: _ctx.readonly || _ctx.busy
3166
+ }, null, 8, ["modelValue", "options", "disabled", "onUpdate:modelValue"])
3167
+ ]),
3168
+ _: 2
3169
+ }, 1032, ["validation-messages", "validation-severity"])
3170
+ ]),
3171
+ _: 2
3172
+ }, 1032, ["validation"])
3173
+ ]),
3174
+ _: 1
3175
+ })
3176
+ ]),
3177
+ createElementVNode("div", _hoisted_4$e, [
3178
+ _ctx.isVirtualGroupPathDefined ? (openBlock(), createBlock(_component_FMasterImages, {
3179
+ key: 0,
3180
+ ref: "masterImages",
3181
+ query: _ctx.imageQuery
3182
+ }, {
3183
+ default: withCtx(({ data }) => [
3184
+ createVNode(_component_IVuelidate, {
3185
+ validation: _ctx.v$.master_image_id
3186
+ }, {
3187
+ default: withCtx((props) => [
3188
+ createVNode(_component_VCFormGroup, {
3189
+ "validation-messages": props.data,
3190
+ "validation-severity": props.severity
3191
+ }, {
3192
+ label: withCtx(() => [
3193
+ _cache[3] || (_cache[3] = createTextVNode(" Image ", -1)),
3194
+ _ctx.v$.master_image_id.$model ? (openBlock(), createElementBlock("i", _hoisted_5$c)) : createCommentVNode("", true)
3195
+ ]),
3196
+ default: withCtx(() => [
3197
+ createVNode(_component_VCFormSelect, {
3198
+ modelValue: _ctx.v$.master_image_id.$model,
3199
+ "onUpdate:modelValue": [
3200
+ _cache[1] || (_cache[1] = ($event) => _ctx.v$.master_image_id.$model = $event),
3201
+ _ctx.selectImage
3202
+ ],
3203
+ options: data.map((el) => {
3204
+ return {
3205
+ id: el.id,
3206
+ value: el.name,
3207
+ disabled: el.build_status !== "executed"
3208
+ };
3209
+ }),
3210
+ disabled: _ctx.readonly || _ctx.busy
3211
+ }, null, 8, ["modelValue", "options", "disabled", "onUpdate:modelValue"])
3212
+ ]),
3213
+ _: 2
3214
+ }, 1032, ["validation-messages", "validation-severity"])
3215
+ ]),
3216
+ _: 2
3217
+ }, 1032, ["validation"])
3218
+ ]),
3219
+ _: 1
3220
+ }, 8, ["query"])) : createCommentVNode("", true)
3221
+ ])
3222
+ ]);
3223
+ }
3224
+ var FMasterImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$A]]);
3225
+
2943
3226
  var FNodes = defineComponent({
2944
3227
  props: defineListProps(),
2945
3228
  slots: Object,
@@ -3114,7 +3397,7 @@ const FProjectNodeApprovalStatus = defineComponent({
3114
3397
  }
3115
3398
  });
3116
3399
 
3117
- var _sfc_main$A = defineComponent({
3400
+ var _sfc_main$z = defineComponent({
3118
3401
  components: {
3119
3402
  IVuelidate,
3120
3403
  VCFormInput,
@@ -3163,8 +3446,8 @@ var _sfc_main$A = defineComponent({
3163
3446
  }
3164
3447
  });
3165
3448
 
3166
- const _hoisted_1$o = ["disabled"];
3167
- function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) {
3449
+ const _hoisted_1$n = ["disabled"];
3450
+ function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
3168
3451
  const _component_VCFormInput = resolveComponent("VCFormInput");
3169
3452
  const _component_VCFormGroup = resolveComponent("VCFormGroup");
3170
3453
  const _component_IVuelidate = resolveComponent("IVuelidate");
@@ -3191,7 +3474,7 @@ function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) {
3191
3474
  onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.handleDeleted && _ctx.handleDeleted(...args), ["prevent"]))
3192
3475
  }, [..._cache[2] || (_cache[2] = [
3193
3476
  createElementVNode("i", { class: "fa fa-minus" }, null, -1)
3194
- ])], 8, _hoisted_1$o)
3477
+ ])], 8, _hoisted_1$n)
3195
3478
  ]),
3196
3479
  _: 1
3197
3480
  }, 8, ["modelValue", "disabled", "onChange"])
@@ -3202,7 +3485,7 @@ function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) {
3202
3485
  _: 1
3203
3486
  }, 8, ["validation"]);
3204
3487
  }
3205
- var FFormInputListItem = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$A]]);
3488
+ var FFormInputListItem = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$z]]);
3206
3489
 
3207
3490
  const FTranslation = defineComponent({
3208
3491
  props: {
@@ -3248,7 +3531,7 @@ const FTranslationDefault = defineComponent({
3248
3531
  }
3249
3532
  });
3250
3533
 
3251
- var _sfc_main$z = defineComponent({
3534
+ var _sfc_main$y = defineComponent({
3252
3535
  components: {
3253
3536
  FTranslationDefault,
3254
3537
  FFormInputListItem
@@ -3331,23 +3614,23 @@ var _sfc_main$z = defineComponent({
3331
3614
  }
3332
3615
  });
3333
3616
 
3334
- const _hoisted_1$n = { class: "d-flex flex-column gap-2" };
3335
- const _hoisted_2$k = { class: "d-flex flex-row" };
3336
- const _hoisted_3$i = { class: "align-self-end" };
3337
- const _hoisted_4$e = { class: "ms-auto" };
3338
- const _hoisted_5$c = ["disabled"];
3617
+ const _hoisted_1$m = { class: "d-flex flex-column gap-2" };
3618
+ const _hoisted_2$j = { class: "d-flex flex-row" };
3619
+ const _hoisted_3$h = { class: "align-self-end" };
3620
+ const _hoisted_4$d = { class: "ms-auto" };
3621
+ const _hoisted_5$b = ["disabled"];
3339
3622
  const _hoisted_6$a = { class: "d-flex flex-column gap-1" };
3340
- function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
3623
+ function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
3341
3624
  const _component_FTranslationDefault = resolveComponent("FTranslationDefault");
3342
3625
  const _component_FFormInputListItem = resolveComponent("FFormInputListItem");
3343
- return openBlock(), createElementBlock("div", _hoisted_1$n, [
3344
- createElementVNode("div", _hoisted_2$k, [
3345
- createElementVNode("div", _hoisted_3$i, [
3626
+ return openBlock(), createElementBlock("div", _hoisted_1$m, [
3627
+ createElementVNode("div", _hoisted_2$j, [
3628
+ createElementVNode("div", _hoisted_3$h, [
3346
3629
  renderSlot(_ctx.$slots, "headerLabel", {}, () => [
3347
3630
  _cache[1] || (_cache[1] = createTextVNode(" Names ", -1))
3348
3631
  ])
3349
3632
  ]),
3350
- createElementVNode("div", _hoisted_4$e, [
3633
+ createElementVNode("div", _hoisted_4$d, [
3351
3634
  renderSlot(_ctx.$slots, "headerActions", {
3352
3635
  add: _ctx.add,
3353
3636
  canAdd: _ctx.canAdd && !_ctx.readonly
@@ -3361,7 +3644,7 @@ function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
3361
3644
  _cache[2] || (_cache[2] = createElementVNode("i", { class: "fa fa-plus" }, null, -1)),
3362
3645
  _cache[3] || (_cache[3] = createTextVNode()),
3363
3646
  createVNode(_component_FTranslationDefault, { name: "add" })
3364
- ], 8, _hoisted_5$c)
3647
+ ], 8, _hoisted_5$b)
3365
3648
  ])
3366
3649
  ])
3367
3650
  ]),
@@ -3393,7 +3676,7 @@ function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
3393
3676
  ])
3394
3677
  ]);
3395
3678
  }
3396
- var FFormInputList = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$z]]);
3679
+ var FFormInputList = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$y]]);
3397
3680
 
3398
3681
  const FTitle = defineComponent({
3399
3682
  props: {
@@ -3513,7 +3796,7 @@ function renderToggleButton(options) {
3513
3796
  ]);
3514
3797
  }
3515
3798
 
3516
- var _sfc_main$y = defineComponent({
3799
+ var _sfc_main$x = defineComponent({
3517
3800
  props: {
3518
3801
  current: {
3519
3802
  type: String,
@@ -3549,7 +3832,7 @@ var _sfc_main$y = defineComponent({
3549
3832
  }
3550
3833
  });
3551
3834
 
3552
- function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
3835
+ function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
3553
3836
  return renderSlot(_ctx.$slots, "default", {
3554
3837
  toggle: _ctx.toggle,
3555
3838
  active: _ctx.active
@@ -3557,7 +3840,7 @@ function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
3557
3840
  createTextVNode(toDisplayString(_ctx.current), 1)
3558
3841
  ]);
3559
3842
  }
3560
- var FItemToggle = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$y]]);
3843
+ var FItemToggle = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$x]]);
3561
3844
 
3562
3845
  var FProjectNodeAssignAction = defineComponent({
3563
3846
  props: {
@@ -3969,7 +4252,7 @@ const FProjectInForm = defineComponent({
3969
4252
  }
3970
4253
  });
3971
4254
 
3972
- var _sfc_main$x = defineComponent({
4255
+ var _sfc_main$w = defineComponent({
3973
4256
  components: {
3974
4257
  BModal,
3975
4258
  FProjectInForm,
@@ -4016,27 +4299,27 @@ var _sfc_main$x = defineComponent({
4016
4299
  }
4017
4300
  });
4018
4301
 
4019
- const _hoisted_1$m = { class: "d-flex flex-column gap-1 w-100" };
4020
- const _hoisted_2$j = { class: "w-100" };
4021
- const _hoisted_3$h = { class: "d-flex flex-row align-items-center" };
4022
- const _hoisted_4$d = { class: "ms-auto d-flex flex-row gap-1" };
4023
- const _hoisted_5$b = { class: "row" };
4302
+ const _hoisted_1$l = { class: "d-flex flex-column gap-1 w-100" };
4303
+ const _hoisted_2$i = { class: "w-100" };
4304
+ const _hoisted_3$g = { class: "d-flex flex-row align-items-center" };
4305
+ const _hoisted_4$c = { class: "ms-auto d-flex flex-row gap-1" };
4306
+ const _hoisted_5$a = { class: "row" };
4024
4307
  const _hoisted_6$9 = { class: "col-12 col-md-4 d-flex align-items-center flex-column" };
4025
4308
  const _hoisted_7$8 = { class: "col-12 col-md-4 d-flex align-items-center flex-column" };
4026
4309
  const _hoisted_8$7 = { class: "col-12 col-md-4 d-flex align-items-center flex-column" };
4027
4310
  const _hoisted_9$6 = { class: "d-flex flex-row" };
4028
4311
  const _hoisted_10$6 = { class: "" };
4029
4312
  const _hoisted_11$5 = { class: "ms-auto" };
4030
- function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
4313
+ function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
4031
4314
  const _component_VCLink = resolveComponent("VCLink");
4032
4315
  const _component_FProjectNodeApprovalCommand = resolveComponent("FProjectNodeApprovalCommand");
4033
4316
  const _component_FProjectNodeApprovalStatus = resolveComponent("FProjectNodeApprovalStatus");
4034
4317
  const _component_VCTimeago = resolveComponent("VCTimeago");
4035
4318
  const _component_FProjectInForm = resolveComponent("FProjectInForm");
4036
4319
  const _component_BModal = resolveComponent("BModal");
4037
- return openBlock(), createElementBlock("div", _hoisted_1$m, [
4038
- createElementVNode("div", _hoisted_2$j, [
4039
- createElementVNode("div", _hoisted_3$h, [
4320
+ return openBlock(), createElementBlock("div", _hoisted_1$l, [
4321
+ createElementVNode("div", _hoisted_2$i, [
4322
+ createElementVNode("div", _hoisted_3$g, [
4040
4323
  createElementVNode("div", null, [
4041
4324
  renderSlot(_ctx.$slots, "title", { data: _ctx.entity }, () => [
4042
4325
  _cache[2] || (_cache[2] = createElementVNode("i", { class: "fas fa-project-diagram me-1" }, null, -1)),
@@ -4051,7 +4334,7 @@ function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
4051
4334
  }, 8, ["to"])
4052
4335
  ])
4053
4336
  ]),
4054
- createElementVNode("div", _hoisted_4$d, [
4337
+ createElementVNode("div", _hoisted_4$c, [
4055
4338
  renderSlot(_ctx.$slots, "itemActions", { data: _ctx.entity }, () => [
4056
4339
  createVNode(_component_VCLink, {
4057
4340
  to: "/projects/" + _ctx.entity.project.id,
@@ -4093,7 +4376,7 @@ function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
4093
4376
  ])
4094
4377
  ]),
4095
4378
  renderSlot(_ctx.$slots, "body", { data: _ctx.entity }, () => [
4096
- createElementVNode("div", _hoisted_5$b, [
4379
+ createElementVNode("div", _hoisted_5$a, [
4097
4380
  createElementVNode("div", _hoisted_6$9, [
4098
4381
  _cache[5] || (_cache[5] = createElementVNode("div", null, [
4099
4382
  createElementVNode("strong", null, [
@@ -4187,7 +4470,7 @@ function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
4187
4470
  }, 8, ["modelValue"])
4188
4471
  ]);
4189
4472
  }
4190
- var FProjectNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$x]]);
4473
+ var FProjectNodeInCard = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$w]]);
4191
4474
 
4192
4475
  const FProjectForm = defineComponent({
4193
4476
  props: {
@@ -4293,9 +4576,9 @@ const FProjectForm = defineComponent({
4293
4576
  }
4294
4577
  })
4295
4578
  });
4296
- const masterImagePicker = h(MasterImagePicker, {
4579
+ const masterImagePicker = h(FMasterImagePicker, {
4297
4580
  entityId: form.master_image_id,
4298
- onSelected (value) {
4581
+ onResolved (value) {
4299
4582
  handleMasterImagePicker(value);
4300
4583
  }
4301
4584
  });
@@ -4516,7 +4799,7 @@ var EntityDelete = defineComponent({
4516
4799
  }
4517
4800
  });
4518
4801
 
4519
- var _sfc_main$w = defineComponent({
4802
+ var _sfc_main$v = defineComponent({
4520
4803
  components: {
4521
4804
  AUser,
4522
4805
  ARobot
@@ -4529,7 +4812,7 @@ var _sfc_main$w = defineComponent({
4529
4812
  }
4530
4813
  });
4531
4814
 
4532
- function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
4815
+ function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
4533
4816
  const _component_AUser = resolveComponent("AUser");
4534
4817
  const _component_ARobot = resolveComponent("ARobot");
4535
4818
  return openBlock(), createElementBlock("div", null, [
@@ -4568,9 +4851,9 @@ function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
4568
4851
  ], 64))
4569
4852
  ]);
4570
4853
  }
4571
- var FProjectCreator = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$w]]);
4854
+ var FProjectCreator = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$v]]);
4572
4855
 
4573
- var _sfc_main$v = defineComponent({
4856
+ var _sfc_main$u = defineComponent({
4574
4857
  components: {
4575
4858
  FProjectCreator,
4576
4859
  FEntityDelete: EntityDelete,
@@ -4605,25 +4888,25 @@ var _sfc_main$v = defineComponent({
4605
4888
  }
4606
4889
  });
4607
4890
 
4608
- const _hoisted_1$l = { class: "d-flex flex-column w-100" };
4609
- const _hoisted_2$i = { class: "w-100" };
4610
- const _hoisted_3$g = { class: "d-flex flex-row align-items-center" };
4611
- const _hoisted_4$c = { class: "ms-auto" };
4612
- const _hoisted_5$a = { class: "d-flex justify-content-between flex-row" };
4891
+ const _hoisted_1$k = { class: "d-flex flex-column w-100" };
4892
+ const _hoisted_2$h = { class: "w-100" };
4893
+ const _hoisted_3$f = { class: "d-flex flex-row align-items-center" };
4894
+ const _hoisted_4$b = { class: "ms-auto" };
4895
+ const _hoisted_5$9 = { class: "d-flex justify-content-between flex-row" };
4613
4896
  const _hoisted_6$8 = { class: "d-flex flex-grow-1 align-items-center flex-column" };
4614
4897
  const _hoisted_7$7 = { class: "d-flex flex-grow-1 align-items-center flex-column" };
4615
4898
  const _hoisted_8$6 = { class: "d-flex flex-grow-1 align-items-center flex-column" };
4616
4899
  const _hoisted_9$5 = { class: "d-flex flex-row" };
4617
4900
  const _hoisted_10$5 = { class: "" };
4618
4901
  const _hoisted_11$4 = { class: "ms-auto" };
4619
- function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
4902
+ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
4620
4903
  const _component_VCLink = resolveComponent("VCLink");
4621
4904
  const _component_FEntityDelete = resolveComponent("FEntityDelete");
4622
4905
  const _component_FProjectCreator = resolveComponent("FProjectCreator");
4623
4906
  const _component_VCTimeago = resolveComponent("VCTimeago");
4624
- return openBlock(), createElementBlock("div", _hoisted_1$l, [
4625
- createElementVNode("div", _hoisted_2$i, [
4626
- createElementVNode("div", _hoisted_3$g, [
4907
+ return openBlock(), createElementBlock("div", _hoisted_1$k, [
4908
+ createElementVNode("div", _hoisted_2$h, [
4909
+ createElementVNode("div", _hoisted_3$f, [
4627
4910
  createElementVNode("div", null, [
4628
4911
  renderSlot(_ctx.$slots, "title", { data: _ctx.entity }, () => [
4629
4912
  _cache[0] || (_cache[0] = createElementVNode("i", { class: "fas fa-project-diagram me-1" }, null, -1)),
@@ -4638,7 +4921,7 @@ function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
4638
4921
  }, 8, ["to"])
4639
4922
  ])
4640
4923
  ]),
4641
- createElementVNode("div", _hoisted_4$c, [
4924
+ createElementVNode("div", _hoisted_4$b, [
4642
4925
  renderSlot(_ctx.$slots, "itemActions", { data: _ctx.entity }, () => [
4643
4926
  createVNode(_component_VCLink, {
4644
4927
  to: "/projects/" + _ctx.entity.id,
@@ -4664,7 +4947,7 @@ function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
4664
4947
  ])
4665
4948
  ]),
4666
4949
  renderSlot(_ctx.$slots, "body", { data: _ctx.entity }, () => [
4667
- createElementVNode("div", _hoisted_5$a, [
4950
+ createElementVNode("div", _hoisted_5$9, [
4668
4951
  createElementVNode("div", _hoisted_6$8, [
4669
4952
  _cache[2] || (_cache[2] = createElementVNode("div", null, [
4670
4953
  createElementVNode("strong", null, [
@@ -4722,7 +5005,7 @@ function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
4722
5005
  ])
4723
5006
  ]);
4724
5007
  }
4725
- var FProjectItemCard = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$v]]);
5008
+ var FProjectItemCard = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$u]]);
4726
5009
 
4727
5010
  const FProjectItem = defineComponent({
4728
5011
  props: {
@@ -4788,7 +5071,7 @@ const FProjects = defineComponent({
4788
5071
  }
4789
5072
  });
4790
5073
 
4791
- var _sfc_main$u = defineComponent({
5074
+ var _sfc_main$t = defineComponent({
4792
5075
  components: {
4793
5076
  FSearch,
4794
5077
  IVuelidate,
@@ -4863,19 +5146,19 @@ var _sfc_main$u = defineComponent({
4863
5146
  }
4864
5147
  });
4865
5148
 
4866
- const _hoisted_1$k = { class: "row" };
4867
- const _hoisted_2$h = { class: "col" };
4868
- const _hoisted_3$f = ["disabled"];
4869
- const _hoisted_4$b = {
5149
+ const _hoisted_1$j = { class: "row" };
5150
+ const _hoisted_2$g = { class: "col" };
5151
+ const _hoisted_3$e = ["disabled"];
5152
+ const _hoisted_4$a = {
4870
5153
  key: 0,
4871
5154
  class: "col"
4872
5155
  };
4873
- const _hoisted_5$9 = ["disabled", "onClick"];
5156
+ const _hoisted_5$8 = ["disabled", "onClick"];
4874
5157
  const _hoisted_6$7 = {
4875
5158
  key: 0,
4876
5159
  class: "alert alert-sm alert-warning"
4877
5160
  };
4878
- function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
5161
+ function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
4879
5162
  const _component_VCFormInput = resolveComponent("VCFormInput");
4880
5163
  const _component_VCFormGroup = resolveComponent("VCFormGroup");
4881
5164
  const _component_IVuelidate = resolveComponent("IVuelidate");
@@ -4885,8 +5168,8 @@ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
4885
5168
  return openBlock(), createElementBlock("form", {
4886
5169
  onSubmit: _cache[3] || (_cache[3] = withModifiers((...args) => _ctx.add && _ctx.add(...args), ["prevent"]))
4887
5170
  }, [
4888
- createElementVNode("div", _hoisted_1$k, [
4889
- createElementVNode("div", _hoisted_2$h, [
5171
+ createElementVNode("div", _hoisted_1$j, [
5172
+ createElementVNode("div", _hoisted_2$g, [
4890
5173
  createVNode(_component_IVuelidate, {
4891
5174
  validation: _ctx.v$.name
4892
5175
  }, {
@@ -4942,10 +5225,10 @@ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
4942
5225
  }, [..._cache[6] || (_cache[6] = [
4943
5226
  createElementVNode("i", { class: "fa fa-plus" }, null, -1),
4944
5227
  createTextVNode(" create ", -1)
4945
- ])], 8, _hoisted_3$f)
5228
+ ])], 8, _hoisted_3$e)
4946
5229
  ])
4947
5230
  ]),
4948
- !_ctx.projectId ? (openBlock(), createElementBlock("div", _hoisted_4$b, [
5231
+ !_ctx.projectId ? (openBlock(), createElementBlock("div", _hoisted_4$a, [
4949
5232
  createVNode(_component_FProjects, { query: _ctx.proposalQuery }, {
4950
5233
  header: withCtx((props) => [
4951
5234
  _cache[8] || (_cache[8] = createElementVNode("label", null, "Projects", -1)),
@@ -4970,7 +5253,7 @@ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
4970
5253
  "fa fa-minus": _ctx.form.project_id === props.data.id
4971
5254
  })
4972
5255
  }, null, 2)
4973
- ], 10, _hoisted_5$9)
5256
+ ], 10, _hoisted_5$8)
4974
5257
  ]),
4975
5258
  _: 1
4976
5259
  }, 8, ["query"]),
@@ -4979,7 +5262,7 @@ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
4979
5262
  ])
4980
5263
  ], 32);
4981
5264
  }
4982
- var FAnalysisBasicForm = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$u]]);
5265
+ var FAnalysisBasicForm = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$t]]);
4983
5266
 
4984
5267
  var FAnalysis = defineComponent({
4985
5268
  props: defineEntityManagerProps(),
@@ -5123,7 +5406,7 @@ var FAnalysisName = defineComponent({
5123
5406
  }
5124
5407
  });
5125
5408
 
5126
- var _sfc_main$t = defineComponent({
5409
+ var _sfc_main$s = defineComponent({
5127
5410
  props: {
5128
5411
  locked: {
5129
5412
  type: Boolean,
@@ -5158,7 +5441,7 @@ var _sfc_main$t = defineComponent({
5158
5441
  }
5159
5442
  });
5160
5443
 
5161
- function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
5444
+ function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
5162
5445
  return openBlock(), createElementBlock("span", null, [
5163
5446
  renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ classSuffix: _ctx.classSuffix, statusText: _ctx.statusText })), () => [
5164
5447
  createElementVNode("span", {
@@ -5167,9 +5450,9 @@ function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
5167
5450
  ])
5168
5451
  ]);
5169
5452
  }
5170
- var FAnalysisConfigurationStatus = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$t]]);
5453
+ var FAnalysisConfigurationStatus = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$s]]);
5171
5454
 
5172
- var _sfc_main$s = defineComponent({
5455
+ var _sfc_main$r = defineComponent({
5173
5456
  components: {
5174
5457
  FProcessStatus,
5175
5458
  FAnalysisConfigurationStatus
@@ -5211,7 +5494,7 @@ var _sfc_main$s = defineComponent({
5211
5494
  }
5212
5495
  });
5213
5496
 
5214
- function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
5497
+ function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
5215
5498
  const _component_FAnalysisConfigurationStatus = resolveComponent("FAnalysisConfigurationStatus");
5216
5499
  const _component_FProcessStatus = resolveComponent("FProcessStatus");
5217
5500
  return openBlock(), createElementBlock("div", {
@@ -5302,9 +5585,9 @@ function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
5302
5585
  ])
5303
5586
  ], 2);
5304
5587
  }
5305
- var FAnalysisStatus = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$s]]);
5588
+ var FAnalysisStatus = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$r]]);
5306
5589
 
5307
- var _sfc_main$r = defineComponent({
5590
+ var _sfc_main$q = defineComponent({
5308
5591
  props: {
5309
5592
  entity: {
5310
5593
  type: Object,
@@ -5371,22 +5654,22 @@ var _sfc_main$r = defineComponent({
5371
5654
  }
5372
5655
  });
5373
5656
 
5374
- const _hoisted_1$j = { class: "progress bg-white" };
5375
- const _hoisted_2$g = ["aria-valuenow"];
5376
- function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
5377
- return openBlock(), createElementBlock("div", _hoisted_1$j, [
5657
+ const _hoisted_1$i = { class: "progress bg-white" };
5658
+ const _hoisted_2$f = ["aria-valuenow"];
5659
+ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
5660
+ return openBlock(), createElementBlock("div", _hoisted_1$i, [
5378
5661
  createElementVNode("div", {
5379
5662
  class: normalizeClass(["progress-bar", _ctx.bgClazz]),
5380
5663
  style: normalizeStyle({ width: _ctx.progress + "%" }),
5381
5664
  "aria-valuenow": _ctx.progress,
5382
5665
  "aria-valuemin": "0",
5383
5666
  "aria-valuemax": "100"
5384
- }, null, 14, _hoisted_2$g)
5667
+ }, null, 14, _hoisted_2$f)
5385
5668
  ]);
5386
5669
  }
5387
- var FAnalysisProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$r]]);
5670
+ var FAnalysisProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$q]]);
5388
5671
 
5389
- var _sfc_main$q = defineComponent({
5672
+ var _sfc_main$p = defineComponent({
5390
5673
  components: {
5391
5674
  FAnalysisProgressBar,
5392
5675
  FAnalysisPipeline: FAnalysisStatus,
@@ -5444,27 +5727,27 @@ var _sfc_main$q = defineComponent({
5444
5727
  }
5445
5728
  });
5446
5729
 
5447
- const _hoisted_1$i = { class: "d-flex flex-column analysis-item-card" };
5448
- const _hoisted_2$f = { class: "d-flex flex-row align-items-center" };
5449
- const _hoisted_3$e = { class: "me-1" };
5450
- const _hoisted_4$a = {
5730
+ const _hoisted_1$h = { class: "d-flex flex-column analysis-item-card" };
5731
+ const _hoisted_2$e = { class: "d-flex flex-row align-items-center" };
5732
+ const _hoisted_3$d = { class: "me-1" };
5733
+ const _hoisted_4$9 = {
5451
5734
  key: 0,
5452
5735
  class: "text-muted ms-1"
5453
5736
  };
5454
- const _hoisted_5$8 = { class: "ms-auto" };
5737
+ const _hoisted_5$7 = { class: "ms-auto" };
5455
5738
  const _hoisted_6$6 = { class: "d-flex flex-row" };
5456
5739
  const _hoisted_7$6 = { class: "" };
5457
5740
  const _hoisted_8$5 = { class: "ms-auto" };
5458
- function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
5741
+ function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
5459
5742
  const _component_VCLink = resolveComponent("VCLink");
5460
5743
  const _component_FAnalysisName = resolveComponent("FAnalysisName");
5461
5744
  const _component_FEntityDelete = resolveComponent("FEntityDelete");
5462
5745
  const _component_FAnalysisPipeline = resolveComponent("FAnalysisPipeline");
5463
5746
  const _component_FAnalysisProgressBar = resolveComponent("FAnalysisProgressBar");
5464
5747
  const _component_VCTimeago = resolveComponent("VCTimeago");
5465
- return openBlock(), createElementBlock("div", _hoisted_1$i, [
5466
- createElementVNode("div", _hoisted_2$f, [
5467
- createElementVNode("div", _hoisted_3$e, [
5748
+ return openBlock(), createElementBlock("div", _hoisted_1$h, [
5749
+ createElementVNode("div", _hoisted_2$e, [
5750
+ createElementVNode("div", _hoisted_3$d, [
5468
5751
  createVNode(_component_FAnalysisName, {
5469
5752
  class: "analysis-item-card-title",
5470
5753
  "entity-id": _ctx.entity.id,
@@ -5482,12 +5765,12 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
5482
5765
  ]),
5483
5766
  _: 2
5484
5767
  }, 1032, ["to"]),
5485
- props.entityName ? (openBlock(), createElementBlock("span", _hoisted_4$a, toDisplayString(props.entityId), 1)) : createCommentVNode("", true)
5768
+ props.entityName ? (openBlock(), createElementBlock("span", _hoisted_4$9, toDisplayString(props.entityId), 1)) : createCommentVNode("", true)
5486
5769
  ]),
5487
5770
  _: 1
5488
5771
  }, 8, ["entity-id", "entity-name", "onUpdated"])
5489
5772
  ]),
5490
- createElementVNode("div", _hoisted_5$8, [
5773
+ createElementVNode("div", _hoisted_5$7, [
5491
5774
  renderSlot(_ctx.$slots, "itemActions", { data: _ctx.entity }, () => [
5492
5775
  createElementVNode("button", {
5493
5776
  class: "btn btn-xs btn-dark",
@@ -5554,7 +5837,7 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
5554
5837
  ])
5555
5838
  ]);
5556
5839
  }
5557
- var FAnalysisItemCard = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$q], ["__scopeId", "data-v-fbbdc3ff"]]);
5840
+ var FAnalysisItemCard = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$p], ["__scopeId", "data-v-fbbdc3ff"]]);
5558
5841
 
5559
5842
  const FAnalysisItem = defineComponent({
5560
5843
  props: {
@@ -5608,7 +5891,7 @@ const filterImageCommandArgumentsForPosition = (input, position = 'before')=>{
5608
5891
  }
5609
5892
  return input.filter((item)=>item.position === 'after');
5610
5893
  };
5611
- var _sfc_main$p = defineComponent({
5894
+ var _sfc_main$o = defineComponent({
5612
5895
  props: {
5613
5896
  tag: {
5614
5897
  type: String,
@@ -5644,7 +5927,7 @@ var _sfc_main$p = defineComponent({
5644
5927
  }
5645
5928
  });
5646
5929
 
5647
- function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
5930
+ function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
5648
5931
  return openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), { class: "command-box d-flex flex-row gap-1 flex-wrap" }, {
5649
5932
  default: withCtx(() => [
5650
5933
  _cache[0] || (_cache[0] = createElementVNode("div", { class: "shell-sign" }, " $ ", -1)),
@@ -5672,9 +5955,9 @@ function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
5672
5955
  _: 1
5673
5956
  });
5674
5957
  }
5675
- var ImageCommand = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$p]]);
5958
+ var ImageCommand = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$o]]);
5676
5959
 
5677
- var _sfc_main$o = defineComponent({
5960
+ var _sfc_main$n = defineComponent({
5678
5961
  components: {
5679
5962
  ImageCommand
5680
5963
  },
@@ -5818,7 +6101,7 @@ var _sfc_main$o = defineComponent({
5818
6101
  }
5819
6102
  });
5820
6103
 
5821
- function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
6104
+ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
5822
6105
  const _component_ImageCommand = resolveComponent("ImageCommand");
5823
6106
  return openBlock(), createBlock(_component_ImageCommand, {
5824
6107
  command: _ctx.command,
@@ -5826,7 +6109,7 @@ function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
5826
6109
  file: _ctx.file
5827
6110
  }, null, 8, ["command", "command-arguments", "file"]);
5828
6111
  }
5829
- var FAnalysisImageCommand = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$o]]);
6112
+ var FAnalysisImageCommand = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$n]]);
5830
6113
 
5831
6114
  const extractItemsByPosition = (value, position)=>{
5832
6115
  if (position === 'before') {
@@ -5834,7 +6117,7 @@ const extractItemsByPosition = (value, position)=>{
5834
6117
  }
5835
6118
  return value.filter((item)=>item.position === 'after');
5836
6119
  };
5837
- var _sfc_main$n = defineComponent({
6120
+ var _sfc_main$m = defineComponent({
5838
6121
  components: {
5839
6122
  FFormInputList
5840
6123
  },
@@ -5931,17 +6214,17 @@ var _sfc_main$n = defineComponent({
5931
6214
  }
5932
6215
  });
5933
6216
 
5934
- const _hoisted_1$h = { class: "row" };
5935
- const _hoisted_2$e = { class: "col" };
5936
- const _hoisted_3$d = ["disabled"];
5937
- const _hoisted_4$9 = ["disabled", "onClick"];
5938
- const _hoisted_5$7 = { class: "col" };
6217
+ const _hoisted_1$g = { class: "row" };
6218
+ const _hoisted_2$d = { class: "col" };
6219
+ const _hoisted_3$c = ["disabled"];
6220
+ const _hoisted_4$8 = ["disabled", "onClick"];
6221
+ const _hoisted_5$6 = { class: "col" };
5939
6222
  const _hoisted_6$5 = ["disabled"];
5940
6223
  const _hoisted_7$5 = ["disabled", "onClick"];
5941
- function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
6224
+ function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
5942
6225
  const _component_FFormInputList = resolveComponent("FFormInputList");
5943
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
5944
- createElementVNode("div", _hoisted_2$e, [
6226
+ return openBlock(), createElementBlock("div", _hoisted_1$g, [
6227
+ createElementVNode("div", _hoisted_2$d, [
5945
6228
  createVNode(_component_FFormInputList, {
5946
6229
  ref: "itemsBefore",
5947
6230
  readonly: _ctx.readonly,
@@ -5959,7 +6242,7 @@ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
5959
6242
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.resetItemsForPosition("before"), ["prevent"]))
5960
6243
  }, [..._cache[3] || (_cache[3] = [
5961
6244
  createElementVNode("i", { class: "fa fa-undo" }, null, -1)
5962
- ])], 8, _hoisted_3$d),
6245
+ ])], 8, _hoisted_3$c),
5963
6246
  createElementVNode("button", {
5964
6247
  class: "btn btn-xs btn-primary",
5965
6248
  type: "button",
@@ -5967,7 +6250,7 @@ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
5967
6250
  onClick: withModifiers(($event) => props.add(), ["prevent"])
5968
6251
  }, [..._cache[4] || (_cache[4] = [
5969
6252
  createElementVNode("i", { class: "fa fa-plus" }, null, -1)
5970
- ])], 8, _hoisted_4$9)
6253
+ ])], 8, _hoisted_4$8)
5971
6254
  ]),
5972
6255
  noItems: withCtx(() => [..._cache[5] || (_cache[5] = [
5973
6256
  createElementVNode("div", { class: "alert alert-sm alert-info" }, " No command arguments are selected to be placed between command and entrypoint. ", -1)
@@ -5975,7 +6258,7 @@ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
5975
6258
  _: 1
5976
6259
  }, 8, ["readonly", "names", "onChanged"])
5977
6260
  ]),
5978
- createElementVNode("div", _hoisted_5$7, [
6261
+ createElementVNode("div", _hoisted_5$6, [
5979
6262
  createVNode(_component_FFormInputList, {
5980
6263
  ref: "itemsAfter",
5981
6264
  readonly: _ctx.readonly,
@@ -6011,9 +6294,9 @@ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
6011
6294
  ])
6012
6295
  ]);
6013
6296
  }
6014
- var FImageCommandArguments = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$n]]);
6297
+ var FImageCommandArguments = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$m]]);
6015
6298
 
6016
- var _sfc_main$m = defineComponent({
6299
+ var _sfc_main$l = defineComponent({
6017
6300
  components: {
6018
6301
  FImageCommandArguments,
6019
6302
  FAnalysis
@@ -6035,7 +6318,7 @@ var _sfc_main$m = defineComponent({
6035
6318
  }
6036
6319
  });
6037
6320
 
6038
- function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
6321
+ function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
6039
6322
  const _component_FImageCommandArguments = resolveComponent("FImageCommandArguments");
6040
6323
  const _component_FAnalysis = resolveComponent("FAnalysis");
6041
6324
  return openBlock(), createBlock(_component_FAnalysis, {
@@ -6060,7 +6343,7 @@ function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
6060
6343
  _: 1
6061
6344
  }, 8, ["entity", "entity-id"]);
6062
6345
  }
6063
- var FAnalysisImageCommandArguments = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$m]]);
6346
+ var FAnalysisImageCommandArguments = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l]]);
6064
6347
 
6065
6348
  var FAnalyses = defineComponent({
6066
6349
  props: defineListProps(),
@@ -6098,322 +6381,6 @@ var FAnalyses = defineComponent({
6098
6381
  }
6099
6382
  });
6100
6383
 
6101
- const FMasterImage = defineComponent({
6102
- props: defineEntityManagerProps(),
6103
- emits: defineEntityManagerEvents(),
6104
- slots: Object,
6105
- async setup (props, setup) {
6106
- const manager = createEntityManager({
6107
- type: `${DomainType.MASTER_IMAGE}`,
6108
- setup,
6109
- props
6110
- });
6111
- await manager.resolve();
6112
- return ()=>manager.render();
6113
- }
6114
- });
6115
-
6116
- var _sfc_main$l = defineComponent({
6117
- components: {
6118
- FMasterImages: MasterImageList,
6119
- FMasterImageGroups,
6120
- IVuelidate
6121
- },
6122
- props: {
6123
- entityId: {
6124
- type: String
6125
- },
6126
- entity: {
6127
- type: Object
6128
- },
6129
- readonly: {
6130
- type: Boolean,
6131
- default: false
6132
- }
6133
- },
6134
- emits: {
6135
- ...defineEntityManagerEvents()
6136
- },
6137
- setup (props, setup) {
6138
- const entityId = toRef(props, 'entityId');
6139
- const vMasterImages = useTemplateRef('masterImages');
6140
- const form = reactive({
6141
- group_virtual_path: '',
6142
- master_image_id: ''
6143
- });
6144
- const imageQuery = computed(()=>({
6145
- filters: {
6146
- ...form.group_virtual_path !== '' ? {
6147
- group_virtual_path: form.group_virtual_path
6148
- } : {}
6149
- }
6150
- }));
6151
- const resolved = ref(false);
6152
- const manager = createEntityManager({
6153
- type: DomainType.MASTER_IMAGE,
6154
- props,
6155
- setup,
6156
- onResolved: (entity)=>{
6157
- if (entity) {
6158
- form.group_virtual_path = entity.group_virtual_path;
6159
- form.master_image_id = entity.id;
6160
- } else {
6161
- form.group_virtual_path = '';
6162
- form.master_image_id = '';
6163
- }
6164
- resolved.value = true;
6165
- }
6166
- });
6167
- if (props.entityId) {
6168
- form.master_image_id = props.entityId;
6169
- }
6170
- if (props.entity) {
6171
- form.master_image_id = props.entity.id;
6172
- }
6173
- Promise.resolve().then(()=>manager.resolve());
6174
- const v$ = useVuelidate({
6175
- group_virtual_path: {
6176
- required
6177
- },
6178
- master_image_id: {
6179
- required
6180
- }
6181
- }, form, {
6182
- $scope: false
6183
- });
6184
- const isVirtualGroupPathDefined = computed(()=>!!form.group_virtual_path && form.group_virtual_path.length > 0);
6185
- watch(entityId, (val, oldValue)=>{
6186
- if (val && val !== oldValue) {
6187
- manager.resolveByRest({
6188
- id: val,
6189
- reset: true
6190
- });
6191
- }
6192
- });
6193
- watch(imageQuery, (val, oldValue)=>{
6194
- if (val && val !== oldValue) {
6195
- nextTick(async ()=>{
6196
- if (vMasterImages.value) {
6197
- await vMasterImages.value.load();
6198
- }
6199
- });
6200
- }
6201
- });
6202
- const selectGroup = (input)=>{
6203
- if (!input) {
6204
- form.master_image_id = '';
6205
- form.group_virtual_path = '';
6206
- return;
6207
- }
6208
- form.group_virtual_path = input;
6209
- form.master_image_id = '';
6210
- };
6211
- const selectImage = (id)=>{
6212
- manager.data.value = null;
6213
- manager.resolveByRest({
6214
- reset: true,
6215
- id
6216
- });
6217
- };
6218
- return {
6219
- isVirtualGroupPathDefined,
6220
- imageQuery,
6221
- selectImage,
6222
- selectGroup,
6223
- v$,
6224
- busy: manager.busy,
6225
- data: manager.data,
6226
- resolved
6227
- };
6228
- }
6229
- });
6230
-
6231
- const _hoisted_1$g = { class: "row" };
6232
- const _hoisted_2$d = { class: "col" };
6233
- const _hoisted_3$c = {
6234
- key: 0,
6235
- class: "fa fa-check text-success"
6236
- };
6237
- const _hoisted_4$8 = { class: "col" };
6238
- const _hoisted_5$6 = {
6239
- key: 0,
6240
- class: "fa fa-check text-success"
6241
- };
6242
- function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
6243
- const _component_VCFormSelect = resolveComponent("VCFormSelect");
6244
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
6245
- const _component_IVuelidate = resolveComponent("IVuelidate");
6246
- const _component_FMasterImageGroups = resolveComponent("FMasterImageGroups");
6247
- const _component_FMasterImages = resolveComponent("FMasterImages");
6248
- return openBlock(), createElementBlock("div", _hoisted_1$g, [
6249
- createElementVNode("div", _hoisted_2$d, [
6250
- createVNode(_component_FMasterImageGroups, null, {
6251
- default: withCtx(({ data }) => [
6252
- createVNode(_component_IVuelidate, {
6253
- validation: _ctx.v$.group_virtual_path
6254
- }, {
6255
- default: withCtx((props) => [
6256
- createVNode(_component_VCFormGroup, {
6257
- "validation-messages": props.data,
6258
- "validation-severity": props.severity
6259
- }, {
6260
- label: withCtx(() => [
6261
- _cache[2] || (_cache[2] = createTextVNode(" Group ", -1)),
6262
- _ctx.isVirtualGroupPathDefined ? (openBlock(), createElementBlock("i", _hoisted_3$c)) : createCommentVNode("", true)
6263
- ]),
6264
- default: withCtx(() => [
6265
- createVNode(_component_VCFormSelect, {
6266
- modelValue: _ctx.v$.group_virtual_path.$model,
6267
- "onUpdate:modelValue": [
6268
- _cache[0] || (_cache[0] = ($event) => _ctx.v$.group_virtual_path.$model = $event),
6269
- _ctx.selectGroup
6270
- ],
6271
- options: data.map((el) => {
6272
- return {
6273
- id: el.virtual_path,
6274
- value: el.virtual_path
6275
- };
6276
- }),
6277
- disabled: _ctx.readonly || _ctx.busy
6278
- }, null, 8, ["modelValue", "options", "disabled", "onUpdate:modelValue"])
6279
- ]),
6280
- _: 2
6281
- }, 1032, ["validation-messages", "validation-severity"])
6282
- ]),
6283
- _: 2
6284
- }, 1032, ["validation"])
6285
- ]),
6286
- _: 1
6287
- })
6288
- ]),
6289
- createElementVNode("div", _hoisted_4$8, [
6290
- _ctx.resolved ? (openBlock(), createBlock(_component_FMasterImages, {
6291
- key: 0,
6292
- ref: "masterImages",
6293
- query: _ctx.imageQuery
6294
- }, {
6295
- default: withCtx(({ data }) => [
6296
- createVNode(_component_IVuelidate, {
6297
- validation: _ctx.v$.master_image_id
6298
- }, {
6299
- default: withCtx((props) => [
6300
- createVNode(_component_VCFormGroup, {
6301
- "validation-messages": props.data,
6302
- "validation-severity": props.severity
6303
- }, {
6304
- label: withCtx(() => [
6305
- _cache[3] || (_cache[3] = createTextVNode(" Image ", -1)),
6306
- _ctx.v$.master_image_id.$model ? (openBlock(), createElementBlock("i", _hoisted_5$6)) : createCommentVNode("", true)
6307
- ]),
6308
- default: withCtx(() => [
6309
- createVNode(_component_VCFormSelect, {
6310
- modelValue: _ctx.v$.master_image_id.$model,
6311
- "onUpdate:modelValue": [
6312
- _cache[1] || (_cache[1] = ($event) => _ctx.v$.master_image_id.$model = $event),
6313
- _ctx.selectImage
6314
- ],
6315
- options: data.map((el) => {
6316
- return {
6317
- id: el.id,
6318
- value: el.name
6319
- };
6320
- }),
6321
- disabled: _ctx.readonly || _ctx.busy
6322
- }, null, 8, ["modelValue", "options", "disabled", "onUpdate:modelValue"])
6323
- ]),
6324
- _: 2
6325
- }, 1032, ["validation-messages", "validation-severity"])
6326
- ]),
6327
- _: 2
6328
- }, 1032, ["validation"])
6329
- ]),
6330
- _: 1
6331
- }, 8, ["query"])) : createCommentVNode("", true)
6332
- ])
6333
- ]);
6334
- }
6335
- var FMasterImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l]]);
6336
-
6337
- var FMasterImagesSync = defineComponent({
6338
- components: {
6339
- EntityDelete,
6340
- MasterImageList
6341
- },
6342
- emits: [
6343
- 'executed',
6344
- 'failed'
6345
- ],
6346
- setup (props, { emit }) {
6347
- const apiClient = injectCoreHTTPClient();
6348
- const busy = ref(false);
6349
- const itemList = ref(null);
6350
- const sync = wrapFnWithBusyState(busy, async ()=>{
6351
- try {
6352
- await apiClient.masterImage.runCommand(MasterImageCommand.SYNC);
6353
- emit('executed');
6354
- } catch (e) {
6355
- if (e instanceof Error) {
6356
- emit('failed', e);
6357
- }
6358
- }
6359
- });
6360
- const handleDeleted = async (data)=>{
6361
- if (itemList.value) {
6362
- itemList.value.handleDeleted(data.id);
6363
- }
6364
- };
6365
- return ()=>h('div', {
6366
- class: 'd-flex flex-column gap-2'
6367
- }, [
6368
- h('div', {
6369
- class: 'd-flex flex-row'
6370
- }, [
6371
- h(FTitle, {
6372
- text: 'Overview'
6373
- }),
6374
- h('div', {
6375
- class: 'ms-auto'
6376
- }, [
6377
- h('button', {
6378
- type: 'button',
6379
- disabled: busy.value,
6380
- class: 'btn btn-xs btn-success',
6381
- onClick (event) {
6382
- event.preventDefault();
6383
- return sync();
6384
- }
6385
- }, [
6386
- h('i', {
6387
- class: 'fa fa-sync me-1'
6388
- }),
6389
- 'Sync'
6390
- ])
6391
- ])
6392
- ]),
6393
- h(MasterImageList, {
6394
- ref: itemList
6395
- }, {
6396
- [EntityListSlotName.ITEM_ACTIONS]: (props)=>[
6397
- h(EntityDelete, {
6398
- class: 'btn btn-xs btn-danger',
6399
- elementType: 'button',
6400
- entityId: props.data.id,
6401
- entityType: DomainType.MASTER_IMAGE,
6402
- withText: false,
6403
- onDeleted (item) {
6404
- return handleDeleted(item);
6405
- }
6406
- })
6407
- ],
6408
- [EntityListSlotName.FOOTER]: (props)=>h(FPagination, {
6409
- load: props.load,
6410
- meta: props.meta
6411
- })
6412
- })
6413
- ]);
6414
- }
6415
- });
6416
-
6417
6384
  var _sfc_main$k = defineComponent({
6418
6385
  components: {
6419
6386
  FMasterImagePicker,
@@ -10772,9 +10739,10 @@ var components = /*#__PURE__*/Object.freeze({
10772
10739
  FLog: FLog,
10773
10740
  FLogs: FLogs,
10774
10741
  FMasterImage: FMasterImage,
10742
+ FMasterImageCard: FMasterImageCard,
10743
+ FMasterImageCommand: FMasterImageCommand,
10775
10744
  FMasterImagePicker: FMasterImagePicker,
10776
10745
  FMasterImages: MasterImageList,
10777
- FMasterImagesSync: FMasterImagesSync,
10778
10746
  FNodeClient: FNodeClient,
10779
10747
  FNodeCrypto: FNodeCrypto,
10780
10748
  FNodeForm: FNodeForm,
@@ -10850,5 +10818,5 @@ var index = {
10850
10818
  install
10851
10819
  };
10852
10820
 
10853
- export { ActionCommandElementType, ElementType, EntityListSlotName, EntityManagerError, FAnalyses, FAnalysis, FAnalysisBasicForm, FAnalysisBucket, FAnalysisBucketDownload, FAnalysisBucketFile, FAnalysisBucketFileRootToggler, FAnalysisBucketFiles, FAnalysisImageCommand, FAnalysisImageCommandArguments, FAnalysisItem, FAnalysisLogs, FAnalysisMasterImagePicker, FAnalysisName, FAnalysisNode, FAnalysisNodeApprovalCommand, FAnalysisNodeApprovalStatus, FAnalysisNodeAssignAction, FAnalysisNodeInCard, FAnalysisNodeLogs, FAnalysisNodes, FAnalysisNodesManager, FAnalysisPermissionAssignment, FAnalysisPermissionAssignments, FAnalysisProgressBar, FAnalysisStatus, FAnalysisSteps, FAnalysisTypeBucket, FBucketFiles, FBucketFilesManager, EntityDelete as FEntityDelete, FEvent, FEventActor, FEventExpiring, FEventRef, FEvents, FFormInputList as FFromInputList, FFormInputListItem as FFromInputListItem, FItemToggle, FLog, FLogs, FMasterImage, FMasterImagePicker, MasterImageList as FMasterImages, FMasterImagesSync, FNodeClient, FNodeCrypto, FNodeForm, FNodeRegistryProject, FNodes, FPagination, FProcessStatus, FProject, FProjectCreator, FProjectForm, FProjectInForm, FProjectItem, FProjectItemCard, FProjectNode, FProjectNodeApprovalCommand, FProjectNodeApprovalStatus, FProjectNodeAssignAction, FProjectNodeInCard, FProjectNodes, FProjects, FSearch, FTitle, FTranslation, FTranslationDefault, ListHandlers, FLoginForm as LoginForm, FMasterImageGroups as MasterImageGroupList, FRegistryCleanup as RegistryCleanup, FRegistryForm as RegistryForm, RegistryList, RegistryProjectDetails, FRegistryProjectForm as RegistryProjectForm, FRegistryProjects as RegistryProjectList, FRegistrySetup as RegistrySetup, alphaNumHyphenUnderscore$1 as alphaNumHyphenUnderscore, alphaWithUpperNumHyphenUnderScore, buildEntityManagerSlotProps, createEntityManager, createList, createListRaw, index as default, defineEntityManagerEvents, defineEntityManagerProps, defineListEvents, defineListProps, extendObjectProperties, extractVuelidateResultsFromChild, hasNormalizedSlot, initFormAttributesFromSource, injectCoreHTTPClient, injectSocketManager, injectStorageHTTPClient, injectTelemetryHTTPClient, install, installCoreHTTPClient, installSocketManager, installStorageHTTPClient, installTelemetryHTTPClient, installTranslator, isCoreHTTPClientUsable, isQuerySortedDescByDate, isSocketManagerUsable, isStorageHTTPClientUsable, isTelemetryHTTPClientUsable, mergeListOptions, normalizeSlot, provideCoreHTTPClient, provideSocketManager, provideStorageHTTPClient, provideTelemetryHTTPClient, renderActionCommand, renderEntityAssignAction, renderToggleButton, wrapFnWithBusyState };
10821
+ export { ActionCommandElementType, ElementType, EntityListSlotName, EntityManagerError, FAnalyses, FAnalysis, FAnalysisBasicForm, FAnalysisBucket, FAnalysisBucketDownload, FAnalysisBucketFile, FAnalysisBucketFileRootToggler, FAnalysisBucketFiles, FAnalysisImageCommand, FAnalysisImageCommandArguments, FAnalysisItem, FAnalysisLogs, FAnalysisMasterImagePicker, FAnalysisName, FAnalysisNode, FAnalysisNodeApprovalCommand, FAnalysisNodeApprovalStatus, FAnalysisNodeAssignAction, FAnalysisNodeInCard, FAnalysisNodeLogs, FAnalysisNodes, FAnalysisNodesManager, FAnalysisPermissionAssignment, FAnalysisPermissionAssignments, FAnalysisProgressBar, FAnalysisStatus, FAnalysisSteps, FAnalysisTypeBucket, FBucketFiles, FBucketFilesManager, EntityDelete as FEntityDelete, FEvent, FEventActor, FEventExpiring, FEventRef, FEvents, FFormInputList as FFromInputList, FFormInputListItem as FFromInputListItem, FItemToggle, FLog, FLogs, FMasterImage, FMasterImageCard, FMasterImageCommand, FMasterImagePicker, MasterImageList as FMasterImages, FNodeClient, FNodeCrypto, FNodeForm, FNodeRegistryProject, FNodes, FPagination, FProcessStatus, FProject, FProjectCreator, FProjectForm, FProjectInForm, FProjectItem, FProjectItemCard, FProjectNode, FProjectNodeApprovalCommand, FProjectNodeApprovalStatus, FProjectNodeAssignAction, FProjectNodeInCard, FProjectNodes, FProjects, FSearch, FTitle, FTranslation, FTranslationDefault, ListHandlers, FLoginForm as LoginForm, FMasterImageGroups as MasterImageGroupList, FRegistryCleanup as RegistryCleanup, FRegistryForm as RegistryForm, RegistryList, RegistryProjectDetails, FRegistryProjectForm as RegistryProjectForm, FRegistryProjects as RegistryProjectList, FRegistrySetup as RegistrySetup, alphaNumHyphenUnderscore$1 as alphaNumHyphenUnderscore, alphaWithUpperNumHyphenUnderScore, buildEntityManagerSlotProps, createEntityManager, createList, createListRaw, index as default, defineEntityManagerEvents, defineEntityManagerProps, defineListEvents, defineListProps, extendObjectProperties, extractVuelidateResultsFromChild, hasNormalizedSlot, initFormAttributesFromSource, injectCoreHTTPClient, injectSocketManager, injectStorageHTTPClient, injectTelemetryHTTPClient, install, installCoreHTTPClient, installSocketManager, installStorageHTTPClient, installTelemetryHTTPClient, installTranslator, isCoreHTTPClientUsable, isQuerySortedDescByDate, isSocketManagerUsable, isStorageHTTPClientUsable, isTelemetryHTTPClientUsable, mergeListOptions, normalizeSlot, provideCoreHTTPClient, provideSocketManager, provideStorageHTTPClient, provideTelemetryHTTPClient, renderActionCommand, renderEntityAssignAction, renderToggleButton, wrapFnWithBusyState };
10854
10822
  //# sourceMappingURL=index.mjs.map