@solidxai/core-ui 0.1.7-beta.8 → 0.1.7-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  2. package/dist/components/common/GeneralSettings.js +68 -36
  3. package/dist/components/common/GeneralSettings.js.map +1 -1
  4. package/dist/components/common/GeneralSettings.tsx +81 -42
  5. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts +27 -5
  6. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
  7. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +25 -37
  8. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  9. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +131 -52
  10. package/dist/components/core/chatter/SolidChatter.d.ts +2 -1
  11. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  12. package/dist/components/core/chatter/SolidChatter.js +2 -2
  13. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  14. package/dist/components/core/chatter/SolidChatter.tsx +2 -1
  15. package/dist/components/core/chatter/SolidChatterHeader.d.ts +1 -0
  16. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  17. package/dist/components/core/chatter/SolidChatterHeader.js +3 -3
  18. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  19. package/dist/components/core/chatter/SolidChatterHeader.tsx +4 -3
  20. package/dist/components/core/chatter/SolidMessageComposer.d.ts +2 -1
  21. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  22. package/dist/components/core/chatter/SolidMessageComposer.js +3 -1
  23. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  24. package/dist/components/core/chatter/SolidMessageComposer.tsx +3 -1
  25. package/dist/components/core/common/SolidViewLayoutManager.d.ts +17 -0
  26. package/dist/components/core/common/SolidViewLayoutManager.d.ts.map +1 -1
  27. package/dist/components/core/common/SolidViewLayoutManager.js +58 -1
  28. package/dist/components/core/common/SolidViewLayoutManager.js.map +1 -1
  29. package/dist/components/core/common/SolidViewLayoutManager.ts +43 -2
  30. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
  31. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
  32. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
  33. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
  34. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
  35. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
  36. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
  37. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
  38. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
  39. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
  40. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
  41. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
  42. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js +111 -0
  43. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js.map +1 -0
  44. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx +122 -0
  45. package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.d.ts +3 -0
  46. package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.d.ts.map +1 -0
  47. package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.js +10 -0
  48. package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.js.map +1 -0
  49. package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.tsx +21 -0
  50. package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.d.ts +8 -0
  51. package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.d.ts.map +1 -0
  52. package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.js +62 -0
  53. package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.js.map +1 -0
  54. package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.tsx +27 -0
  55. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.d.ts +3 -0
  56. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
  57. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.js +8 -0
  58. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.js.map +1 -0
  59. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.tsx +15 -0
  60. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.d.ts +3 -0
  61. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.d.ts.map +1 -0
  62. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js +158 -0
  63. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js.map +1 -0
  64. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.tsx +185 -0
  65. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.d.ts +17 -0
  66. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.d.ts.map +1 -0
  67. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js +52 -0
  68. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js.map +1 -0
  69. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.tsx +83 -0
  70. package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
  71. package/dist/components/core/locales/SolidChatterLocaleTabView.js +7 -5
  72. package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
  73. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +3 -0
  74. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.css +38 -0
  75. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts +1 -0
  76. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -1
  77. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +4 -3
  78. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -1
  79. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +13 -3
  80. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +2 -1
  81. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -1
  82. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +6 -5
  83. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -1
  84. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +6 -7
  85. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  86. package/dist/components/core/users/CreateUser.js +89 -35
  87. package/dist/components/core/users/CreateUser.js.map +1 -1
  88. package/dist/components/core/users/CreateUser.tsx +291 -165
  89. package/dist/components/layout/SolidAiStudioLayout.d.ts.map +1 -1
  90. package/dist/components/layout/SolidAiStudioLayout.js +123 -8
  91. package/dist/components/layout/SolidAiStudioLayout.js.map +1 -1
  92. package/dist/components/layout/SolidAiStudioLayout.tsx +70 -6
  93. package/dist/helpers/registry.d.ts.map +1 -1
  94. package/dist/helpers/registry.js +10 -6
  95. package/dist/helpers/registry.js.map +1 -1
  96. package/dist/helpers/registry.ts +11 -7
  97. package/dist/index.d.ts +3 -0
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +3 -0
  100. package/dist/index.js.map +1 -1
  101. package/dist/index.ts +11 -0
  102. package/dist/redux/api/apiKeyApi.d.ts +8 -1
  103. package/dist/redux/api/apiKeyApi.d.ts.map +1 -1
  104. package/dist/redux/api/apiKeyApi.js +12 -1
  105. package/dist/redux/api/apiKeyApi.js.map +1 -1
  106. package/dist/redux/api/apiKeyApi.ts +9 -0
  107. package/dist/redux/store/defaultStoreConfig.d.ts +16 -1
  108. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  109. package/dist/redux/store/defaultStoreConfig.js +3 -1
  110. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  111. package/dist/redux/store/defaultStoreConfig.ts +3 -1
  112. package/dist/routes/guards/GuestGuard.d.ts +2 -0
  113. package/dist/routes/guards/GuestGuard.d.ts.map +1 -0
  114. package/dist/routes/guards/GuestGuard.js +23 -0
  115. package/dist/routes/guards/GuestGuard.js.map +1 -0
  116. package/dist/routes/guards/GuestGuard.tsx +24 -0
  117. package/dist/routes/solidRoutes.d.ts.map +1 -1
  118. package/dist/routes/solidRoutes.js +2 -1
  119. package/dist/routes/solidRoutes.js.map +1 -1
  120. package/dist/routes/solidRoutes.tsx +2 -1
  121. package/dist/types/solid-core.d.ts +1 -0
  122. package/package.json +1 -1
