@semiont/cli 0.4.12 → 0.4.14
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/cli.mjs +518 -67
- package/dist/dashboard/dashboard.css +1 -1
- package/dist/dashboard/dashboard.css.map +2 -2
- package/dist/frontend/dist/assets/CookiePreferences-Cbur0STI.js +2 -0
- package/dist/frontend/dist/assets/CookiePreferences-Cbur0STI.js.map +1 -0
- package/dist/frontend/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-CjRY6TID.js → PdfAnnotationCanvas.client-CW6SKH2U-DIkAGn7X.js} +2 -2
- package/dist/frontend/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-CjRY6TID.js.map → PdfAnnotationCanvas.client-CW6SKH2U-DIkAGn7X.js.map} +1 -1
- package/dist/frontend/dist/assets/ToolbarPanels-rN1MIRTV.js +2 -0
- package/dist/frontend/dist/assets/ToolbarPanels-rN1MIRTV.js.map +1 -0
- package/dist/frontend/dist/assets/XMarkIcon-6m9KVFaj.js +2 -0
- package/dist/frontend/dist/assets/XMarkIcon-6m9KVFaj.js.map +1 -0
- package/dist/frontend/dist/assets/client-BPbsU2tc.js +2 -0
- package/dist/frontend/dist/assets/{client-DZ-DNAU-.js.map → client-BPbsU2tc.js.map} +1 -1
- package/dist/frontend/dist/assets/client-BiL3eI7d.js +2 -0
- package/dist/frontend/dist/assets/{client-BbPyO59A.js.map → client-BiL3eI7d.js.map} +1 -1
- package/dist/frontend/dist/assets/client-BnL1es01.js +2 -0
- package/dist/frontend/dist/assets/{client-BsHptwGn.js.map → client-BnL1es01.js.map} +1 -1
- package/dist/frontend/dist/assets/client-DrQUcCJy.js +2 -0
- package/dist/frontend/dist/assets/{client-COY1ucYF.js.map → client-DrQUcCJy.js.map} +1 -1
- package/dist/frontend/dist/assets/en-IUV4ZXKH-BY1RKeLS.js +135 -0
- package/dist/frontend/dist/assets/en-IUV4ZXKH-BY1RKeLS.js.map +1 -0
- package/dist/frontend/dist/assets/{index-CwQxZp6g.css → index-CNb3PHS7.css} +1 -1
- package/dist/frontend/dist/assets/{index-DKq_l4UW.js → index-DA31r_0s.js} +3 -3
- package/dist/frontend/dist/assets/{index-DKq_l4UW.js.map → index-DA31r_0s.js.map} +1 -1
- package/dist/frontend/dist/assets/layout-B8IinUdt.js +2 -0
- package/dist/frontend/dist/assets/layout-B8IinUdt.js.map +1 -0
- package/dist/frontend/dist/assets/layout-BjpW078f.js +2 -0
- package/dist/frontend/dist/assets/layout-BjpW078f.js.map +1 -0
- package/dist/frontend/dist/assets/{layout-6uvM-QPR.js → layout-CDIjxs5a.js} +4 -4
- package/dist/frontend/dist/assets/layout-CDIjxs5a.js.map +1 -0
- package/dist/frontend/dist/assets/layout-DKm9XdRr.js +2 -0
- package/dist/frontend/dist/assets/{layout-D5Pjl6Q-.js.map → layout-DKm9XdRr.js.map} +1 -1
- package/dist/frontend/dist/assets/{not-found-CudKZDad.js → not-found-CwWw1pZc.js} +2 -2
- package/dist/frontend/dist/assets/{not-found-CudKZDad.js.map → not-found-CwWw1pZc.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-Bz2r7ufy.js → page-1BwlyTUj.js} +2 -2
- package/dist/frontend/dist/assets/{page-Bz2r7ufy.js.map → page-1BwlyTUj.js.map} +1 -1
- package/dist/frontend/dist/assets/page-BQ00VxR5.js +2 -0
- package/dist/frontend/dist/assets/page-BQ00VxR5.js.map +1 -0
- package/dist/frontend/dist/assets/page-BmHLf-7O.js +2 -0
- package/dist/frontend/dist/assets/{page-ESjXBvXd.js.map → page-BmHLf-7O.js.map} +1 -1
- package/dist/frontend/dist/assets/page-C5bIvv1V.js +2 -0
- package/dist/frontend/dist/assets/{page-CJFp0ZpS.js.map → page-C5bIvv1V.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-4gaXuuoi.js → page-CelRTchO.js} +3 -3
- package/dist/frontend/dist/assets/{page-4gaXuuoi.js.map → page-CelRTchO.js.map} +1 -1
- package/dist/frontend/dist/assets/page-Cf9cnqhC.js +2 -0
- package/dist/frontend/dist/assets/{page-uukho-t7.js.map → page-Cf9cnqhC.js.map} +1 -1
- package/dist/frontend/dist/assets/page-CslYhbgz.js +2 -0
- package/dist/frontend/dist/assets/{page-DK5bpgp9.js.map → page-CslYhbgz.js.map} +1 -1
- package/dist/frontend/dist/assets/page-DEjlNEY0.js +2 -0
- package/dist/frontend/dist/assets/{page-DIv5j5nE.js.map → page-DEjlNEY0.js.map} +1 -1
- package/dist/frontend/dist/assets/page-DLtwpo78.js +2 -0
- package/dist/frontend/dist/assets/{page-CGEmB0mm.js.map → page-DLtwpo78.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-CE8hOJlL.js → page-D_nHe9FT.js} +2 -2
- package/dist/frontend/dist/assets/{page-CE8hOJlL.js.map → page-D_nHe9FT.js.map} +1 -1
- package/dist/frontend/dist/assets/page-Deep7E5d.js +2 -0
- package/dist/frontend/dist/assets/{page-DVRMfAkS.js.map → page-Deep7E5d.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-C44nBk5U.js → page-Dv386AZD.js} +3 -3
- package/dist/frontend/dist/assets/{page-C44nBk5U.js.map → page-Dv386AZD.js.map} +1 -1
- package/dist/frontend/dist/assets/page-E99MPOn5.js +8 -0
- package/dist/frontend/dist/assets/{page-tb55k9Ji.js.map → page-E99MPOn5.js.map} +1 -1
- package/dist/frontend/dist/assets/page-KtkB4tEv.js +2 -0
- package/dist/frontend/dist/assets/{page-vzoIwpsS.js.map → page-KtkB4tEv.js.map} +1 -1
- package/dist/frontend/dist/assets/page-ZBwMTeR-.js +2 -0
- package/dist/frontend/dist/assets/page-ZBwMTeR-.js.map +1 -0
- package/dist/frontend/dist/assets/page-Zq6ARIvg.js +2 -0
- package/dist/frontend/dist/assets/{page-DjkPUxlb.js.map → page-Zq6ARIvg.js.map} +1 -1
- package/dist/frontend/dist/assets/page-iSL5E639.js +2 -0
- package/dist/frontend/dist/assets/page-iSL5E639.js.map +1 -0
- package/dist/frontend/dist/assets/page-xdXYx3nl.js +2 -0
- package/dist/frontend/dist/assets/{page-B9hPrBrN.js.map → page-xdXYx3nl.js.map} +1 -1
- package/dist/frontend/dist/assets/{privacy-W9SxWfL5.js → privacy-DO1oxJpM.js} +2 -2
- package/dist/frontend/dist/assets/{privacy-W9SxWfL5.js.map → privacy-DO1oxJpM.js.map} +1 -1
- package/dist/frontend/dist/assets/routing-DMdXWYXo.js +2 -0
- package/dist/frontend/dist/assets/{routing-BLuuVVPN.js.map → routing-DMdXWYXo.js.map} +1 -1
- package/dist/frontend/dist/assets/{routing-6lnx-g5H.js → routing-tJ_HbFRP.js} +2 -2
- package/dist/frontend/dist/assets/{routing-6lnx-g5H.js.map → routing-tJ_HbFRP.js.map} +1 -1
- package/dist/frontend/dist/assets/useAuth-yUx5lBP5.js +2 -0
- package/dist/frontend/dist/assets/useAuth-yUx5lBP5.js.map +1 -0
- package/dist/frontend/dist/index.html +2 -2
- package/dist/frontend/dist/messages/ar.json +29 -7
- package/dist/frontend/dist/messages/bn.json +29 -7
- package/dist/frontend/dist/messages/cs.json +29 -7
- package/dist/frontend/dist/messages/da.json +29 -7
- package/dist/frontend/dist/messages/de.json +29 -7
- package/dist/frontend/dist/messages/el.json +29 -7
- package/dist/frontend/dist/messages/en.json +29 -7
- package/dist/frontend/dist/messages/es.json +29 -7
- package/dist/frontend/dist/messages/fa.json +29 -7
- package/dist/frontend/dist/messages/fi.json +29 -7
- package/dist/frontend/dist/messages/fr.json +29 -7
- package/dist/frontend/dist/messages/he.json +29 -7
- package/dist/frontend/dist/messages/hi.json +29 -7
- package/dist/frontend/dist/messages/id.json +29 -7
- package/dist/frontend/dist/messages/it.json +29 -7
- package/dist/frontend/dist/messages/ja.json +29 -7
- package/dist/frontend/dist/messages/ko.json +29 -7
- package/dist/frontend/dist/messages/ms.json +29 -7
- package/dist/frontend/dist/messages/nl.json +29 -7
- package/dist/frontend/dist/messages/no.json +29 -7
- package/dist/frontend/dist/messages/pl.json +29 -7
- package/dist/frontend/dist/messages/pt.json +29 -7
- package/dist/frontend/dist/messages/ro.json +29 -7
- package/dist/frontend/dist/messages/sv.json +29 -7
- package/dist/frontend/dist/messages/th.json +29 -7
- package/dist/frontend/dist/messages/tr.json +29 -7
- package/dist/frontend/dist/messages/uk.json +29 -7
- package/dist/frontend/dist/messages/vi.json +29 -7
- package/dist/frontend/dist/messages/zh.json +29 -7
- package/dist/frontend/package.json +1 -1
- package/package.json +8 -8
- package/dist/frontend/dist/assets/AuthContext-CUx-cP7W.js +0 -2
- package/dist/frontend/dist/assets/AuthContext-CUx-cP7W.js.map +0 -1
- package/dist/frontend/dist/assets/CookiePreferences-BuRvkBwM.js +0 -2
- package/dist/frontend/dist/assets/CookiePreferences-BuRvkBwM.js.map +0 -1
- package/dist/frontend/dist/assets/KnowledgeBaseContext-CgnF8K-_.js +0 -2
- package/dist/frontend/dist/assets/KnowledgeBaseContext-CgnF8K-_.js.map +0 -1
- package/dist/frontend/dist/assets/PlusIcon-qGFPUzg0.js +0 -2
- package/dist/frontend/dist/assets/PlusIcon-qGFPUzg0.js.map +0 -1
- package/dist/frontend/dist/assets/ToolbarPanels-Drd8QG61.js +0 -2
- package/dist/frontend/dist/assets/ToolbarPanels-Drd8QG61.js.map +0 -1
- package/dist/frontend/dist/assets/client-BbPyO59A.js +0 -2
- package/dist/frontend/dist/assets/client-BsHptwGn.js +0 -2
- package/dist/frontend/dist/assets/client-COY1ucYF.js +0 -2
- package/dist/frontend/dist/assets/client-DZ-DNAU-.js +0 -2
- package/dist/frontend/dist/assets/en-IUV4ZXKH-eHunUM2g.js +0 -135
- package/dist/frontend/dist/assets/en-IUV4ZXKH-eHunUM2g.js.map +0 -1
- package/dist/frontend/dist/assets/layout-6uvM-QPR.js.map +0 -1
- package/dist/frontend/dist/assets/layout-CvaTeY53.js +0 -2
- package/dist/frontend/dist/assets/layout-CvaTeY53.js.map +0 -1
- package/dist/frontend/dist/assets/layout-D5Pjl6Q-.js +0 -2
- package/dist/frontend/dist/assets/layout-QZ56PNLk.js +0 -2
- package/dist/frontend/dist/assets/layout-QZ56PNLk.js.map +0 -1
- package/dist/frontend/dist/assets/page-B9hPrBrN.js +0 -2
- package/dist/frontend/dist/assets/page-BH5HMa4o.js +0 -2
- package/dist/frontend/dist/assets/page-BH5HMa4o.js.map +0 -1
- package/dist/frontend/dist/assets/page-CGEmB0mm.js +0 -2
- package/dist/frontend/dist/assets/page-CJFp0ZpS.js +0 -2
- package/dist/frontend/dist/assets/page-D1Di1cx-.js +0 -2
- package/dist/frontend/dist/assets/page-D1Di1cx-.js.map +0 -1
- package/dist/frontend/dist/assets/page-DIv5j5nE.js +0 -2
- package/dist/frontend/dist/assets/page-DK5bpgp9.js +0 -2
- package/dist/frontend/dist/assets/page-DVRMfAkS.js +0 -2
- package/dist/frontend/dist/assets/page-DjkPUxlb.js +0 -2
- package/dist/frontend/dist/assets/page-ESjXBvXd.js +0 -2
- package/dist/frontend/dist/assets/page-lbZaKDJf.js +0 -2
- package/dist/frontend/dist/assets/page-lbZaKDJf.js.map +0 -1
- package/dist/frontend/dist/assets/page-tb55k9Ji.js +0 -8
- package/dist/frontend/dist/assets/page-uukho-t7.js +0 -2
- package/dist/frontend/dist/assets/page-vzoIwpsS.js +0 -2
- package/dist/frontend/dist/assets/routing-BLuuVVPN.js +0 -2
- package/dist/frontend/dist/assets/useAuth-CAJolYxw.js +0 -2
- package/dist/frontend/dist/assets/useAuth-CAJolYxw.js.map +0 -1
- package/dist/templates/docker-compose.yml +0 -53
|
@@ -402,12 +402,7 @@
|
|
|
402
402
|
},
|
|
403
403
|
"Home": {
|
|
404
404
|
"tagline": "creează sens",
|
|
405
|
-
"
|
|
406
|
-
"continueToKnowledgeBase": "Continuă la baza de cunoștințe",
|
|
407
|
-
"learnMore": "Află mai multe",
|
|
408
|
-
"signUp": "Înregistrare",
|
|
409
|
-
"signIn": "Autentificare",
|
|
410
|
-
"loading": "Se încarcă..."
|
|
405
|
+
"begin": "Începe"
|
|
411
406
|
},
|
|
412
407
|
"About": {
|
|
413
408
|
"pageTitle": "Despre Semiont",
|
|
@@ -535,7 +530,7 @@
|
|
|
535
530
|
"errorGeneric": "A apărut o eroare de autentificare. Vă rugăm să încercați din nou.",
|
|
536
531
|
"errorGoogleSignIn": "Nu s-a putut iniția autentificarea cu Google. Vă rugăm să încercați din nou.",
|
|
537
532
|
"backendUrlLabel": "URL backend",
|
|
538
|
-
"backendUrlPlaceholder": "
|
|
533
|
+
"backendUrlPlaceholder": "http://localhost:4000",
|
|
539
534
|
"errorBackendUrlRequired": "Vă rugăm să introduceți URL-ul backend",
|
|
540
535
|
"errorBackendUrlInvalid": "Introduceți un URL valid (ex. http://localhost:4000)",
|
|
541
536
|
"errorBackendUrlUnreachable": "Acel URL nu este accesibil — rulează backend-ul?",
|
|
@@ -954,5 +949,32 @@
|
|
|
954
949
|
"streams": "Resources",
|
|
955
950
|
"events": "Annotations",
|
|
956
951
|
"blobs": "Entity types"
|
|
952
|
+
},
|
|
953
|
+
"KnowledgeBasePanel": {
|
|
954
|
+
"title": "Baze de cunoștințe",
|
|
955
|
+
"connectTitle": "Conectare la baza de cunoștințe",
|
|
956
|
+
"connect": "Conectare",
|
|
957
|
+
"connecting": "Se conectează...",
|
|
958
|
+
"signIn": "Conectați-vă",
|
|
959
|
+
"signingIn": "Se conectează...",
|
|
960
|
+
"cancel": "Anulare",
|
|
961
|
+
"addKnowledgeBase": "Adăugați baza de cunoștințe",
|
|
962
|
+
"removeConfirm": "Eliminați {{label}}?",
|
|
963
|
+
"remove": "Eliminare",
|
|
964
|
+
"signOut": "Deconectare",
|
|
965
|
+
"statusConnected": "Conectat",
|
|
966
|
+
"statusExpired": "Sesiune expirată",
|
|
967
|
+
"statusSignedOut": "Deconectat",
|
|
968
|
+
"statusUnreachable": "Inaccesibil"
|
|
969
|
+
},
|
|
970
|
+
"DiscoverEmptyState": {
|
|
971
|
+
"noKnowledgeBases": "Nicio bază de cunoștințe",
|
|
972
|
+
"noKnowledgeBasesHint": "Adăugați o bază de cunoștințe folosind panoul din dreapta pentru a începe să descoperiți, să adnotați și să conectați resurse.",
|
|
973
|
+
"sessionExpired": "Sesiunea dvs. a expirat.",
|
|
974
|
+
"signedOut": "Ați fost deconectat.",
|
|
975
|
+
"signInHint": "Conectați-vă prin panoul Baza de cunoștințe pentru a naviga prin resurse."
|
|
976
|
+
},
|
|
977
|
+
"AccountPanel": {
|
|
978
|
+
"notAuthenticated": "Conectați-vă la o bază de cunoștințe pentru a vă vizualiza contul."
|
|
957
979
|
}
|
|
958
980
|
}
|
|
@@ -402,12 +402,7 @@
|
|
|
402
402
|
},
|
|
403
403
|
"Home": {
|
|
404
404
|
"tagline": "skapa mening",
|
|
405
|
-
"
|
|
406
|
-
"continueToKnowledgeBase": "Fortsätt till kunskapsbasen",
|
|
407
|
-
"learnMore": "Läs mer",
|
|
408
|
-
"signUp": "Registrera dig",
|
|
409
|
-
"signIn": "Logga in",
|
|
410
|
-
"loading": "Laddar..."
|
|
405
|
+
"begin": "Börja"
|
|
411
406
|
},
|
|
412
407
|
"About": {
|
|
413
408
|
"pageTitle": "Om Semiont",
|
|
@@ -535,7 +530,7 @@
|
|
|
535
530
|
"errorGeneric": "Ett autentiseringsfel inträffade. Försök igen.",
|
|
536
531
|
"errorGoogleSignIn": "Det gick inte att starta Google-inloggning. Försök igen.",
|
|
537
532
|
"backendUrlLabel": "Backend-URL",
|
|
538
|
-
"backendUrlPlaceholder": "
|
|
533
|
+
"backendUrlPlaceholder": "http://localhost:4000",
|
|
539
534
|
"errorBackendUrlRequired": "Ange backend-URL",
|
|
540
535
|
"errorBackendUrlInvalid": "Ange en giltig URL (t.ex. http://localhost:4000)",
|
|
541
536
|
"errorBackendUrlUnreachable": "Den URL:en går inte att nå — körs backend?",
|
|
@@ -954,5 +949,32 @@
|
|
|
954
949
|
"streams": "Resources",
|
|
955
950
|
"events": "Annotations",
|
|
956
951
|
"blobs": "Entity types"
|
|
952
|
+
},
|
|
953
|
+
"KnowledgeBasePanel": {
|
|
954
|
+
"title": "Kunskapsbaser",
|
|
955
|
+
"connectTitle": "Anslut till kunskapsbas",
|
|
956
|
+
"connect": "Anslut",
|
|
957
|
+
"connecting": "Ansluter...",
|
|
958
|
+
"signIn": "Logga in",
|
|
959
|
+
"signingIn": "Loggar in...",
|
|
960
|
+
"cancel": "Avbryt",
|
|
961
|
+
"addKnowledgeBase": "Lägg till kunskapsbas",
|
|
962
|
+
"removeConfirm": "Ta bort {{label}}?",
|
|
963
|
+
"remove": "Ta bort",
|
|
964
|
+
"signOut": "Logga ut",
|
|
965
|
+
"statusConnected": "Ansluten",
|
|
966
|
+
"statusExpired": "Session utgången",
|
|
967
|
+
"statusSignedOut": "Utloggad",
|
|
968
|
+
"statusUnreachable": "Onåbar"
|
|
969
|
+
},
|
|
970
|
+
"DiscoverEmptyState": {
|
|
971
|
+
"noKnowledgeBases": "Inga kunskapsbaser",
|
|
972
|
+
"noKnowledgeBasesHint": "Lägg till en kunskapsbas med hjälp av panelen till höger för att börja upptäcka, kommentera och länka resurser.",
|
|
973
|
+
"sessionExpired": "Din session har gått ut.",
|
|
974
|
+
"signedOut": "Du är utloggad.",
|
|
975
|
+
"signInHint": "Logga in via kunskapsbasens panel för att bläddra bland resurser."
|
|
976
|
+
},
|
|
977
|
+
"AccountPanel": {
|
|
978
|
+
"notAuthenticated": "Logga in på en kunskapsbas för att visa ditt konto."
|
|
957
979
|
}
|
|
958
980
|
}
|
|
@@ -402,12 +402,7 @@
|
|
|
402
402
|
},
|
|
403
403
|
"Home": {
|
|
404
404
|
"tagline": "สร้างความหมาย",
|
|
405
|
-
"
|
|
406
|
-
"continueToKnowledgeBase": "ไปยังฐานความรู้",
|
|
407
|
-
"learnMore": "เรียนรู้เพิ่มเติม",
|
|
408
|
-
"signUp": "สมัครสมาชิก",
|
|
409
|
-
"signIn": "เข้าสู่ระบบ",
|
|
410
|
-
"loading": "กำลังโหลด..."
|
|
405
|
+
"begin": "เริ่มต้น"
|
|
411
406
|
},
|
|
412
407
|
"About": {
|
|
413
408
|
"pageTitle": "เกี่ยวกับ Semiont",
|
|
@@ -535,7 +530,7 @@
|
|
|
535
530
|
"errorGeneric": "เกิดข้อผิดพลาดในการยืนยันตัวตน กรุณาลองอีกครั้ง",
|
|
536
531
|
"errorGoogleSignIn": "ไม่สามารถเริ่มการเข้าสู่ระบบด้วย Google ได้ กรุณาลองอีกครั้ง",
|
|
537
532
|
"backendUrlLabel": "URL แบ็กเอนด์",
|
|
538
|
-
"backendUrlPlaceholder": "
|
|
533
|
+
"backendUrlPlaceholder": "http://localhost:4000",
|
|
539
534
|
"errorBackendUrlRequired": "กรุณาป้อน URL แบ็กเอนด์",
|
|
540
535
|
"errorBackendUrlInvalid": "กรุณาระบุ URL ที่ถูกต้อง (เช่น http://localhost:4000)",
|
|
541
536
|
"errorBackendUrlUnreachable": "ไม่สามารถเข้าถึง URL นั้นได้ — แบ็กเอนด์กำลังทำงานอยู่หรือไม่?",
|
|
@@ -954,5 +949,32 @@
|
|
|
954
949
|
"streams": "Resources",
|
|
955
950
|
"events": "Annotations",
|
|
956
951
|
"blobs": "Entity types"
|
|
952
|
+
},
|
|
953
|
+
"KnowledgeBasePanel": {
|
|
954
|
+
"title": "ฐานความรู้",
|
|
955
|
+
"connectTitle": "เชื่อมต่อกับฐานความรู้",
|
|
956
|
+
"connect": "เชื่อมต่อ",
|
|
957
|
+
"connecting": "กำลังเชื่อมต่อ...",
|
|
958
|
+
"signIn": "เข้าสู่ระบบ",
|
|
959
|
+
"signingIn": "กำลังเข้าสู่ระบบ...",
|
|
960
|
+
"cancel": "ยกเลิก",
|
|
961
|
+
"addKnowledgeBase": "เพิ่มฐานความรู้",
|
|
962
|
+
"removeConfirm": "ลบ {{label}}?",
|
|
963
|
+
"remove": "ลบ",
|
|
964
|
+
"signOut": "ออกจากระบบ",
|
|
965
|
+
"statusConnected": "เชื่อมต่อแล้ว",
|
|
966
|
+
"statusExpired": "เซสชันหมดอายุ",
|
|
967
|
+
"statusSignedOut": "ออกจากระบบแล้ว",
|
|
968
|
+
"statusUnreachable": "เข้าถึงไม่ได้"
|
|
969
|
+
},
|
|
970
|
+
"DiscoverEmptyState": {
|
|
971
|
+
"noKnowledgeBases": "ไม่มีฐานความรู้",
|
|
972
|
+
"noKnowledgeBasesHint": "เพิ่มฐานความรู้โดยใช้แผงด้านขวาเพื่อเริ่มค้นหา ใส่คำอธิบาย และเชื่อมโยงทรัพยากร",
|
|
973
|
+
"sessionExpired": "เซสชันของคุณหมดอายุแล้ว",
|
|
974
|
+
"signedOut": "คุณออกจากระบบแล้ว",
|
|
975
|
+
"signInHint": "เข้าสู่ระบบโดยใช้แผงฐานความรู้เพื่อเรียกดูทรัพยากร"
|
|
976
|
+
},
|
|
977
|
+
"AccountPanel": {
|
|
978
|
+
"notAuthenticated": "เข้าสู่ระบบฐานความรู้เพื่อดูบัญชีของคุณ"
|
|
957
979
|
}
|
|
958
980
|
}
|
|
@@ -402,12 +402,7 @@
|
|
|
402
402
|
},
|
|
403
403
|
"Home": {
|
|
404
404
|
"tagline": "anlam üret",
|
|
405
|
-
"
|
|
406
|
-
"continueToKnowledgeBase": "Bilgi Tabanına Devam Et",
|
|
407
|
-
"learnMore": "Daha Fazla Bilgi",
|
|
408
|
-
"signUp": "Kayıt Ol",
|
|
409
|
-
"signIn": "Giriş Yap",
|
|
410
|
-
"loading": "Yükleniyor..."
|
|
405
|
+
"begin": "Başla"
|
|
411
406
|
},
|
|
412
407
|
"About": {
|
|
413
408
|
"pageTitle": "Semiont Hakkında",
|
|
@@ -535,7 +530,7 @@
|
|
|
535
530
|
"errorGeneric": "Bir kimlik doğrulama hatası oluştu. Lütfen tekrar deneyin.",
|
|
536
531
|
"errorGoogleSignIn": "Google girişi başlatılamadı. Lütfen tekrar deneyin.",
|
|
537
532
|
"backendUrlLabel": "Backend URL",
|
|
538
|
-
"backendUrlPlaceholder": "
|
|
533
|
+
"backendUrlPlaceholder": "http://localhost:4000",
|
|
539
534
|
"errorBackendUrlRequired": "Lütfen backend URL'sini girin",
|
|
540
535
|
"errorBackendUrlInvalid": "Lütfen geçerli bir URL girin (örn. http://localhost:4000)",
|
|
541
536
|
"errorBackendUrlUnreachable": "Bu URL'ye ulaşılamıyor — backend çalışıyor mu?",
|
|
@@ -954,5 +949,32 @@
|
|
|
954
949
|
"streams": "Resources",
|
|
955
950
|
"events": "Annotations",
|
|
956
951
|
"blobs": "Entity types"
|
|
952
|
+
},
|
|
953
|
+
"KnowledgeBasePanel": {
|
|
954
|
+
"title": "Bilgi Tabanları",
|
|
955
|
+
"connectTitle": "Bilgi Tabanına Bağlan",
|
|
956
|
+
"connect": "Bağlan",
|
|
957
|
+
"connecting": "Bağlanıyor...",
|
|
958
|
+
"signIn": "Giriş Yap",
|
|
959
|
+
"signingIn": "Giriş yapılıyor...",
|
|
960
|
+
"cancel": "İptal",
|
|
961
|
+
"addKnowledgeBase": "Bilgi tabanı ekle",
|
|
962
|
+
"removeConfirm": "{{label}} kaldırılsın mı?",
|
|
963
|
+
"remove": "Kaldır",
|
|
964
|
+
"signOut": "Çıkış Yap",
|
|
965
|
+
"statusConnected": "Bağlı",
|
|
966
|
+
"statusExpired": "Oturum süresi doldu",
|
|
967
|
+
"statusSignedOut": "Çıkış yapıldı",
|
|
968
|
+
"statusUnreachable": "Erişilemiyor"
|
|
969
|
+
},
|
|
970
|
+
"DiscoverEmptyState": {
|
|
971
|
+
"noKnowledgeBases": "Bilgi tabanı yok",
|
|
972
|
+
"noKnowledgeBasesHint": "Kaynakları keşfetmeye, not eklemeye ve bağlamaya başlamak için sağdaki paneli kullanarak bir bilgi tabanı ekleyin.",
|
|
973
|
+
"sessionExpired": "Oturumunuzun süresi doldu.",
|
|
974
|
+
"signedOut": "Çıkış yaptınız.",
|
|
975
|
+
"signInHint": "Kaynakları görüntülemek için Bilgi Tabanı panelini kullanarak giriş yapın."
|
|
976
|
+
},
|
|
977
|
+
"AccountPanel": {
|
|
978
|
+
"notAuthenticated": "Hesabınızı görüntülemek için bir bilgi tabanında oturum açın."
|
|
957
979
|
}
|
|
958
980
|
}
|
|
@@ -402,12 +402,7 @@
|
|
|
402
402
|
},
|
|
403
403
|
"Home": {
|
|
404
404
|
"tagline": "створюй значення",
|
|
405
|
-
"
|
|
406
|
-
"continueToKnowledgeBase": "Перейти до бази знань",
|
|
407
|
-
"learnMore": "Дізнатися більше",
|
|
408
|
-
"signUp": "Реєстрація",
|
|
409
|
-
"signIn": "Увійти",
|
|
410
|
-
"loading": "Завантаження..."
|
|
405
|
+
"begin": "Почати"
|
|
411
406
|
},
|
|
412
407
|
"About": {
|
|
413
408
|
"pageTitle": "Про Semiont",
|
|
@@ -535,7 +530,7 @@
|
|
|
535
530
|
"errorGeneric": "Виникла помилка автентифікації. Будь ласка, спробуйте ще раз.",
|
|
536
531
|
"errorGoogleSignIn": "Не вдалося розпочати вхід через Google. Будь ласка, спробуйте ще раз.",
|
|
537
532
|
"backendUrlLabel": "URL бекенду",
|
|
538
|
-
"backendUrlPlaceholder": "
|
|
533
|
+
"backendUrlPlaceholder": "http://localhost:4000",
|
|
539
534
|
"errorBackendUrlRequired": "Будь ласка, введіть URL бекенду",
|
|
540
535
|
"errorBackendUrlInvalid": "Введіть дійсну URL-адресу (наприклад: http://localhost:4000)",
|
|
541
536
|
"errorBackendUrlUnreachable": "Не вдається досягти цієї URL-адреси — чи запущено бекенд?",
|
|
@@ -954,5 +949,32 @@
|
|
|
954
949
|
"streams": "Resources",
|
|
955
950
|
"events": "Annotations",
|
|
956
951
|
"blobs": "Entity types"
|
|
952
|
+
},
|
|
953
|
+
"KnowledgeBasePanel": {
|
|
954
|
+
"title": "Бази знань",
|
|
955
|
+
"connectTitle": "Підключитися до бази знань",
|
|
956
|
+
"connect": "Підключити",
|
|
957
|
+
"connecting": "Підключення...",
|
|
958
|
+
"signIn": "Увійти",
|
|
959
|
+
"signingIn": "Вхід...",
|
|
960
|
+
"cancel": "Скасувати",
|
|
961
|
+
"addKnowledgeBase": "Додати базу знань",
|
|
962
|
+
"removeConfirm": "Видалити {{label}}?",
|
|
963
|
+
"remove": "Видалити",
|
|
964
|
+
"signOut": "Вийти",
|
|
965
|
+
"statusConnected": "Підключено",
|
|
966
|
+
"statusExpired": "Сеанс завершено",
|
|
967
|
+
"statusSignedOut": "Вийшли",
|
|
968
|
+
"statusUnreachable": "Недоступно"
|
|
969
|
+
},
|
|
970
|
+
"DiscoverEmptyState": {
|
|
971
|
+
"noKnowledgeBases": "Немає баз знань",
|
|
972
|
+
"noKnowledgeBasesHint": "Додайте базу знань за допомогою панелі праворуч, щоб почати виявляти, анотувати та пов'язувати ресурси.",
|
|
973
|
+
"sessionExpired": "Ваш сеанс завершено.",
|
|
974
|
+
"signedOut": "Ви вийшли з системи.",
|
|
975
|
+
"signInHint": "Увійдіть за допомогою панелі «База знань», щоб переглядати ресурси."
|
|
976
|
+
},
|
|
977
|
+
"AccountPanel": {
|
|
978
|
+
"notAuthenticated": "Увійдіть до бази знань, щоб переглянути свій обліковий запис."
|
|
957
979
|
}
|
|
958
980
|
}
|
|
@@ -402,12 +402,7 @@
|
|
|
402
402
|
},
|
|
403
403
|
"Home": {
|
|
404
404
|
"tagline": "kiến tạo ý nghĩa",
|
|
405
|
-
"
|
|
406
|
-
"continueToKnowledgeBase": "Tiếp tục đến Cơ sở tri thức",
|
|
407
|
-
"learnMore": "Tìm hiểu thêm",
|
|
408
|
-
"signUp": "Đăng ký",
|
|
409
|
-
"signIn": "Đăng nhập",
|
|
410
|
-
"loading": "Đang tải..."
|
|
405
|
+
"begin": "Bắt đầu"
|
|
411
406
|
},
|
|
412
407
|
"About": {
|
|
413
408
|
"pageTitle": "Giới thiệu về Semiont",
|
|
@@ -535,7 +530,7 @@
|
|
|
535
530
|
"errorGeneric": "Đã xảy ra lỗi xác thực. Vui lòng thử lại.",
|
|
536
531
|
"errorGoogleSignIn": "Không thể khởi tạo đăng nhập Google. Vui lòng thử lại.",
|
|
537
532
|
"backendUrlLabel": "URL Backend",
|
|
538
|
-
"backendUrlPlaceholder": "
|
|
533
|
+
"backendUrlPlaceholder": "http://localhost:4000",
|
|
539
534
|
"errorBackendUrlRequired": "Vui lòng nhập URL backend",
|
|
540
535
|
"errorBackendUrlInvalid": "Vui lòng nhập URL hợp lệ (ví dụ: http://localhost:4000)",
|
|
541
536
|
"errorBackendUrlUnreachable": "Không thể kết nối đến URL đó — backend có đang chạy không?",
|
|
@@ -954,5 +949,32 @@
|
|
|
954
949
|
"streams": "Resources",
|
|
955
950
|
"events": "Annotations",
|
|
956
951
|
"blobs": "Entity types"
|
|
952
|
+
},
|
|
953
|
+
"KnowledgeBasePanel": {
|
|
954
|
+
"title": "Cơ sở kiến thức",
|
|
955
|
+
"connectTitle": "Kết nối với cơ sở kiến thức",
|
|
956
|
+
"connect": "Kết nối",
|
|
957
|
+
"connecting": "Đang kết nối...",
|
|
958
|
+
"signIn": "Đăng nhập",
|
|
959
|
+
"signingIn": "Đang đăng nhập...",
|
|
960
|
+
"cancel": "Hủy",
|
|
961
|
+
"addKnowledgeBase": "Thêm cơ sở kiến thức",
|
|
962
|
+
"removeConfirm": "Xóa {{label}}?",
|
|
963
|
+
"remove": "Xóa",
|
|
964
|
+
"signOut": "Đăng xuất",
|
|
965
|
+
"statusConnected": "Đã kết nối",
|
|
966
|
+
"statusExpired": "Phiên đã hết hạn",
|
|
967
|
+
"statusSignedOut": "Đã đăng xuất",
|
|
968
|
+
"statusUnreachable": "Không thể truy cập"
|
|
969
|
+
},
|
|
970
|
+
"DiscoverEmptyState": {
|
|
971
|
+
"noKnowledgeBases": "Không có cơ sở kiến thức",
|
|
972
|
+
"noKnowledgeBasesHint": "Thêm cơ sở kiến thức bằng bảng điều khiển bên phải để bắt đầu khám phá, chú thích và liên kết tài nguyên.",
|
|
973
|
+
"sessionExpired": "Phiên của bạn đã hết hạn.",
|
|
974
|
+
"signedOut": "Bạn đã đăng xuất.",
|
|
975
|
+
"signInHint": "Đăng nhập bằng bảng Cơ sở kiến thức để duyệt tài nguyên."
|
|
976
|
+
},
|
|
977
|
+
"AccountPanel": {
|
|
978
|
+
"notAuthenticated": "Đăng nhập vào cơ sở kiến thức để xem tài khoản của bạn."
|
|
957
979
|
}
|
|
958
980
|
}
|
|
@@ -402,12 +402,7 @@
|
|
|
402
402
|
},
|
|
403
403
|
"Home": {
|
|
404
404
|
"tagline": "创造意义",
|
|
405
|
-
"
|
|
406
|
-
"continueToKnowledgeBase": "前往知识库",
|
|
407
|
-
"learnMore": "了解更多",
|
|
408
|
-
"signUp": "注册",
|
|
409
|
-
"signIn": "登录",
|
|
410
|
-
"loading": "加载中..."
|
|
405
|
+
"begin": "开始"
|
|
411
406
|
},
|
|
412
407
|
"About": {
|
|
413
408
|
"pageTitle": "关于 Semiont",
|
|
@@ -535,7 +530,7 @@
|
|
|
535
530
|
"errorGeneric": "发生身份验证错误。请重试。",
|
|
536
531
|
"errorGoogleSignIn": "无法启动 Google 登录。请重试。",
|
|
537
532
|
"backendUrlLabel": "后端URL",
|
|
538
|
-
"backendUrlPlaceholder": "
|
|
533
|
+
"backendUrlPlaceholder": "http://localhost:4000",
|
|
539
534
|
"errorBackendUrlRequired": "请输入后端URL",
|
|
540
535
|
"errorBackendUrlInvalid": "请输入有效的 URL(例如:http://localhost:4000)",
|
|
541
536
|
"errorBackendUrlUnreachable": "无法连接到该 URL——后端是否正在运行?",
|
|
@@ -954,5 +949,32 @@
|
|
|
954
949
|
"streams": "Resources",
|
|
955
950
|
"events": "Annotations",
|
|
956
951
|
"blobs": "Entity types"
|
|
952
|
+
},
|
|
953
|
+
"KnowledgeBasePanel": {
|
|
954
|
+
"title": "知识库",
|
|
955
|
+
"connectTitle": "连接到知识库",
|
|
956
|
+
"connect": "连接",
|
|
957
|
+
"connecting": "连接中...",
|
|
958
|
+
"signIn": "登录",
|
|
959
|
+
"signingIn": "登录中...",
|
|
960
|
+
"cancel": "取消",
|
|
961
|
+
"addKnowledgeBase": "添加知识库",
|
|
962
|
+
"removeConfirm": "删除 {{label}}?",
|
|
963
|
+
"remove": "删除",
|
|
964
|
+
"signOut": "退出登录",
|
|
965
|
+
"statusConnected": "已连接",
|
|
966
|
+
"statusExpired": "会话已过期",
|
|
967
|
+
"statusSignedOut": "已退出",
|
|
968
|
+
"statusUnreachable": "无法访问"
|
|
969
|
+
},
|
|
970
|
+
"DiscoverEmptyState": {
|
|
971
|
+
"noKnowledgeBases": "没有知识库",
|
|
972
|
+
"noKnowledgeBasesHint": "使用右侧面板添加知识库,开始发现、注释和链接资源。",
|
|
973
|
+
"sessionExpired": "您的会话已过期。",
|
|
974
|
+
"signedOut": "您已退出登录。",
|
|
975
|
+
"signInHint": "通过知识库面板登录以浏览资源。"
|
|
976
|
+
},
|
|
977
|
+
"AccountPanel": {
|
|
978
|
+
"notAuthenticated": "登录知识库以查看您的帐户。"
|
|
957
979
|
}
|
|
958
980
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semiont/cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.14",
|
|
4
4
|
"description": "Semiont CLI - Unified environment management tool",
|
|
5
5
|
"_comment": "AWS SDK dependencies (@aws-sdk/*) are only used by platforms/aws",
|
|
6
6
|
"type": "module",
|
|
@@ -63,20 +63,20 @@
|
|
|
63
63
|
"@aws-sdk/client-secrets-manager": "^3.600.0",
|
|
64
64
|
"@aws-sdk/client-sts": "^3.859.0",
|
|
65
65
|
"@aws-sdk/client-wafv2": "^3.859.0",
|
|
66
|
-
"@semiont/api-client": "0.4.
|
|
67
|
-
"@semiont/content": "0.4.
|
|
68
|
-
"@semiont/core": "0.4.
|
|
69
|
-
"@semiont/event-sourcing": "0.4.
|
|
70
|
-
"@semiont/graph": "0.4.
|
|
71
|
-
"@semiont/make-meaning": "0.4.
|
|
66
|
+
"@semiont/api-client": "0.4.14",
|
|
67
|
+
"@semiont/content": "0.4.14",
|
|
68
|
+
"@semiont/core": "0.4.14",
|
|
69
|
+
"@semiont/event-sourcing": "0.4.14",
|
|
70
|
+
"@semiont/graph": "0.4.14",
|
|
71
|
+
"@semiont/make-meaning": "0.4.14",
|
|
72
72
|
"arg": "^5.0.2",
|
|
73
73
|
"argon2": "^0.44.0",
|
|
74
74
|
"express": "^5.2.1",
|
|
75
75
|
"ink": "^6.8.0",
|
|
76
76
|
"js-yaml": "^4.1.0",
|
|
77
77
|
"neo4j-driver": "^6.0.1",
|
|
78
|
-
"smol-toml": "^1.6.0",
|
|
79
78
|
"react": "^19.2.4",
|
|
79
|
+
"smol-toml": "^1.6.0",
|
|
80
80
|
"socket.io": "^4.5.4",
|
|
81
81
|
"zod": "^3.23.8"
|
|
82
82
|
},
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as x}from"./query-ATBhtd3K.js";import{r as e}from"./vendor-EnoIVk-c.js";import{G as S,H as p,I as C}from"./en-IUV4ZXKH-eHunUM2g.js";const l=e.createContext(void 0);function h({backendUrl:c,children:f}){const[t,s]=e.useState(null),[n,o]=e.useState(!0);e.useEffect(()=>{o(!0),s(null),new S({baseUrl:C(c),eventBus:new p}).getMe().then(i=>{s({token:i.token,user:i})}).catch(()=>{s(null)}).finally(()=>{o(!1)})},[]);const r=e.useCallback(a=>{s(a)},[]),u=e.useCallback(()=>{s(null)},[]),m=e.useMemo(()=>({session:t,isLoading:n,setSession:r,clearSession:u}),[t,n,r,u]);return x.jsx(l.Provider,{value:m,children:f})}const d={session:null,isLoading:!1,setSession:()=>{},clearSession:()=>{}};function k(){return e.useContext(l)??d}export{h as A,k as u};
|
|
2
|
-
//# sourceMappingURL=AuthContext-CUx-cP7W.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthContext-CUx-cP7W.js","sources":["../../src/contexts/AuthContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, useEffect, useCallback, useMemo } from 'react';\nimport { SemiontApiClient } from '@semiont/api-client';\nimport type { components } from '@semiont/core';\nimport { baseUrl, EventBus } from '@semiont/core';\n\ntype UserInfo = components['schemas']['UserResponse'];\n\nexport interface AuthSession {\n token: string;\n user: UserInfo;\n}\n\ninterface AuthContextValue {\n session: AuthSession | null;\n isLoading: boolean;\n setSession: (session: AuthSession) => void;\n clearSession: () => void;\n}\n\nconst AuthContext = createContext<AuthContextValue | undefined>(undefined);\n\nexport function AuthProvider({ backendUrl: backendUrlProp, children }: { backendUrl: string; children: React.ReactNode }) {\n const [session, setSessionState] = useState<AuthSession | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true);\n setSessionState(null);\n const client = new SemiontApiClient({ baseUrl: baseUrl(backendUrlProp), eventBus: new EventBus() });\n client.getMe()\n .then((data) => {\n setSessionState({ token: data.token, user: data });\n })\n .catch(() => {\n setSessionState(null);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n const setSession = useCallback((s: AuthSession) => {\n setSessionState(s);\n }, []);\n\n const clearSession = useCallback(() => {\n setSessionState(null);\n }, []);\n\n const value = useMemo(\n () => ({ session, isLoading, setSession, clearSession }),\n [session, isLoading, setSession, clearSession]\n );\n\n return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;\n}\n\nconst NO_AUTH: AuthContextValue = {\n session: null,\n isLoading: false,\n setSession: () => {},\n clearSession: () => {},\n};\n\nexport function useAuthContext(): AuthContextValue {\n return useContext(AuthContext) ?? NO_AUTH;\n}\n"],"names":["AuthContext","createContext","AuthProvider","backendUrlProp","children","session","setSessionState","useState","isLoading","setIsLoading","useEffect","SemiontApiClient","baseUrl","EventBus","data","setSession","useCallback","s","clearSession","value","useMemo","jsx","NO_AUTH","useAuthContext","useContext"],"mappings":"6IAmBA,MAAMA,EAAcC,EAAAA,cAA4C,MAAS,EAElE,SAASC,EAAa,CAAE,WAAYC,EAAgB,SAAAC,GAA+D,CACxH,KAAM,CAACC,EAASC,CAAe,EAAIC,EAAAA,SAA6B,IAAI,EAC9D,CAACC,EAAWC,CAAY,EAAIF,EAAAA,SAAS,EAAI,EAE/CG,EAAAA,UAAU,IAAM,CACdD,EAAa,EAAI,EACjBH,EAAgB,IAAI,EACL,IAAIK,EAAiB,CAAE,QAASC,EAAQT,CAAc,EAAG,SAAU,IAAIU,EAAY,EAC3F,MAAA,EACJ,KAAMC,GAAS,CACdR,EAAgB,CAAE,MAAOQ,EAAK,MAAO,KAAMA,EAAM,CACnD,CAAC,EACA,MAAM,IAAM,CACXR,EAAgB,IAAI,CACtB,CAAC,EACA,QAAQ,IAAM,CACbG,EAAa,EAAK,CACpB,CAAC,CACL,EAAG,CAAA,CAAE,EAEL,MAAMM,EAAaC,cAAaC,GAAmB,CACjDX,EAAgBW,CAAC,CACnB,EAAG,CAAA,CAAE,EAECC,EAAeF,EAAAA,YAAY,IAAM,CACrCV,EAAgB,IAAI,CACtB,EAAG,CAAA,CAAE,EAECa,EAAQC,EAAAA,QACZ,KAAO,CAAE,QAAAf,EAAS,UAAAG,EAAW,WAAAO,EAAY,aAAAG,CAAA,GACzC,CAACb,EAASG,EAAWO,EAAYG,CAAY,CAAA,EAG/C,OAAOG,EAAAA,IAACrB,EAAY,SAAZ,CAAqB,MAAAmB,EAAe,SAAAf,CAAA,CAAS,CACvD,CAEA,MAAMkB,EAA4B,CAChC,QAAS,KACT,UAAW,GACX,WAAY,IAAM,CAAC,EACnB,aAAc,IAAM,CAAC,CACvB,EAEO,SAASC,GAAmC,CACjD,OAAOC,EAAAA,WAAWxB,CAAW,GAAKsB,CACpC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./query-ATBhtd3K.js";import{r}from"./vendor-EnoIVk-c.js";import{g as v,C as N,e as k,s as C,d as E}from"./privacy-W9SxWfL5.js";import{u as L}from"./i18n-BYxb14hm.js";function M({title:a,titleId:n,...l},s){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},l),a?r.createElement("title",{id:n},a):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))}const R=r.forwardRef(M);function D({title:a,titleId:n,...l},s){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},l),a?r.createElement("title",{id:n},a):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"}))}const S=r.forwardRef(D);function A({title:a,titleId:n,...l},s){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},l),a?r.createElement("title",{id:n},a):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z"}))}const O=r.forwardRef(A);function $({title:a,titleId:n,...l},s){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},l),a?r.createElement("title",{id:n},a):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const g=r.forwardRef($);function F({title:a,titleId:n,...l},s){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},l),a?r.createElement("title",{id:n},a):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const T=r.forwardRef(F);function q({isOpen:a,onClose:n}){const{t:l}=L(),s=(t,i)=>l(`CookiePreferences.${t}`,i),[o,m]=r.useState(null),[d,u]=r.useState(!1),[b,x]=r.useState(!1),f=r.useRef(n);r.useEffect(()=>{f.current=n}),r.useEffect(()=>{if(a){const t=v();m(t||{necessary:!0,analytics:!1,marketing:!1,preferences:!1,timestamp:new Date().toISOString(),version:"1.0"})}},[a]),r.useEffect(()=>{if(!a)return;const t=i=>{i.key==="Escape"&&f.current()};return document.addEventListener("keydown",t),()=>{document.removeEventListener("keydown",t)}},[a]);const p=async()=>{o&&(u(!0),C(o),u(!1),n())},w=t=>{t==="necessary"||!o||m(i=>i?{...i,[t]:!i[t]}:null)},j=()=>{const t=k(),i=new Blob([JSON.stringify(t,null,2)],{type:"application/json"}),h=URL.createObjectURL(i),c=document.createElement("a");c.href=h,c.download=`semiont-user-data-${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(h)},y=()=>{E()};return!a||!o?null:e.jsxs("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:[e.jsxs("div",{className:"flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0",children:[e.jsx("div",{className:"fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75",onClick:n}),e.jsxs("div",{className:"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full sm:p-6 relative",children:[e.jsx("button",{onClick:n,className:"absolute top-4 right-4 text-gray-400 hover:text-gray-600 transition-colors focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded-lg p-1","aria-label":"Close",children:e.jsx(T,{className:"h-6 w-6"})}),e.jsxs("div",{className:"sm:flex sm:items-start",children:[e.jsx("div",{className:"mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10",children:e.jsx(S,{className:"h-6 w-6 text-blue-600"})}),e.jsxs("div",{className:"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left flex-1 pr-8",children:[e.jsx("h3",{className:"text-lg leading-6 font-medium text-gray-900",children:s("title")}),e.jsx("div",{className:"mt-2",children:e.jsx("p",{className:"text-sm text-gray-500",children:s("description")})})]})]}),e.jsx("div",{className:"mt-6",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"bg-gray-50 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx(O,{className:"h-5 w-5 text-green-500 mr-2"}),e.jsx("span",{className:"text-sm font-medium text-gray-900",children:s("currentSettings")})]}),e.jsxs("div",{className:"mt-2 text-xs text-gray-600",children:[e.jsx("p",{children:s("lastUpdated",{date:new Date(o.timestamp).toLocaleDateString()})}),e.jsx("p",{children:s("version",{version:o.version})})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h4",{className:"text-base font-medium text-gray-900",children:s("cookieCategories")}),N.map(t=>e.jsx("div",{className:"border border-gray-200 rounded-lg p-4",children:e.jsx("div",{className:"flex items-start justify-between",children:e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx("input",{id:`pref-${t.id}`,type:"checkbox",checked:o[t.id]||!1,onChange:()=>w(t.id),disabled:t.required||d,className:"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded-sm disabled:opacity-50"}),e.jsxs("label",{htmlFor:`pref-${t.id}`,className:"ml-3 text-sm font-medium text-gray-900 cursor-pointer",children:[t.name,t.required&&e.jsx("span",{className:"text-xs text-gray-500 ml-1",children:s("required")})]})]}),e.jsx("p",{className:"mt-1 text-sm text-gray-600",children:t.description}),e.jsxs("details",{className:"mt-2",children:[e.jsx("summary",{className:"text-xs text-blue-600 cursor-pointer hover:text-blue-800",children:s("viewCookies",{count:t.cookies.length})}),e.jsx("div",{className:"mt-1 text-xs text-gray-500 bg-gray-50 rounded-sm p-2",children:e.jsx("ul",{className:"list-disc list-inside space-y-1",children:t.cookies.map(i=>e.jsx("li",{children:i},i))})})]})]})})},t.id))]}),e.jsxs("div",{className:"border-t border-gray-200 pt-6",children:[e.jsx("h4",{className:"text-base font-medium text-gray-900 mb-4",children:s("dataManagement")}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("button",{onClick:j,className:"flex items-center justify-center px-4 py-2 border border-gray-300 rounded-md shadow-xs text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500",children:[e.jsx(R,{className:"h-4 w-4 mr-2"}),s("exportMyData")]}),e.jsxs("button",{onClick:()=>x(!0),className:"flex items-center justify-center px-4 py-2 border border-red-300 rounded-md shadow-xs text-sm font-medium text-red-700 bg-white hover:bg-red-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-red-500",children:[e.jsx(g,{className:"h-4 w-4 mr-2"}),s("deleteAllData")]})]}),e.jsx("p",{className:"mt-2 text-xs text-gray-500",children:s("dataManagementDescription")})]})]})}),e.jsxs("div",{className:"mt-6 flex flex-wrap gap-2 justify-center",children:[e.jsx("button",{type:"button",onClick:()=>{m(t=>t?{...t,necessary:!0,analytics:!1,marketing:!1,preferences:!1}:null)},disabled:d,className:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 transition-colors",children:s("rejectAll")}),e.jsx("button",{type:"button",onClick:()=>{m(t=>t?{...t,necessary:!0,analytics:!0,marketing:!0,preferences:!0}:null)},disabled:d,className:"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 transition-colors",children:s("acceptAll")})]}),e.jsxs("div",{className:"mt-6 sm:flex sm:flex-row-reverse",children:[e.jsx("button",{type:"button",onClick:p,disabled:d,className:"w-full inline-flex justify-center rounded-md border border-transparent shadow-xs px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm disabled:opacity-50",children:s(d?"saving":"saveChanges")}),e.jsx("button",{type:"button",onClick:n,className:"mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:w-auto sm:text-sm",children:s("cancel")})]})]})]}),b&&e.jsx("div",{className:"fixed inset-0 z-60 overflow-y-auto",children:e.jsxs("div",{className:"flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0",children:[e.jsx("div",{className:"fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75"}),e.jsxs("div",{className:"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full sm:p-6",children:[e.jsxs("div",{className:"sm:flex sm:items-start",children:[e.jsx("div",{className:"mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10",children:e.jsx(g,{className:"h-6 w-6 text-red-600"})}),e.jsxs("div",{className:"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left",children:[e.jsx("h3",{className:"text-lg leading-6 font-medium text-gray-900",children:s("deleteConfirmTitle")}),e.jsx("div",{className:"mt-2",children:e.jsx("p",{className:"text-sm text-gray-500",children:s("deleteConfirmDescription")})})]})]}),e.jsxs("div",{className:"mt-5 sm:mt-4 sm:flex sm:flex-row-reverse",children:[e.jsx("button",{type:"button",onClick:y,className:"w-full inline-flex justify-center rounded-md border border-transparent shadow-xs px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm",children:s("deleteAllData")}),e.jsx("button",{type:"button",onClick:()=>x(!1),className:"mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:w-auto sm:text-sm",children:s("cancel")})]})]})]})})]})}export{q as C,O as F,T as a};
|
|
2
|
-
//# sourceMappingURL=CookiePreferences-BuRvkBwM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CookiePreferences-BuRvkBwM.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/ArrowDownTrayIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/CogIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/ShieldCheckIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/TrashIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js","../../src/components/CookiePreferences.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction ArrowDownTrayIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ArrowDownTrayIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction CogIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CogIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ShieldCheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ShieldCheckIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction TrashIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(TrashIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction XMarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 18 18 6M6 6l12 12\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(XMarkIcon);\nexport default ForwardRef;","\"use client\";\n\nimport React, { useState, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n getCookieConsent,\n setCookieConsent,\n COOKIE_CATEGORIES,\n CookieConsent,\n exportUserData,\n deleteAllUserData,\n type CookieCategory\n} from '@/lib/cookies';\nimport {\n CogIcon,\n TrashIcon,\n ArrowDownTrayIcon,\n ShieldCheckIcon,\n XMarkIcon\n} from '@heroicons/react/24/outline';\n\ninterface CookiePreferencesProps {\n isOpen: boolean;\n onClose: () => void;\n}\n\nexport function CookiePreferences({ isOpen, onClose }: CookiePreferencesProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`CookiePreferences.${k}`, p as any) as string;\n const [consent, setConsent] = useState<CookieConsent | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [showDeleteConfirm, setShowDeleteConfirm] = useState(false);\n\n // Store callback in ref to avoid including in dependency arrays\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n });\n\n useEffect(() => {\n if (isOpen) {\n const currentConsent = getCookieConsent();\n setConsent(currentConsent || {\n necessary: true,\n analytics: false,\n marketing: false,\n preferences: false,\n timestamp: new Date().toISOString(),\n version: '1.0'\n });\n }\n }, [isOpen]);\n\n // Handle ESC key to close modal\n useEffect(() => {\n if (!isOpen) {\n return undefined;\n }\n\n const handleEsc = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onCloseRef.current();\n }\n };\n\n document.addEventListener('keydown', handleEsc);\n return () => {\n document.removeEventListener('keydown', handleEsc);\n };\n }, [isOpen]);\n\n const handleSave = async () => {\n if (!consent) return;\n \n setIsLoading(true);\n setCookieConsent(consent);\n setIsLoading(false);\n onClose();\n };\n\n const handleCategoryToggle = (categoryId: keyof Omit<CookieConsent, 'timestamp' | 'version'>) => {\n if (categoryId === 'necessary' || !consent) return;\n \n setConsent(prev => prev ? {\n ...prev,\n [categoryId]: !prev[categoryId]\n } : null);\n };\n\n const handleExportData = () => {\n const data = exportUserData();\n const blob = new Blob([JSON.stringify(data, null, 2)], { \n type: 'application/json' \n });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `semiont-user-data-${new Date().toISOString().split('T')[0]}.json`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n };\n\n const handleDeleteAllData = () => {\n deleteAllUserData();\n };\n\n if (!isOpen || !consent) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 overflow-y-auto\">\n <div className=\"flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0\">\n {/* Background overlay */}\n <div \n className=\"fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75\"\n onClick={onClose}\n />\n\n {/* Modal panel */}\n <div className=\"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full sm:p-6 relative\">\n {/* Close button in upper right */}\n <button\n onClick={onClose}\n className=\"absolute top-4 right-4 text-gray-400 hover:text-gray-600 transition-colors focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded-lg p-1\"\n aria-label=\"Close\"\n >\n <XMarkIcon className=\"h-6 w-6\" />\n </button>\n\n <div className=\"sm:flex sm:items-start\">\n <div className=\"mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10\">\n <CogIcon className=\"h-6 w-6 text-blue-600\" />\n </div>\n <div className=\"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left flex-1 pr-8\">\n <h3 className=\"text-lg leading-6 font-medium text-gray-900\">\n {t('title')}\n </h3>\n <div className=\"mt-2\">\n <p className=\"text-sm text-gray-500\">\n {t('description')}\n </p>\n </div>\n </div>\n </div>\n\n <div className=\"mt-6\">\n <div className=\"space-y-6\">\n {/* Current consent info */}\n <div className=\"bg-gray-50 rounded-lg p-4\">\n <div className=\"flex items-center\">\n <ShieldCheckIcon className=\"h-5 w-5 text-green-500 mr-2\" />\n <span className=\"text-sm font-medium text-gray-900\">\n {t('currentSettings')}\n </span>\n </div>\n <div className=\"mt-2 text-xs text-gray-600\">\n <p>{t('lastUpdated', { date: new Date(consent.timestamp).toLocaleDateString() })}</p>\n <p>{t('version', { version: consent.version })}</p>\n </div>\n </div>\n\n {/* Cookie categories */}\n <div className=\"space-y-4\">\n <h4 className=\"text-base font-medium text-gray-900\">\n {t('cookieCategories')}\n </h4>\n \n {COOKIE_CATEGORIES.map((category: CookieCategory) => (\n <div key={category.id} className=\"border border-gray-200 rounded-lg p-4\">\n <div className=\"flex items-start justify-between\">\n <div className=\"flex-1\">\n <div className=\"flex items-center\">\n <input\n id={`pref-${category.id}`}\n type=\"checkbox\"\n checked={consent[category.id] || false}\n onChange={() => handleCategoryToggle(category.id)}\n disabled={category.required || isLoading}\n className=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded-sm disabled:opacity-50\"\n />\n <label\n htmlFor={`pref-${category.id}`}\n className=\"ml-3 text-sm font-medium text-gray-900 cursor-pointer\"\n >\n {category.name}\n {category.required && (\n <span className=\"text-xs text-gray-500 ml-1\">{t('required')}</span>\n )}\n </label>\n </div>\n <p className=\"mt-1 text-sm text-gray-600\">\n {category.description}\n </p>\n <details className=\"mt-2\">\n <summary className=\"text-xs text-blue-600 cursor-pointer hover:text-blue-800\">\n {t('viewCookies', { count: category.cookies.length })}\n </summary>\n <div className=\"mt-1 text-xs text-gray-500 bg-gray-50 rounded-sm p-2\">\n <ul className=\"list-disc list-inside space-y-1\">\n {category.cookies.map(cookie => (\n <li key={cookie}>{cookie}</li>\n ))}\n </ul>\n </div>\n </details>\n </div>\n </div>\n </div>\n ))}\n </div>\n\n {/* Data management section */}\n <div className=\"border-t border-gray-200 pt-6\">\n <h4 className=\"text-base font-medium text-gray-900 mb-4\">\n {t('dataManagement')}\n </h4>\n\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n <button\n onClick={handleExportData}\n className=\"flex items-center justify-center px-4 py-2 border border-gray-300 rounded-md shadow-xs text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\"\n >\n <ArrowDownTrayIcon className=\"h-4 w-4 mr-2\" />\n {t('exportMyData')}\n </button>\n\n <button\n onClick={() => setShowDeleteConfirm(true)}\n className=\"flex items-center justify-center px-4 py-2 border border-red-300 rounded-md shadow-xs text-sm font-medium text-red-700 bg-white hover:bg-red-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-red-500\"\n >\n <TrashIcon className=\"h-4 w-4 mr-2\" />\n {t('deleteAllData')}\n </button>\n </div>\n\n <p className=\"mt-2 text-xs text-gray-500\">\n {t('dataManagementDescription')}\n </p>\n </div>\n </div>\n </div>\n\n {/* Quick Actions */}\n <div className=\"mt-6 flex flex-wrap gap-2 justify-center\">\n <button\n type=\"button\"\n onClick={() => {\n setConsent(prev => prev ? {\n ...prev,\n necessary: true,\n analytics: false,\n marketing: false,\n preferences: false\n } : null);\n }}\n disabled={isLoading}\n className=\"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 transition-colors\"\n >\n {t('rejectAll')}\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setConsent(prev => prev ? {\n ...prev,\n necessary: true,\n analytics: true,\n marketing: true,\n preferences: true\n } : null);\n }}\n disabled={isLoading}\n className=\"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 transition-colors\"\n >\n {t('acceptAll')}\n </button>\n </div>\n\n {/* Action buttons */}\n <div className=\"mt-6 sm:flex sm:flex-row-reverse\">\n <button\n type=\"button\"\n onClick={handleSave}\n disabled={isLoading}\n className=\"w-full inline-flex justify-center rounded-md border border-transparent shadow-xs px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm disabled:opacity-50\"\n >\n {isLoading ? t('saving') : t('saveChanges')}\n </button>\n <button\n type=\"button\"\n onClick={onClose}\n className=\"mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:w-auto sm:text-sm\"\n >\n {t('cancel')}\n </button>\n </div>\n </div>\n </div>\n\n {/* Delete confirmation modal */}\n {showDeleteConfirm && (\n <div className=\"fixed inset-0 z-60 overflow-y-auto\">\n <div className=\"flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0\">\n <div className=\"fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75\" />\n <div className=\"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full sm:p-6\">\n <div className=\"sm:flex sm:items-start\">\n <div className=\"mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10\">\n <TrashIcon className=\"h-6 w-6 text-red-600\" />\n </div>\n <div className=\"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left\">\n <h3 className=\"text-lg leading-6 font-medium text-gray-900\">\n {t('deleteConfirmTitle')}\n </h3>\n <div className=\"mt-2\">\n <p className=\"text-sm text-gray-500\">\n {t('deleteConfirmDescription')}\n </p>\n </div>\n </div>\n </div>\n <div className=\"mt-5 sm:mt-4 sm:flex sm:flex-row-reverse\">\n <button\n type=\"button\"\n onClick={handleDeleteAllData}\n className=\"w-full inline-flex justify-center rounded-md border border-transparent shadow-xs px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm\"\n >\n {t('deleteAllData')}\n </button>\n <button\n type=\"button\"\n onClick={() => setShowDeleteConfirm(false)}\n className=\"mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:w-auto sm:text-sm\"\n >\n {t('cancel')}\n </button>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport default CookiePreferences;"],"names":["ArrowDownTrayIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","CogIcon","ShieldCheckIcon","TrashIcon","XMarkIcon","CookiePreferences","isOpen","onClose","_t","useTranslation","t","k","p","consent","setConsent","useState","isLoading","setIsLoading","showDeleteConfirm","setShowDeleteConfirm","onCloseRef","useRef","useEffect","currentConsent","getCookieConsent","handleEsc","event","handleSave","setCookieConsent","handleCategoryToggle","categoryId","prev","handleExportData","data","exportUserData","blob","url","a","handleDeleteAllData","deleteAllUserData","jsxs","jsx","COOKIE_CATEGORIES","category","cookie"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as S}from"./query-ATBhtd3K.js";import{r as t}from"./vendor-EnoIVk-c.js";const K="semiont.knowledgeBases",i="semiont.activeKnowledgeBaseId";function f(){try{const o=localStorage.getItem(K);return o?JSON.parse(o):[]}catch{return[]}}function C(o){localStorage.setItem(K,JSON.stringify(o))}const B=t.createContext(void 0);function p({children:o}){const[n,d]=t.useState(()=>f()),[a,c]=t.useState(()=>{var l;const e=localStorage.getItem(i),s=f();return e&&s.some(r=>r.id===e)?e:((l=s[0])==null?void 0:l.id)??null});t.useEffect(()=>{C(n)},[n]),t.useEffect(()=>{a?localStorage.setItem(i,a):localStorage.removeItem(i)},[a]);const u=t.useCallback(e=>{d(s=>[...s,e]),c(e.id)},[]),g=t.useCallback(e=>{d(s=>s.filter(r=>r.id!==e)),c(s=>{var r;return s!==e?s:((r=n.filter(x=>x.id!==e)[0])==null?void 0:r.id)??null})},[n]),w=t.useCallback(e=>{c(e)},[]),m=t.useMemo(()=>n.find(e=>e.id===a)??null,[n,a]),v=t.useMemo(()=>({knowledgeBases:n,activeKnowledgeBaseId:a,activeKnowledgeBase:m,addKnowledgeBase:u,removeKnowledgeBase:g,setActiveKnowledgeBase:w}),[n,a,m,u,g,w]);return S.jsx(B.Provider,{value:v,children:o})}function k(){const o=t.useContext(B);if(!o)throw new Error("useKnowledgeBaseContext must be used within KnowledgeBaseProvider");return o}export{p as K,k as u};
|
|
2
|
-
//# sourceMappingURL=KnowledgeBaseContext-CgnF8K-_.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"KnowledgeBaseContext-CgnF8K-_.js","sources":["../../src/contexts/KnowledgeBaseContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, useCallback, useMemo, useEffect } from 'react';\n\nexport interface KnowledgeBase {\n id: string;\n label: string;\n backendUrl: string;\n}\n\ninterface KnowledgeBaseContextValue {\n knowledgeBases: KnowledgeBase[];\n activeKnowledgeBaseId: string | null;\n activeKnowledgeBase: KnowledgeBase | null;\n addKnowledgeBase: (kb: KnowledgeBase) => void;\n removeKnowledgeBase: (id: string) => void;\n setActiveKnowledgeBase: (id: string) => void;\n}\n\nconst STORAGE_KEY = 'semiont.knowledgeBases';\nconst ACTIVE_KEY = 'semiont.activeKnowledgeBaseId';\n\nfunction loadKnowledgeBases(): KnowledgeBase[] {\n try {\n const raw = localStorage.getItem(STORAGE_KEY);\n return raw ? (JSON.parse(raw) as KnowledgeBase[]) : [];\n } catch {\n return [];\n }\n}\n\nfunction saveKnowledgeBases(knowledgeBases: KnowledgeBase[]): void {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(knowledgeBases));\n}\n\nconst KnowledgeBaseContext = createContext<KnowledgeBaseContextValue | undefined>(undefined);\n\nexport function KnowledgeBaseProvider({ children }: { children: React.ReactNode }) {\n const [knowledgeBases, setKnowledgeBases] = useState<KnowledgeBase[]>(() => loadKnowledgeBases());\n const [activeKnowledgeBaseId, setActiveKnowledgeBaseId] = useState<string | null>(() => {\n const saved = localStorage.getItem(ACTIVE_KEY);\n const loaded = loadKnowledgeBases();\n // Use saved id only if it still exists in the list\n if (saved && loaded.some(kb => kb.id === saved)) return saved;\n return loaded[0]?.id ?? null;\n });\n\n useEffect(() => {\n saveKnowledgeBases(knowledgeBases);\n }, [knowledgeBases]);\n\n useEffect(() => {\n if (activeKnowledgeBaseId) {\n localStorage.setItem(ACTIVE_KEY, activeKnowledgeBaseId);\n } else {\n localStorage.removeItem(ACTIVE_KEY);\n }\n }, [activeKnowledgeBaseId]);\n\n const addKnowledgeBase = useCallback((kb: KnowledgeBase) => {\n setKnowledgeBases(prev => [...prev, kb]);\n setActiveKnowledgeBaseId(kb.id);\n }, []);\n\n const removeKnowledgeBase = useCallback((id: string) => {\n setKnowledgeBases(prev => {\n const next = prev.filter(kb => kb.id !== id);\n return next;\n });\n setActiveKnowledgeBaseId(prev => {\n if (prev !== id) return prev;\n const remaining = knowledgeBases.filter(kb => kb.id !== id);\n return remaining[0]?.id ?? null;\n });\n }, [knowledgeBases]);\n\n const setActiveKnowledgeBase = useCallback((id: string) => {\n setActiveKnowledgeBaseId(id);\n }, []);\n\n const activeKnowledgeBase = useMemo(\n () => knowledgeBases.find(kb => kb.id === activeKnowledgeBaseId) ?? null,\n [knowledgeBases, activeKnowledgeBaseId]\n );\n\n const value = useMemo(\n () => ({ knowledgeBases, activeKnowledgeBaseId, activeKnowledgeBase, addKnowledgeBase, removeKnowledgeBase, setActiveKnowledgeBase }),\n [knowledgeBases, activeKnowledgeBaseId, activeKnowledgeBase, addKnowledgeBase, removeKnowledgeBase, setActiveKnowledgeBase]\n );\n\n return <KnowledgeBaseContext.Provider value={value}>{children}</KnowledgeBaseContext.Provider>;\n}\n\nexport function useKnowledgeBaseContext(): KnowledgeBaseContextValue {\n const ctx = useContext(KnowledgeBaseContext);\n if (!ctx) throw new Error('useKnowledgeBaseContext must be used within KnowledgeBaseProvider');\n return ctx;\n}\n"],"names":["STORAGE_KEY","ACTIVE_KEY","loadKnowledgeBases","raw","saveKnowledgeBases","knowledgeBases","KnowledgeBaseContext","createContext","KnowledgeBaseProvider","children","setKnowledgeBases","useState","activeKnowledgeBaseId","setActiveKnowledgeBaseId","saved","loaded","kb","_a","useEffect","addKnowledgeBase","useCallback","prev","removeKnowledgeBase","id","setActiveKnowledgeBase","activeKnowledgeBase","useMemo","value","jsx","useKnowledgeBaseContext","ctx","useContext"],"mappings":"iFAiBA,MAAMA,EAAc,yBACdC,EAAa,gCAEnB,SAASC,GAAsC,CAC7C,GAAI,CACF,MAAMC,EAAM,aAAa,QAAQH,CAAW,EAC5C,OAAOG,EAAO,KAAK,MAAMA,CAAG,EAAwB,CAAA,CACtD,MAAQ,CACN,MAAO,CAAA,CACT,CACF,CAEA,SAASC,EAAmBC,EAAuC,CACjE,aAAa,QAAQL,EAAa,KAAK,UAAUK,CAAc,CAAC,CAClE,CAEA,MAAMC,EAAuBC,EAAAA,cAAqD,MAAS,EAEpF,SAASC,EAAsB,CAAE,SAAAC,GAA2C,CACjF,KAAM,CAACJ,EAAgBK,CAAiB,EAAIC,EAAAA,SAA0B,IAAMT,GAAoB,EAC1F,CAACU,EAAuBC,CAAwB,EAAIF,EAAAA,SAAwB,IAAM,OACtF,MAAMG,EAAQ,aAAa,QAAQb,CAAU,EACvCc,EAASb,EAAA,EAEf,OAAIY,GAASC,EAAO,KAAKC,GAAMA,EAAG,KAAOF,CAAK,EAAUA,IACjDG,EAAAF,EAAO,CAAC,IAAR,YAAAE,EAAW,KAAM,IAC1B,CAAC,EAEDC,EAAAA,UAAU,IAAM,CACdd,EAAmBC,CAAc,CACnC,EAAG,CAACA,CAAc,CAAC,EAEnBa,EAAAA,UAAU,IAAM,CACVN,EACF,aAAa,QAAQX,EAAYW,CAAqB,EAEtD,aAAa,WAAWX,CAAU,CAEtC,EAAG,CAACW,CAAqB,CAAC,EAE1B,MAAMO,EAAmBC,cAAaJ,GAAsB,CAC1DN,EAAkBW,GAAQ,CAAC,GAAGA,EAAML,CAAE,CAAC,EACvCH,EAAyBG,EAAG,EAAE,CAChC,EAAG,CAAA,CAAE,EAECM,EAAsBF,cAAaG,GAAe,CACtDb,EAAkBW,GACHA,EAAK,OAAOL,GAAMA,EAAG,KAAOO,CAAE,CAE5C,EACDV,EAAyBQ,GAAQ,OAC/B,OAAIA,IAASE,EAAWF,IAEjBJ,EADWZ,EAAe,OAAOW,GAAMA,EAAG,KAAOO,CAAE,EACzC,CAAC,IAAX,YAAAN,EAAc,KAAM,IAC7B,CAAC,CACH,EAAG,CAACZ,CAAc,CAAC,EAEbmB,EAAyBJ,cAAaG,GAAe,CACzDV,EAAyBU,CAAE,CAC7B,EAAG,CAAA,CAAE,EAECE,EAAsBC,EAAAA,QAC1B,IAAMrB,EAAe,QAAWW,EAAG,KAAOJ,CAAqB,GAAK,KACpE,CAACP,EAAgBO,CAAqB,CAAA,EAGlCe,EAAQD,EAAAA,QACZ,KAAO,CAAE,eAAArB,EAAgB,sBAAAO,EAAuB,oBAAAa,EAAqB,iBAAAN,EAAkB,oBAAAG,EAAqB,uBAAAE,IAC5G,CAACnB,EAAgBO,EAAuBa,EAAqBN,EAAkBG,EAAqBE,CAAsB,CAAA,EAG5H,OAAOI,EAAAA,IAACtB,EAAqB,SAArB,CAA8B,MAAAqB,EAAe,SAAAlB,CAAA,CAAS,CAChE,CAEO,SAASoB,GAAqD,CACnE,MAAMC,EAAMC,EAAAA,WAAWzB,CAAoB,EAC3C,GAAI,CAACwB,EAAK,MAAM,IAAI,MAAM,mEAAmE,EAC7F,OAAOA,CACT"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./vendor-EnoIVk-c.js";function a({title:r,titleId:t,...o},n){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},o),r?e.createElement("title",{id:t},r):null,e.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const i=e.forwardRef(a);export{i as F};
|
|
2
|
-
//# sourceMappingURL=PlusIcon-qGFPUzg0.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PlusIcon-qGFPUzg0.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/PlusIcon.js"],"sourcesContent":["import * as React from \"react\";\nfunction PlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 4.5v15m7.5-7.5h-15\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(PlusIcon);\nexport default ForwardRef;"],"names":["PlusIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef"],"mappings":"yCACA,SAASA,EAAS,CAChB,MAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,gBAAoB,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAAA,cAAoB,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAAA,cAAoB,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,wBACP,CAAG,CAAC,CACJ,CACK,MAACC,EAA2BC,EAAAA,WAAiBP,CAAQ","x_google_ignoreList":[0]}
|