@fastybird/smart-panel-admin 0.4.0-alpha.0 → 0.5.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{card-add-form-Db2XjYRW.js → card-add-form-kmvsoeLv.js} +1 -1
- package/dist/assets/{card-edit-form-BkhbZr1u.js → card-edit-form-BdnxGuno.js} +1 -1
- package/dist/assets/{common-cN85xDKw.js → common-DitknrxN.js} +4 -4
- package/dist/assets/{components-AFjGnJ25.js → components-4himNGln.js} +1 -1
- package/dist/assets/{components-Br7LKZlm.js → components-BDA9RsM-.js} +1 -1
- package/dist/assets/components-BXqiBk7T.js +1 -0
- package/dist/assets/{components-CKXvBgZH.js → components-Bc5yn4qW.js} +1 -1
- package/dist/assets/{components-CGnzhpoZ.js → components-D8uUYiQ0.js} +1 -1
- package/dist/assets/components-DTDNlAlb.css +1 -0
- package/dist/assets/{components-C4FrTJpq.js → components-DjcdKT6l.js} +2 -2
- package/dist/assets/{components-CLMvIyA8.js → components-Onta8FuW.js} +1 -1
- package/dist/assets/components-bQQErF8x.js +1 -0
- package/dist/assets/{composables-Z6_f_-h6.js → composables-BtOMC6SO.js} +1 -1
- package/dist/assets/{composables-CT-gUS9h2.js → composables-C46ZLEsP2.js} +1 -1
- package/dist/assets/{composables-Ww4pROYr.js → composables-C7pWRqwL.js} +1 -1
- package/dist/assets/{composables-giB9ZLTn.js → composables-CC6upzs6.js} +1 -1
- package/dist/assets/{composables-BRBIeA1m.js → composables-DIsxr7rr.js} +1 -1
- package/dist/assets/{composables-DMou12fO.js → composables-DtyITy1r.js} +1 -1
- package/dist/assets/{composables-drOusMF7.js → composables-DxxfUmLS.js} +1 -1
- package/dist/assets/{composables-UhwwO7oA.js → composables-DyKltTYD.js} +1 -1
- package/dist/assets/{composables-C-sW1sdO.js → composables-UHdVu_Jy.js} +1 -1
- package/dist/assets/{dashboard-CQM-Y3p4.js → dashboard-B7d0IEBI.js} +2 -2
- package/dist/assets/{dashboard.types-DuGoinI9.js → dashboard.types-DzHU66I8.js} +1 -1
- package/dist/assets/{data-source-edit-form-CBDZ-OY9.js → data-source-edit-form-BfZbLZAd.js} +1 -1
- package/dist/assets/{drawer-Bd7mWPmH.js → drawer-eMQrURHR.js} +1 -1
- package/dist/assets/index-BZI30D7S.css +1 -0
- package/dist/assets/index-D1fa7dFw.js +16 -0
- package/dist/assets/{input-number-C7JOAR4a.js → input-number-DWPwyGIz.js} +1 -1
- package/dist/assets/{integration-config-dialog-Dcb-VziW.js → integration-config-dialog-DK_07eug.js} +1 -1
- package/dist/assets/{layout-config-8HRM1pHd.js → layout-config-DULoZdsG.js} +1 -1
- package/dist/assets/{layout-default-EZzLKXQF.js → layout-default-DXsqhuCv.js} +1 -1
- package/dist/assets/{layout-lock-DxsBdtoH.js → layout-lock-KcQanwyR.js} +1 -1
- package/dist/assets/{layout-profile-Ds29vrBb.js → layout-profile-q5lEjlhZ.js} +1 -1
- package/dist/assets/layout-profile-xLNa8jBg.js +1 -0
- package/dist/assets/{layout-sign-D-kN8DK1.js → layout-sign-BXdwT0qX.js} +1 -1
- package/dist/assets/layout-sign-DZJ_e6dT.js +1 -0
- package/dist/assets/{list-data-sources-adjust-qxURzcj8.js → list-data-sources-adjust-BosyZfMx.js} +1 -1
- package/dist/assets/{list-locations-C2VothPX.js → list-locations-BZcLwZZq.js} +1 -1
- package/dist/assets/{list-users-DxfBpmLZ.js → list-users-QYgwJeH4.js} +1 -1
- package/dist/assets/{logs-entries.transformers-BnRxEggq.js → logs-entries.transformers-InCczx23.js} +1 -1
- package/dist/assets/page-configure-DTgbatK9.js +1 -0
- package/dist/assets/page-configure-Dq7G5ZDW.js +1 -0
- package/dist/assets/{pagination-e4DiU-Sy.js → pagination-DzdCpUO6.js} +1 -1
- package/dist/assets/popover-2GniQC-j.js +1 -0
- package/dist/assets/{radio-y6_rGpZ-.js → radio-CaxKR-YD.js} +1 -1
- package/dist/assets/{scene-add-form-Brz12OWY.js → scene-add-form-DLkQXhjq.js} +1 -1
- package/dist/assets/{scene-edit-form-Cm608tTO.js → scene-edit-form-DWKf9sNY.js} +1 -1
- package/dist/assets/{select-data-source-plugin-BB6GXf0y.js → select-data-source-plugin-CzYMSKaB.js} +1 -1
- package/dist/assets/{steps-CUrxTWuj.js → steps-BAssrJjb.js} +1 -1
- package/dist/assets/{system-DmGcOxzw.js → system-D5UsRLYQ.js} +2 -2
- package/dist/assets/{table-D0cG6bxj.js → table-CvJFN6qk.js} +1 -1
- package/dist/assets/{tile-detail-Cpp7TqqL.js → tile-detail-LzcNryPj.js} +1 -1
- package/dist/assets/{tile-edit-form-B1Q8pG5c.js → tile-edit-form-BrLWcyuG.js} +1 -1
- package/dist/assets/{types-PhBYs4jt.js → types-DFpBJXK4.js} +1 -1
- package/dist/assets/{useBuddyChat-wJHfLu8C.js → useBuddyChat-CkSvC-pn.js} +1 -1
- package/dist/assets/{useDataSources-Xo2JI-j1.js → useDataSources-BeTczwoa.js} +1 -1
- package/dist/assets/{useDevices-C4I_mc6g.js → useDevices-OVLlwqEQ.js} +1 -1
- package/dist/assets/{useGeolocation-B-lLIPuH.js → useGeolocation-_W93BjAG.js} +2 -2
- package/dist/assets/{useLocation-X9X01BDi.js → useLocation-CnjASICx.js} +1 -1
- package/dist/assets/{usePage-DGYAAccW.js → usePage-ieVJALDp.js} +1 -1
- package/dist/assets/{useSpaces-BLX5dcRn.js → useSpaces-DoHSAZGH.js} +1 -1
- package/dist/assets/{view-buddy-chat-zsw9qejY.js → view-buddy-chat-CyFS9GYo.js} +1 -1
- package/dist/assets/{view-card-add-B_sgzHrs.js → view-card-add-j4wwG2MD.js} +1 -1
- package/dist/assets/{view-card-edit-BGwgB8KO.js → view-card-edit-DZTczuJY.js} +1 -1
- package/dist/assets/{view-channel-CdQg_5ue.js → view-channel-DKBQ9suY.js} +1 -1
- package/dist/assets/{view-channel-add-D4q7ETmT.js → view-channel-add-Dqz3uysY.js} +1 -1
- package/dist/assets/{view-channel-edit-CR0ZY31p.js → view-channel-edit-BC0xRMz0.js} +1 -1
- package/dist/assets/{view-channel-property-add-DyngAXiG.js → view-channel-property-add-BCPcvzS1.js} +1 -1
- package/dist/assets/{view-channel-property-edit-CjlvsEFh.js → view-channel-property-edit-CuN5pr46.js} +1 -1
- package/dist/assets/{view-channels-DA37YWd3.js → view-channels-BT7LYZp1.js} +1 -1
- package/dist/assets/{view-config-module-edit-YaW7Nc9X.js → view-config-module-edit-zZ-UwMUy.js} +1 -1
- package/dist/assets/{view-config-modules-CX0ll8u8.js → view-config-modules-CF1iuvVz.js} +1 -1
- package/dist/assets/{view-config-plugin-edit-C8WnaQVh.js → view-config-plugin-edit-CvKjUt2K.js} +1 -1
- package/dist/assets/{view-config-plugins-CHK5H7hn.js → view-config-plugins-B0cuWMle.js} +1 -1
- package/dist/assets/{view-data-source-add-dmr-Oy1J.js → view-data-source-add-BI03NhnB.js} +1 -1
- package/dist/assets/{view-data-source-add-DUyxIdZT.js → view-data-source-add-D3WbcClv.js} +1 -1
- package/dist/assets/{view-data-source-edit-FLqXPAgo.js → view-data-source-edit-CG_77wW5.js} +1 -1
- package/dist/assets/{view-data-source-edit-CNTAkZCd.js → view-data-source-edit-iFtuiXQQ.js} +1 -1
- package/dist/assets/{view-device-E11gumVb.js → view-device-CkDaSpt8.js} +1 -1
- package/dist/assets/{view-device-add-DmuY3Nex.js → view-device-add-BAzZtNnc.js} +1 -1
- package/dist/assets/{view-device-control-C9efhxX6.js → view-device-control-BQiJftiQ.js} +1 -1
- package/dist/assets/{view-device-edit-CvtWXup8.js → view-device-edit-YRRz1sNH.js} +1 -1
- package/dist/assets/{view-devices-BwMpm6Zg.js → view-devices-vPvslfmH.js} +1 -1
- package/dist/assets/{view-display-edit-CekgS7VQ.js → view-display-edit-DJqEY8hD.js} +1 -1
- package/dist/assets/{view-display-tokens-Db_0xxNh.js → view-display-tokens-D0vtwlcT.js} +1 -1
- package/dist/assets/{view-display-CPYKKMYq.js → view-display-zjndSwfE.js} +1 -1
- package/dist/assets/{view-displays-DHLyfOTN.js → view-displays-BSNWi56f.js} +1 -1
- package/dist/assets/{view-extension-detail-D1oTrpIB.js → view-extension-detail-RW-wTS86.js} +1 -1
- package/dist/assets/{view-extensions-6Gitch6c.js → view-extensions-BBKZ2N3L.js} +1 -1
- package/dist/assets/{view-location-zL7wbMRX.js → view-location--WKVDjlx.js} +1 -1
- package/dist/assets/{view-location-add-bYLT1klE.js → view-location-add-DK6sM4IG.js} +1 -1
- package/dist/assets/{view-location-edit-CBLVTUQB.js → view-location-edit-CzuW4tBm.js} +1 -1
- package/dist/assets/{view-locations-Dv7cV_5V.js → view-locations-CxbYYpS4.js} +1 -1
- package/dist/assets/{view-lock-screen-tZAiDrMd.js → view-lock-screen-DJ4AEbiE.js} +1 -1
- package/dist/assets/{view-onboarding-D87y3v5U.js → view-onboarding-BX7INX5P.js} +1 -1
- package/dist/assets/{view-page-CVwZzNdH.js → view-page-D1sCXvpn.js} +1 -1
- package/dist/assets/{view-page-add-1D7giLtV.js → view-page-add-3cUCcxxn.js} +1 -1
- package/dist/assets/{view-page-configure-DUvxcSmP.js → view-page-configure-CMq091a6.js} +1 -1
- package/dist/assets/{view-page-configure-BS7zZ9g_.js → view-page-configure-iF4kTpPf.js} +1 -1
- package/dist/assets/{view-page-data-source-add-2C2-Z74K.js → view-page-data-source-add-CNE-4EFT.js} +1 -1
- package/dist/assets/{view-page-data-source-edit-B0wjmkZD.js → view-page-data-source-edit-8W7htB6X.js} +1 -1
- package/dist/assets/{view-page-edit-alDjMIlH.js → view-page-edit-DzxBGHQY.js} +1 -1
- package/dist/assets/{view-page-plugin-TLht-bg8.js → view-page-plugin-B1Tb9lAw.js} +1 -1
- package/dist/assets/{view-pages-D-rCoyl6.js → view-pages-9jw_EwpO.js} +1 -1
- package/dist/assets/{view-profile-general-BtvkiiEu.js → view-profile-general-DZ3OdJvK.js} +1 -1
- package/dist/assets/{view-profile-security-BIC2NObt.js → view-profile-security-lCeNZ9Oz.js} +1 -1
- package/dist/assets/{view-scene-add-BOMy4IGB.js → view-scene-add-CV0D7NNa.js} +1 -1
- package/dist/assets/{view-scene-edit-0CMQWdaK.js → view-scene-edit-oN5Gwu3v.js} +1 -1
- package/dist/assets/{view-scenes-DEjSRBWu.js → view-scenes-CzcnbD3z.js} +1 -1
- package/dist/assets/{view-sign-in-BlqCSu2x.js → view-sign-in-ZlkRXp7N.js} +1 -1
- package/dist/assets/{view-sign-up-DZgUwhLl.js → view-sign-up-JNnyc01a.js} +1 -1
- package/dist/assets/view-space-DnVEsxTP.js +1 -0
- package/dist/assets/view-space-FBfL1ie4.css +1 -0
- package/dist/assets/{view-space-add-DZmGsmcN.js → view-space-add-B8dRy9rw.js} +1 -1
- package/dist/assets/{view-space-edit-D5h_5a-5.js → view-space-edit-Cl9htHR9.js} +1 -1
- package/dist/assets/{view-spaces-BjvJoXdD.js → view-spaces-BuZ8CtBB.js} +1 -1
- package/dist/assets/{view-spaces-onboarding-B9sTxdTg.js → view-spaces-onboarding-Dc4-p1XM.js} +1 -1
- package/dist/assets/{view-stats-CttqaCvg.js → view-stats--5LlIHyO.js} +1 -1
- package/dist/assets/{view-system-info-DN9PyzhN.js → view-system-info-DyAW1JmB.js} +1 -1
- package/dist/assets/{view-system-log-detail-BUaIjf7K.js → view-system-log-detail-BVsXrvNX.js} +1 -1
- package/dist/assets/{view-system-logs-Czbaer7r.js → view-system-logs-DsMuwck_.js} +1 -1
- package/dist/assets/{view-tile-add-ACtlCkNh.js → view-tile-add-B4x4jQsp.js} +1 -1
- package/dist/assets/{view-tile-add-BiA2KGti.js → view-tile-add-BKsu1Kia.js} +1 -1
- package/dist/assets/{view-tile-data-source-add-DpmeDEiX.js → view-tile-data-source-add-BbTYMt77.js} +1 -1
- package/dist/assets/{view-tile-data-source-edit-CNT_U0E7.js → view-tile-data-source-edit-Cj2QlG8m.js} +1 -1
- package/dist/assets/{view-tile-edit-B8en6Fdi.js → view-tile-edit-B1TPcmd4.js} +1 -1
- package/dist/assets/{view-tile-edit-CX4MyysW.js → view-tile-edit-BhNpgYEO.js} +1 -1
- package/dist/assets/{view-tile-edit-BD7D0ofK.js → view-tile-edit-CAuussd-.js} +1 -1
- package/dist/assets/{view-tile-BniApB-E.js → view-tile-oFaFfv5a.js} +1 -1
- package/dist/assets/{view-user-add-DcxsPok0.js → view-user-add-Dkj9Dc8J.js} +1 -1
- package/dist/assets/{view-user-edit-CgEeWlCF.js → view-user-edit-B0UYak5T.js} +1 -1
- package/dist/assets/{view-users-BS-spavt.js → view-users-fRqpr_eL.js} +1 -1
- package/dist/assets/weather-C56mRuE6.js +2 -0
- package/dist/assets/{weather-forecast.transformers-CUCx0H5R.js → weather-forecast.transformers-zuwBxXhr.js} +1 -1
- package/dist/index.html +67 -65
- package/package.json +1 -1
- package/dist/assets/components-C59v4_pJ.css +0 -1
- package/dist/assets/components-CXgzOYZ_.js +0 -1
- package/dist/assets/components-DNszp1Of.js +0 -1
- package/dist/assets/index-DowlhwO_.css +0 -1
- package/dist/assets/index-dNGzbMwi.js +0 -16
- package/dist/assets/layout-profile-BWxuYUGu.js +0 -1
- package/dist/assets/layout-sign-DXHWLWm8.js +0 -1
- package/dist/assets/page-configure-B9xgkt0n.js +0 -1
- package/dist/assets/page-configure-IJzKV_zn.js +0 -1
- package/dist/assets/view-space-Doiu9Fxd.js +0 -1
- package/dist/assets/weather-BMdp5G2E.js +0 -2
- /package/dist/assets/{auth.constants-BUY5f92r.js → auth.constants-BtlHaDRV.js} +0 -0
- /package/dist/assets/{composables-CoWw0p8s2.js → composables-BU1aKa642.js} +0 -0
- /package/dist/assets/{extensions.constants-BtEcoiTe.js → extensions.constants-zRRiNzmt.js} +0 -0
- /package/dist/assets/{gridstack.min-Df4k2Mbm.js → gridstack.min-BC6WoZvX.js} +0 -0
- /package/dist/assets/{keys-DHzb5Fmv.js → keys-C6Zi4a10.js} +0 -0
- /package/dist/assets/{keys-BrCp8xLt.js → keys-DVEtutPb.js} +0 -0
- /package/dist/assets/{keys-C5lGGSUO.js → keys-DWeeqbdi.js} +0 -0
- /package/dist/assets/{keys-C9WPkx4T.js → keys-o2K4DVjh.js} +0 -0
- /package/dist/assets/{leaflet-src-CM2g0oWb.js → leaflet-src-B49UyrlR.js} +0 -0
- /package/dist/assets/{leaflet-src.esm-BvgZn2LC.js → leaflet-src.esm-YKGwaZsZ.js} +0 -0
- /package/dist/assets/{marker-icon-2x-aQZMbcaM.js → marker-icon-2x-BCzqJChB.js} +0 -0
- /package/dist/assets/{marker-icon-BgxhuWdA.js → marker-icon-JzPv91fE.js} +0 -0
- /package/dist/assets/{marker-shadow-DdS0J0ev.js → marker-shadow-tj6c2pB6.js} +0 -0
- /package/dist/assets/{pages-cards.contants-Ca3ia7K9.js → pages-cards.contants-B5RdaI3z.js} +0 -0
- /package/dist/assets/{pages-tiles.constants-BnyIVevk.js → pages-tiles.constants-Day6cR-b.js} +0 -0
- /package/dist/assets/{system.exceptions-VjLQngEF.js → system.exceptions-CLPql-b3.js} +0 -0
- /package/dist/assets/{view-not-found-BIMavSUn.js → view-not-found-C0Nl0aC-.js} +0 -0
- /package/dist/assets/{weather-icon-BbtxrOUW.js → weather-icon-CkuFNv0P.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-DECur_0Z.js";import{Nr as e,Xr as t,ci as n,d as r,fi as i,mr as a,ui as o}from"./icon-with-child-DmQ_XhQy.js";import{A as s,Fn as c,Ht as l,Jn as u,Kn as d,Mn as f,Pn as p,S as m,T as h,Un as g,Ur as _,Vn as v,Wn as y,Yn as b,_ as x,an as S,ba as C,f as w,m as T,pn as E,qn as D,qt as O,wn as k,zn as A}from"./common-cN85xDKw.js";import{t as ee}from"./useSpaces-BLX5dcRn.js";import{o as te,s as j}from"./composables-Z6_f_-h6.js";var M=`scenes`,N=`scenes-module`,P=`ScenesModule.`,F=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerScene`,e}({}),I=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerSceneHandler`,e}({}),L=function(e){return e.SCENE_CREATED=`ScenesModule.Scene.Created`,e.SCENE_UPDATED=`ScenesModule.Scene.Updated`,e.SCENE_DELETED=`ScenesModule.Scene.Deleted`,e.SCENE_TRIGGERED=`ScenesModule.Scene.Triggered`,e.SCENE_EXECUTION_STARTED=`ScenesModule.Scene.ExecutionStarted`,e.SCENE_EXECUTION_COMPLETED=`ScenesModule.Scene.ExecutionCompleted`,e.SCENE_EXECUTION_FAILED=`ScenesModule.Scene.ExecutionFailed`,e.SCENE_ACTION_CREATED=`ScenesModule.SceneAction.Created`,e.SCENE_ACTION_UPDATED=`ScenesModule.SceneAction.Updated`,e.SCENE_ACTION_DELETED=`ScenesModule.SceneAction.Deleted`,e}({}),R=function(e){return e.GENERIC=`generic`,e.LIGHTING=`lighting`,e.CLIMATE=`climate`,e.MEDIA=`media`,e.WORK=`work`,e.RELAX=`relax`,e.NIGHT=`night`,e.MORNING=`morning`,e.PARTY=`party`,e.MOVIE=`movie`,e.AWAY=`away`,e.HOME=`home`,e.SECURITY=`security`,e.ENERGY=`energy`,e.CUSTOM=`custom`,e}({}),z=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),B={SCENES:`scenes_module-scenes`,SCENES_ADD:`scenes_module-scenes_add`,SCENES_EDIT:`scenes_module-scenes_edit`,SCENE:`scenes_module-scene`,SCENE_EDIT:`scenes_module-scene_edit`,SCENE_ADD_ACTION:`scenes_module-scene_add_action`,SCENE_EDIT_ACTION:`scenes_module-scene_edit_action`},V={[R.GENERIC]:`mdi:playlist-play`,[R.LIGHTING]:`mdi:lightbulb-group`,[R.CLIMATE]:`mdi:thermostat`,[R.MEDIA]:`mdi:television-play`,[R.WORK]:`mdi:briefcase`,[R.RELAX]:`mdi:sofa`,[R.NIGHT]:`mdi:weather-night`,[R.MORNING]:`mdi:weather-sunset-up`,[R.PARTY]:`mdi:party-popper`,[R.MOVIE]:`mdi:movie-open`,[R.AWAY]:`mdi:home-export-outline`,[R.HOME]:`mdi:home-import-outline`,[R.SECURITY]:`mdi:shield-home`,[R.ENERGY]:`mdi:flash`,[R.CUSTOM]:`mdi:shape-outline`},H=y({search:D().optional(),categories:p(v(R)),primarySpaceId:u([D().uuid(),A(`whole_home`)]).optional(),enabled:f([`all`,`enabled`,`disabled`]).default(`all`)}),U=({id:e})=>{let t=h(),n=t.getStore(j),r=t.getStore(te),{data:i,semaphore:o}=C(n);return{scene:a(()=>e===null?null:i.value.get(e)??null),isLoading:a(()=>o.value.fetching.item.includes(e)?!0:i.value.get(e)===void 0?o.value.fetching.items:!1),fetchScene:async()=>{i.value.get(e)?.draft||(await n.get({id:e}),await r.fetch({sceneId:e}))}}},W=y({id:D().uuid().optional(),type:D().trim().nonempty(),configuration:d(D(),b()).default({}),order:g().int().min(0).optional(),enabled:c().default(!0)}).catchall(b());y({id:D().uuid(),type:D().trim().nonempty(),configuration:d(D(),b()).optional(),order:g().int().min(0).optional(),enabled:c().optional()}).catchall(b());var G=y({id:D().uuid().optional(),name:D().trim().nonempty(),description:D().trim().transform(e=>e===``?null:e).nullable().optional(),category:v(R).default(R.GENERIC),icon:D().nullable().optional(),enabled:c().default(!0),order:g().optional(),primarySpaceId:D().uuid().nullable().optional().transform(e=>e===``?null:e),actions:p(W).default([])}),K=y({id:D().uuid(),name:D().trim().nonempty().optional(),description:D().trim().transform(e=>e===``?null:e).nullable().optional(),category:v(R).optional(),icon:D().nullable().optional(),enabled:c().optional(),order:g().optional(),primarySpaceId:D().uuid().nullable().optional().transform(e=>e===``?null:e),actions:p(W).default([])}),q=class extends Error{exception;constructor(e,t=null){super(e),this.name=`ScenesException`,this.exception=t}},J=class extends q{code;constructor(e,t=null,n=null){super(e,n),this.name=`ScenesApiException`,this.code=t}},Y=class extends q{constructor(e,t=null){super(e,t),this.name=`ScenesValidationException`}},ne=()=>{let e=s(),{enabled:t}=S(),n=[`sceneActionAddForm`,`sceneActionEditForm`,`sceneActionCard`],r=[`sceneActionSchema`,`sceneActionAddFormSchema`,`sceneActionEditFormSchema`,`sceneActionCreateReqSchema`,`sceneActionUpdateReqSchema`],i=a(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`scenes-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`scenes-module`)))return!1;let t=n.length===0||!!e.components&&n.some(t=>e.components&&t in e.components),i=r.length===0||!!e.schemas&&r.some(t=>e.schemas&&t in e.schemas);return t||i}):!1));return{plugins:i,options:a(()=>E(i.value.flatMap(e=>(e.elements??[]).filter(e=>{let t=e.modules===void 0||e.modules.includes(`scenes-module`),r=!!e.components&&n.some(t=>e.components&&t in e.components);return t&&r}).map(n=>({value:n.type,label:n.name?.trim()?n.name:e.name,disabled:!t(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>i.value.find(t=>t.type===e),getByType:e=>i.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`scenes-module`)))),getElement:e=>{for(let t of i.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`scenes-module`)));if(n)return n}}}},X=k(),Z=({id:e})=>{let s=h(),c=s.getStore(j),u=s.getStore(te),{t:d}=r(),f=x(),p=m(),{spaces:g,fetching:_,fetchSpaces:v}=ee(),y=o(z.NONE),b,S=a(()=>Object.values(R).map(e=>({value:e,label:d(`scenes.categories.${e}`),icon:V[e]}))),C=a(()=>{let e=g.value.filter(e=>e.type===l.ROOM).map(e=>({value:e.id,label:e.name,icon:O(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=g.value.filter(e=>e.type===l.ZONE).map(e=>({value:e.id,label:e.name,icon:O(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:l.ROOM,label:d(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:l.ZONE,label:d(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),w=n({id:e,category:R.GENERIC,name:``,description:null,icon:null,enabled:!0,primarySpaceId:null,actions:[]}),{options:E,getElement:D}=ne(),k=e=>{let t=e.propertyId;return t&&w.actions.find(e=>e.propertyId===t)?(f.warning(d(`scenes.messages.duplicateAction`)),!1):(w.actions.push(e),!0)},A=e=>{w.actions.splice(e,1)},M=(e,t)=>{e>=0&&e<w.actions.length&&(w.actions[e]=t)},N=e=>D(e)?.components?.sceneActionCard??null,P=e=>D(e)?.components?.sceneActionAddForm??null,F=e=>D(e)?.components?.sceneActionEditForm??null,I=e=>E.value.find(t=>t.value===e)?.label??e,L=T(i(w)),B=o(void 0),H=o(!1),U=async(e,t)=>{try{for(let n=0;n<t.length;n++){let r=t[n];r&&await u.add({sceneId:e,data:{...r,order:n,enabled:r.enabled??!0}})}}catch(e){throw p.error(`Error syncing scene actions:`,e),e}},W=async()=>{if(B.value.clearValidate(),!await B.value.validate())throw new Y(`Form not valid`);let t=G.safeParse(w);if(!t.success)throw p.error(`Schema validation failed with:`,t.error),new Y(`Failed to validate create scene model.`);y.value=z.WORKING;let n=d(`scenes.messages.createFailed`);try{let n=await c.add({id:e,draft:!1,data:t.data});t.data.actions.length>0&&await U(n.id,t.data.actions)}catch(e){throw y.value=z.ERROR,b=window.setTimeout(K,2e3),e instanceof J&&e.code===422?f.error(e.message):f.error(n),e}return y.value=z.OK,b=window.setTimeout(K,2e3),f.success(d(`scenes.messages.created`)),`added`},K=()=>{window.clearTimeout(b),y.value=z.NONE};return t(w,()=>{H.value=!(0,X.isEqual)(i(w),L)}),{categoriesOptions:S,spacesOptionsGrouped:C,model:w,formEl:B,formChanged:H,submit:W,clear:K,formResult:y,loadingSpaces:_,fetchSpaces:v,actionPluginOptions:E,addAction:k,removeAction:A,updateAction:M,getActionCardComponent:N,getActionFormComponent:P,getActionEditFormComponent:F,getPluginLabel:I}},re=({scene:s,messages:c})=>{let u=h(),d=u.getStore(j),f=u.getStore(te),{t:p}=r(),g=x(),_=m(),{spaces:v,fetching:y,fetchSpaces:b}=ee(),S=o(z.NONE),C=a(()=>f.findForScene(s.id)),w=o(T(C.value)),E,D=a(()=>Object.values(R).map(e=>({value:e,label:p(`scenes.categories.${e}`),icon:V[e]}))),k=a(()=>{let e=v.value.filter(e=>e.type===l.ROOM).map(e=>({value:e.id,label:e.name,icon:O(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=v.value.filter(e=>e.type===l.ZONE).map(e=>({value:e.id,label:e.name,icon:O(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:l.ROOM,label:p(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:l.ZONE,label:p(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),A=a(()=>C.value.map(e=>({...e}))),M=n({id:s.id,category:s.category,name:s.name,description:s.description,icon:s.icon,enabled:s.enabled,primarySpaceId:s.primarySpaceId,actions:A.value}),{options:N,getElement:P}=ne(),F=e=>{let t=e.propertyId;return t&&M.actions.find(e=>e.propertyId===t)?(g.warning(p(`scenes.messages.duplicateAction`)),!1):(M.actions.push(e),!0)},I=e=>{M.actions.splice(e,1)},L=(e,t)=>{e>=0&&e<M.actions.length&&(M.actions[e]=t)},B=e=>P(e)?.components?.sceneActionCard??null,H=e=>P(e)?.components?.sceneActionAddForm??null,U=e=>P(e)?.components?.sceneActionEditForm??null,W=e=>N.value.find(t=>t.value===e)?.label??e,G=o(void 0),q=o(!1),Z=T(i(M)),re=async(e,t)=>{try{let n=new Set(w.value.map(e=>e.id)),r=new Set(t.filter(e=>e.id).map(e=>e.id));for(let t of w.value)r.has(t.id)||await f.remove({id:t.id,sceneId:e});let i=new Map;for(let r=0;r<t.length;r++){let a=t[r];if(!a)continue;let o=a.id;if(!o||!n.has(o)){let t=await f.add({sceneId:e,data:{...a,order:r,enabled:a.enabled??!0}});i.set(r,t.id)}else{let t=w.value.find(e=>e.id===o);if(t){let n=new Set([`id`,`draft`,`createdAt`,`updatedAt`,`scene`]),i=e=>Object.fromEntries(Object.entries(e).filter(([e])=>!n.has(e)));(0,X.isEqual)(i(t),{...i(a),order:r})||await f.edit({id:o,sceneId:e,data:{...a,order:r}})}}}for(let[e,t]of i){let n=M.actions[e];n&&(n.id=t)}w.value=T(f.findForScene(e))}catch(e){throw _.error(`Error syncing scene actions:`,e),e}},ie=async()=>{let e=s.draft,t=c&&c.error?c.error:s.draft?p(`scenes.messages.createFailed`):p(`scenes.messages.editFailed`,{scene:s.name});if(G.value.clearValidate(),!await G.value.validate())throw new Y(`Form not valid`);let n=K.safeParse(M);if(!n.success)throw _.error(`Schema validation failed with:`,n.error),new Y(`Failed to validate edit scene model.`);S.value=z.WORKING;try{await d.edit({id:s.id,data:n.data});let t=s.id;if(e){let e=await d.save({id:s.id});M.id=e.id,M.category=e.category,M.name=e.name,M.description=e.description,M.icon=e.icon,M.enabled=e.enabled,M.primarySpaceId=e.primarySpaceId,t=e.id}await re(t,n.data.actions)}catch(e){throw S.value=z.ERROR,E=window.setTimeout(Q,2e3),e instanceof J&&e.code===422?g.error(e.message):e instanceof Y||(g.error(t),_.error(`Scene edit failed:`,e)),e}return S.value=z.OK,E=window.setTimeout(Q,2e3),e?(g.success(p(c&&c.success?c.success:`scenes.messages.created`)),`added`):(g.success(p(c&&c.success?c.success:`scenes.messages.edited`,{scene:s.name})),q.value=!1,Z=T(i(M)),`saved`)},Q=()=>{window.clearTimeout(E),S.value=z.NONE};return t(M,()=>{q.value=!(0,X.isEqual)(i(M),Z)}),e(()=>{Q()}),{categoriesOptions:D,spacesOptionsGrouped:k,model:M,formEl:G,formChanged:q,submit:ie,clear:Q,formResult:S,loadingSpaces:y,fetchSpaces:b,actionPluginOptions:N,addAction:F,removeAction:I,updateAction:L,getActionCardComponent:B,getActionFormComponent:H,getActionEditFormComponent:U,getPluginLabel:W}},ie=({id:e})=>{let t=h().getStore(j);return{icon:a(()=>{let n=t.findById(e);return n?.icon?n.icon:n?.category&&n.category in V?V[n.category]:V[R.GENERIC]})}},Q=()=>{let e=h().getStore(j),{data:t,semaphore:n,firstLoad:r}=C(e);return{scenes:a(()=>Array.from(t.value.values()).sort((e,t)=>e.name.localeCompare(t.name))),fetching:a(()=>n.value.fetching.items),loaded:a(()=>r.value),fetchScenes:async()=>e.fetch(),getScene:async t=>e.get({id:t}),findById:t=>e.findById(t),findBySpace:t=>e.findBySpace(t),triggerScene:async(t,n)=>{await e.trigger({id:t,source:n})},removeScene:async t=>{await e.remove({id:t})}}},ae=()=>{let{t:e}=r(),t=x(),n=h().getStore(j);return{addScene:async e=>n.add(e),editScene:async e=>n.edit(e),removeScene:async e=>{await n.remove({id:e})},bulkRemove:async r=>{if(r.length!==0)try{await _.confirm(e(`scenes.texts.confirmBulkRemove`,{count:r.length}),e(`scenes.headings.bulkRemove`),{confirmButtonText:e(`scenes.buttons.yes.title`),cancelButtonText:e(`scenes.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of r)try{await n.remove({id:e.id}),i++}catch{a++}i>0&&t.success(e(`scenes.messages.bulkRemoved`,{count:i})),a>0&&t.error(e(`scenes.messages.bulkRemoveFailed`,{count:a}))}catch{}},bulkEnable:async r=>{if(r.length!==0)try{await _.confirm(e(`scenes.texts.confirmBulkEnable`,{count:r.length}),e(`scenes.headings.bulkEnable`),{confirmButtonText:e(`scenes.buttons.yes.title`),cancelButtonText:e(`scenes.buttons.no.title`),type:`info`});let i=0,a=0;for(let e of r)try{await n.edit({id:e.id,data:{enabled:!0}}),i++}catch{a++}i>0&&t.success(e(`scenes.messages.bulkEnabled`,{count:i})),a>0&&t.error(e(`scenes.messages.bulkEnableFailed`,{count:a}))}catch{t.info(e(`scenes.messages.bulkEnableCanceled`))}},bulkDisable:async r=>{if(r.length!==0)try{await _.confirm(e(`scenes.texts.confirmBulkDisable`,{count:r.length}),e(`scenes.headings.bulkDisable`),{confirmButtonText:e(`scenes.buttons.yes.title`),cancelButtonText:e(`scenes.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of r)try{await n.edit({id:e.id,data:{enabled:!1}}),i++}catch{a++}i>0&&t.success(e(`scenes.messages.bulkDisabled`,{count:i})),a>0&&t.error(e(`scenes.messages.bulkDisableFailed`,{count:a}))}catch{t.info(e(`scenes.messages.bulkDisableCanceled`))}}}},$={search:void 0,categories:[],primarySpaceId:void 0,enabled:`all`},oe={by:`name`,dir:`asc`},se=()=>{let e=h().getStore(j),{firstLoad:n,semaphore:r}=C(e),{filters:i,sort:s,pagination:c,reset:l}=w({key:`${N}:scenes:list`,filters:{schema:H,defaults:$},sort:{defaults:[oe]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),u=a(()=>i.value.search!==$.search||!(0,X.isEqual)(i.value.categories,$.categories)||i.value.primarySpaceId!==$.primarySpaceId||i.value.enabled!==$.enabled),d=o(c.value.size||10),f=o(c.value.page||1),p=o(s.value.length>0?s.value[0]?.by:void 0),m=o(s.value.length>0?s.value[0]?.dir??null:null),g=(e,t)=>t?t===`whole_home`?!e:e===t:!0,_=a(()=>{let t=e.findAll().filter(e=>!e.draft&&(!i.value.search||e.id.toLowerCase().includes(i.value.search.toLowerCase())||e.name.toLowerCase().includes(i.value.search.toLowerCase())||e.description?.toLowerCase().includes(i.value.search.toLowerCase()))&&(i.value.categories.length===0||i.value.categories.includes(e.category))&&g(e.primarySpaceId,i.value.primarySpaceId)&&(i.value.enabled===`all`||i.value.enabled===`enabled`&&e.enabled||i.value.enabled===`disabled`&&!e.enabled)),n=p.value??`order`;return E(t,[e=>e[n]??``],[m.value??`asc`])}),v=a(()=>{let e=(f.value-1)*d.value,t=e+d.value;return _.value.slice(e,t)}),y=async()=>{await e.fetch()},b=a(()=>r.value.fetching.items||!n.value),x=a(()=>n.value),S=a(()=>e.findAll().filter(e=>!e.draft).length);return t(()=>c.value,e=>{f.value=e.page??1,d.value=e.size??10},{deep:!0}),t(()=>f.value,e=>{c.value.page=e}),t(()=>d.value,e=>{c.value.size=e}),t(()=>m.value,e=>{p.value===void 0||e===null?s.value=[]:s.value=[{by:p.value,dir:e}]}),t(()=>p.value,e=>{e===void 0||m.value===null?s.value=[]:s.value=[{by:e,dir:m.value}]}),t(()=>i.value,()=>{f.value=1},{deep:!0}),{scenes:_,scenesPaginated:v,totalRows:S,areLoading:b,loaded:x,fetchScenes:y,filters:i,filtersActive:u,paginateSize:d,paginatePage:f,sortBy:p,sortDir:m,resetFilter:l}};export{N as _,re as a,R as b,q as c,I as d,F as f,P as g,B as h,ie as i,Y as l,z as m,ae as n,Z as o,L as p,Q as r,J as s,se as t,U as u,M as v,V as y};
|
|
1
|
+
import"./chunk-DECur_0Z.js";import{Nr as e,Xr as t,ci as n,d as r,fi as i,mr as a,ui as o}from"./icon-with-child-DmQ_XhQy.js";import{A as s,Fn as c,Ht as l,Jn as u,Kn as d,Mn as f,Pn as p,S as m,T as h,Un as g,Ur as _,Vn as v,Wn as y,Yn as b,_ as x,an as S,ba as C,f as w,m as T,pn as E,qn as D,qt as O,wn as k,zn as A}from"./common-DitknrxN.js";import{t as ee}from"./useSpaces-DoHSAZGH.js";import{o as te,s as j}from"./composables-BtOMC6SO.js";var M=`scenes`,N=`scenes-module`,P=`ScenesModule.`,F=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerScene`,e}({}),I=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerSceneHandler`,e}({}),L=function(e){return e.SCENE_CREATED=`ScenesModule.Scene.Created`,e.SCENE_UPDATED=`ScenesModule.Scene.Updated`,e.SCENE_DELETED=`ScenesModule.Scene.Deleted`,e.SCENE_TRIGGERED=`ScenesModule.Scene.Triggered`,e.SCENE_EXECUTION_STARTED=`ScenesModule.Scene.ExecutionStarted`,e.SCENE_EXECUTION_COMPLETED=`ScenesModule.Scene.ExecutionCompleted`,e.SCENE_EXECUTION_FAILED=`ScenesModule.Scene.ExecutionFailed`,e.SCENE_ACTION_CREATED=`ScenesModule.SceneAction.Created`,e.SCENE_ACTION_UPDATED=`ScenesModule.SceneAction.Updated`,e.SCENE_ACTION_DELETED=`ScenesModule.SceneAction.Deleted`,e}({}),R=function(e){return e.GENERIC=`generic`,e.LIGHTING=`lighting`,e.CLIMATE=`climate`,e.MEDIA=`media`,e.WORK=`work`,e.RELAX=`relax`,e.NIGHT=`night`,e.MORNING=`morning`,e.PARTY=`party`,e.MOVIE=`movie`,e.AWAY=`away`,e.HOME=`home`,e.SECURITY=`security`,e.ENERGY=`energy`,e.CUSTOM=`custom`,e}({}),z=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),B={SCENES:`scenes_module-scenes`,SCENES_ADD:`scenes_module-scenes_add`,SCENES_EDIT:`scenes_module-scenes_edit`,SCENE:`scenes_module-scene`,SCENE_EDIT:`scenes_module-scene_edit`,SCENE_ADD_ACTION:`scenes_module-scene_add_action`,SCENE_EDIT_ACTION:`scenes_module-scene_edit_action`},V={[R.GENERIC]:`mdi:playlist-play`,[R.LIGHTING]:`mdi:lightbulb-group`,[R.CLIMATE]:`mdi:thermostat`,[R.MEDIA]:`mdi:television-play`,[R.WORK]:`mdi:briefcase`,[R.RELAX]:`mdi:sofa`,[R.NIGHT]:`mdi:weather-night`,[R.MORNING]:`mdi:weather-sunset-up`,[R.PARTY]:`mdi:party-popper`,[R.MOVIE]:`mdi:movie-open`,[R.AWAY]:`mdi:home-export-outline`,[R.HOME]:`mdi:home-import-outline`,[R.SECURITY]:`mdi:shield-home`,[R.ENERGY]:`mdi:flash`,[R.CUSTOM]:`mdi:shape-outline`},H=y({search:D().optional(),categories:p(v(R)),primarySpaceId:u([D().uuid(),A(`whole_home`)]).optional(),enabled:f([`all`,`enabled`,`disabled`]).default(`all`)}),U=({id:e})=>{let t=h(),n=t.getStore(j),r=t.getStore(te),{data:i,semaphore:o}=C(n);return{scene:a(()=>e===null?null:i.value.get(e)??null),isLoading:a(()=>o.value.fetching.item.includes(e)?!0:i.value.get(e)===void 0?o.value.fetching.items:!1),fetchScene:async()=>{i.value.get(e)?.draft||(await n.get({id:e}),await r.fetch({sceneId:e}))}}},W=y({id:D().uuid().optional(),type:D().trim().nonempty(),configuration:d(D(),b()).default({}),order:g().int().min(0).optional(),enabled:c().default(!0)}).catchall(b());y({id:D().uuid(),type:D().trim().nonempty(),configuration:d(D(),b()).optional(),order:g().int().min(0).optional(),enabled:c().optional()}).catchall(b());var G=y({id:D().uuid().optional(),name:D().trim().nonempty(),description:D().trim().transform(e=>e===``?null:e).nullable().optional(),category:v(R).default(R.GENERIC),icon:D().nullable().optional(),enabled:c().default(!0),order:g().optional(),primarySpaceId:D().uuid().nullable().optional().transform(e=>e===``?null:e),actions:p(W).default([])}),K=y({id:D().uuid(),name:D().trim().nonempty().optional(),description:D().trim().transform(e=>e===``?null:e).nullable().optional(),category:v(R).optional(),icon:D().nullable().optional(),enabled:c().optional(),order:g().optional(),primarySpaceId:D().uuid().nullable().optional().transform(e=>e===``?null:e),actions:p(W).default([])}),q=class extends Error{exception;constructor(e,t=null){super(e),this.name=`ScenesException`,this.exception=t}},J=class extends q{code;constructor(e,t=null,n=null){super(e,n),this.name=`ScenesApiException`,this.code=t}},Y=class extends q{constructor(e,t=null){super(e,t),this.name=`ScenesValidationException`}},ne=()=>{let e=s(),{enabled:t}=S(),n=[`sceneActionAddForm`,`sceneActionEditForm`,`sceneActionCard`],r=[`sceneActionSchema`,`sceneActionAddFormSchema`,`sceneActionEditFormSchema`,`sceneActionCreateReqSchema`,`sceneActionUpdateReqSchema`],i=a(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`scenes-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`scenes-module`)))return!1;let t=n.length===0||!!e.components&&n.some(t=>e.components&&t in e.components),i=r.length===0||!!e.schemas&&r.some(t=>e.schemas&&t in e.schemas);return t||i}):!1));return{plugins:i,options:a(()=>E(i.value.flatMap(e=>(e.elements??[]).filter(e=>{let t=e.modules===void 0||e.modules.includes(`scenes-module`),r=!!e.components&&n.some(t=>e.components&&t in e.components);return t&&r}).map(n=>({value:n.type,label:n.name?.trim()?n.name:e.name,disabled:!t(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>i.value.find(t=>t.type===e),getByType:e=>i.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`scenes-module`)))),getElement:e=>{for(let t of i.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`scenes-module`)));if(n)return n}}}},X=k(),Z=({id:e})=>{let s=h(),c=s.getStore(j),u=s.getStore(te),{t:d}=r(),f=x(),p=m(),{spaces:g,fetching:_,fetchSpaces:v}=ee(),y=o(z.NONE),b,S=a(()=>Object.values(R).map(e=>({value:e,label:d(`scenes.categories.${e}`),icon:V[e]}))),C=a(()=>{let e=g.value.filter(e=>e.type===l.ROOM).map(e=>({value:e.id,label:e.name,icon:O(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=g.value.filter(e=>e.type===l.ZONE).map(e=>({value:e.id,label:e.name,icon:O(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:l.ROOM,label:d(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:l.ZONE,label:d(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),w=n({id:e,category:R.GENERIC,name:``,description:null,icon:null,enabled:!0,primarySpaceId:null,actions:[]}),{options:E,getElement:D}=ne(),k=e=>{let t=e.propertyId;return t&&w.actions.find(e=>e.propertyId===t)?(f.warning(d(`scenes.messages.duplicateAction`)),!1):(w.actions.push(e),!0)},A=e=>{w.actions.splice(e,1)},M=(e,t)=>{e>=0&&e<w.actions.length&&(w.actions[e]=t)},N=e=>D(e)?.components?.sceneActionCard??null,P=e=>D(e)?.components?.sceneActionAddForm??null,F=e=>D(e)?.components?.sceneActionEditForm??null,I=e=>E.value.find(t=>t.value===e)?.label??e,L=T(i(w)),B=o(void 0),H=o(!1),U=async(e,t)=>{try{for(let n=0;n<t.length;n++){let r=t[n];r&&await u.add({sceneId:e,data:{...r,order:n,enabled:r.enabled??!0}})}}catch(e){throw p.error(`Error syncing scene actions:`,e),e}},W=async()=>{if(B.value.clearValidate(),!await B.value.validate())throw new Y(`Form not valid`);let t=G.safeParse(w);if(!t.success)throw p.error(`Schema validation failed with:`,t.error),new Y(`Failed to validate create scene model.`);y.value=z.WORKING;let n=d(`scenes.messages.createFailed`);try{let n=await c.add({id:e,draft:!1,data:t.data});t.data.actions.length>0&&await U(n.id,t.data.actions)}catch(e){throw y.value=z.ERROR,b=window.setTimeout(K,2e3),e instanceof J&&e.code===422?f.error(e.message):f.error(n),e}return y.value=z.OK,b=window.setTimeout(K,2e3),f.success(d(`scenes.messages.created`)),`added`},K=()=>{window.clearTimeout(b),y.value=z.NONE};return t(w,()=>{H.value=!(0,X.isEqual)(i(w),L)}),{categoriesOptions:S,spacesOptionsGrouped:C,model:w,formEl:B,formChanged:H,submit:W,clear:K,formResult:y,loadingSpaces:_,fetchSpaces:v,actionPluginOptions:E,addAction:k,removeAction:A,updateAction:M,getActionCardComponent:N,getActionFormComponent:P,getActionEditFormComponent:F,getPluginLabel:I}},re=({scene:s,messages:c})=>{let u=h(),d=u.getStore(j),f=u.getStore(te),{t:p}=r(),g=x(),_=m(),{spaces:v,fetching:y,fetchSpaces:b}=ee(),S=o(z.NONE),C=a(()=>f.findForScene(s.id)),w=o(T(C.value)),E,D=a(()=>Object.values(R).map(e=>({value:e,label:p(`scenes.categories.${e}`),icon:V[e]}))),k=a(()=>{let e=v.value.filter(e=>e.type===l.ROOM).map(e=>({value:e.id,label:e.name,icon:O(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=v.value.filter(e=>e.type===l.ZONE).map(e=>({value:e.id,label:e.name,icon:O(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:l.ROOM,label:p(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:l.ZONE,label:p(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),A=a(()=>C.value.map(e=>({...e}))),M=n({id:s.id,category:s.category,name:s.name,description:s.description,icon:s.icon,enabled:s.enabled,primarySpaceId:s.primarySpaceId,actions:A.value}),{options:N,getElement:P}=ne(),F=e=>{let t=e.propertyId;return t&&M.actions.find(e=>e.propertyId===t)?(g.warning(p(`scenes.messages.duplicateAction`)),!1):(M.actions.push(e),!0)},I=e=>{M.actions.splice(e,1)},L=(e,t)=>{e>=0&&e<M.actions.length&&(M.actions[e]=t)},B=e=>P(e)?.components?.sceneActionCard??null,H=e=>P(e)?.components?.sceneActionAddForm??null,U=e=>P(e)?.components?.sceneActionEditForm??null,W=e=>N.value.find(t=>t.value===e)?.label??e,G=o(void 0),q=o(!1),Z=T(i(M)),re=async(e,t)=>{try{let n=new Set(w.value.map(e=>e.id)),r=new Set(t.filter(e=>e.id).map(e=>e.id));for(let t of w.value)r.has(t.id)||await f.remove({id:t.id,sceneId:e});let i=new Map;for(let r=0;r<t.length;r++){let a=t[r];if(!a)continue;let o=a.id;if(!o||!n.has(o)){let t=await f.add({sceneId:e,data:{...a,order:r,enabled:a.enabled??!0}});i.set(r,t.id)}else{let t=w.value.find(e=>e.id===o);if(t){let n=new Set([`id`,`draft`,`createdAt`,`updatedAt`,`scene`]),i=e=>Object.fromEntries(Object.entries(e).filter(([e])=>!n.has(e)));(0,X.isEqual)(i(t),{...i(a),order:r})||await f.edit({id:o,sceneId:e,data:{...a,order:r}})}}}for(let[e,t]of i){let n=M.actions[e];n&&(n.id=t)}w.value=T(f.findForScene(e))}catch(e){throw _.error(`Error syncing scene actions:`,e),e}},ie=async()=>{let e=s.draft,t=c&&c.error?c.error:s.draft?p(`scenes.messages.createFailed`):p(`scenes.messages.editFailed`,{scene:s.name});if(G.value.clearValidate(),!await G.value.validate())throw new Y(`Form not valid`);let n=K.safeParse(M);if(!n.success)throw _.error(`Schema validation failed with:`,n.error),new Y(`Failed to validate edit scene model.`);S.value=z.WORKING;try{await d.edit({id:s.id,data:n.data});let t=s.id;if(e){let e=await d.save({id:s.id});M.id=e.id,M.category=e.category,M.name=e.name,M.description=e.description,M.icon=e.icon,M.enabled=e.enabled,M.primarySpaceId=e.primarySpaceId,t=e.id}await re(t,n.data.actions)}catch(e){throw S.value=z.ERROR,E=window.setTimeout(Q,2e3),e instanceof J&&e.code===422?g.error(e.message):e instanceof Y||(g.error(t),_.error(`Scene edit failed:`,e)),e}return S.value=z.OK,E=window.setTimeout(Q,2e3),e?(g.success(p(c&&c.success?c.success:`scenes.messages.created`)),`added`):(g.success(p(c&&c.success?c.success:`scenes.messages.edited`,{scene:s.name})),q.value=!1,Z=T(i(M)),`saved`)},Q=()=>{window.clearTimeout(E),S.value=z.NONE};return t(M,()=>{q.value=!(0,X.isEqual)(i(M),Z)}),e(()=>{Q()}),{categoriesOptions:D,spacesOptionsGrouped:k,model:M,formEl:G,formChanged:q,submit:ie,clear:Q,formResult:S,loadingSpaces:y,fetchSpaces:b,actionPluginOptions:N,addAction:F,removeAction:I,updateAction:L,getActionCardComponent:B,getActionFormComponent:H,getActionEditFormComponent:U,getPluginLabel:W}},ie=({id:e})=>{let t=h().getStore(j);return{icon:a(()=>{let n=t.findById(e);return n?.icon?n.icon:n?.category&&n.category in V?V[n.category]:V[R.GENERIC]})}},Q=()=>{let e=h().getStore(j),{data:t,semaphore:n,firstLoad:r}=C(e);return{scenes:a(()=>Array.from(t.value.values()).sort((e,t)=>e.name.localeCompare(t.name))),fetching:a(()=>n.value.fetching.items),loaded:a(()=>r.value),fetchScenes:async()=>e.fetch(),getScene:async t=>e.get({id:t}),findById:t=>e.findById(t),findBySpace:t=>e.findBySpace(t),triggerScene:async(t,n)=>{await e.trigger({id:t,source:n})},removeScene:async t=>{await e.remove({id:t})}}},ae=()=>{let{t:e}=r(),t=x(),n=h().getStore(j);return{addScene:async e=>n.add(e),editScene:async e=>n.edit(e),removeScene:async e=>{await n.remove({id:e})},bulkRemove:async r=>{if(r.length!==0)try{await _.confirm(e(`scenes.texts.confirmBulkRemove`,{count:r.length}),e(`scenes.headings.bulkRemove`),{confirmButtonText:e(`scenes.buttons.yes.title`),cancelButtonText:e(`scenes.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of r)try{await n.remove({id:e.id}),i++}catch{a++}i>0&&t.success(e(`scenes.messages.bulkRemoved`,{count:i})),a>0&&t.error(e(`scenes.messages.bulkRemoveFailed`,{count:a}))}catch{}},bulkEnable:async r=>{if(r.length!==0)try{await _.confirm(e(`scenes.texts.confirmBulkEnable`,{count:r.length}),e(`scenes.headings.bulkEnable`),{confirmButtonText:e(`scenes.buttons.yes.title`),cancelButtonText:e(`scenes.buttons.no.title`),type:`info`});let i=0,a=0;for(let e of r)try{await n.edit({id:e.id,data:{enabled:!0}}),i++}catch{a++}i>0&&t.success(e(`scenes.messages.bulkEnabled`,{count:i})),a>0&&t.error(e(`scenes.messages.bulkEnableFailed`,{count:a}))}catch{t.info(e(`scenes.messages.bulkEnableCanceled`))}},bulkDisable:async r=>{if(r.length!==0)try{await _.confirm(e(`scenes.texts.confirmBulkDisable`,{count:r.length}),e(`scenes.headings.bulkDisable`),{confirmButtonText:e(`scenes.buttons.yes.title`),cancelButtonText:e(`scenes.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of r)try{await n.edit({id:e.id,data:{enabled:!1}}),i++}catch{a++}i>0&&t.success(e(`scenes.messages.bulkDisabled`,{count:i})),a>0&&t.error(e(`scenes.messages.bulkDisableFailed`,{count:a}))}catch{t.info(e(`scenes.messages.bulkDisableCanceled`))}}}},$={search:void 0,categories:[],primarySpaceId:void 0,enabled:`all`},oe={by:`name`,dir:`asc`},se=()=>{let e=h().getStore(j),{firstLoad:n,semaphore:r}=C(e),{filters:i,sort:s,pagination:c,reset:l}=w({key:`${N}:scenes:list`,filters:{schema:H,defaults:$},sort:{defaults:[oe]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),u=a(()=>i.value.search!==$.search||!(0,X.isEqual)(i.value.categories,$.categories)||i.value.primarySpaceId!==$.primarySpaceId||i.value.enabled!==$.enabled),d=o(c.value.size||10),f=o(c.value.page||1),p=o(s.value.length>0?s.value[0]?.by:void 0),m=o(s.value.length>0?s.value[0]?.dir??null:null),g=(e,t)=>t?t===`whole_home`?!e:e===t:!0,_=a(()=>{let t=e.findAll().filter(e=>!e.draft&&(!i.value.search||e.id.toLowerCase().includes(i.value.search.toLowerCase())||e.name.toLowerCase().includes(i.value.search.toLowerCase())||e.description?.toLowerCase().includes(i.value.search.toLowerCase()))&&(i.value.categories.length===0||i.value.categories.includes(e.category))&&g(e.primarySpaceId,i.value.primarySpaceId)&&(i.value.enabled===`all`||i.value.enabled===`enabled`&&e.enabled||i.value.enabled===`disabled`&&!e.enabled)),n=p.value??`order`;return E(t,[e=>e[n]??``],[m.value??`asc`])}),v=a(()=>{let e=(f.value-1)*d.value,t=e+d.value;return _.value.slice(e,t)}),y=async()=>{await e.fetch()},b=a(()=>r.value.fetching.items||!n.value),x=a(()=>n.value),S=a(()=>e.findAll().filter(e=>!e.draft).length);return t(()=>c.value,e=>{f.value=e.page??1,d.value=e.size??10},{deep:!0}),t(()=>f.value,e=>{c.value.page=e}),t(()=>d.value,e=>{c.value.size=e}),t(()=>m.value,e=>{p.value===void 0||e===null?s.value=[]:s.value=[{by:p.value,dir:e}]}),t(()=>p.value,e=>{e===void 0||m.value===null?s.value=[]:s.value=[{by:e,dir:m.value}]}),t(()=>i.value,()=>{f.value=1},{deep:!0}),{scenes:_,scenesPaginated:v,totalRows:S,areLoading:b,loaded:x,fetchScenes:y,filters:i,filtersActive:u,paginateSize:d,paginatePage:f,sortBy:p,sortDir:m,resetFilter:l}};export{N as _,re as a,R as b,q as c,I as d,F as f,P as g,B as h,ie as i,Y as l,z as m,ae as n,Z as o,L as p,Q as r,J as s,se as t,U as u,M as v,V as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-DECur_0Z.js";import{Xr as e,ci as t,d as n,fi as r,mr as i,n as a,ui as o}from"./icon-with-child-DmQ_XhQy.js";import{A as s,Bn as c,Fn as l,In as u,Jn as d,Pn as f,S as p,T as m,Tn as h,Un as g,Ur as _,Wn as v,Yn as y,_ as b,an as x,ba as S,d as C,m as w,pn as T,qn as E,wn as D,y as O}from"./common-
|
|
1
|
+
import"./chunk-DECur_0Z.js";import{Xr as e,ci as t,d as n,fi as r,mr as i,n as a,ui as o}from"./icon-with-child-DmQ_XhQy.js";import{A as s,Bn as c,Fn as l,In as u,Jn as d,Pn as f,S as p,T as m,Tn as h,Un as g,Ur as _,Wn as v,Yn as y,_ as b,an as x,ba as S,d as C,m as w,pn as T,qn as E,wn as D,y as O}from"./common-DitknrxN.js";import{c as k,d as A,f as j,h as M,i as N,n as P,o as F,p as ee}from"./useLocation-CnjASICx.js";var I=()=>{let e=m().getStore(ee),{data:t,semaphore:n}=S(e);return{weatherDay:i(()=>t.value),isLoading:i(()=>t.value===null?n.value.getting:!1),fetchWeatherDay:async()=>{await e.get()}}},L=()=>{let e=m().getStore(M),{firstLoad:t,semaphore:n}=S(e);return{locations:i(()=>e.findAll().filter(e=>!e.draft)),areLoading:i(()=>n.value.fetching.items),loaded:i(()=>t.value),fetchLocations:async()=>{await e.fetch()}}},R={search:void 0,types:[],primary:`all`},z=()=>{let t=m().getStore(M),{firstLoad:n,semaphore:r}=S(t),{configModule:a}=h({type:A}),s=i(()=>a.value?.primaryLocationId??null),c=o(10),l=o(1),u=o({...R}),d=i(()=>u.value.search!==R.search||u.value.types.length>0||u.value.primary!==R.primary),f=o(`name`),p=o(`ascending`),g=i(()=>{let e=t.findAll().filter(e=>!(e.draft||u.value.search&&!e.name.toLowerCase().includes(u.value.search.toLowerCase())||u.value.types.length>0&&!u.value.types.includes(e.type)||u.value.primary===`primary`&&e.id!==s.value||u.value.primary===`secondary`&&e.id===s.value));return p.value===null?e:T(e,[e=>e[f.value]??``],[p.value===`ascending`?`asc`:`desc`])}),_=i(()=>{let e=(l.value-1)*c.value,t=e+c.value;return g.value.slice(e,t)}),v=async()=>{await t.fetch()},y=i(()=>r.value.fetching.items||!n.value),b=i(()=>n.value),x=i(()=>t.findAll().filter(e=>!e.draft).length);return e(()=>u.value,()=>{l.value=1},{deep:!0}),{locations:g,locationsPaginated:_,totalRows:x,areLoading:y,loaded:b,fetchLocations:v,filters:u,filtersActive:d,paginateSize:c,paginatePage:l,sortBy:f,sortDir:p,resetFilter:()=>{u.value={...R}},primaryLocationId:s}},B=()=>{let e=O(),t=p(),n=o({}),r=o(!1),s=o(!1),c=o(!1);return{weatherByLocation:i(()=>n.value),isLoading:r,hasError:s,fetchCompleted:c,fetchLocationsWeather:async()=>{if(!r.value){r.value=!0,s.value=!1;try{let{data:r,error:i,response:o}=await e.client.GET(`/${a}/${j}/weather`,{});if(r!==void 0&&Array.isArray(r.data)){let e={};for(let n of r.data)if(n.location_id)try{let t=P(n.current),r=n.location;e[n.location_id]={current:t,locationName:r?.name??``,country:r?.country??null}}catch(e){t.error(`[WEATHER] Failed to transform weather data for location ${n.location_id}`,e)}n.value=e,Object.keys(e).length===0&&(s.value=!0);return}let c=`Failed to fetch locations weather.`;throw i&&(c=i.message??c),new N(c,o?.status??500)}catch(e){if(s.value=!0,e instanceof N)throw e;t.error(`[WEATHER] Failed to fetch locations weather`,e)}finally{r.value=!1,c.value=!0}}}}},V=()=>{let{t:e}=n(),t=b(),r=m().getStore(M);return{add:async e=>r.add(e),edit:async e=>r.edit(e),remove:async n=>{let i=r.findById(n);if(i)try{await _.confirm(e(`weatherModule.messages.locations.confirmDeleteLocation`,{name:i.name}),e(`weatherModule.headings.deleteLocation`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.buttons.no.title`),type:`warning`});try{await r.remove({id:n}),t.success(e(`weatherModule.messages.locations.deleted`))}catch{t.error(e(`weatherModule.messages.locations.notDeleted`))}}catch{t.info(e(`weatherModule.messages.locations.deleteCanceled`,{location:i.name}))}},bulkRemove:async n=>{if(n.length!==0)try{await _.confirm(e(`weatherModule.messages.locations.confirmBulkDelete`,{count:n.length}),e(`weatherModule.headings.bulkDeleteLocations`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of n)try{await r.remove({id:e.id}),i++}catch{a++}i>0&&t.success(e(`weatherModule.messages.locations.bulkDeleted`,{count:i})),a>0&&t.error(e(`weatherModule.messages.locations.bulkDeleteFailed`,{count:a}))}catch{t.info(e(`weatherModule.messages.locations.bulkDeleteCanceled`))}}}},H=E().uuid(),U=v({id:H,draft:l().default(!1),type:E().trim().nonempty(),name:E().trim().nonempty(),order:g().int().nonnegative().default(0),createdAt:d([E().datetime({offset:!0}),u()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:d([E().datetime({offset:!0}),u()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)}).catchall(y());v({fetching:v({items:l().default(!1),item:f(H)}),creating:f(H),updating:f(H),deleting:f(H)}),v({id:H,type:E().trim().nonempty(),data:c({})}),v({id:H,data:v({type:E().trim().nonempty(),name:E().trim().nonempty()}).catchall(y())}),v({id:H}),v({id:H});var W=v({id:H.optional().default(C()),draft:l().optional().default(!1),data:v({type:E().trim().nonempty(),name:E().trim().nonempty()}).catchall(y())}),G=v({id:H,data:v({type:E().trim().nonempty(),name:E().trim().optional()}).catchall(y())});v({id:H}),v({id:H});var K=v({id:E().uuid().optional(),type:E().trim().nonempty(),name:E().trim().nonempty()}).catchall(y()),q=v({type:E().trim().nonempty(),name:E().trim().nonempty().optional()}).catchall(y());v({id:E().uuid(),type:E(),name:E().trim().nonempty(),order:g().int().nonnegative().default(0),created_at:E(),updated_at:E().nullable()}).catchall(y()),v({id:H,type:E().trim().nonempty(),name:E().trim().min(1,`Name is required`)});var J=v({name:E().trim().min(1,`Name is required`)}),Y=U,X=K,Z=q,Q=D(),te=({id:i})=>{let a=m().getStore(M),{t:s}=n(),c=b(),l=p(),u=o(k.NONE),d,f=t({name:a.findById(i.value)?.name??``}),h=w(r(f)),g=o(void 0),_=o(!1),v=async()=>{if(g.value.clearValidate(),!await g.value.validate())throw new F(`Form not valid`);let e=J.safeParse(f);if(!e.success)throw l.error(`[WEATHER_MODULE] Schema validation failed:`,e.error),new F(`Failed to validate update location model.`);u.value=k.WORKING;let t=a.findById(i.value);if(!t)throw new F(`Location not found.`);let n=s(`weatherModule.messages.locations.notUpdated`,{location:f.name});try{await a.edit({id:i.value,data:{type:t.type,...e.data}}),u.value=k.OK,c.success(s(`weatherModule.messages.locations.updated`,{location:f.name})),Object.assign(h,w(r(f))),_.value=!1}catch(e){throw u.value=k.ERROR,d=window.setTimeout(y,2e3),e instanceof N&&e.code===422?c.error(e.message):c.error(n),e}},y=()=>{window.clearTimeout(d),u.value=k.NONE};return e(()=>f,()=>{_.value=!(0,Q.isEqual)(r(f),h)},{deep:!0}),e(()=>a.findById(i.value),e=>{e&&!_.value&&(f.name=e.name,Object.assign(h,w(r(f))))}),{model:f,formEl:g,formChanged:_,submit:v}},$=()=>{let e=s(),{enabled:t}=x(),n=[`locationAddForm`,`locationEditForm`],r=[`locationSchema`,`locationAddFormSchema`,`locationEditFormSchema`,`locationCreateReqSchema`,`locationUpdateReqSchema`],a=i(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`weather-module`)))return!1;let t=n.length===0||!!e.components&&n.some(t=>e.components&&t in e.components),i=r.length===0||!!e.schemas&&r.some(t=>e.schemas&&t in e.schemas);return t||i}):!1));return{plugins:a,options:i(()=>T(a.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)).map(n=>({value:n.type,label:n.name?.trim()?n.name:e.name,disabled:!t(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>a.value.find(t=>t.type===e),getByType:e=>a.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)))),getElement:e=>{for(let t of a.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)));if(n)return n}}}},ne=({type:e})=>{let{getByType:t}=$(),n=i(()=>t(e));return{plugin:n,element:i(()=>(n.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`))))}};export{I as _,Y as a,U as c,G as d,H as f,L as g,z as h,X as i,q as l,B as m,$ as n,Z as o,V as p,te as r,K as s,ne as t,W as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{mr as e}from"./icon-with-child-DmQ_XhQy.js";import{$t as t,T as n,ba as r}from"./common-
|
|
1
|
+
import{mr as e}from"./icon-with-child-DmQ_XhQy.js";import{$t as t,T as n,ba as r}from"./common-DitknrxN.js";var i=()=>{let i=n().getStore(t),{profile:a}=r(i);return{profile:e(()=>a.value),isSignedIn:e(()=>i.isSignedIn())}};export{i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-DECur_0Z.js";import{Xr as e,ci as t,d as n,fi as r,mr as i,ui as a}from"./icon-with-child-DmQ_XhQy.js";import{A as o,Fn as s,Pn as c,S as l,T as u,Un as d,Ur as f,Wn as p,_ as m,an as h,ba as g,f as _,m as v,n as y,pn as b,qn as x,wn as S}from"./common-cN85xDKw.js";import{a as C,c as w,d as T,i as E,n as D,o as O,r as k,t as A}from"./keys-BrCp8xLt.js";import{i as j,t as M}from"./types-PhBYs4jt.js";import{n as N}from"./useDataSources-Xo2JI-j1.js";var P=()=>{let e=o(),{enabled:t}=h(),n=[`pageDetail`,`pageAddForm`,`pageEditForm`],r=[`pageSchema`,`pageAddFormSchema`,`pageEditFormSchema`,`pageCreateReqSchema`,`pageUpdateReqSchema`],a=[`configure`],s=i(()=>e.getPlugins().filter(e=>{if(!(e.modules===void 0||e.modules.includes(`dashboard-module`)))return!1;let t=a.some(t=>e.routes&&t in e.routes)??!0;return(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`dashboard-module`)))return!1;let i=n.length===0||!!e.components&&n.some(t=>e.components&&t in e.components),a=r.length===0||!!e.schemas&&r.some(t=>e.schemas&&t in e.schemas);return i||a||t})}));return{plugins:s,options:i(()=>b(s.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`dashboard-module`)).map(n=>({value:n.type,label:n.name?.trim()?n.name:e.name,disabled:!t(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>s.value.find(t=>t.type===e),getByType:e=>s.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`)))),getElement:e=>{for(let t of s.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`)));if(n)return n}}}},F=()=>{let e=u().getStore(D),{firstLoad:t,semaphore:n}=g(e);return{pages:i(()=>e.findAll().filter(e=>!e.draft)),areLoading:i(()=>!!n.value.fetching.items||!t.value),loaded:i(()=>t.value),fetchPages:async()=>{await e.fetch()}}},I=S(),L={search:void 0,types:[],displays:[]},ee={by:`title`,dir:`asc`},te=()=>{let t=u().getStore(D),{firstLoad:n,semaphore:r}=g(t),{filters:o,sort:s,pagination:c,reset:l}=_({key:`${w}:pages:list`,filters:{schema:j,defaults:L},sort:{defaults:[ee]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),d=i(()=>o.value.search!==L.search||!(0,I.isEqual)(o.value.types,L.types)||!(0,I.isEqual)(o.value.displays,L.displays)),f=a(c.value.size||10),p=a(c.value.page||1),m=a(s.value.length>0?s.value[0]?.by:void 0),h=a(s.value.length>0?s.value[0]?.dir??null:null),v=i(()=>b(t.findAll().filter(e=>!e.draft&&(!o.value.search||e.title.toLowerCase().includes(o.value.search.toLowerCase()))&&(o.value.types.length===0||o.value.types.includes(e.type))&&(o.value.displays.length===0||o.value.displays.includes(`all`)&&(e.displays===null||e.displays.length===0)||e.displays!==null&&e.displays.length>0&&e.displays.some(e=>o.value.displays.includes(e)))),[e=>e[m.value]??``],[h.value===`asc`?`asc`:`desc`])),y=i(()=>{let e=(p.value-1)*f.value,t=e+f.value;return v.value.slice(e,t)}),x=async()=>{await t.fetch()},S=i(()=>r.value.fetching.items||!n.value),C=i(()=>n.value),T=i(()=>t.findAll().filter(e=>!e.draft).length);return e(()=>c.value,e=>{p.value=e.page??1,f.value=e.size??10},{deep:!0}),e(()=>p.value,e=>{c.value.page=e}),e(()=>f.value,e=>{c.value.size=e}),e(()=>h.value,e=>{m.value===void 0||e===null?s.value=[]:s.value=[{by:m.value,dir:e}]}),e(()=>m.value,e=>{e===void 0?s.value=[]:s.value=[{by:e,dir:h.value}]}),{pages:v,pagesPaginated:y,totalRows:T,areLoading:S,loaded:C,fetchPages:x,filters:o,filtersActive:d,paginateSize:f,paginatePage:p,sortBy:m,sortDir:h,resetFilter:l}},R=()=>{let{t:e}=n(),t=m(),r=u().getStore(D);return{remove:async n=>{let i=r.findById(n);if(i===null)throw new C(`Something went wrong, page can't be loaded`);f.confirm(e(`dashboardModule.texts.pages.confirmRemove`,{page:i.title}),e(`dashboardModule.headings.pages.remove`),{confirmButtonText:e(`dashboardModule.buttons.yes.title`),cancelButtonText:e(`dashboardModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await r.remove({id:i.id}),t.success(e(`dashboardModule.messages.pages.removed`,{page:i.title}))}catch(n){if(n instanceof E&&n.code===404){let n=e(`dashboardModule.messages.pages.notFound`,{page:i.title});t.error(n)}else if(n instanceof E&&n.code===422)t.error(n.message);else{let n=e(`dashboardModule.messages.pages.notRemoved`,{page:i.title});t.error(n)}}}).catch(()=>{t.info(e(`dashboardModule.messages.pages.removeCanceled`,{page:i.title}))})},bulkRemove:async n=>{if(n.length!==0)try{await f.confirm(e(`dashboardModule.texts.pages.confirmBulkRemove`,{count:n.length}),e(`dashboardModule.headings.pages.bulkRemove`),{confirmButtonText:e(`dashboardModule.buttons.yes.title`),cancelButtonText:e(`dashboardModule.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of n)try{await r.remove({id:e.id}),i++}catch{a++}i>0&&t.success(e(`dashboardModule.messages.pages.bulkRemoved`,{count:i})),a>0&&t.error(e(`dashboardModule.messages.pages.bulkRemoveFailed`,{count:a}))}catch{}}}},z=({id:e})=>{let t=u().getStore(D);return{icon:i(()=>`mdi:${t.findById(e)?.icon??`view-dashboard`}`)}},B=p({id:x().uuid().optional(),type:x().trim().nonempty(),title:x().trim().nonempty(),icon:x().trim().transform(e=>e===``?null:e).nullable().optional(),order:d(),showTopBar:s().optional(),displays:c(x().uuid()).nullable().optional()}),V=p({id:x().uuid(),type:x().trim().nonempty(),title:x().trim().nonempty().optional(),icon:x().trim().transform(e=>e===``?null:e).nullable().optional(),order:d().optional(),showTopBar:s().optional(),displays:c(x().uuid()).nullable().optional()}),H=({type:e})=>{let{getByType:t}=P(),n=i(()=>t(e));return{plugin:n,element:i(()=>(n.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`))))}},U=({id:i,type:o})=>{let s=u(),{element:c}=H({type:o}),d=s.getStore(D),{t:f}=n(),p=m(),h=l(),g=a(T.NONE),_,b=t({...y(c.value?.schemas?.pageAddFormSchema||B),id:i,type:o,title:``,icon:``,order:0,showTopBar:!0}),x=v(r(b)),S=a(void 0),C=a(!1),w=async()=>{if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let e=(c.value?.schemas?.pageAddFormSchema||B).safeParse(b);if(!e.success)throw h.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create page model.`);g.value=T.WORKING;let t=f(`dashboardModule.messages.pages.notCreated`,{page:b.title});try{await d.add({id:i,draft:!1,data:{...e.data,type:o}})}catch(e){throw g.value=T.ERROR,_=window.setTimeout(k,2e3),e instanceof E&&e.code===422?p.error(e.message):p.error(t),e}return g.value=T.OK,_=window.setTimeout(k,2e3),p.success(f(`dashboardModule.messages.pages.created`,{page:b.title})),`added`},k=()=>{window.clearTimeout(_),g.value=T.NONE};return e(b,()=>{C.value=!(0,I.isEqual)(r(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:k,formResult:g}},W=({page:i,messages:o})=>{let s=u(),{element:c}=H({type:i.type}),d=s.getStore(D),{t:f}=n(),p=m(),h=l(),g=a(T.NONE),_,y=t(i),b=v(r(y)),x=a(void 0),S=a(!1),C=async()=>{let e=i.draft,t=o&&o.error?o.error:i.draft?f(`dashboardModule.messages.pages.notCreated`,{page:i.title}):f(`dashboardModule.messages.pages.notEdited`,{page:i.title});if(x.value.clearValidate(),!await x.value.validate())throw new O(`Form not valid`);let n=(c.value?.schemas?.pageEditFormSchema||V).safeParse(y);if(!n.success)throw h.error(`Schema validation failed with:`,n.error),new O(`Failed to validate edit page model.`);g.value=T.WORKING;try{let e;if(e=await d.edit({id:i.id,data:{...n.data,type:i.type}}),i.draft&&(e=await d.save({id:i.id})),e){let t=e;Object.assign(y,t)}}catch(e){throw g.value=T.ERROR,_=window.setTimeout(w,2e3),e instanceof E&&e.code===422?p.error(e.message):p.error(t),e}return g.value=T.OK,_=window.setTimeout(w,2e3),e?(p.success(f(o&&o.success?o.success:`dashboardModule.messages.pages.created`,{page:i.title})),`added`):(p.success(f(o&&o.success?o.success:`dashboardModule.messages.pages.edited`,{page:i.title})),S.value=!1,b=v(r(y)),`saved`)},w=()=>{window.clearTimeout(_),g.value=T.NONE};return e(y,()=>{S.value=!(0,I.isEqual)(r(y),b)}),{model:y,formEl:x,formChanged:S,submit:C,clear:w,formResult:g}},G=e=>{let t=u().getStore(k),{firstLoad:n,semaphore:r}=g(t);return{tiles:i(()=>t.findForParent(e.parent,e.parentId)),areLoading:i(()=>r.value.fetching.items.includes(e.parentId)?!0:n.value.includes(e.parentId)?!1:r.value.fetching.items.includes(e.parentId)),loaded:i(()=>n.value.includes(e.parentId)),fetchTiles:async()=>{await t.fetch({parent:{type:e.parent,id:e.parentId}})}}},K=e=>{let{t}=n(),r=m(),i=u().getStore(k);return{findById:(e,t)=>i.findById(e,t),edit:async e=>i.edit(e),save:async e=>i.save(e),remove:async n=>{let a=i.findById(e.parent,n);if(a===null)throw new C(`Something went wrong, tile can't be loaded`);f.confirm(t(`dashboardModule.texts.tiles.confirmRemove`),t(`dashboardModule.headings.tiles.remove`),{confirmButtonText:t(`dashboardModule.buttons.yes.title`),cancelButtonText:t(`dashboardModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await i.remove({id:a.id,parent:{type:e.parent,id:e.parentId}}),r.success(t(`dashboardModule.messages.tiles.removed`))}catch(e){if(e instanceof E&&e.code===404){let e=t(`dashboardModule.messages.tiles.notFound`);r.error(e)}else if(e instanceof E&&e.code===422)r.error(e.message);else{let e=t(`dashboardModule.messages.tiles.notRemoved`);r.error(e)}}}).catch(()=>{r.info(t(`dashboardModule.messages.tiles.removeCanceled`))})},removeDirectly:async e=>i.remove(e)}},q=p({id:x().uuid().optional(),type:x().trim().nonempty(),row:d(),col:d(),rowSpan:d(),colSpan:d(),hidden:s()}),J=p({id:x().uuid(),type:x().trim().nonempty(),row:d().optional(),col:d().optional(),rowSpan:d().optional(),colSpan:d().optional(),hidden:s()}),Y=({id:i,parent:o,parentId:s,type:c,onlyDraft:d=!1})=>{let f=u(),{element:p}=N({type:c}),h=f.getStore(k),{t:g}=n(),_=m(),b=l(),x=a(T.NONE),S,C=t({...y(p.value?.schemas?.tileAddFormSchema||q),id:i,type:c,row:1,col:1,rowSpan:1,colSpan:1,hidden:!1}),w=v(r(C)),D=a(void 0),A=a(!1),j=async()=>{if(D.value.clearValidate(),!await D.value.validate())throw new O(`Form not valid`);let e=(p.value?.schemas?.tileAddFormSchema||q).safeParse(C);if(!e.success)throw b.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create tile model.`);x.value=T.WORKING;let t=g(`dashboardModule.messages.tiles.notCreated`);try{await h.add({id:i,parent:{type:o,id:s},draft:d,data:{...e.data,type:c}})}catch(e){throw x.value=T.ERROR,S=window.setTimeout(M,2e3),e instanceof E&&e.code===422?_.error(e.message):_.error(t),e}return x.value=T.OK,S=window.setTimeout(M,2e3),_.success(g(`dashboardModule.messages.tiles.created`)),`added`},M=()=>{window.clearTimeout(S),x.value=T.NONE};return e(C,()=>{A.value=!(0,I.isEqual)(r(C),w)}),{model:C,formEl:D,formChanged:A,submit:j,clear:M,formResult:x}},X=({tile:i,messages:o,onlyDraft:s=!1})=>{let c=u(),{element:d}=N({type:i.type}),f=c.getStore(k),{t:p}=n(),h=m(),g=l(),_=a(T.NONE),y,b=t(i),x=v(r(b)),S=a(void 0),C=a(!1),w=async()=>{let e=i.draft,t=o&&o.error?o.error:i.draft&&!s?p(`dashboardModule.messages.tiles.notCreated`):p(`dashboardModule.messages.tiles.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let n=(d.value?.schemas?.tileEditFormSchema||J).safeParse(b);if(!n.success)throw g.error(`Schema validation failed with:`,n.error),new O(`Failed to validate create tile model.`);_.value=T.WORKING;try{await f.edit({id:i.id,parent:i.parent,data:{...n.data,type:i.type}}),i.draft&&!s&&await f.save({id:i.id,parent:i.parent})}catch(e){throw _.value=T.ERROR,y=window.setTimeout(D,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(t),e}return _.value=T.OK,y=window.setTimeout(D,2e3),e&&!s?(h.success(p(o&&o.success?o.success:`dashboardModule.messages.tiles.created`)),`added`):(h.success(p(o&&o.success?o.success:`dashboardModule.messages.tiles.edited`)),C.value=!1,x=v(r(b)),`saved`)},D=()=>{window.clearTimeout(y),_.value=T.NONE};return e(b,()=>{C.value=!(0,I.isEqual)(r(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:D,formResult:_}},Z=e=>{let{id:t}=e,n=u().getStore(A),{data:r,semaphore:a}=g(n);return{dataSource:i(()=>t===null?null:t in r.value?r.value[t]:null),isLoading:i(()=>a.value.fetching.item.includes(t)?!0:(t in r.value?r.value[t]:null)===null?a.value.fetching.items.includes(e.parentId):!1),fetchDataSource:async()=>{(t in r.value?r.value[t]:null)?.draft||await n.get({id:t,parent:{type:e.parent,id:e.parentId}})}}},Q=p({id:x().uuid().optional(),type:x().trim().nonempty()}),$=p({id:x().uuid(),type:x().trim().nonempty()}),ne=({id:i,type:o,parent:s,parentId:c,onlyDraft:d=!1})=>{let f=u(),{element:p}=M({type:o}),h=f.getStore(A),{t:g}=n(),_=m(),b=l(),x=a(T.NONE),S,C=t({...y(p.value?.schemas?.dataSourceAddFormSchema||Q),id:i,type:o}),w=v(r(C)),D=a(void 0),k=a(!1),j=async()=>{if(D.value.clearValidate(),!await D.value.validate())throw new O(`Form not valid`);let e=(p.value?.schemas?.dataSourceAddFormSchema||Q).safeParse(C);if(!e.success)throw b.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create data source model.`);x.value=T.WORKING;let t=g(`dashboardModule.messages.dataSources.notCreated`);try{await h.add({id:i,parent:{type:s,id:c},draft:d,data:{...e.data,type:o}})}catch(e){throw x.value=T.ERROR,S=window.setTimeout(N,2e3),e instanceof E&&e.code===422?_.error(e.message):_.error(t),e}return x.value=T.OK,S=window.setTimeout(N,2e3),_.success(g(`dashboardModule.messages.dataSources.created`)),`added`},N=()=>{window.clearTimeout(S),x.value=T.NONE};return e(C,()=>{k.value=!(0,I.isEqual)(r(C),w)}),{model:C,formEl:D,formChanged:k,submit:j,clear:N,formResult:x}},re=({dataSource:i,messages:o,onlyDraft:s=!1})=>{let c=u(),{element:d}=M({type:i.type}),f=c.getStore(A),{t:p}=n(),h=m(),g=l(),_=a(T.NONE),y,b=t(i),x=v(r(b)),S=a(void 0),C=a(!1),w=async()=>{let e=i.draft,t=o&&o.error?o.error:i.draft&&!s?p(`dashboardModule.messages.dataSources.notCreated`):p(`dashboardModule.messages.dataSources.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let n=(d.value?.schemas?.dataSourceEditFormSchema||$).safeParse(b);if(!n.success)throw g.error(`Schema validation failed with:`,n.error),new O(`Failed to validate create dataSource model.`);_.value=T.WORKING;try{await f.edit({id:i.id,parent:i.parent,data:{...n.data,type:i.type}}),i.draft&&!s&&await f.save({id:i.id,parent:i.parent})}catch(e){throw _.value=T.ERROR,y=window.setTimeout(D,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(t),e}return _.value=T.OK,y=window.setTimeout(D,2e3),e&&!s?(h.success(p(o&&o.success?o.success:`dashboardModule.messages.dataSources.created`)),`added`):(h.success(p(o&&o.success?o.success:`dashboardModule.messages.dataSources.edited`)),C.value=!1,x=v(r(b)),`saved`)},D=()=>{window.clearTimeout(y),_.value=T.NONE};return e(b,()=>{C.value=!(0,I.isEqual)(r(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:D,formResult:_}};export{z as _,Z as a,F as b,q as c,G as d,W as f,V as g,B as h,$ as i,J as l,H as m,ne as n,X as o,U as p,Q as r,Y as s,re as t,K as u,R as v,P as x,te as y};
|
|
1
|
+
import"./chunk-DECur_0Z.js";import{Xr as e,ci as t,d as n,fi as r,mr as i,ui as a}from"./icon-with-child-DmQ_XhQy.js";import{A as o,Fn as s,Pn as c,S as l,T as u,Un as d,Ur as f,Wn as p,_ as m,an as h,ba as g,f as _,m as v,n as y,pn as b,qn as x,wn as S}from"./common-DitknrxN.js";import{a as C,c as w,d as T,i as E,n as D,o as O,r as k,t as A}from"./keys-DVEtutPb.js";import{i as j,t as M}from"./types-DFpBJXK4.js";import{n as N}from"./useDataSources-BeTczwoa.js";var P=()=>{let e=o(),{enabled:t}=h(),n=[`pageDetail`,`pageAddForm`,`pageEditForm`],r=[`pageSchema`,`pageAddFormSchema`,`pageEditFormSchema`,`pageCreateReqSchema`,`pageUpdateReqSchema`],a=[`configure`],s=i(()=>e.getPlugins().filter(e=>{if(!(e.modules===void 0||e.modules.includes(`dashboard-module`)))return!1;let t=a.some(t=>e.routes&&t in e.routes)??!0;return(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`dashboard-module`)))return!1;let i=n.length===0||!!e.components&&n.some(t=>e.components&&t in e.components),a=r.length===0||!!e.schemas&&r.some(t=>e.schemas&&t in e.schemas);return i||a||t})}));return{plugins:s,options:i(()=>b(s.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`dashboard-module`)).map(n=>({value:n.type,label:n.name?.trim()?n.name:e.name,disabled:!t(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>s.value.find(t=>t.type===e),getByType:e=>s.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`)))),getElement:e=>{for(let t of s.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`)));if(n)return n}}}},F=()=>{let e=u().getStore(D),{firstLoad:t,semaphore:n}=g(e);return{pages:i(()=>e.findAll().filter(e=>!e.draft)),areLoading:i(()=>!!n.value.fetching.items||!t.value),loaded:i(()=>t.value),fetchPages:async()=>{await e.fetch()}}},I=S(),L={search:void 0,types:[],displays:[]},ee={by:`title`,dir:`asc`},te=()=>{let t=u().getStore(D),{firstLoad:n,semaphore:r}=g(t),{filters:o,sort:s,pagination:c,reset:l}=_({key:`${w}:pages:list`,filters:{schema:j,defaults:L},sort:{defaults:[ee]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),d=i(()=>o.value.search!==L.search||!(0,I.isEqual)(o.value.types,L.types)||!(0,I.isEqual)(o.value.displays,L.displays)),f=a(c.value.size||10),p=a(c.value.page||1),m=a(s.value.length>0?s.value[0]?.by:void 0),h=a(s.value.length>0?s.value[0]?.dir??null:null),v=i(()=>b(t.findAll().filter(e=>!e.draft&&(!o.value.search||e.title.toLowerCase().includes(o.value.search.toLowerCase()))&&(o.value.types.length===0||o.value.types.includes(e.type))&&(o.value.displays.length===0||o.value.displays.includes(`all`)&&(e.displays===null||e.displays.length===0)||e.displays!==null&&e.displays.length>0&&e.displays.some(e=>o.value.displays.includes(e)))),[e=>e[m.value]??``],[h.value===`asc`?`asc`:`desc`])),y=i(()=>{let e=(p.value-1)*f.value,t=e+f.value;return v.value.slice(e,t)}),x=async()=>{await t.fetch()},S=i(()=>r.value.fetching.items||!n.value),C=i(()=>n.value),T=i(()=>t.findAll().filter(e=>!e.draft).length);return e(()=>c.value,e=>{p.value=e.page??1,f.value=e.size??10},{deep:!0}),e(()=>p.value,e=>{c.value.page=e}),e(()=>f.value,e=>{c.value.size=e}),e(()=>h.value,e=>{m.value===void 0||e===null?s.value=[]:s.value=[{by:m.value,dir:e}]}),e(()=>m.value,e=>{e===void 0?s.value=[]:s.value=[{by:e,dir:h.value}]}),{pages:v,pagesPaginated:y,totalRows:T,areLoading:S,loaded:C,fetchPages:x,filters:o,filtersActive:d,paginateSize:f,paginatePage:p,sortBy:m,sortDir:h,resetFilter:l}},R=()=>{let{t:e}=n(),t=m(),r=u().getStore(D);return{remove:async n=>{let i=r.findById(n);if(i===null)throw new C(`Something went wrong, page can't be loaded`);f.confirm(e(`dashboardModule.texts.pages.confirmRemove`,{page:i.title}),e(`dashboardModule.headings.pages.remove`),{confirmButtonText:e(`dashboardModule.buttons.yes.title`),cancelButtonText:e(`dashboardModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await r.remove({id:i.id}),t.success(e(`dashboardModule.messages.pages.removed`,{page:i.title}))}catch(n){if(n instanceof E&&n.code===404){let n=e(`dashboardModule.messages.pages.notFound`,{page:i.title});t.error(n)}else if(n instanceof E&&n.code===422)t.error(n.message);else{let n=e(`dashboardModule.messages.pages.notRemoved`,{page:i.title});t.error(n)}}}).catch(()=>{t.info(e(`dashboardModule.messages.pages.removeCanceled`,{page:i.title}))})},bulkRemove:async n=>{if(n.length!==0)try{await f.confirm(e(`dashboardModule.texts.pages.confirmBulkRemove`,{count:n.length}),e(`dashboardModule.headings.pages.bulkRemove`),{confirmButtonText:e(`dashboardModule.buttons.yes.title`),cancelButtonText:e(`dashboardModule.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of n)try{await r.remove({id:e.id}),i++}catch{a++}i>0&&t.success(e(`dashboardModule.messages.pages.bulkRemoved`,{count:i})),a>0&&t.error(e(`dashboardModule.messages.pages.bulkRemoveFailed`,{count:a}))}catch{}}}},z=({id:e})=>{let t=u().getStore(D);return{icon:i(()=>`mdi:${t.findById(e)?.icon??`view-dashboard`}`)}},B=p({id:x().uuid().optional(),type:x().trim().nonempty(),title:x().trim().nonempty(),icon:x().trim().transform(e=>e===``?null:e).nullable().optional(),order:d(),showTopBar:s().optional(),displays:c(x().uuid()).nullable().optional()}),V=p({id:x().uuid(),type:x().trim().nonempty(),title:x().trim().nonempty().optional(),icon:x().trim().transform(e=>e===``?null:e).nullable().optional(),order:d().optional(),showTopBar:s().optional(),displays:c(x().uuid()).nullable().optional()}),H=({type:e})=>{let{getByType:t}=P(),n=i(()=>t(e));return{plugin:n,element:i(()=>(n.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`))))}},U=({id:i,type:o})=>{let s=u(),{element:c}=H({type:o}),d=s.getStore(D),{t:f}=n(),p=m(),h=l(),g=a(T.NONE),_,b=t({...y(c.value?.schemas?.pageAddFormSchema||B),id:i,type:o,title:``,icon:``,order:0,showTopBar:!0}),x=v(r(b)),S=a(void 0),C=a(!1),w=async()=>{if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let e=(c.value?.schemas?.pageAddFormSchema||B).safeParse(b);if(!e.success)throw h.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create page model.`);g.value=T.WORKING;let t=f(`dashboardModule.messages.pages.notCreated`,{page:b.title});try{await d.add({id:i,draft:!1,data:{...e.data,type:o}})}catch(e){throw g.value=T.ERROR,_=window.setTimeout(k,2e3),e instanceof E&&e.code===422?p.error(e.message):p.error(t),e}return g.value=T.OK,_=window.setTimeout(k,2e3),p.success(f(`dashboardModule.messages.pages.created`,{page:b.title})),`added`},k=()=>{window.clearTimeout(_),g.value=T.NONE};return e(b,()=>{C.value=!(0,I.isEqual)(r(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:k,formResult:g}},W=({page:i,messages:o})=>{let s=u(),{element:c}=H({type:i.type}),d=s.getStore(D),{t:f}=n(),p=m(),h=l(),g=a(T.NONE),_,y=t(i),b=v(r(y)),x=a(void 0),S=a(!1),C=async()=>{let e=i.draft,t=o&&o.error?o.error:i.draft?f(`dashboardModule.messages.pages.notCreated`,{page:i.title}):f(`dashboardModule.messages.pages.notEdited`,{page:i.title});if(x.value.clearValidate(),!await x.value.validate())throw new O(`Form not valid`);let n=(c.value?.schemas?.pageEditFormSchema||V).safeParse(y);if(!n.success)throw h.error(`Schema validation failed with:`,n.error),new O(`Failed to validate edit page model.`);g.value=T.WORKING;try{let e;if(e=await d.edit({id:i.id,data:{...n.data,type:i.type}}),i.draft&&(e=await d.save({id:i.id})),e){let t=e;Object.assign(y,t)}}catch(e){throw g.value=T.ERROR,_=window.setTimeout(w,2e3),e instanceof E&&e.code===422?p.error(e.message):p.error(t),e}return g.value=T.OK,_=window.setTimeout(w,2e3),e?(p.success(f(o&&o.success?o.success:`dashboardModule.messages.pages.created`,{page:i.title})),`added`):(p.success(f(o&&o.success?o.success:`dashboardModule.messages.pages.edited`,{page:i.title})),S.value=!1,b=v(r(y)),`saved`)},w=()=>{window.clearTimeout(_),g.value=T.NONE};return e(y,()=>{S.value=!(0,I.isEqual)(r(y),b)}),{model:y,formEl:x,formChanged:S,submit:C,clear:w,formResult:g}},G=e=>{let t=u().getStore(k),{firstLoad:n,semaphore:r}=g(t);return{tiles:i(()=>t.findForParent(e.parent,e.parentId)),areLoading:i(()=>r.value.fetching.items.includes(e.parentId)?!0:n.value.includes(e.parentId)?!1:r.value.fetching.items.includes(e.parentId)),loaded:i(()=>n.value.includes(e.parentId)),fetchTiles:async()=>{await t.fetch({parent:{type:e.parent,id:e.parentId}})}}},K=e=>{let{t}=n(),r=m(),i=u().getStore(k);return{findById:(e,t)=>i.findById(e,t),edit:async e=>i.edit(e),save:async e=>i.save(e),remove:async n=>{let a=i.findById(e.parent,n);if(a===null)throw new C(`Something went wrong, tile can't be loaded`);f.confirm(t(`dashboardModule.texts.tiles.confirmRemove`),t(`dashboardModule.headings.tiles.remove`),{confirmButtonText:t(`dashboardModule.buttons.yes.title`),cancelButtonText:t(`dashboardModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await i.remove({id:a.id,parent:{type:e.parent,id:e.parentId}}),r.success(t(`dashboardModule.messages.tiles.removed`))}catch(e){if(e instanceof E&&e.code===404){let e=t(`dashboardModule.messages.tiles.notFound`);r.error(e)}else if(e instanceof E&&e.code===422)r.error(e.message);else{let e=t(`dashboardModule.messages.tiles.notRemoved`);r.error(e)}}}).catch(()=>{r.info(t(`dashboardModule.messages.tiles.removeCanceled`))})},removeDirectly:async e=>i.remove(e)}},q=p({id:x().uuid().optional(),type:x().trim().nonempty(),row:d(),col:d(),rowSpan:d(),colSpan:d(),hidden:s()}),J=p({id:x().uuid(),type:x().trim().nonempty(),row:d().optional(),col:d().optional(),rowSpan:d().optional(),colSpan:d().optional(),hidden:s()}),Y=({id:i,parent:o,parentId:s,type:c,onlyDraft:d=!1})=>{let f=u(),{element:p}=N({type:c}),h=f.getStore(k),{t:g}=n(),_=m(),b=l(),x=a(T.NONE),S,C=t({...y(p.value?.schemas?.tileAddFormSchema||q),id:i,type:c,row:1,col:1,rowSpan:1,colSpan:1,hidden:!1}),w=v(r(C)),D=a(void 0),A=a(!1),j=async()=>{if(D.value.clearValidate(),!await D.value.validate())throw new O(`Form not valid`);let e=(p.value?.schemas?.tileAddFormSchema||q).safeParse(C);if(!e.success)throw b.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create tile model.`);x.value=T.WORKING;let t=g(`dashboardModule.messages.tiles.notCreated`);try{await h.add({id:i,parent:{type:o,id:s},draft:d,data:{...e.data,type:c}})}catch(e){throw x.value=T.ERROR,S=window.setTimeout(M,2e3),e instanceof E&&e.code===422?_.error(e.message):_.error(t),e}return x.value=T.OK,S=window.setTimeout(M,2e3),_.success(g(`dashboardModule.messages.tiles.created`)),`added`},M=()=>{window.clearTimeout(S),x.value=T.NONE};return e(C,()=>{A.value=!(0,I.isEqual)(r(C),w)}),{model:C,formEl:D,formChanged:A,submit:j,clear:M,formResult:x}},X=({tile:i,messages:o,onlyDraft:s=!1})=>{let c=u(),{element:d}=N({type:i.type}),f=c.getStore(k),{t:p}=n(),h=m(),g=l(),_=a(T.NONE),y,b=t(i),x=v(r(b)),S=a(void 0),C=a(!1),w=async()=>{let e=i.draft,t=o&&o.error?o.error:i.draft&&!s?p(`dashboardModule.messages.tiles.notCreated`):p(`dashboardModule.messages.tiles.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let n=(d.value?.schemas?.tileEditFormSchema||J).safeParse(b);if(!n.success)throw g.error(`Schema validation failed with:`,n.error),new O(`Failed to validate create tile model.`);_.value=T.WORKING;try{await f.edit({id:i.id,parent:i.parent,data:{...n.data,type:i.type}}),i.draft&&!s&&await f.save({id:i.id,parent:i.parent})}catch(e){throw _.value=T.ERROR,y=window.setTimeout(D,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(t),e}return _.value=T.OK,y=window.setTimeout(D,2e3),e&&!s?(h.success(p(o&&o.success?o.success:`dashboardModule.messages.tiles.created`)),`added`):(h.success(p(o&&o.success?o.success:`dashboardModule.messages.tiles.edited`)),C.value=!1,x=v(r(b)),`saved`)},D=()=>{window.clearTimeout(y),_.value=T.NONE};return e(b,()=>{C.value=!(0,I.isEqual)(r(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:D,formResult:_}},Z=e=>{let{id:t}=e,n=u().getStore(A),{data:r,semaphore:a}=g(n);return{dataSource:i(()=>t===null?null:t in r.value?r.value[t]:null),isLoading:i(()=>a.value.fetching.item.includes(t)?!0:(t in r.value?r.value[t]:null)===null?a.value.fetching.items.includes(e.parentId):!1),fetchDataSource:async()=>{(t in r.value?r.value[t]:null)?.draft||await n.get({id:t,parent:{type:e.parent,id:e.parentId}})}}},Q=p({id:x().uuid().optional(),type:x().trim().nonempty()}),$=p({id:x().uuid(),type:x().trim().nonempty()}),ne=({id:i,type:o,parent:s,parentId:c,onlyDraft:d=!1})=>{let f=u(),{element:p}=M({type:o}),h=f.getStore(A),{t:g}=n(),_=m(),b=l(),x=a(T.NONE),S,C=t({...y(p.value?.schemas?.dataSourceAddFormSchema||Q),id:i,type:o}),w=v(r(C)),D=a(void 0),k=a(!1),j=async()=>{if(D.value.clearValidate(),!await D.value.validate())throw new O(`Form not valid`);let e=(p.value?.schemas?.dataSourceAddFormSchema||Q).safeParse(C);if(!e.success)throw b.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create data source model.`);x.value=T.WORKING;let t=g(`dashboardModule.messages.dataSources.notCreated`);try{await h.add({id:i,parent:{type:s,id:c},draft:d,data:{...e.data,type:o}})}catch(e){throw x.value=T.ERROR,S=window.setTimeout(N,2e3),e instanceof E&&e.code===422?_.error(e.message):_.error(t),e}return x.value=T.OK,S=window.setTimeout(N,2e3),_.success(g(`dashboardModule.messages.dataSources.created`)),`added`},N=()=>{window.clearTimeout(S),x.value=T.NONE};return e(C,()=>{k.value=!(0,I.isEqual)(r(C),w)}),{model:C,formEl:D,formChanged:k,submit:j,clear:N,formResult:x}},re=({dataSource:i,messages:o,onlyDraft:s=!1})=>{let c=u(),{element:d}=M({type:i.type}),f=c.getStore(A),{t:p}=n(),h=m(),g=l(),_=a(T.NONE),y,b=t(i),x=v(r(b)),S=a(void 0),C=a(!1),w=async()=>{let e=i.draft,t=o&&o.error?o.error:i.draft&&!s?p(`dashboardModule.messages.dataSources.notCreated`):p(`dashboardModule.messages.dataSources.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let n=(d.value?.schemas?.dataSourceEditFormSchema||$).safeParse(b);if(!n.success)throw g.error(`Schema validation failed with:`,n.error),new O(`Failed to validate create dataSource model.`);_.value=T.WORKING;try{await f.edit({id:i.id,parent:i.parent,data:{...n.data,type:i.type}}),i.draft&&!s&&await f.save({id:i.id,parent:i.parent})}catch(e){throw _.value=T.ERROR,y=window.setTimeout(D,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(t),e}return _.value=T.OK,y=window.setTimeout(D,2e3),e&&!s?(h.success(p(o&&o.success?o.success:`dashboardModule.messages.dataSources.created`)),`added`):(h.success(p(o&&o.success?o.success:`dashboardModule.messages.dataSources.edited`)),C.value=!1,x=v(r(b)),`saved`)},D=()=>{window.clearTimeout(y),_.value=T.NONE};return e(b,()=>{C.value=!(0,I.isEqual)(r(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:D,formResult:_}};export{z as _,Z as a,F as b,q as c,G as d,W as f,V as g,B as h,$ as i,J as l,H as m,ne as n,X as o,U as p,Q as r,Y as s,re as t,K as u,R as v,P as x,te as y};
|