@@ -0,0 +1,111 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
38
+ import { useState } from "react";
39
+ import { solidGet } from "../../../../../../http/solidHttp";
40
+ import { SolidAutocomplete } from "../../../../../../components/shad-cn-ui/SolidAutocomplete";
41
+ import { SolidInput } from "../../../../../../components/shad-cn-ui/SolidInput";
42
+ import { SolidIcon } from "../../../../../../components/shad-cn-ui/SolidIcon";
43
+ export var SolidLovTypeChangeFormEditWidget = function (_a) {
44
+ var _b, _c, _d;
45
+ var formik = _a.formik, fieldContext = _a.fieldContext;
46
+ var fieldMetadata = fieldContext.fieldMetadata;
47
+ var fieldLayoutInfo = fieldContext.field;
48
+ var fieldLabel = (_b = fieldLayoutInfo.attrs.label) !== null && _b !== void 0 ? _b : fieldMetadata.displayName;
49
+ var fieldName = (_c = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _c === void 0 ? void 0 : _c.name;
50
+ var value = (_d = formik.values) === null || _d === void 0 ? void 0 : _d[fieldName];
51
+ // 🔹 UI State
52
+ var _e = useState([]), filteredOptions = _e[0], setFilteredOptions = _e[1];
53
+ var _f = useState(false), isCreating = _f[0], setIsCreating = _f[1];
54
+ var _g = useState(value || ""), inputValue = _g[0], setInputValue = _g[1];
55
+ // 🔹 Handle Autocommplete AJAX Fetching
56
+ var completeMethod = function (event) { return __awaiter(void 0, void 0, void 0, function () {
57
+ var query, filterPart, res, extracted, err_1;
58
+ var _a, _b, _c;
59
+ return __generator(this, function (_d) {
60
+ switch (_d.label) {
61
+ case 0:
62
+ _d.trys.push([0, 2, , 3]);
63
+ query = event.query;
64
+ filterPart = query
65
+ ? "&filters[$and][0][$or][0][".concat(fieldName, "][$containsi]=%").concat(query, "%")
66
+ : "";
67
+ return [4 /*yield*/, solidGet("/api/list-of-values?&offset=0&limit=50&groupBy[0]=".concat(fieldName, "&aggregates[0]=id:count").concat(filterPart))];
68
+ case 1:
69
+ res = _d.sent();
70
+ extracted = ((_c = (_b = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.groupMeta) === null || _c === void 0 ? void 0 : _c.filter(function (item) { return item.groupValue != null; }).map(function (item) { return ({
71
+ label: item.groupValue,
72
+ value: item.groupValue
73
+ }); })) || [];
74
+ setFilteredOptions(extracted);
75
+ return [3 /*break*/, 3];
76
+ case 2:
77
+ err_1 = _d.sent();
78
+ console.error("Failed to fetch autocomplete suggestions", err_1);
79
+ setFilteredOptions([]);
80
+ return [3 /*break*/, 3];
81
+ case 3: return [2 /*return*/];
82
+ }
83
+ });
84
+ }); };
85
+ // 🔹 Handle Change from Autocomplete
86
+ var handleAutocompleteChange = function (e) {
87
+ var _a;
88
+ var selectedValue = typeof e.value === "object" ? (_a = e.value) === null || _a === void 0 ? void 0 : _a.value : e.value;
89
+ formik.setFieldValue(fieldName, selectedValue);
90
+ };
91
+ // 🔹 Handle Input Submit (blur or enter)
92
+ var handleCreate = function () {
93
+ if (!inputValue.trim())
94
+ return;
95
+ formik.setFieldValue(fieldName, inputValue);
96
+ setIsCreating(false);
97
+ };
98
+ return (_jsxs("div", { className: "solid-lov-type-change-widget w-full", children: [_jsxs("div", { className: "flex align-items-center justify-between mb-2", children: [_jsx("label", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider", children: fieldLabel }), _jsxs("button", { type: "button", onClick: function () {
99
+ setIsCreating(!isCreating);
100
+ if (!isCreating)
101
+ setInputValue("");
102
+ }, style: { color: "blue", background: "transparent", border: 0 }, children: [_jsx(SolidIcon, { name: isCreating ? "si-times" : "si-plus", size: 12 }), _jsx("span", { children: isCreating ? "choose existing" : "add custom" })] })] }), _jsx("div", { className: "relative", children: !isCreating ? (_jsx(SolidAutocomplete, { value: value, suggestions: filteredOptions, completeMethod: completeMethod, onChange: handleAutocompleteChange, dropdown: true, placeholder: "Select ".concat(fieldLabel), className: "w-full" })) : (_jsx("div", { className: "flex gap-2", children: _jsx(SolidInput, { type: "text", value: inputValue, autoFocus: true, placeholder: "Enter new type", className: "flex-1 h-9", onChange: function (e) { return setInputValue(e.target.value); }, onBlur: handleCreate, onKeyDown: function (e) {
103
+ if (e.key === "Enter") {
104
+ handleCreate();
105
+ }
106
+ if (e.key === "Escape") {
107
+ setIsCreating(false);
108
+ }
109
+ } }) })) })] }));
110
+ };
111
+ //# sourceMappingURL=SolidLovTypeChangeFormEditWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidLovTypeChangeFormEditWidget.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2DAA2D,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,mDAAmD,CAAC;AAE9E,MAAM,CAAC,IAAM,gCAAgC,GAAG,UAAC,EAGrB;;QAFxB,MAAM,YAAA,EACN,YAAY,kBAAA;IAEZ,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IACjD,IAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;IAE3C,IAAM,UAAU,GACZ,MAAA,eAAe,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAC7D,IAAM,SAAS,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,IAAI,CAAC;IAE/C,IAAM,KAAK,GAAG,MAAA,MAAM,CAAC,MAAM,0CAAG,SAAS,CAAC,CAAC;IAEzC,cAAc;IACR,IAAA,KAAwC,QAAQ,CAAQ,EAAE,CAAC,EAA1D,eAAe,QAAA,EAAE,kBAAkB,QAAuB,CAAC;IAC5D,IAAA,KAA8B,QAAQ,CAAC,KAAK,CAAC,EAA5C,UAAU,QAAA,EAAE,aAAa,QAAmB,CAAC;IAC9C,IAAA,KAA8B,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAlD,UAAU,QAAA,EAAE,aAAa,QAAyB,CAAC;IAE1D,wCAAwC;IACxC,IAAM,cAAc,GAAG,UAAO,KAAwB;;;;;;;oBAExC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAGpB,UAAU,GAAG,KAAK;wBACpB,CAAC,CAAC,oCAA6B,SAAS,4BAAkB,KAAK,MAAG;wBAClE,CAAC,CAAC,EAAE,CAAC;oBAEG,qBAAM,QAAQ,CACtB,4DAAqD,SAAS,oCAA0B,UAAU,CAAE,CACvG,EAAA;;oBAFK,GAAG,GAAG,SAEX;oBAEK,SAAS,GACX,CAAA,MAAA,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,IAAI,0CAAE,SAAS,0CACpB,MAAM,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,UAAU,IAAI,IAAI,EAAvB,CAAuB,EAC9C,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,CAAC;wBACjB,KAAK,EAAE,IAAI,CAAC,UAAU;wBACtB,KAAK,EAAE,IAAI,CAAC,UAAU;qBACzB,CAAC,EAHkB,CAGlB,CAAC,KAAI,EAAE,CAAC;oBAElB,kBAAkB,CAAC,SAAS,CAAC,CAAC;;;;oBAE9B,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAG,CAAC,CAAC;oBAC/D,kBAAkB,CAAC,EAAE,CAAC,CAAC;;;;;SAE9B,CAAC;IAEF,qCAAqC;IACrC,IAAM,wBAAwB,GAAG,UAAC,CAAiB;;QAC/C,IAAM,aAAa,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAA,CAAC,CAAC,KAAK,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7E,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,yCAAyC;IACzC,IAAM,YAAY,GAAG;QACjB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAAE,OAAO;QAC/B,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC5C,aAAa,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAC,qCAAqC,aAChD,eAAK,SAAS,EAAC,+CAA+C,aAC1D,gBAAO,SAAS,EAAC,sEAAsE,YAClF,UAAU,GACP,EACR,kBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE;4BACL,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;4BAC3B,IAAI,CAAC,UAAU;gCAAE,aAAa,CAAC,EAAE,CAAC,CAAC;wBACvC,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,aAE9D,KAAC,SAAS,IAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,GAAI,EAClE,yBAAO,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,GAAQ,IACvD,IACP,EAEN,cAAK,SAAS,EAAC,UAAU,YACpB,CAAC,UAAU,CAAC,CAAC,CAAC,CACX,KAAC,iBAAiB,IACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,eAAe,EAC5B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,wBAAwB,EAClC,QAAQ,QACR,WAAW,EAAE,iBAAU,UAAU,CAAE,EACnC,SAAS,EAAC,QAAQ,GACpB,CACL,CAAC,CAAC,CAAC,CACA,cAAK,SAAS,EAAC,YAAY,YACvB,KAAC,UAAU,IACP,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,SAAS,QACT,WAAW,EAAC,gBAAgB,EAC5B,SAAS,EAAC,YAAY,EACtB,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAA7B,CAA6B,EAC9C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,UAAC,CAAC;4BACT,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;gCACnB,YAAY,EAAE,CAAC;6BAClB;4BACD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;gCACpB,aAAa,CAAC,KAAK,CAAC,CAAC;6BACxB;wBACL,CAAC,GACH,GACA,CACT,GACC,IACJ,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { useState } from \"react\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../../types/solid-core\";\nimport { solidGet } from \"../../../../../../http/solidHttp\";\nimport { SolidAutocomplete } from \"../../../../../../components/shad-cn-ui/SolidAutocomplete\";\nimport { SolidInput } from \"../../../../../../components/shad-cn-ui/SolidInput\";\nimport { SolidIcon } from \"../../../../../../components/shad-cn-ui/SolidIcon\";\n\nexport const SolidLovTypeChangeFormEditWidget = ({\n formik,\n fieldContext\n}: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n\n const fieldLabel =\n fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const fieldName = fieldLayoutInfo?.attrs?.name;\n\n const value = formik.values?.[fieldName];\n\n // 🔹 UI State\n const [filteredOptions, setFilteredOptions] = useState<any[]>([]);\n const [isCreating, setIsCreating] = useState(false);\n const [inputValue, setInputValue] = useState(value || \"\");\n\n // 🔹 Handle Autocommplete AJAX Fetching\n const completeMethod = async (event: { query: string }) => {\n try {\n const query = event.query;\n // Build the URL following the user's provided filter pattern\n\n const filterPart = query\n ? `&filters[$and][0][$or][0][${fieldName}][$containsi]=%${query}%`\n : \"\";\n\n const res = await solidGet(\n `/api/list-of-values?&offset=0&limit=50&groupBy[0]=${fieldName}&aggregates[0]=id:count${filterPart}`\n );\n\n const extracted =\n res?.data?.data?.groupMeta\n ?.filter((item: any) => item.groupValue != null)\n .map((item: any) => ({\n label: item.groupValue,\n value: item.groupValue\n })) || [];\n\n setFilteredOptions(extracted);\n } catch (err) {\n console.error(\"Failed to fetch autocomplete suggestions\", err);\n setFilteredOptions([]);\n }\n };\n\n // 🔹 Handle Change from Autocomplete\n const handleAutocompleteChange = (e: { value: any }) => {\n const selectedValue = typeof e.value === \"object\" ? e.value?.value : e.value;\n formik.setFieldValue(fieldName, selectedValue);\n };\n\n // 🔹 Handle Input Submit (blur or enter)\n const handleCreate = () => {\n if (!inputValue.trim()) return;\n formik.setFieldValue(fieldName, inputValue);\n setIsCreating(false);\n };\n\n return (\n <div className=\"solid-lov-type-change-widget w-full\">\n <div className=\"flex align-items-center justify-between mb-2\">\n <label className=\"text-xs font-semibold text-muted-foreground uppercase tracking-wider\">\n {fieldLabel}\n </label>\n <button\n type=\"button\"\n onClick={() => {\n setIsCreating(!isCreating);\n if (!isCreating) setInputValue(\"\");\n }}\n style={{ color: \"blue\", background: \"transparent\", border: 0 }}\n >\n <SolidIcon name={isCreating ? \"si-times\" : \"si-plus\"} size={12} />\n <span>{isCreating ? \"choose existing\" : \"add custom\"}</span>\n </button>\n </div>\n\n <div className=\"relative\">\n {!isCreating ? (\n <SolidAutocomplete\n value={value}\n suggestions={filteredOptions}\n completeMethod={completeMethod}\n onChange={handleAutocompleteChange}\n dropdown\n placeholder={`Select ${fieldLabel}`}\n className=\"w-full\"\n />\n ) : (\n <div className=\"flex gap-2\">\n <SolidInput\n type=\"text\"\n value={inputValue}\n autoFocus\n placeholder=\"Enter new type\"\n className=\"flex-1 h-9\"\n onChange={(e) => setInputValue(e.target.value)}\n onBlur={handleCreate}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleCreate();\n }\n if (e.key === \"Escape\") {\n setIsCreating(false);\n }\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n};"]}
@@ -0,0 +1,122 @@
1
+ import { useState } from "react";
2
+ import { SolidFormFieldWidgetProps } from "../../../../../../types/solid-core";
3
+ import { solidGet } from "../../../../../../http/solidHttp";
4
+ import { SolidAutocomplete } from "../../../../../../components/shad-cn-ui/SolidAutocomplete";
5
+ import { SolidInput } from "../../../../../../components/shad-cn-ui/SolidInput";
6
+ import { SolidIcon } from "../../../../../../components/shad-cn-ui/SolidIcon";
7
+
8
+ export const SolidLovTypeChangeFormEditWidget = ({
9
+ formik,
10
+ fieldContext
11
+ }: SolidFormFieldWidgetProps) => {
12
+ const fieldMetadata = fieldContext.fieldMetadata;
13
+ const fieldLayoutInfo = fieldContext.field;
14
+
15
+ const fieldLabel =
16
+ fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
17
+ const fieldName = fieldLayoutInfo?.attrs?.name;
18
+
19
+ const value = formik.values?.[fieldName];
20
+
21
+ // 🔹 UI State
22
+ const [filteredOptions, setFilteredOptions] = useState<any[]>([]);
23
+ const [isCreating, setIsCreating] = useState(false);
24
+ const [inputValue, setInputValue] = useState(value || "");
25
+
26
+ // 🔹 Handle Autocommplete AJAX Fetching
27
+ const completeMethod = async (event: { query: string }) => {
28
+ try {
29
+ const query = event.query;
30
+ // Build the URL following the user's provided filter pattern
31
+
32
+ const filterPart = query
33
+ ? `&filters[$and][0][$or][0][${fieldName}][$containsi]=%${query}%`
34
+ : "";
35
+
36
+ const res = await solidGet(
37
+ `/api/list-of-values?&offset=0&limit=50&groupBy[0]=${fieldName}&aggregates[0]=id:count${filterPart}`
38
+ );
39
+
40
+ const extracted =
41
+ res?.data?.data?.groupMeta
42
+ ?.filter((item: any) => item.groupValue != null)
43
+ .map((item: any) => ({
44
+ label: item.groupValue,
45
+ value: item.groupValue
46
+ })) || [];
47
+
48
+ setFilteredOptions(extracted);
49
+ } catch (err) {
50
+ console.error("Failed to fetch autocomplete suggestions", err);
51
+ setFilteredOptions([]);
52
+ }
53
+ };
54
+
55
+ // 🔹 Handle Change from Autocomplete
56
+ const handleAutocompleteChange = (e: { value: any }) => {
57
+ const selectedValue = typeof e.value === "object" ? e.value?.value : e.value;
58
+ formik.setFieldValue(fieldName, selectedValue);
59
+ };
60
+
61
+ // 🔹 Handle Input Submit (blur or enter)
62
+ const handleCreate = () => {
63
+ if (!inputValue.trim()) return;
64
+ formik.setFieldValue(fieldName, inputValue);
65
+ setIsCreating(false);
66
+ };
67
+
68
+ return (
69
+ <div className="solid-lov-type-change-widget w-full">
70
+ <div className="flex align-items-center justify-between mb-2">
71
+ <label className="text-xs font-semibold text-muted-foreground uppercase tracking-wider">
72
+ {fieldLabel}
73
+ </label>
74
+ <button
75
+ type="button"
76
+ onClick={() => {
77
+ setIsCreating(!isCreating);
78
+ if (!isCreating) setInputValue("");
79
+ }}
80
+ style={{ color: "blue", background: "transparent", border: 0 }}
81
+ >
82
+ <SolidIcon name={isCreating ? "si-times" : "si-plus"} size={12} />
83
+ <span>{isCreating ? "choose existing" : "add custom"}</span>
84
+ </button>
85
+ </div>
86
+
87
+ <div className="relative">
88
+ {!isCreating ? (
89
+ <SolidAutocomplete
90
+ value={value}
91
+ suggestions={filteredOptions}
92
+ completeMethod={completeMethod}
93
+ onChange={handleAutocompleteChange}
94
+ dropdown
95
+ placeholder={`Select ${fieldLabel}`}
96
+ className="w-full"
97
+ />
98
+ ) : (
99
+ <div className="flex gap-2">
100
+ <SolidInput
101
+ type="text"
102
+ value={inputValue}
103
+ autoFocus
104
+ placeholder="Enter new type"
105
+ className="flex-1 h-9"
106
+ onChange={(e) => setInputValue(e.target.value)}
107
+ onBlur={handleCreate}
108
+ onKeyDown={(e) => {
109
+ if (e.key === "Enter") {
110
+ handleCreate();
111
+ }
112
+ if (e.key === "Escape") {
113
+ setIsCreating(false);
114
+ }
115
+ }}
116
+ />
117
+ </div>
118
+ )}
119
+ </div>
120
+ </div>
121
+ );
122
+ };
@@ -0,0 +1,3 @@
1
+ import { SolidFormWidgetProps } from "../../../../../../types/solid-core";
2
+ export declare const SolidMqMessageStageFormViewWIdget: ({ field, formData, viewMetadata, fieldsMetadata, formViewData }: SolidFormWidgetProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SolidMqMessageStageFormViewWIdget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidMqMessageStageFormViewWIdget.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAG1E,eAAO,MAAM,iCAAiC,oEAM3C,oBAAoB,4CAWtB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { MqMessageStageBadge } from "../ui/MqMessageStageBadge";
3
+ export var SolidMqMessageStageFormViewWIdget = function (_a) {
4
+ var _b;
5
+ var field = _a.field, formData = _a.formData, viewMetadata = _a.viewMetadata, fieldsMetadata = _a.fieldsMetadata, formViewData = _a.formViewData;
6
+ var stageValue = (_b = formViewData === null || formViewData === void 0 ? void 0 : formViewData.data) === null || _b === void 0 ? void 0 : _b.stage;
7
+ return (_jsx("div", { className: "mt-2", children: stageValue &&
8
+ _jsx(MqMessageStageBadge, { stage: stageValue, compact: true }) }));
9
+ };
10
+ //# sourceMappingURL=SolidMqMessageStageFormViewWIdget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidMqMessageStageFormViewWIdget.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,CAAC,IAAM,iCAAiC,GAAG,UAAC,EAM3B;;QALnB,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,cAAc,oBAAA,EACd,YAAY,kBAAA;IAEZ,IAAM,UAAU,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,KAAK,CAAC;IAG7C,OAAO,CACE,cAAK,SAAS,EAAC,MAAM,YACrB,UAAU;YACN,KAAC,mBAAmB,IAAC,KAAK,EAAE,UAAU,EAAE,OAAO,SAAG,GAEhD,CACd,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { SolidFormWidgetProps } from \"../../../../../../types/solid-core\";\nimport { MqMessageStageBadge } from \"../ui/MqMessageStageBadge\";\n\nexport const SolidMqMessageStageFormViewWIdget = ({\n field,\n formData,\n viewMetadata,\n fieldsMetadata,\n formViewData\n}: SolidFormWidgetProps) => {\n const stageValue = formViewData?.data?.stage;\n\n\n return (\n <div className=\"mt-2\">\n {stageValue &&\n <MqMessageStageBadge stage={stageValue} compact />\n }\n </div>\n );\n};"]}
@@ -0,0 +1,21 @@
1
+ import { SolidFormWidgetProps } from "../../../../../../types/solid-core";
2
+ import { MqMessageStageBadge } from "../ui/MqMessageStageBadge";
3
+
4
+ export const SolidMqMessageStageFormViewWIdget = ({
5
+ field,
6
+ formData,
7
+ viewMetadata,
8
+ fieldsMetadata,
9
+ formViewData
10
+ }: SolidFormWidgetProps) => {
11
+ const stageValue = formViewData?.data?.stage;
12
+
13
+
14
+ return (
15
+ <div className="mt-2">
16
+ {stageValue &&
17
+ <MqMessageStageBadge stage={stageValue} compact />
18
+ }
19
+ </div>
20
+ );
21
+ };
@@ -0,0 +1,8 @@
1
+ import { LayoutNode } from "../../../../../../types/solid-core";
2
+ declare const mqMessageOnFormLoadHandler: (event: any) => Promise<{
3
+ layoutChanged: boolean;
4
+ dataChanged: boolean;
5
+ newLayout: LayoutNode;
6
+ }>;
7
+ export default mqMessageOnFormLoadHandler;
8
+ //# sourceMappingURL=mqMessageOnFormLoadHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mqMessageOnFormLoadHandler.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,QAAA,MAAM,0BAA0B,UAAiB,GAAG;;;;EAsBnD,CAAA;AACD,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,62 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { SolidViewLayoutManager } from "../../../../../../components/core/common/SolidViewLayoutManager";
38
+ var mqMessageOnFormLoadHandler = function (event) { return __awaiter(void 0, void 0, void 0, function () {
39
+ var formViewLayout, layoutManager, customWidgetLayoutCode;
40
+ return __generator(this, function (_a) {
41
+ formViewLayout = event.formViewLayout;
42
+ layoutManager = new SolidViewLayoutManager(formViewLayout);
43
+ customWidgetLayoutCode = {
44
+ type: "custom",
45
+ attrs: {
46
+ name: "stagefield",
47
+ widget: "SolidMqMessageStageFormViewWIdget",
48
+ visible: true
49
+ },
50
+ };
51
+ if (!layoutManager.hasNode(customWidgetLayoutCode.attrs.name)) {
52
+ layoutManager.insertNodeBefore("messageType", customWidgetLayoutCode);
53
+ }
54
+ return [2 /*return*/, {
55
+ layoutChanged: true,
56
+ dataChanged: false,
57
+ newLayout: layoutManager.getLayout(),
58
+ }];
59
+ });
60
+ }); };
61
+ export default mqMessageOnFormLoadHandler;
62
+ //# sourceMappingURL=mqMessageOnFormLoadHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mqMessageOnFormLoadHandler.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AAGzG,IAAM,0BAA0B,GAAG,UAAO,KAAU;;;QACxC,cAAc,GAAK,KAAK,eAAV,CAAW;QAC3B,aAAa,GAAG,IAAI,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAE3D,sBAAsB,GAAe;YACvC,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACH,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,mCAAmC;gBAC3C,OAAO,EAAE,IAAI;aAChB;SACJ,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC3D,aAAa,CAAC,gBAAgB,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;SACzE;QAED,sBAAO;gBACH,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE;aACvC,EAAA;;KACJ,CAAA;AACD,eAAe,0BAA0B,CAAC","sourcesContent":["import { SolidViewLayoutManager } from \"../../../../../../components/core/common/SolidViewLayoutManager\";\nimport { LayoutNode } from \"../../../../../../types/solid-core\";\n\nconst mqMessageOnFormLoadHandler = async (event: any) => {\n const { formViewLayout } = event;\n const layoutManager = new SolidViewLayoutManager(formViewLayout);\n\n const customWidgetLayoutCode: LayoutNode = {\n type: \"custom\",\n attrs: {\n name: \"stagefield\",\n widget: \"SolidMqMessageStageFormViewWIdget\",\n visible :true\n },\n };\n\n if (!layoutManager.hasNode(customWidgetLayoutCode.attrs.name)) {\n layoutManager.insertNodeBefore(\"messageType\", customWidgetLayoutCode);\n }\n\n return {\n layoutChanged: true,\n dataChanged: false,\n newLayout: layoutManager.getLayout(),\n }\n}\nexport default mqMessageOnFormLoadHandler;\n"]}
@@ -0,0 +1,27 @@
1
+ import { SolidViewLayoutManager } from "../../../../../../components/core/common/SolidViewLayoutManager";
2
+ import { LayoutNode } from "../../../../../../types/solid-core";
3
+
4
+ const mqMessageOnFormLoadHandler = async (event: any) => {
5
+ const { formViewLayout } = event;
6
+ const layoutManager = new SolidViewLayoutManager(formViewLayout);
7
+
8
+ const customWidgetLayoutCode: LayoutNode = {
9
+ type: "custom",
10
+ attrs: {
11
+ name: "stagefield",
12
+ widget: "SolidMqMessageStageFormViewWIdget",
13
+ visible :true
14
+ },
15
+ };
16
+
17
+ if (!layoutManager.hasNode(customWidgetLayoutCode.attrs.name)) {
18
+ layoutManager.insertNodeBefore("messageType", customWidgetLayoutCode);
19
+ }
20
+
21
+ return {
22
+ layoutChanged: true,
23
+ dataChanged: false,
24
+ newLayout: layoutManager.getLayout(),
25
+ }
26
+ }
27
+ export default mqMessageOnFormLoadHandler;
@@ -0,0 +1,3 @@
1
+ import { SolidListFieldWidgetProps } from "../../../../../../types/solid-core";
2
+ export declare const SolidMqMessageStageListViewWidget: ({ rowData, fieldMetadata, }: SolidListFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SolidMqMessageStageListViewWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidMqMessageStageListViewWidget.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAG/E,eAAO,MAAM,iCAAiC,gCAG3C,yBAAyB,4CAQ3B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { MqMessageStageBadge } from "../ui/MqMessageStageBadge";
3
+ export var SolidMqMessageStageListViewWidget = function (_a) {
4
+ var rowData = _a.rowData, fieldMetadata = _a.fieldMetadata;
5
+ var value = (fieldMetadata === null || fieldMetadata === void 0 ? void 0 : fieldMetadata.name) ? rowData === null || rowData === void 0 ? void 0 : rowData[fieldMetadata.name] : "";
6
+ return (_jsx("div", { className: "mt-2", children: _jsx(MqMessageStageBadge, { stage: value, compact: true }) }));
7
+ };
8
+ //# sourceMappingURL=SolidMqMessageStageListViewWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidMqMessageStageListViewWidget.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,CAAC,IAAM,iCAAiC,GAAG,UAAC,EAGtB;QAFxB,OAAO,aAAA,EACP,aAAa,mBAAA;IAEb,IAAM,KAAK,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,EAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvE,OAAO,CACH,cAAK,SAAS,EAAC,MAAM,YACjB,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,SAAG,GAC3C,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { SolidListFieldWidgetProps } from \"../../../../../../types/solid-core\";\nimport { MqMessageStageBadge } from \"../ui/MqMessageStageBadge\";\n\nexport const SolidMqMessageStageListViewWidget = ({\n rowData,\n fieldMetadata,\n}: SolidListFieldWidgetProps) => {\n const value = fieldMetadata?.name ? rowData?.[fieldMetadata.name] : \"\";\n\n return (\n <div className=\"mt-2\">\n <MqMessageStageBadge stage={value} compact />\n </div>\n );\n};\n"]}
@@ -0,0 +1,15 @@
1
+ import { SolidListFieldWidgetProps } from "../../../../../../types/solid-core";
2
+ import { MqMessageStageBadge } from "../ui/MqMessageStageBadge";
3
+
4
+ export const SolidMqMessageStageListViewWidget = ({
5
+ rowData,
6
+ fieldMetadata,
7
+ }: SolidListFieldWidgetProps) => {
8
+ const value = fieldMetadata?.name ? rowData?.[fieldMetadata.name] : "";
9
+
10
+ return (
11
+ <div className="mt-2">
12
+ <MqMessageStageBadge stage={value} compact />
13
+ </div>
14
+ );
15
+ };
@@ -0,0 +1,3 @@
1
+ import { SolidListFieldWidgetProps } from "../../../../../../types/solid-core";
2
+ export declare const SolidMqMessagesSummarizeListHeaderAction: ({ solidListViewMetaData }: SolidListFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SolidMqMessagesSummarizeListHeaderAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidMqMessagesSummarizeListHeaderAction.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAyG/E,eAAO,MAAM,wCAAwC,8BAElD,yBAAyB,4CA6E3B,CAAC"}
@@ -0,0 +1,158 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
38
+ import { useState } from "react";
39
+ import { solidGet } from "../../../../../../http/solidHttp";
40
+ import { SolidButton } from "../../../../../shad-cn-ui";
41
+ import { useDispatch } from "react-redux";
42
+ import { closePopup } from "../../../../../../redux/features/popupSlice";
43
+ import { X } from "lucide-react";
44
+ // Chart.js imports
45
+ import { Chart as ChartJS, CategoryScale, LinearScale, BarElement, Tooltip, Legend } from "chart.js";
46
+ import { Bar } from "react-chartjs-2";
47
+ ChartJS.register(CategoryScale, LinearScale, BarElement, Tooltip, Legend);
48
+ var CHART_COLORS = [
49
+ "#3b82f6",
50
+ "#22c55e",
51
+ "#f59e0b",
52
+ "#ef4444",
53
+ "#8b5cf6",
54
+ "#14b8a6"
55
+ ];
56
+ var getColor = function (index) { return CHART_COLORS[index % CHART_COLORS.length]; };
57
+ // =========================
58
+ // Pivot Transform
59
+ // =========================
60
+ var transformToPivot = function (groupMeta) {
61
+ var pivot = {};
62
+ var stageSet = new Set();
63
+ groupMeta.forEach(function (item) {
64
+ var groupValue = item.groupValue || "";
65
+ var count = item.id_count || 0;
66
+ var parts = groupValue.split("_");
67
+ var stage = parts.pop();
68
+ var broker = parts.join("_");
69
+ if (!broker || !stage)
70
+ return;
71
+ stageSet.add(stage);
72
+ if (!pivot[broker])
73
+ pivot[broker] = {};
74
+ pivot[broker][stage] = count;
75
+ });
76
+ var stages = Array.from(stageSet);
77
+ Object.keys(pivot).forEach(function (broker) {
78
+ stages.forEach(function (stage) {
79
+ if (pivot[broker][stage] === undefined) {
80
+ pivot[broker][stage] = 0;
81
+ }
82
+ });
83
+ });
84
+ return { pivot: pivot, stages: stages };
85
+ };
86
+ // =========================
87
+ // Chart Component
88
+ // =========================
89
+ var PivotChart = function (_a) {
90
+ var data = _a.data;
91
+ var pivot = data.pivot, stages = data.stages;
92
+ var queues = Object.keys(pivot).sort(function (a, b) {
93
+ var sum = function (q) {
94
+ return stages.reduce(function (acc, s) { var _a; return acc + (((_a = pivot[q]) === null || _a === void 0 ? void 0 : _a[s]) || 0); }, 0);
95
+ };
96
+ return sum(b) - sum(a);
97
+ });
98
+ var chartData = {
99
+ labels: queues,
100
+ datasets: stages.map(function (stage, index) { return ({
101
+ label: stage,
102
+ data: queues.map(function (q) { var _a; return ((_a = pivot[q]) === null || _a === void 0 ? void 0 : _a[stage]) || 0; }),
103
+ backgroundColor: getColor(index)
104
+ }); })
105
+ };
106
+ var options = {
107
+ responsive: true,
108
+ plugins: { legend: { position: "top" } },
109
+ scales: {
110
+ x: { stacked: true },
111
+ y: { stacked: true, beginAtZero: true }
112
+ }
113
+ };
114
+ return _jsx(Bar, { data: chartData, options: options });
115
+ };
116
+ // =========================
117
+ // Widget
118
+ // =========================
119
+ export var SolidMqMessagesSummarizeListHeaderAction = function (_a) {
120
+ var solidListViewMetaData = _a.solidListViewMetaData;
121
+ var dispatch = useDispatch();
122
+ var _b = useState(false), loading = _b[0], setLoading = _b[1];
123
+ var _c = useState(null), pivotData = _c[0], setPivotData = _c[1];
124
+ var handleContinue = function () { return __awaiter(void 0, void 0, void 0, function () {
125
+ var selectedRows, filters, qs, res;
126
+ var _a, _b, _c;
127
+ return __generator(this, function (_d) {
128
+ switch (_d.label) {
129
+ case 0:
130
+ setLoading(true);
131
+ selectedRows = (solidListViewMetaData === null || solidListViewMetaData === void 0 ? void 0 : solidListViewMetaData.selectedRows) || [];
132
+ filters = selectedRows
133
+ .map(function (row, index) {
134
+ return "filters[$and][0][$or][".concat(index, "][id][$eq]=").concat(row.id);
135
+ })
136
+ .join("&");
137
+ qs = [
138
+ "offset=0",
139
+ "limit=100",
140
+ "groupBy[0]=messageBroker",
141
+ "groupBy[1]=stage",
142
+ "aggregates[0]=id:count",
143
+ filters || null
144
+ ]
145
+ .filter(Boolean)
146
+ .join("&");
147
+ return [4 /*yield*/, solidGet("/mq-message?".concat(qs))];
148
+ case 1:
149
+ res = _d.sent();
150
+ setPivotData(transformToPivot((_c = (_b = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.groupMeta) !== null && _c !== void 0 ? _c : []));
151
+ setLoading(false);
152
+ return [2 /*return*/];
153
+ }
154
+ });
155
+ }); };
156
+ return (_jsxs("div", { children: [_jsxs("div", { className: "solid-filter-dialog-head", children: [_jsx("div", { children: _jsx("h3", { className: "solid-filter-dialog-title", children: "MQ Message Summary" }) }), _jsx("button", { className: "solid-radix-dialog-close", "aria-label": "Close", onClick: function () { return dispatch(closePopup()); }, children: _jsx(X, { size: 16 }) })] }), _jsx("div", { className: "solid-filter-dialog-sep" }), _jsxs("div", { className: "solid-filter-dialog-body", children: [_jsxs("div", { style: { textAlign: "center", marginBottom: "10px", marginTop: "10px" }, children: [_jsxs("p", { style: { textAlign: "center", fontSize: "13px", marginBottom: "0" }, children: ["You can summarize based on selected records or the full dataset.", _jsx("br", {}), "Click ", _jsx("strong", { children: "Continue" }), " to load the summary."] }), _jsx(SolidButton, { size: "small", loading: loading, onClick: handleContinue, children: "Continue" })] }), pivotData && (_jsx("div", { style: { marginTop: "20px" }, children: _jsx(PivotChart, { data: pivotData }) }))] })] }));
157
+ };
158
+ //# sourceMappingURL=SolidMqMessagesSummarizeListHeaderAction.js.map