@solidxai/core-ui 0.1.7-beta.7 → 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.
- package/dist/adapters/auth/helper.d.ts +9 -0
- package/dist/adapters/auth/helper.d.ts.map +1 -0
- package/dist/adapters/auth/helper.js +37 -0
- package/dist/adapters/auth/helper.js.map +1 -0
- package/dist/adapters/auth/helper.ts +45 -0
- package/dist/adapters/auth/signInWithOtp.d.ts.map +1 -1
- package/dist/adapters/auth/signInWithOtp.js +3 -27
- package/dist/adapters/auth/signInWithOtp.js.map +1 -1
- package/dist/adapters/auth/signInWithOtp.ts +3 -23
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +68 -36
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +81 -42
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts +27 -5
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +25 -37
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +131 -52
- package/dist/components/core/chatter/SolidChatter.d.ts +2 -1
- package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +2 -2
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +2 -1
- package/dist/components/core/chatter/SolidChatterHeader.d.ts +1 -0
- package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.js +3 -3
- package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.tsx +4 -3
- package/dist/components/core/chatter/SolidMessageComposer.d.ts +2 -1
- package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.js +3 -1
- package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.tsx +3 -1
- package/dist/components/core/common/SolidViewLayoutManager.d.ts +17 -0
- package/dist/components/core/common/SolidViewLayoutManager.d.ts.map +1 -1
- package/dist/components/core/common/SolidViewLayoutManager.js +58 -1
- package/dist/components/core/common/SolidViewLayoutManager.js.map +1 -1
- package/dist/components/core/common/SolidViewLayoutManager.ts +43 -2
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js +111 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx +122 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.js +10 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/SolidMqMessageStageFormViewWIdget.tsx +21 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.js +62 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/form/mqMessageOnFormLoadHandler.tsx +27 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.js +8 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessageStageListViewWidget.tsx +15 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.d.ts +3 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js +158 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.tsx +185 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.d.ts +17 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js +52 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.tsx +83 -0
- package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
- package/dist/components/core/locales/SolidChatterLocaleTabView.js +7 -5
- package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
- package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +3 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.css +38 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts +1 -0
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -1
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +4 -3
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -1
- package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +13 -3
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +2 -1
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -1
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +6 -5
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -1
- package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +6 -7
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +89 -35
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +291 -165
- package/dist/components/layout/SolidAiStudioLayout.d.ts.map +1 -1
- package/dist/components/layout/SolidAiStudioLayout.js +123 -8
- package/dist/components/layout/SolidAiStudioLayout.js.map +1 -1
- package/dist/components/layout/SolidAiStudioLayout.tsx +70 -6
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +10 -6
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +11 -7
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +12 -0
- package/dist/redux/api/apiKeyApi.d.ts +8 -1
- package/dist/redux/api/apiKeyApi.d.ts.map +1 -1
- package/dist/redux/api/apiKeyApi.js +12 -1
- package/dist/redux/api/apiKeyApi.js.map +1 -1
- package/dist/redux/api/apiKeyApi.ts +9 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +16 -1
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +3 -1
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +3 -1
- package/dist/routes/guards/AuthGuard.d.ts +5 -1
- package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
- package/dist/routes/guards/AuthGuard.js +13 -2
- package/dist/routes/guards/AuthGuard.js.map +1 -1
- package/dist/routes/guards/AuthGuard.tsx +27 -3
- package/dist/routes/guards/GuestGuard.d.ts +2 -0
- package/dist/routes/guards/GuestGuard.d.ts.map +1 -0
- package/dist/routes/guards/GuestGuard.js +23 -0
- package/dist/routes/guards/GuestGuard.js.map +1 -0
- package/dist/routes/guards/GuestGuard.tsx +24 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -1
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +2 -1
- package/dist/types/solid-core.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidViewLayoutManager.js","sourceRoot":"","sources":["../../../../src/components/core/common/SolidViewLayoutManager.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE;;;;;;GAMG;AACH;IAII;;;;;OAKG;IACH,gCAAY,MAAkB;QAT9B,mCAAmC;QAC3B;;;;;WAAmB;QASvB,8DAA8D;QAC9D,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACjG,CAAC;IAED;;;;;;;OAOG;;;;;eACH,UAAiB,IAAgB,EAAE,IAAY;;YAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,OAAO,IAAI,CAAC;aACf;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,KAAkB,UAAa,EAAb,KAAA,IAAI,CAAC,QAAQ,EAAb,cAAa,EAAb,IAAa,EAAE;oBAA5B,IAAI,KAAK,SAAA;oBACV,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACzC,IAAI,KAAK;wBAAE,OAAO,KAAK,CAAC;iBAC3B;aACJ;YAED,wBAAwB;YACxB,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE;gBACzB,KAAkB,UAAsB,EAAtB,KAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB,EAAE;oBAArC,IAAM,GAAG,SAAA;oBACV,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,KAAK;wBAAE,OAAO,KAAK,CAAC;iBAC3B;aACJ;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;;;;;;eAED,UAAkB,IAAgB,EAAE,IAAY;;YAC5C,IAAM,KAAK,GAAiB,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpB;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,KAAkB,UAAa,EAAb,KAAA,IAAI,CAAC,QAAQ,EAAb,cAAa,EAAb,IAAa,EAAE;oBAA5B,IAAI,KAAK,SAAA;oBACV,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;iBAC9C;aACJ;YACD,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE;gBACzB,KAAkB,UAAsB,EAAtB,KAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB,EAAE;oBAArC,IAAM,GAAG,SAAA;oBACV,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;iBAC5C;aACJ;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAA4B,MAAkB,EAAE,IAAY;YAA5D,iBAUC;YATG,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAEnC,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAzB,CAAyB,CAAC,CAAC;YAC9E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB;gBACpD,OAAO,IAAI,CAAC;aACf;YAED,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,EAArC,CAAqC,CAAC,CAAC;QAClF,CAAC;;IAGD;;;;QAII;;;;;eACJ;YACI,mGAAmG;YACnG,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAqB,IAAY,EAAE,aAAuC;YACtE,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,KAAK,yBAAQ,IAAI,CAAC,KAAK,GAAK,aAAa,CAAE,CAAC;gBACjD,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAa,UAAkB,EAAE,OAAmB,EAAE,gBAAiC;YAAjC,iCAAA,EAAA,wBAAiC;YACnF,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAE5B,IAAI,gBAAgB,EAAE;gBAClB,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC5D,WAAW,CAAC,OAAO,CAAC,UAAC,IAAI;oBACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;wBAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;qBACtB;oBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;aACf;iBACI;gBACD,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC1D,IAAI,UAAU,EAAE;oBACZ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;wBACtB,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;qBAC5B;oBACD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB;QACL,CAAC;;IAGD;;;;;;OAMG;;;;;eACH,UAAW,IAAY;YACnB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACjC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAS,QAAoC,EAAE,IAA8B;YAA7E,iBAKC;YAL8C,qBAAA,EAAA,OAAmB,IAAI,CAAC,MAAM;YACzE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;aACpE;QACL,CAAC;;IAID;;;;;;OAMG;;;;;eACH,UAAkB,KAA+B;YAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,KAAkB,UAA+C,EAA/C,KAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAA8B,EAA/C,cAA+C,EAA/C,IAA+C,EAAE;gBAA9D,IAAM,GAAG,SAAA;gBACV,IAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAE5B,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;oBAClC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;oBAC/B,OAAO,GAAG,IAAI,CAAC;iBAClB;aACJ;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;;IAID;;;;;OAKG;;;;;eACH,UAAkB,KAA+B;YAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,IAAI,KAAK,GAAG,KAAK,CAAC;YAElB,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;gBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC1B,6CAA6C;oBAC7C,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjC,KAAK,GAAG,IAAI,CAAC;iBAChB;aACJ;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAqB,KAA+B;YAChD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;gBACrB,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE;oBACvB,aAAa;oBACb,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjC,OAAO,GAAG,IAAI,CAAC;iBAClB;aACJ;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;;IAGD;;;;;OAKG;;;;;eACH,UAAqB,IAA+B;YAChD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;gBAAnB,IAAM,GAAG,aAAA;gBACV,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE;oBACvB,aAAa;oBACb,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC3B,OAAO,GAAG,IAAI,CAAC;iBAClB;aACJ;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;;IAED;;;;OAIG;;;;;eACH,UAAc,MAAkB;;;YAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC,WAAW,uCAAX,WAAW,GAAK,EAAE,EAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UACI,MAAc,EACd,KAA+B;;YAE/B,IAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,0CAAE,IAAI,CAC9C,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,EAAzB,CAAyB,CACxC,CAAC;YAEF,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAE1B,MAAM,CAAC,KAAK,yBAAQ,MAAM,CAAC,KAAK,GAAK,KAAK,CAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QAChB,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAyB,MAAc;YACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YAEjD,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;YAE3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAChE,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,EAAzB,CAAyB,CACxC,CAAC;YAEF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,aAAa,CAAC;QAClE,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAkB,MAAc;YAC5B,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;;IAGD;;;;;OAKG;;;;;eACH,UAAe,MAAc;YACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;;IAGD;;;;;;OAMG;;;;;eACH,UAAoB,SAAiB,EAAE,MAAkB;;;YACrD,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YAE7B,YAAA,SAAS,CAAC,KAAK,EAAC,UAAU,uCAAV,UAAU,GAAK,EAAE,EAAC;YAClC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QAChB,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UACI,SAAiB,EACjB,MAAc,EACd,KAA+B;;YAE/B,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,UAAU,CAAA;gBAAE,OAAO,KAAK,CAAC;YAEhD,IAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAC1C,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,MAAM,EAAnB,CAAmB,CAClC,CAAC;YAEF,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAE1B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;;IAGD;;;;;;OAMG;;;;;eACH,UAAwB,SAAiB,EAAE,MAAc;;YACrD,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,UAAU,CAAA;gBAAE,OAAO,KAAK,CAAC;YAEhD,IAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;YAExD,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAC1D,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,MAAM,EAAnB,CAAmB,CAClC,CAAC;YAEF,OAAO,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa,CAAC;QAC/D,CAAC;;IAGL,6BAAC;AAAD,CAAC,AA1ZD,IA0ZC","sourcesContent":["import { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { LayoutAttribute, LayoutNode } from \"../../../types/solid-core\";\n\n/**\n * SolidViewLayoutManager\n *\n * Central manager for mutating Solid View layout trees.\n * Provides low-level tree operations and domain-specific helpers\n * for view attributes, form buttons, and row buttons.\n */\nexport class SolidViewLayoutManager {\n /** Internal mutable layout copy */\n private layout: LayoutNode;\n\n /**\n * Creates a new layout manager instance.\n * A deep copy of the provided layout is created to avoid side effects.\n *\n * @param layout - Original layout definition\n */\n constructor(layout: LayoutNode) {\n // Create a deep copy to prevent modifying the original object\n this.layout = structuredClone ? structuredClone(layout) : JSON.parse(JSON.stringify(layout));\n }\n\n /**\n * Recursively finds a layout node by its `attrs.name`.\n * Searches children and formButtons.\n *\n * @param node - Node to start searching from\n * @param name - Name of the node to find\n * @returns The matching LayoutNode or null\n */\n private findNode(node: LayoutNode, name: string): LayoutNode | null {\n if (node.attrs.name === name) {\n return node;\n }\n\n if (node.children) {\n for (let child of node.children) {\n const found = this.findNode(child, name);\n if (found) return found;\n }\n }\n\n // search in formButtons\n if (node.attrs?.formButtons) {\n for (const btn of node.attrs.formButtons) {\n const found = this.findNode(btn, name);\n if (found) return found;\n }\n }\n\n return null;\n }\n\n private findNodes(node: LayoutNode, name: string): LayoutNode[] {\n const nodes: LayoutNode[] = [];\n if (node.attrs.name === name) {\n nodes.push(node);\n }\n if (node.children) {\n for (let child of node.children) {\n nodes.push(...this.findNodes(child, name));\n }\n }\n if (node.attrs?.formButtons) {\n for (const btn of node.attrs.formButtons) {\n nodes.push(...this.findNodes(btn, name));\n }\n }\n return nodes;\n }\n\n /**\n * Recursively removes a node from the layout tree.\n *\n * @param parent - Parent node to search within\n * @param name - Name of the node to remove\n * @returns true if the node was removed\n */\n private removeNodeRecursive(parent: LayoutNode, name: string): boolean {\n if (!parent.children) return false;\n\n const index = parent.children.findIndex((child) => child.attrs.name === name);\n if (index !== -1) {\n parent.children.splice(index, 1); // Remove the node\n return true;\n }\n\n return parent.children.some((child) => this.removeNodeRecursive(child, name));\n }\n\n\n /**\n * Returns the managed layout instance.\n *\n * @returns Current layout tree\n */\n getLayout(): LayoutNode {\n // return structuredClone ? structuredClone(this.layout) : JSON.parse(JSON.stringify(this.layout));\n return this.layout;\n }\n\n /**\n * Updates attributes of a specific node.\n * This method adds or overrides attributes.\n *\n * @param name - Node name\n * @param newAttributes - Attributes to merge\n * @returns true if node was found and updated\n */\n updateNodeAttributes(name: string, newAttributes: Partial<LayoutAttribute>): boolean {\n const node = this.findNode(this.layout, name);\n if (node) {\n node.attrs = { ...node.attrs, ...newAttributes };\n return true;\n }\n return false;\n }\n\n /**\n * Adds a child node to a parent node.\n *\n * @param parentName - Name of the parent node\n * @param newNode - Child layout node to add\n * @param addChildrenToAll - If true, adds the child node to all nodes with the given parent name\n * @returns true if parent exists and child was added\n */\n addChildNode(parentName: string, newNode: LayoutNode, addChildrenToAll: boolean = false): boolean {\n console.log(`timepass....`);\n \n if (addChildrenToAll) {\n const parentNodes = this.findNodes(this.layout, parentName);\n parentNodes.forEach((node) => {\n if (!node.children) {\n node.children = [];\n }\n node.children.push(newNode);\n });\n return true;\n }\n else {\n const parentNode = this.findNode(this.layout, parentName);\n if (parentNode) {\n if (!parentNode.children) {\n parentNode.children = [];\n }\n parentNode.children.push(newNode);\n return true;\n }\n return false;\n }\n }\n\n\n /**\n * Removes a node and its subtree.\n * Root node removal is prevented.\n *\n * @param name - Name of the node to remove\n * @returns true if node was removed\n */\n removeNode(name: string): boolean {\n if (this.layout.attrs.name === name) {\n console.warn(ERROR_MESSAGES.REMOVE_ROOT_NODE);\n return false;\n }\n\n return this.removeNodeRecursive(this.layout, name);\n }\n\n /**\n * Traverses the entire layout tree and executes a callback for each node.\n *\n * @param callback - Function executed for each node\n * @param node - Starting node (defaults to root)\n */\n traverse(callback: (node: LayoutNode) => void, node: LayoutNode = this.layout) {\n callback(node);\n if (node.children) {\n node.children.forEach((child) => this.traverse(callback, child));\n }\n }\n\n\n\n /**\n * Adds or updates view-level attributes.\n * Existing attributes are updated, missing attributes are added.\n *\n * @param attrs - Attributes to set on the view\n * @returns true if at least one attribute was applied\n */\n setViewAttributes(attrs: Partial<LayoutAttribute>): boolean {\n const viewNode = this.findNode(this.layout, this.layout.attrs.name);\n if (!viewNode) return false;\n\n let changed = false;\n\n for (const key of Object.keys(attrs) as (keyof LayoutAttribute)[]) {\n const newValue = attrs[key];\n\n if (viewNode.attrs[key] !== newValue) {\n viewNode.attrs[key] = newValue;\n changed = true;\n }\n }\n\n return changed;\n }\n\n\n\n /**\n * Adds view-level attributes only if they do not already exist.\n *\n * @param attrs - Attributes to add\n * @returns true if at least one attribute was added\n */\n addViewAttributes(attrs: Partial<LayoutAttribute>): boolean {\n const viewNode = this.findNode(this.layout, this.layout.attrs.name);\n if (!viewNode) return false;\n\n let added = false;\n\n for (const key in attrs) {\n if (!(key in viewNode.attrs)) {\n // @ts-ignore – layout attributes are dynamic\n viewNode.attrs[key] = attrs[key];\n added = true;\n }\n }\n\n return added;\n }\n\n /**\n * Updates existing view-level attributes.\n * Attributes that do not exist are ignored.\n *\n * @param attrs - Attributes to update\n * @returns true if at least one attribute was updated\n */\n updateViewAttributes(attrs: Partial<LayoutAttribute>): boolean {\n const viewNode = this.findNode(this.layout, this.layout.attrs.name);\n if (!viewNode) return false;\n\n let updated = false;\n\n for (const key in attrs) {\n if (key in viewNode.attrs) {\n // @ts-ignore\n viewNode.attrs[key] = attrs[key];\n updated = true;\n }\n }\n\n return updated;\n }\n\n\n /**\n * Removes specific view-level attributes.\n *\n * @param keys - Attribute keys to remove\n * @returns true if at least one attribute was removed\n */\n removeViewAttributes(keys: (keyof LayoutAttribute)[]): boolean {\n const viewNode = this.findNode(this.layout, this.layout.attrs.name);\n if (!viewNode) return false;\n\n let removed = false;\n\n for (const key of keys) {\n if (key in viewNode.attrs) {\n // @ts-ignore\n delete viewNode.attrs[key];\n removed = true;\n }\n }\n\n return removed;\n }\n\n /**\n * Adds a new form-level button.\n *\n * @param button - Button layout node\n */\n addFormButton(button: LayoutNode): void {\n this.layout.attrs.formButtons ??= [];\n this.layout.attrs.formButtons.push(button);\n }\n\n /**\n * Updates a form button identified by its action.\n *\n * @param action - Button action identifier\n * @param attrs - Attributes to update\n * @returns true if button was found and updated\n */\n updateFormButtonByAction(\n action: string,\n attrs: Partial<LayoutAttribute>\n ): boolean {\n const button = this.layout.attrs.formButtons?.find(\n (b: any) => b.attrs.action === action\n );\n\n if (!button) return false;\n\n button.attrs = { ...button.attrs, ...attrs };\n return true;\n }\n\n /**\n * Removes a form button by its action.\n *\n * @param action - Button action identifier\n * @returns true if button was removed\n */\n removeFormButtonByAction(action: string): boolean {\n if (!this.layout.attrs.formButtons) return false;\n\n const initialLength = this.layout.attrs.formButtons.length;\n\n this.layout.attrs.formButtons = this.layout.attrs.formButtons.filter(\n (b: any) => b.attrs.action !== action\n );\n\n return this.layout.attrs.formButtons.length !== initialLength;\n }\n\n /**\n * Disables a form-level button.\n *\n * @param action - Button action identifier\n * @returns true if button was disabled\n */\n disableFormButton(action: string): boolean {\n return this.updateFormButtonByAction(action, { disabled: true });\n }\n\n\n /**\n * Hides a form-level button.\n *\n * @param action - Button action identifier\n * @returns true if button was hidden\n */\n hideFormButton(action: string): boolean {\n return this.updateFormButtonByAction(action, { visible: false });\n }\n\n\n /**\n * Adds a row-level button to a field.\n *\n * @param fieldName - Target field name\n * @param button - Button definition\n * @returns true if field exists and button was added\n */\n addRowButtonToField(fieldName: string, button: LayoutNode): boolean {\n const fieldNode = this.findNode(this.layout, fieldName);\n if (!fieldNode) return false;\n\n fieldNode.attrs.rowButtons ??= [];\n fieldNode.attrs.rowButtons.push(button);\n return true;\n }\n\n /**\n * Updates a row-level button for a field.\n *\n * @param fieldName - Field name\n * @param action - Button action identifier\n * @param attrs - Attributes to update\n * @returns true if button was updated\n */\n updateRowButtonByAction(\n fieldName: string,\n action: string,\n attrs: Partial<LayoutAttribute>\n ): boolean {\n const fieldNode = this.findNode(this.layout, fieldName);\n if (!fieldNode?.attrs?.rowButtons) return false;\n\n const button = fieldNode.attrs.rowButtons.find(\n (b: any) => b.action === action\n );\n\n if (!button) return false;\n\n Object.assign(button, attrs);\n return true;\n }\n\n\n /**\n * Removes a row-level button from a field.\n *\n * @param fieldName - Field name\n * @param action - Button action identifier\n * @returns true if button was removed\n */\n removeRowButtonByAction(fieldName: string, action: string): boolean {\n const fieldNode = this.findNode(this.layout, fieldName);\n if (!fieldNode?.attrs?.rowButtons) return false;\n\n const initialLength = fieldNode.attrs.rowButtons.length;\n\n fieldNode.attrs.rowButtons = fieldNode.attrs.rowButtons.filter(\n (b: any) => b.action !== action\n );\n\n return fieldNode.attrs.rowButtons.length !== initialLength;\n }\n\n\n}"]}
|
|
1
|
+
{"version":3,"file":"SolidViewLayoutManager.js","sourceRoot":"","sources":["../../../../src/components/core/common/SolidViewLayoutManager.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE;;;;;;GAMG;AACH;IAUI;;;;;OAKG;IACH,gCAAY,MAAkB;QAf9B,mCAAmC;QAC3B;;;;;WAAmB;QAevB,8DAA8D;QAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;;;;;eAfD,UAAiB,KAAQ;YACrB,OAAO,OAAO,eAAe,KAAK,UAAU;gBACxC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC;gBACxB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;;IAaD;;;;;;;OAOG;;;;;eACH,UAAiB,IAAgB,EAAE,IAAY;;YAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,OAAO,IAAI,CAAC;aACf;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,KAAkB,UAAa,EAAb,KAAA,IAAI,CAAC,QAAQ,EAAb,cAAa,EAAb,IAAa,EAAE;oBAA5B,IAAI,KAAK,SAAA;oBACV,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACzC,IAAI,KAAK;wBAAE,OAAO,KAAK,CAAC;iBAC3B;aACJ;YAED,wBAAwB;YACxB,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE;gBACzB,KAAkB,UAAsB,EAAtB,KAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB,EAAE;oBAArC,IAAM,GAAG,SAAA;oBACV,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,KAAK;wBAAE,OAAO,KAAK,CAAC;iBAC3B;aACJ;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;;;;;;eAED,UAAkB,IAAgB,EAAE,IAAY;;YAC5C,IAAM,KAAK,GAAiB,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpB;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,KAAkB,UAAa,EAAb,KAAA,IAAI,CAAC,QAAQ,EAAb,cAAa,EAAb,IAAa,EAAE;oBAA5B,IAAI,KAAK,SAAA;oBACV,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;iBAC9C;aACJ;YACD,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE;gBACzB,KAAkB,UAAsB,EAAtB,KAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB,EAAE;oBAArC,IAAM,GAAG,SAAA;oBACV,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;iBAC5C;aACJ;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAA4B,MAAkB,EAAE,IAAY;YAA5D,iBAUC;YATG,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAEnC,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAzB,CAAyB,CAAC,CAAC;YAC9E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB;gBACpD,OAAO,IAAI,CAAC;aACf;YAED,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,EAArC,CAAqC,CAAC,CAAC;QAClF,CAAC;;;;;;eAED,UAAkC,MAAkB,EAAE,UAAkB,EAAE,OAAmB;YAA7F,iBAYC;YAXG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAEnE,IAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,EAA/B,CAA+B,CAAC,CAAC;YAC1F,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;gBACpB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC;aACf;YAED,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAK;gBAC9B,OAAA,KAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;YAA1D,CAA0D,CAC7D,CAAC;QACN,CAAC;;IAGD;;;;QAII;;;;;eACJ;YACI,mGAAmG;YACnG,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAqB,IAAY,EAAE,aAAuC;YACtE,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,KAAK,yBAAQ,IAAI,CAAC,KAAK,GAAK,aAAa,CAAE,CAAC;gBACjD,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAQ,IAAY;YAChB,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAiB,UAAkB,EAAE,OAAmB;YACpD,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAa,UAAkB,EAAE,OAAmB,EAAE,gBAAiC;YAAjC,iCAAA,EAAA,wBAAiC;YACnF,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAE5B,IAAI,gBAAgB,EAAE;gBAClB,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC5D,WAAW,CAAC,OAAO,CAAC,UAAC,IAAI;oBACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;wBAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;qBACtB;oBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;aACf;iBACI;gBACD,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC1D,IAAI,UAAU,EAAE;oBACZ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;wBACtB,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;qBAC5B;oBACD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB;QACL,CAAC;;IAGD;;;;;;OAMG;;;;;eACH,UAAW,IAAY;YACnB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACjC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAS,QAAoC,EAAE,IAA8B;YAA7E,iBAKC;YAL8C,qBAAA,EAAA,OAAmB,IAAI,CAAC,MAAM;YACzE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;aACpE;QACL,CAAC;;IAID;;;;;;OAMG;;;;;eACH,UAAkB,KAA+B;YAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,KAAkB,UAA+C,EAA/C,KAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAA8B,EAA/C,cAA+C,EAA/C,IAA+C,EAAE;gBAA9D,IAAM,GAAG,SAAA;gBACV,IAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAE5B,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;oBAClC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;oBAC/B,OAAO,GAAG,IAAI,CAAC;iBAClB;aACJ;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;;IAID;;;;;OAKG;;;;;eACH,UAAkB,KAA+B;YAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,IAAI,KAAK,GAAG,KAAK,CAAC;YAElB,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;gBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC1B,6CAA6C;oBAC7C,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjC,KAAK,GAAG,IAAI,CAAC;iBAChB;aACJ;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAqB,KAA+B;YAChD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;gBACrB,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE;oBACvB,aAAa;oBACb,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjC,OAAO,GAAG,IAAI,CAAC;iBAClB;aACJ;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;;IAGD;;;;;OAKG;;;;;eACH,UAAqB,IAA+B;YAChD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;gBAAnB,IAAM,GAAG,aAAA;gBACV,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE;oBACvB,aAAa;oBACb,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC3B,OAAO,GAAG,IAAI,CAAC;iBAClB;aACJ;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;;IAED;;;;OAIG;;;;;eACH,UAAc,MAAkB;;;YAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC,WAAW,uCAAX,WAAW,GAAK,EAAE,EAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UACI,MAAc,EACd,KAA+B;;YAE/B,IAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,0CAAE,IAAI,CAC9C,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,EAAzB,CAAyB,CACxC,CAAC;YAEF,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAE1B,MAAM,CAAC,KAAK,yBAAQ,MAAM,CAAC,KAAK,GAAK,KAAK,CAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QAChB,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAyB,MAAc;YACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YAEjD,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;YAE3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAChE,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,EAAzB,CAAyB,CACxC,CAAC;YAEF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,aAAa,CAAC;QAClE,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAkB,MAAc;YAC5B,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;;IAGD;;;;;OAKG;;;;;eACH,UAAe,MAAc;YACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;;IAGD;;;;;;OAMG;;;;;eACH,UAAoB,SAAiB,EAAE,MAAkB;;;YACrD,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YAE7B,YAAA,SAAS,CAAC,KAAK,EAAC,UAAU,uCAAV,UAAU,GAAK,EAAE,EAAC;YAClC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QAChB,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UACI,SAAiB,EACjB,MAAc,EACd,KAA+B;;YAE/B,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,UAAU,CAAA;gBAAE,OAAO,KAAK,CAAC;YAEhD,IAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAC1C,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,MAAM,EAAnB,CAAmB,CAClC,CAAC;YAEF,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAE1B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;;IAGD;;;;;;OAMG;;;;;eACH,UAAwB,SAAiB,EAAE,MAAc;;YACrD,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,UAAU,CAAA;gBAAE,OAAO,KAAK,CAAC;YAEhD,IAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;YAExD,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAC1D,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,MAAM,EAAnB,CAAmB,CAClC,CAAC;YAEF,OAAO,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa,CAAC;QAC/D,CAAC;;IAGL,6BAAC;AAAD,CAAC,AAncD,IAmcC","sourcesContent":["import { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { LayoutAttribute, LayoutNode } from \"../../../types/solid-core\";\n\n/**\n * SolidViewLayoutManager\n *\n * Central manager for mutating Solid View layout trees.\n * Provides low-level tree operations and domain-specific helpers\n * for view attributes, form buttons, and row buttons.\n */\nexport class SolidViewLayoutManager {\n /** Internal mutable layout copy */\n private layout: LayoutNode;\n\n private clone<T>(value: T): T {\n return typeof structuredClone === \"function\"\n ? structuredClone(value)\n : JSON.parse(JSON.stringify(value));\n }\n\n /**\n * Creates a new layout manager instance.\n * A deep copy of the provided layout is created to avoid side effects.\n *\n * @param layout - Original layout definition\n */\n constructor(layout: LayoutNode) {\n // Create a deep copy to prevent modifying the original object\n this.layout = this.clone(layout);\n }\n\n /**\n * Recursively finds a layout node by its `attrs.name`.\n * Searches children and formButtons.\n *\n * @param node - Node to start searching from\n * @param name - Name of the node to find\n * @returns The matching LayoutNode or null\n */\n private findNode(node: LayoutNode, name: string): LayoutNode | null {\n if (node.attrs.name === name) {\n return node;\n }\n\n if (node.children) {\n for (let child of node.children) {\n const found = this.findNode(child, name);\n if (found) return found;\n }\n }\n\n // search in formButtons\n if (node.attrs?.formButtons) {\n for (const btn of node.attrs.formButtons) {\n const found = this.findNode(btn, name);\n if (found) return found;\n }\n }\n\n return null;\n }\n\n private findNodes(node: LayoutNode, name: string): LayoutNode[] {\n const nodes: LayoutNode[] = [];\n if (node.attrs.name === name) {\n nodes.push(node);\n }\n if (node.children) {\n for (let child of node.children) {\n nodes.push(...this.findNodes(child, name));\n }\n }\n if (node.attrs?.formButtons) {\n for (const btn of node.attrs.formButtons) {\n nodes.push(...this.findNodes(btn, name));\n }\n }\n return nodes;\n }\n\n /**\n * Recursively removes a node from the layout tree.\n *\n * @param parent - Parent node to search within\n * @param name - Name of the node to remove\n * @returns true if the node was removed\n */\n private removeNodeRecursive(parent: LayoutNode, name: string): boolean {\n if (!parent.children) return false;\n\n const index = parent.children.findIndex((child) => child.attrs.name === name);\n if (index !== -1) {\n parent.children.splice(index, 1); // Remove the node\n return true;\n }\n\n return parent.children.some((child) => this.removeNodeRecursive(child, name));\n }\n\n private insertNodeBeforeRecursive(parent: LayoutNode, targetName: string, newNode: LayoutNode): boolean {\n if (!parent.children || parent.children.length === 0) return false;\n\n const targetIndex = parent.children.findIndex((child) => child.attrs.name === targetName);\n if (targetIndex !== -1) {\n parent.children.splice(targetIndex, 0, this.clone(newNode));\n return true;\n }\n\n return parent.children.some((child) =>\n this.insertNodeBeforeRecursive(child, targetName, newNode)\n );\n }\n\n\n /**\n * Returns the managed layout instance.\n *\n * @returns Current layout tree\n */\n getLayout(): LayoutNode {\n // return structuredClone ? structuredClone(this.layout) : JSON.parse(JSON.stringify(this.layout));\n return this.layout;\n }\n\n /**\n * Updates attributes of a specific node.\n * This method adds or overrides attributes.\n *\n * @param name - Node name\n * @param newAttributes - Attributes to merge\n * @returns true if node was found and updated\n */\n updateNodeAttributes(name: string, newAttributes: Partial<LayoutAttribute>): boolean {\n const node = this.findNode(this.layout, name);\n if (node) {\n node.attrs = { ...node.attrs, ...newAttributes };\n return true;\n }\n return false;\n }\n\n /**\n * Checks whether a node exists by name.\n *\n * @param name - Node name\n * @returns true if found\n */\n hasNode(name: string): boolean {\n return !!this.findNode(this.layout, name);\n }\n\n /**\n * Inserts a node before the first matching target node.\n *\n * @param targetName - Target node name\n * @param newNode - Node to insert\n * @returns true if insertion was successful\n */\n insertNodeBefore(targetName: string, newNode: LayoutNode): boolean {\n return this.insertNodeBeforeRecursive(this.layout, targetName, newNode);\n }\n\n /**\n * Adds a child node to a parent node.\n *\n * @param parentName - Name of the parent node\n * @param newNode - Child layout node to add\n * @param addChildrenToAll - If true, adds the child node to all nodes with the given parent name\n * @returns true if parent exists and child was added\n */\n addChildNode(parentName: string, newNode: LayoutNode, addChildrenToAll: boolean = false): boolean {\n console.log(`timepass....`);\n \n if (addChildrenToAll) {\n const parentNodes = this.findNodes(this.layout, parentName);\n parentNodes.forEach((node) => {\n if (!node.children) {\n node.children = [];\n }\n node.children.push(newNode);\n });\n return true;\n }\n else {\n const parentNode = this.findNode(this.layout, parentName);\n if (parentNode) {\n if (!parentNode.children) {\n parentNode.children = [];\n }\n parentNode.children.push(newNode);\n return true;\n }\n return false;\n }\n }\n\n\n /**\n * Removes a node and its subtree.\n * Root node removal is prevented.\n *\n * @param name - Name of the node to remove\n * @returns true if node was removed\n */\n removeNode(name: string): boolean {\n if (this.layout.attrs.name === name) {\n console.warn(ERROR_MESSAGES.REMOVE_ROOT_NODE);\n return false;\n }\n\n return this.removeNodeRecursive(this.layout, name);\n }\n\n /**\n * Traverses the entire layout tree and executes a callback for each node.\n *\n * @param callback - Function executed for each node\n * @param node - Starting node (defaults to root)\n */\n traverse(callback: (node: LayoutNode) => void, node: LayoutNode = this.layout) {\n callback(node);\n if (node.children) {\n node.children.forEach((child) => this.traverse(callback, child));\n }\n }\n\n\n\n /**\n * Adds or updates view-level attributes.\n * Existing attributes are updated, missing attributes are added.\n *\n * @param attrs - Attributes to set on the view\n * @returns true if at least one attribute was applied\n */\n setViewAttributes(attrs: Partial<LayoutAttribute>): boolean {\n const viewNode = this.findNode(this.layout, this.layout.attrs.name);\n if (!viewNode) return false;\n\n let changed = false;\n\n for (const key of Object.keys(attrs) as (keyof LayoutAttribute)[]) {\n const newValue = attrs[key];\n\n if (viewNode.attrs[key] !== newValue) {\n viewNode.attrs[key] = newValue;\n changed = true;\n }\n }\n\n return changed;\n }\n\n\n\n /**\n * Adds view-level attributes only if they do not already exist.\n *\n * @param attrs - Attributes to add\n * @returns true if at least one attribute was added\n */\n addViewAttributes(attrs: Partial<LayoutAttribute>): boolean {\n const viewNode = this.findNode(this.layout, this.layout.attrs.name);\n if (!viewNode) return false;\n\n let added = false;\n\n for (const key in attrs) {\n if (!(key in viewNode.attrs)) {\n // @ts-ignore – layout attributes are dynamic\n viewNode.attrs[key] = attrs[key];\n added = true;\n }\n }\n\n return added;\n }\n\n /**\n * Updates existing view-level attributes.\n * Attributes that do not exist are ignored.\n *\n * @param attrs - Attributes to update\n * @returns true if at least one attribute was updated\n */\n updateViewAttributes(attrs: Partial<LayoutAttribute>): boolean {\n const viewNode = this.findNode(this.layout, this.layout.attrs.name);\n if (!viewNode) return false;\n\n let updated = false;\n\n for (const key in attrs) {\n if (key in viewNode.attrs) {\n // @ts-ignore\n viewNode.attrs[key] = attrs[key];\n updated = true;\n }\n }\n\n return updated;\n }\n\n\n /**\n * Removes specific view-level attributes.\n *\n * @param keys - Attribute keys to remove\n * @returns true if at least one attribute was removed\n */\n removeViewAttributes(keys: (keyof LayoutAttribute)[]): boolean {\n const viewNode = this.findNode(this.layout, this.layout.attrs.name);\n if (!viewNode) return false;\n\n let removed = false;\n\n for (const key of keys) {\n if (key in viewNode.attrs) {\n // @ts-ignore\n delete viewNode.attrs[key];\n removed = true;\n }\n }\n\n return removed;\n }\n\n /**\n * Adds a new form-level button.\n *\n * @param button - Button layout node\n */\n addFormButton(button: LayoutNode): void {\n this.layout.attrs.formButtons ??= [];\n this.layout.attrs.formButtons.push(button);\n }\n\n /**\n * Updates a form button identified by its action.\n *\n * @param action - Button action identifier\n * @param attrs - Attributes to update\n * @returns true if button was found and updated\n */\n updateFormButtonByAction(\n action: string,\n attrs: Partial<LayoutAttribute>\n ): boolean {\n const button = this.layout.attrs.formButtons?.find(\n (b: any) => b.attrs.action === action\n );\n\n if (!button) return false;\n\n button.attrs = { ...button.attrs, ...attrs };\n return true;\n }\n\n /**\n * Removes a form button by its action.\n *\n * @param action - Button action identifier\n * @returns true if button was removed\n */\n removeFormButtonByAction(action: string): boolean {\n if (!this.layout.attrs.formButtons) return false;\n\n const initialLength = this.layout.attrs.formButtons.length;\n\n this.layout.attrs.formButtons = this.layout.attrs.formButtons.filter(\n (b: any) => b.attrs.action !== action\n );\n\n return this.layout.attrs.formButtons.length !== initialLength;\n }\n\n /**\n * Disables a form-level button.\n *\n * @param action - Button action identifier\n * @returns true if button was disabled\n */\n disableFormButton(action: string): boolean {\n return this.updateFormButtonByAction(action, { disabled: true });\n }\n\n\n /**\n * Hides a form-level button.\n *\n * @param action - Button action identifier\n * @returns true if button was hidden\n */\n hideFormButton(action: string): boolean {\n return this.updateFormButtonByAction(action, { visible: false });\n }\n\n\n /**\n * Adds a row-level button to a field.\n *\n * @param fieldName - Target field name\n * @param button - Button definition\n * @returns true if field exists and button was added\n */\n addRowButtonToField(fieldName: string, button: LayoutNode): boolean {\n const fieldNode = this.findNode(this.layout, fieldName);\n if (!fieldNode) return false;\n\n fieldNode.attrs.rowButtons ??= [];\n fieldNode.attrs.rowButtons.push(button);\n return true;\n }\n\n /**\n * Updates a row-level button for a field.\n *\n * @param fieldName - Field name\n * @param action - Button action identifier\n * @param attrs - Attributes to update\n * @returns true if button was updated\n */\n updateRowButtonByAction(\n fieldName: string,\n action: string,\n attrs: Partial<LayoutAttribute>\n ): boolean {\n const fieldNode = this.findNode(this.layout, fieldName);\n if (!fieldNode?.attrs?.rowButtons) return false;\n\n const button = fieldNode.attrs.rowButtons.find(\n (b: any) => b.action === action\n );\n\n if (!button) return false;\n\n Object.assign(button, attrs);\n return true;\n }\n\n\n /**\n * Removes a row-level button from a field.\n *\n * @param fieldName - Field name\n * @param action - Button action identifier\n * @returns true if button was removed\n */\n removeRowButtonByAction(fieldName: string, action: string): boolean {\n const fieldNode = this.findNode(this.layout, fieldName);\n if (!fieldNode?.attrs?.rowButtons) return false;\n\n const initialLength = fieldNode.attrs.rowButtons.length;\n\n fieldNode.attrs.rowButtons = fieldNode.attrs.rowButtons.filter(\n (b: any) => b.action !== action\n );\n\n return fieldNode.attrs.rowButtons.length !== initialLength;\n }\n\n\n}\n"]}
|
|
@@ -12,6 +12,12 @@ export class SolidViewLayoutManager {
|
|
|
12
12
|
/** Internal mutable layout copy */
|
|
13
13
|
private layout: LayoutNode;
|
|
14
14
|
|
|
15
|
+
private clone<T>(value: T): T {
|
|
16
|
+
return typeof structuredClone === "function"
|
|
17
|
+
? structuredClone(value)
|
|
18
|
+
: JSON.parse(JSON.stringify(value));
|
|
19
|
+
}
|
|
20
|
+
|
|
15
21
|
/**
|
|
16
22
|
* Creates a new layout manager instance.
|
|
17
23
|
* A deep copy of the provided layout is created to avoid side effects.
|
|
@@ -20,7 +26,7 @@ export class SolidViewLayoutManager {
|
|
|
20
26
|
*/
|
|
21
27
|
constructor(layout: LayoutNode) {
|
|
22
28
|
// Create a deep copy to prevent modifying the original object
|
|
23
|
-
this.layout =
|
|
29
|
+
this.layout = this.clone(layout);
|
|
24
30
|
}
|
|
25
31
|
|
|
26
32
|
/**
|
|
@@ -91,6 +97,20 @@ export class SolidViewLayoutManager {
|
|
|
91
97
|
return parent.children.some((child) => this.removeNodeRecursive(child, name));
|
|
92
98
|
}
|
|
93
99
|
|
|
100
|
+
private insertNodeBeforeRecursive(parent: LayoutNode, targetName: string, newNode: LayoutNode): boolean {
|
|
101
|
+
if (!parent.children || parent.children.length === 0) return false;
|
|
102
|
+
|
|
103
|
+
const targetIndex = parent.children.findIndex((child) => child.attrs.name === targetName);
|
|
104
|
+
if (targetIndex !== -1) {
|
|
105
|
+
parent.children.splice(targetIndex, 0, this.clone(newNode));
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return parent.children.some((child) =>
|
|
110
|
+
this.insertNodeBeforeRecursive(child, targetName, newNode)
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
94
114
|
|
|
95
115
|
/**
|
|
96
116
|
* Returns the managed layout instance.
|
|
@@ -119,6 +139,27 @@ export class SolidViewLayoutManager {
|
|
|
119
139
|
return false;
|
|
120
140
|
}
|
|
121
141
|
|
|
142
|
+
/**
|
|
143
|
+
* Checks whether a node exists by name.
|
|
144
|
+
*
|
|
145
|
+
* @param name - Node name
|
|
146
|
+
* @returns true if found
|
|
147
|
+
*/
|
|
148
|
+
hasNode(name: string): boolean {
|
|
149
|
+
return !!this.findNode(this.layout, name);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Inserts a node before the first matching target node.
|
|
154
|
+
*
|
|
155
|
+
* @param targetName - Target node name
|
|
156
|
+
* @param newNode - Node to insert
|
|
157
|
+
* @returns true if insertion was successful
|
|
158
|
+
*/
|
|
159
|
+
insertNodeBefore(targetName: string, newNode: LayoutNode): boolean {
|
|
160
|
+
return this.insertNodeBeforeRecursive(this.layout, targetName, newNode);
|
|
161
|
+
}
|
|
162
|
+
|
|
122
163
|
/**
|
|
123
164
|
* Adds a child node to a parent node.
|
|
124
165
|
*
|
|
@@ -418,4 +459,4 @@ export class SolidViewLayoutManager {
|
|
|
418
459
|
}
|
|
419
460
|
|
|
420
461
|
|
|
421
|
-
}
|
|
462
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SolidFormFieldWidgetProps } from "../../../../../../types/solid-core";
|
|
2
|
+
export declare const SolidChatterMessageCoModelEntityIdFormViewWidget: ({ formik, fieldContext }: SolidFormFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAK/E,eAAO,MAAM,gDAAgD,6BAA8B,yBAAyB,4CA6DnH,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
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 { useEffect, useState } from "react";
|
|
39
|
+
import { ExternalLink } from "lucide-react";
|
|
40
|
+
import { solidGet } from "../../../../../../http/solidHttp";
|
|
41
|
+
import { snakeCase } from "lodash";
|
|
42
|
+
export var SolidChatterMessageCoModelEntityIdFormViewWidget = function (_a) {
|
|
43
|
+
var _b, _c, _d, _e, _f, _g;
|
|
44
|
+
var formik = _a.formik, fieldContext = _a.fieldContext;
|
|
45
|
+
var fieldMetadata = fieldContext.fieldMetadata;
|
|
46
|
+
var fieldLayoutInfo = fieldContext.field;
|
|
47
|
+
var fieldLabel = (_b = fieldLayoutInfo.attrs.label) !== null && _b !== void 0 ? _b : fieldMetadata.displayName;
|
|
48
|
+
var fieldName = (_c = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _c === void 0 ? void 0 : _c.name;
|
|
49
|
+
var _h = useState('#'), redirectUrl = _h[0], setRedirectUrl = _h[1];
|
|
50
|
+
var value = (_d = formik.values) === null || _d === void 0 ? void 0 : _d[fieldName];
|
|
51
|
+
var coModelName = (_e = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.data) === null || _e === void 0 ? void 0 : _e.coModelName;
|
|
52
|
+
var modelDisplayName = (_f = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.data) === null || _f === void 0 ? void 0 : _f.modelDisplayName;
|
|
53
|
+
var modelUserKey = (_g = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.data) === null || _g === void 0 ? void 0 : _g.modelUserKey;
|
|
54
|
+
useEffect(function () {
|
|
55
|
+
if (coModelName) {
|
|
56
|
+
var fetchModel = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
57
|
+
var qs, res, model, module_1, moduleName, modelSingularName, modelSlug, redirectUrl_1;
|
|
58
|
+
var _a, _b, _c, _d, _e;
|
|
59
|
+
return __generator(this, function (_f) {
|
|
60
|
+
switch (_f.label) {
|
|
61
|
+
case 0:
|
|
62
|
+
qs = "offset=0&limit=25&filters[$and][0][$or][0][singularName][$eq]=".concat(coModelName, "&populate[0]=module&locale=en&sort[0]=id%3Adesc");
|
|
63
|
+
return [4 /*yield*/, solidGet("/model-metadata?".concat(qs))];
|
|
64
|
+
case 1:
|
|
65
|
+
res = _f.sent();
|
|
66
|
+
if (((_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.records) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
|
67
|
+
model = (_e = (_d = res === null || res === void 0 ? void 0 : res.data) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.records[0];
|
|
68
|
+
module_1 = model === null || model === void 0 ? void 0 : model.module;
|
|
69
|
+
moduleName = module_1 === null || module_1 === void 0 ? void 0 : module_1.name;
|
|
70
|
+
modelSingularName = model === null || model === void 0 ? void 0 : model.singularName;
|
|
71
|
+
modelSlug = snakeCase(model === null || model === void 0 ? void 0 : model.singularName).replace(/_/g, '-');
|
|
72
|
+
redirectUrl_1 = "/admin/core/".concat(moduleName, "/").concat(modelSlug, "/form/").concat(value);
|
|
73
|
+
setRedirectUrl(redirectUrl_1);
|
|
74
|
+
}
|
|
75
|
+
return [2 /*return*/];
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}); };
|
|
79
|
+
fetchModel();
|
|
80
|
+
}
|
|
81
|
+
}, [coModelName]);
|
|
82
|
+
return (_jsxs("div", { children: [_jsx("label", { className: "form-field-label", children: fieldLabel }), _jsx("div", { className: "mt-2", children: value ? (_jsxs("a", { href: redirectUrl, target: "_blank", rel: "noopener noreferrer", style: {
|
|
83
|
+
display: 'inline-flex',
|
|
84
|
+
alignItems: 'center',
|
|
85
|
+
gap: '6px',
|
|
86
|
+
textDecoration: 'none',
|
|
87
|
+
fontSize: '12px',
|
|
88
|
+
color: '#2563eb',
|
|
89
|
+
fontWeight: 500
|
|
90
|
+
}, children: [_jsxs("span", { children: [value, " (", modelUserKey || modelDisplayName || coModelName, ")"] }), _jsx(ExternalLink, { size: 16 })] })) : (_jsx("span", { className: "text-muted", children: "\u2014" })) })] }));
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=SolidChatterMessageCoModelEntityIdFormViewWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidChatterMessageCoModelEntityIdFormViewWidget.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from \"react\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../../types/solid-core\";\nimport { ExternalLink } from \"lucide-react\";\nimport { solidGet } from \"../../../../../../http/solidHttp\";\nimport { snakeCase } from \"lodash\";\n\nexport const SolidChatterMessageCoModelEntityIdFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const fieldName = fieldLayoutInfo?.attrs?.name;\n\n const [redirectUrl, setRedirectUrl] = useState<string>('#');\n const value = formik.values?.[fieldName];\n\n const coModelName = fieldContext?.data?.coModelName;\n const modelDisplayName = fieldContext?.data?.modelDisplayName;\n const modelUserKey = fieldContext?.data?.modelUserKey;\n\n useEffect(() => {\n if (coModelName) {\n const fetchModel = async () => {\n const qs = `offset=0&limit=25&filters[$and][0][$or][0][singularName][$eq]=${coModelName}&populate[0]=module&locale=en&sort[0]=id%3Adesc`;\n const res = await solidGet(`/model-metadata?${qs}`);\n if (res?.data?.data?.records?.length > 0) {\n const model = res?.data?.data?.records[0];\n const module = model?.module;\n const moduleName = module?.name;\n const modelSingularName = model?.singularName;\n const modelSlug = snakeCase(model?.singularName).replace(/_/g, '-');\n const redirectUrl = `/admin/core/${moduleName}/${modelSlug}/form/${value}`;\n setRedirectUrl(redirectUrl);\n }\n }\n fetchModel();\n }\n }, [coModelName]);\n\n return (\n <div>\n <label className=\"form-field-label\">{fieldLabel}</label>\n <div className=\"mt-2\">\n {value ? (\n <a\n href={redirectUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '6px',\n textDecoration: 'none',\n fontSize: '12px',\n color: '#2563eb',\n fontWeight: 500\n }}\n >\n <span>{value} ({modelUserKey || modelDisplayName || coModelName})</span>\n <ExternalLink size={16} />\n </a>\n ) : (\n <span className=\"text-muted\">—</span>\n )}\n </div>\n </div>\n );\n};"]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
import { SolidFormFieldWidgetProps } from "../../../../../../types/solid-core";
|
|
3
|
+
import { ExternalLink } from "lucide-react";
|
|
4
|
+
import { solidGet } from "../../../../../../http/solidHttp";
|
|
5
|
+
import { snakeCase } from "lodash";
|
|
6
|
+
|
|
7
|
+
export const SolidChatterMessageCoModelEntityIdFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {
|
|
8
|
+
const fieldMetadata = fieldContext.fieldMetadata;
|
|
9
|
+
const fieldLayoutInfo = fieldContext.field;
|
|
10
|
+
|
|
11
|
+
const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
|
|
12
|
+
const fieldName = fieldLayoutInfo?.attrs?.name;
|
|
13
|
+
|
|
14
|
+
const [redirectUrl, setRedirectUrl] = useState<string>('#');
|
|
15
|
+
const value = formik.values?.[fieldName];
|
|
16
|
+
|
|
17
|
+
const coModelName = fieldContext?.data?.coModelName;
|
|
18
|
+
const modelDisplayName = fieldContext?.data?.modelDisplayName;
|
|
19
|
+
const modelUserKey = fieldContext?.data?.modelUserKey;
|
|
20
|
+
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (coModelName) {
|
|
23
|
+
const fetchModel = async () => {
|
|
24
|
+
const qs = `offset=0&limit=25&filters[$and][0][$or][0][singularName][$eq]=${coModelName}&populate[0]=module&locale=en&sort[0]=id%3Adesc`;
|
|
25
|
+
const res = await solidGet(`/model-metadata?${qs}`);
|
|
26
|
+
if (res?.data?.data?.records?.length > 0) {
|
|
27
|
+
const model = res?.data?.data?.records[0];
|
|
28
|
+
const module = model?.module;
|
|
29
|
+
const moduleName = module?.name;
|
|
30
|
+
const modelSingularName = model?.singularName;
|
|
31
|
+
const modelSlug = snakeCase(model?.singularName).replace(/_/g, '-');
|
|
32
|
+
const redirectUrl = `/admin/core/${moduleName}/${modelSlug}/form/${value}`;
|
|
33
|
+
setRedirectUrl(redirectUrl);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
fetchModel();
|
|
37
|
+
}
|
|
38
|
+
}, [coModelName]);
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<div>
|
|
42
|
+
<label className="form-field-label">{fieldLabel}</label>
|
|
43
|
+
<div className="mt-2">
|
|
44
|
+
{value ? (
|
|
45
|
+
<a
|
|
46
|
+
href={redirectUrl}
|
|
47
|
+
target="_blank"
|
|
48
|
+
rel="noopener noreferrer"
|
|
49
|
+
style={{
|
|
50
|
+
display: 'inline-flex',
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
gap: '6px',
|
|
53
|
+
textDecoration: 'none',
|
|
54
|
+
fontSize: '12px',
|
|
55
|
+
color: '#2563eb',
|
|
56
|
+
fontWeight: 500
|
|
57
|
+
}}
|
|
58
|
+
>
|
|
59
|
+
<span>{value} ({modelUserKey || modelDisplayName || coModelName})</span>
|
|
60
|
+
<ExternalLink size={16} />
|
|
61
|
+
</a>
|
|
62
|
+
) : (
|
|
63
|
+
<span className="text-muted">—</span>
|
|
64
|
+
)}
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
68
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SolidListFieldWidgetProps } from "../../../../../../types/solid-core";
|
|
2
|
+
export declare const SolidChatterMessageCoModelEntityIdListViewWidget: ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidChatterMessageCoModelEntityIdListViewWidget.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAM/E,eAAO,MAAM,gDAAgD,8DAA+D,yBAAyB,4CA2DpJ,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
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 { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
38
|
+
import { ExternalLink } from "lucide-react";
|
|
39
|
+
import { useEffect, useState } from "react";
|
|
40
|
+
import { solidGet } from "../../../../../../http/solidHttp";
|
|
41
|
+
import { snakeCase } from "lodash";
|
|
42
|
+
export var SolidChatterMessageCoModelEntityIdListViewWidget = function (_a) {
|
|
43
|
+
var rowData = _a.rowData, solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column;
|
|
44
|
+
var value = fieldMetadata && fieldMetadata.name && rowData[fieldMetadata.name] ? rowData[fieldMetadata.name] : "";
|
|
45
|
+
var _b = useState('#'), redirectUrl = _b[0], setRedirectUrl = _b[1];
|
|
46
|
+
var coModelName = rowData === null || rowData === void 0 ? void 0 : rowData.coModelName;
|
|
47
|
+
var modelDisplayName = rowData === null || rowData === void 0 ? void 0 : rowData.modelDisplayName;
|
|
48
|
+
var modelUserKey = rowData === null || rowData === void 0 ? void 0 : rowData.modelUserKey;
|
|
49
|
+
useEffect(function () {
|
|
50
|
+
if (coModelName) {
|
|
51
|
+
var fetchModel = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
52
|
+
var qs, res, model, module_1, moduleName, modelSingularName, modelSlug, redirectUrl_1;
|
|
53
|
+
var _a, _b, _c, _d, _e;
|
|
54
|
+
return __generator(this, function (_f) {
|
|
55
|
+
switch (_f.label) {
|
|
56
|
+
case 0:
|
|
57
|
+
qs = "offset=0&limit=25&filters[$and][0][$or][0][singularName][$eq]=".concat(coModelName, "&populate[0]=module&locale=en&sort[0]=id%3Adesc");
|
|
58
|
+
return [4 /*yield*/, solidGet("/model-metadata?".concat(qs))];
|
|
59
|
+
case 1:
|
|
60
|
+
res = _f.sent();
|
|
61
|
+
if (((_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.records) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
|
62
|
+
model = (_e = (_d = res === null || res === void 0 ? void 0 : res.data) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.records[0];
|
|
63
|
+
module_1 = model === null || model === void 0 ? void 0 : model.module;
|
|
64
|
+
moduleName = module_1 === null || module_1 === void 0 ? void 0 : module_1.name;
|
|
65
|
+
modelSingularName = model === null || model === void 0 ? void 0 : model.singularName;
|
|
66
|
+
modelSlug = snakeCase(model === null || model === void 0 ? void 0 : model.singularName).replace(/_/g, '-');
|
|
67
|
+
redirectUrl_1 = "/admin/core/".concat(moduleName, "/").concat(modelSlug, "/form/").concat(value);
|
|
68
|
+
setRedirectUrl(redirectUrl_1);
|
|
69
|
+
}
|
|
70
|
+
return [2 /*return*/];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}); };
|
|
74
|
+
fetchModel();
|
|
75
|
+
}
|
|
76
|
+
}, [coModelName, value]);
|
|
77
|
+
return (_jsx("div", { style: { textAlign: "left" }, children: _jsx("div", { className: "mt-2", children: value ? (_jsxs("a", { href: redirectUrl, target: "_blank", rel: "noopener noreferrer", style: {
|
|
78
|
+
display: 'inline-flex',
|
|
79
|
+
alignItems: 'center',
|
|
80
|
+
gap: '6px',
|
|
81
|
+
textDecoration: 'none',
|
|
82
|
+
fontSize: '12px',
|
|
83
|
+
color: '#2563eb',
|
|
84
|
+
fontWeight: 500
|
|
85
|
+
}, children: [_jsxs("span", { children: [value, " (", modelUserKey || modelDisplayName || coModelName, ")"] }), _jsx(ExternalLink, { size: 16 })] })) : (_jsx("span", { className: "text-muted", children: "\u2014" })) }) }));
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=SolidChatterMessageCoModelEntityIdListViewWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidChatterMessageCoModelEntityIdListViewWidget.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["\n\nimport { ExternalLink } from \"lucide-react\";\nimport { SolidListFieldWidgetProps } from \"../../../../../../types/solid-core\";\nimport { useEffect, useState } from \"react\";\nimport { solidGet } from \"../../../../../../http/solidHttp\";\nimport { snakeCase } from \"lodash\";\n\n\nexport const SolidChatterMessageCoModelEntityIdListViewWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n\n const value = fieldMetadata && fieldMetadata.name && rowData[fieldMetadata.name] ? rowData[fieldMetadata.name] : \"\"\n\n const [redirectUrl, setRedirectUrl] = useState('#');\n\n\n const coModelName = rowData?.coModelName;\n const modelDisplayName = rowData?.modelDisplayName;\n const modelUserKey = rowData?.modelUserKey;\n\n useEffect(() => {\n if (coModelName) {\n const fetchModel = async () => {\n const qs = `offset=0&limit=25&filters[$and][0][$or][0][singularName][$eq]=${coModelName}&populate[0]=module&locale=en&sort[0]=id%3Adesc`;\n const res = await solidGet(`/model-metadata?${qs}`);\n if (res?.data?.data?.records?.length > 0) {\n const model = res?.data?.data?.records[0];\n const module = model?.module;\n const moduleName = module?.name;\n const modelSingularName = model?.singularName;\n const modelSlug = snakeCase(model?.singularName).replace(/_/g, '-');\n const redirectUrl = `/admin/core/${moduleName}/${modelSlug}/form/${value}`;\n setRedirectUrl(redirectUrl);\n }\n }\n fetchModel();\n }\n }, [coModelName, value]);\n\n return (\n <div style={{ textAlign: \"left\" }}>\n\n <div className=\"mt-2\">\n {value ? (\n <a\n href={redirectUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '6px',\n textDecoration: 'none',\n fontSize: '12px',\n color: '#2563eb',\n fontWeight: 500\n }}\n >\n <span>{value} ({modelUserKey || modelDisplayName || coModelName})</span>\n\n <ExternalLink size={16} />\n </a>\n ) : (\n <span className=\"text-muted\">—</span>\n )}\n </div>\n </div>\n );\n};\n\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import { ExternalLink } from "lucide-react";
|
|
4
|
+
import { SolidListFieldWidgetProps } from "../../../../../../types/solid-core";
|
|
5
|
+
import { useEffect, useState } from "react";
|
|
6
|
+
import { solidGet } from "../../../../../../http/solidHttp";
|
|
7
|
+
import { snakeCase } from "lodash";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
export const SolidChatterMessageCoModelEntityIdListViewWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {
|
|
11
|
+
|
|
12
|
+
const value = fieldMetadata && fieldMetadata.name && rowData[fieldMetadata.name] ? rowData[fieldMetadata.name] : ""
|
|
13
|
+
|
|
14
|
+
const [redirectUrl, setRedirectUrl] = useState('#');
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
const coModelName = rowData?.coModelName;
|
|
18
|
+
const modelDisplayName = rowData?.modelDisplayName;
|
|
19
|
+
const modelUserKey = rowData?.modelUserKey;
|
|
20
|
+
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (coModelName) {
|
|
23
|
+
const fetchModel = async () => {
|
|
24
|
+
const qs = `offset=0&limit=25&filters[$and][0][$or][0][singularName][$eq]=${coModelName}&populate[0]=module&locale=en&sort[0]=id%3Adesc`;
|
|
25
|
+
const res = await solidGet(`/model-metadata?${qs}`);
|
|
26
|
+
if (res?.data?.data?.records?.length > 0) {
|
|
27
|
+
const model = res?.data?.data?.records[0];
|
|
28
|
+
const module = model?.module;
|
|
29
|
+
const moduleName = module?.name;
|
|
30
|
+
const modelSingularName = model?.singularName;
|
|
31
|
+
const modelSlug = snakeCase(model?.singularName).replace(/_/g, '-');
|
|
32
|
+
const redirectUrl = `/admin/core/${moduleName}/${modelSlug}/form/${value}`;
|
|
33
|
+
setRedirectUrl(redirectUrl);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
fetchModel();
|
|
37
|
+
}
|
|
38
|
+
}, [coModelName, value]);
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<div style={{ textAlign: "left" }}>
|
|
42
|
+
|
|
43
|
+
<div className="mt-2">
|
|
44
|
+
{value ? (
|
|
45
|
+
<a
|
|
46
|
+
href={redirectUrl}
|
|
47
|
+
target="_blank"
|
|
48
|
+
rel="noopener noreferrer"
|
|
49
|
+
style={{
|
|
50
|
+
display: 'inline-flex',
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
gap: '6px',
|
|
53
|
+
textDecoration: 'none',
|
|
54
|
+
fontSize: '12px',
|
|
55
|
+
color: '#2563eb',
|
|
56
|
+
fontWeight: 500
|
|
57
|
+
}}
|
|
58
|
+
>
|
|
59
|
+
<span>{value} ({modelUserKey || modelDisplayName || coModelName})</span>
|
|
60
|
+
|
|
61
|
+
<ExternalLink size={16} />
|
|
62
|
+
</a>
|
|
63
|
+
) : (
|
|
64
|
+
<span className="text-muted">—</span>
|
|
65
|
+
)}
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
);
|
|
69
|
+
};
|
|
70
|
+
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SolidFormFieldWidgetProps } from "../../../../../../types/solid-core";
|
|
2
|
+
export declare const SolidLovTypeChangeFormEditWidget: ({ formik, fieldContext }: SolidFormFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=SolidLovTypeChangeFormEditWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidLovTypeChangeFormEditWidget.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAM/E,eAAO,MAAM,gCAAgC,6BAG1C,yBAAyB,4CA+G3B,CAAC"}
|