lightly-studio 0.3.1__py3-none-any.whl → 0.3.3__py3-none-any.whl

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.

Potentially problematic release.


This version of lightly-studio might be problematic. Click here for more details.

Files changed (169) hide show
  1. lightly_studio/__init__.py +4 -4
  2. lightly_studio/api/app.py +7 -5
  3. lightly_studio/api/db_tables.py +0 -3
  4. lightly_studio/api/routes/api/annotation.py +32 -16
  5. lightly_studio/api/routes/api/annotation_label.py +2 -5
  6. lightly_studio/api/routes/api/annotations/__init__.py +7 -0
  7. lightly_studio/api/routes/api/annotations/create_annotation.py +52 -0
  8. lightly_studio/api/routes/api/classifier.py +2 -5
  9. lightly_studio/api/routes/api/dataset.py +5 -8
  10. lightly_studio/api/routes/api/dataset_tag.py +2 -3
  11. lightly_studio/api/routes/api/embeddings2d.py +104 -0
  12. lightly_studio/api/routes/api/export.py +73 -0
  13. lightly_studio/api/routes/api/metadata.py +2 -4
  14. lightly_studio/api/routes/api/sample.py +5 -13
  15. lightly_studio/api/routes/api/selection.py +87 -0
  16. lightly_studio/api/routes/api/settings.py +2 -6
  17. lightly_studio/api/routes/images.py +6 -6
  18. lightly_studio/core/add_samples.py +374 -0
  19. lightly_studio/core/dataset.py +272 -400
  20. lightly_studio/core/dataset_query/boolean_expression.py +67 -0
  21. lightly_studio/core/dataset_query/dataset_query.py +216 -0
  22. lightly_studio/core/dataset_query/field.py +113 -0
  23. lightly_studio/core/dataset_query/field_expression.py +79 -0
  24. lightly_studio/core/dataset_query/match_expression.py +23 -0
  25. lightly_studio/core/dataset_query/order_by.py +79 -0
  26. lightly_studio/core/dataset_query/sample_field.py +28 -0
  27. lightly_studio/core/dataset_query/tags_expression.py +46 -0
  28. lightly_studio/core/sample.py +159 -32
  29. lightly_studio/core/start_gui.py +35 -0
  30. lightly_studio/dataset/edge_embedding_generator.py +13 -8
  31. lightly_studio/dataset/embedding_generator.py +2 -3
  32. lightly_studio/dataset/embedding_manager.py +74 -6
  33. lightly_studio/dataset/env.py +4 -0
  34. lightly_studio/dataset/file_utils.py +13 -2
  35. lightly_studio/dataset/fsspec_lister.py +275 -0
  36. lightly_studio/dataset/loader.py +49 -84
  37. lightly_studio/dataset/mobileclip_embedding_generator.py +9 -6
  38. lightly_studio/db_manager.py +145 -0
  39. lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/0.CA_CXIBb.css +1 -0
  40. lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/_layout.DS78jgNY.css +1 -0
  41. lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/index.BVs_sZj9.css +1 -0
  42. lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/transform.D487hwJk.css +1 -0
  43. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/6t3IJ0vQ.js +1 -0
  44. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{D6su9Aln.js → 8NsknIT2.js} +1 -1
  45. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{x9G_hzyY.js → BND_-4Kp.js} +1 -1
  46. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{BylOuP6i.js → BdfTHw61.js} +1 -1
  47. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{DOlTMNyt.js → BfHVnyNT.js} +1 -1
  48. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BjkP1AHA.js +1 -0
  49. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BuuNVL9G.js +1 -0
  50. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{O-EABkf9.js → BzKGpnl4.js} +1 -1
  51. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CCx7Ho51.js +1 -0
  52. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{l7KrR96u.js → CH6P3X75.js} +1 -1
  53. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{D5-A_Ffd.js → CR2upx_Q.js} +2 -2
  54. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CWPZrTTJ.js +1 -0
  55. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{C8I8rFJQ.js → Cs1XmhiF.js} +1 -1
  56. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{CDnpyLsT.js → CwPowJfP.js} +1 -1
  57. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CxFKfZ9T.js +1 -0
  58. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Cxevwdid.js +1 -0
  59. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{DjfY96ND.js → D4whDBUi.js} +1 -1
  60. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D6r9vr07.js +1 -0
  61. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DA6bFLPR.js +1 -0
  62. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DEgUu98i.js +3 -0
  63. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DGTPl6Gk.js +1 -0
  64. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DKGxBSlK.js +1 -0
  65. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DQXoLcsF.js +1 -0
  66. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DQe_kdRt.js +92 -0
  67. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DcY4jgG3.js +1 -0
  68. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{Bu7uvVrG.js → RmD8FzRo.js} +1 -1
  69. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/V-MnMC1X.js +1 -0
  70. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{Bsi3UGy5.js → keKYsoph.js} +1 -1
  71. lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/app.BVr6DYqP.js +2 -0
  72. lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/start.u7zsVvqp.js +1 -0
  73. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/0.Da2agmdd.js +1 -0
  74. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/{1.B4rNYwVp.js → 1.B11tVRJV.js} +1 -1
  75. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/10.l30Zud4h.js +1 -0
  76. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/12.CgKPGcAP.js +1 -0
  77. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/2.C8HLK8mj.js +857 -0
  78. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/{3.CWHpKonm.js → 3.CLvg3QcJ.js} +1 -1
  79. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/{4.OUWOLQeV.js → 4.BQhDtXUI.js} +1 -1
  80. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/5.-6XqWX5G.js +1 -0
  81. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/6.uBV1Lhat.js +1 -0
  82. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/7.BXsgoQZh.js +1 -0
  83. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/8.BkbcnUs8.js +1 -0
  84. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/{9.CPu3CiBc.js → 9.Bkrv-Vww.js} +1 -1
  85. lightly_studio/dist_lightly_studio_view_app/_app/immutable/workers/clustering.worker-DKqeLtG0.js +2 -0
  86. lightly_studio/dist_lightly_studio_view_app/_app/immutable/workers/search.worker-vNSty3B0.js +1 -0
  87. lightly_studio/dist_lightly_studio_view_app/_app/version.json +1 -1
  88. lightly_studio/dist_lightly_studio_view_app/index.html +14 -14
  89. lightly_studio/examples/example.py +13 -12
  90. lightly_studio/examples/example_coco.py +13 -0
  91. lightly_studio/examples/example_metadata.py +83 -98
  92. lightly_studio/examples/example_selection.py +7 -19
  93. lightly_studio/examples/example_split_work.py +12 -36
  94. lightly_studio/examples/{example_v2.py → example_yolo.py} +3 -4
  95. lightly_studio/export/export_dataset.py +65 -0
  96. lightly_studio/export/lightly_studio_label_input.py +120 -0
  97. lightly_studio/few_shot_classifier/classifier_manager.py +5 -26
  98. lightly_studio/metadata/compute_typicality.py +67 -0
  99. lightly_studio/models/annotation/annotation_base.py +18 -20
  100. lightly_studio/models/annotation/instance_segmentation.py +8 -8
  101. lightly_studio/models/annotation/object_detection.py +4 -4
  102. lightly_studio/models/dataset.py +6 -2
  103. lightly_studio/models/sample.py +10 -3
  104. lightly_studio/resolvers/annotation_label_resolver/__init__.py +2 -1
  105. lightly_studio/resolvers/annotation_label_resolver/get_all.py +15 -0
  106. lightly_studio/resolvers/annotation_resolver/__init__.py +2 -3
  107. lightly_studio/resolvers/annotation_resolver/create_many.py +3 -3
  108. lightly_studio/resolvers/annotation_resolver/delete_annotation.py +1 -1
  109. lightly_studio/resolvers/annotation_resolver/delete_annotations.py +7 -3
  110. lightly_studio/resolvers/annotation_resolver/get_by_id.py +19 -1
  111. lightly_studio/resolvers/annotation_resolver/update_annotation_label.py +0 -1
  112. lightly_studio/resolvers/annotations/annotations_filter.py +1 -11
  113. lightly_studio/resolvers/dataset_resolver.py +10 -0
  114. lightly_studio/resolvers/embedding_model_resolver.py +22 -0
  115. lightly_studio/resolvers/sample_resolver.py +53 -9
  116. lightly_studio/resolvers/tag_resolver.py +23 -0
  117. lightly_studio/selection/mundig.py +7 -10
  118. lightly_studio/selection/select.py +55 -46
  119. lightly_studio/selection/select_via_db.py +23 -19
  120. lightly_studio/selection/selection_config.py +10 -4
  121. lightly_studio/services/annotations_service/__init__.py +12 -0
  122. lightly_studio/services/annotations_service/create_annotation.py +63 -0
  123. lightly_studio/services/annotations_service/delete_annotation.py +22 -0
  124. lightly_studio/services/annotations_service/update_annotation.py +21 -32
  125. lightly_studio/services/annotations_service/update_annotation_bounding_box.py +36 -0
  126. lightly_studio-0.3.3.dist-info/METADATA +814 -0
  127. {lightly_studio-0.3.1.dist-info → lightly_studio-0.3.3.dist-info}/RECORD +130 -113
  128. lightly_studio/api/db.py +0 -133
  129. lightly_studio/api/routes/api/annotation_task.py +0 -38
  130. lightly_studio/api/routes/api/metrics.py +0 -80
  131. lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/0.DenzbfeK.css +0 -1
  132. lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/SelectableSvgGroup.OwPEPQZu.css +0 -1
  133. lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/SelectableSvgGroup.b653GmVf.css +0 -1
  134. lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/_layout.T-zjSUd3.css +0 -1
  135. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/B2FVR0s0.js +0 -1
  136. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/B9zumHo5.js +0 -1
  137. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BJXwVxaE.js +0 -1
  138. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Bx1xMsFy.js +0 -1
  139. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CcaPhhk3.js +0 -1
  140. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CvOmgdoc.js +0 -93
  141. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CxtLVaYz.js +0 -3
  142. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D6RI2Zrd.js +0 -1
  143. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D98V7j6A.js +0 -1
  144. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DIRAtgl0.js +0 -1
  145. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DjUWrjOv.js +0 -1
  146. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/XO7A28GO.js +0 -1
  147. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/hQVEETDE.js +0 -1
  148. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/nAHhluT7.js +0 -1
  149. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/r64xT6ao.js +0 -1
  150. lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/vC4nQVEB.js +0 -1
  151. lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/app.CjnvpsmS.js +0 -2
  152. lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/start.0o1H7wM9.js +0 -1
  153. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/0.XRq_TUwu.js +0 -1
  154. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/10.DfBwOEhN.js +0 -1
  155. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/12.CwF2_8mP.js +0 -1
  156. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/2.CS4muRY-.js +0 -6
  157. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/5.Dm6t9F5W.js +0 -1
  158. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/6.Bw5ck4gK.js +0 -1
  159. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/7.CF0EDTR6.js +0 -1
  160. lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/8.Cw30LEcV.js +0 -1
  161. lightly_studio/metrics/detection/__init__.py +0 -0
  162. lightly_studio/metrics/detection/map.py +0 -268
  163. lightly_studio/models/annotation_task.py +0 -28
  164. lightly_studio/resolvers/annotation_resolver/create.py +0 -19
  165. lightly_studio/resolvers/annotation_task_resolver.py +0 -31
  166. lightly_studio-0.3.1.dist-info/METADATA +0 -520
  167. /lightly_studio/{metrics → core/dataset_query}/__init__.py +0 -0
  168. /lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/{OpenSans- → OpenSans-Medium.DVUZMR_6.ttf} +0 -0
  169. {lightly_studio-0.3.1.dist-info → lightly_studio-0.3.3.dist-info}/WHEEL +0 -0
@@ -1 +1 @@
1
- import{u as a}from"../chunks/DIRAtgl0.js";import{L as d}from"../chunks/B9zumHo5.js";const s=async({parent:t,params:{dataset_id:e}})=>{const{globalStorage:o}=await t(),{tagsSelected:n}=a({dataset_id:e,kind:["annotation"]});return{annotationsSelectedTagsIds:n,annotationsSelectedAnnotationLabelsIds:o.selectedAnnotationFilterIds}},r=Object.freeze(Object.defineProperty({__proto__:null,load:s},Symbol.toStringTag,{value:"Module"}));export{d as component,r as universal};
1
+ import{u as a}from"../chunks/CCx7Ho51.js";import{L as d}from"../chunks/Cxevwdid.js";const s=async({parent:t,params:{dataset_id:e}})=>{const{globalStorage:o}=await t(),{tagsSelected:n}=a({dataset_id:e,kind:["annotation"]});return{annotationsSelectedTagsIds:n,annotationsSelectedAnnotationLabelsIds:o.selectedAnnotationFilterIds}},r=Object.freeze(Object.defineProperty({__proto__:null,load:s},Symbol.toStringTag,{value:"Module"}));export{d as component,r as universal};
@@ -1 +1 @@
1
- import{u as a}from"../chunks/D6su9Aln.js";import{u as l}from"../chunks/DIRAtgl0.js";import{u as m}from"../chunks/vC4nQVEB.js";import{L as b}from"../chunks/B9zumHo5.js";const r=async({params:{dataset_id:e}})=>{const{selectedAnnotationFilterIds:s,textEmbedding:o}=m(),{tagsSelected:t}=l({dataset_id:e,kind:["sample"]}),{dimensionsValues:n}=a();return{samplesSelectedTagsIds:t,samplesDimensions:n,samplesTextEmbedding:o,samplesSelectedAnnotationLabelsIds:s}},c=Object.freeze(Object.defineProperty({__proto__:null,load:r},Symbol.toStringTag,{value:"Module"}));export{b as component,c as universal};
1
+ import{u as a}from"../chunks/8NsknIT2.js";import{u as l}from"../chunks/CCx7Ho51.js";import{u as m}from"../chunks/6t3IJ0vQ.js";import{L as b}from"../chunks/Cxevwdid.js";const r=async({params:{dataset_id:e}})=>{const{selectedAnnotationFilterIds:s,textEmbedding:o}=m(),{tagsSelected:t}=l({dataset_id:e,kind:["sample"]}),{dimensionsValues:n}=a();return{samplesSelectedTagsIds:t,samplesDimensions:n,samplesTextEmbedding:o,samplesSelectedAnnotationLabelsIds:s}},c=Object.freeze(Object.defineProperty({__proto__:null,load:r},Symbol.toStringTag,{value:"Module"}));export{b as component,c as universal};
@@ -0,0 +1 @@
1
+ import"../chunks/CWj6FrbW.js";import{p as ft,f as A,n as ce,a as ht,ax as Ot,g as t,d as s,s as c,c as m,r as u,t as gt,l as Mt,u as Re,J as h,a7 as it,$ as oe}from"../chunks/CH6P3X75.js";import{c as dt,a as o,t as C,d as se,n as Et}from"../chunks/RmD8FzRo.js";import{i as H,a as Z,s as Lt}from"../chunks/DA6bFLPR.js";import{s as Dt}from"../chunks/CCx7Ho51.js";import{p as wt}from"../chunks/keKYsoph.js";import{I as ue,l as j,p as ve,z as me,B as He,C as Ne,D as Te,E as Gt,i as Ue,F as ge,_ as Fe,H as kt,J as fe,K as he,S as Xe,j as Zt,n as _e,y as ze,M as Ye,N as je,O as re,P as Ve,c as Oe,k as le,Q as Ze,R as Ke,T as Ge,U as Je,V as We,W as Qe}from"../chunks/DQe_kdRt.js";import{u as pe}from"../chunks/6t3IJ0vQ.js";import{a as qe,g as ta}from"../chunks/DEgUu98i.js";import"../chunks/8NsknIT2.js";import"../chunks/CxFKfZ9T.js";import"../chunks/69_IOA4Y.js";import{e as ie}from"../chunks/D4whDBUi.js";import{s as be,r as xe,a as at,b as ea,p as de}from"../chunks/DQXoLcsF.js";import{S as aa}from"../chunks/CR2upx_Q.js";import{r as Bt}from"../chunks/H7C68rOM.js";import{S as na,s as oa,d as sa,R as ra}from"../chunks/D6r9vr07.js";import{s as Kt}from"../chunks/DGTPl6Gk.js";import{B as la,a as ia,b as Ct,c as jt,H as da,d as Vt,D as ca,e as ua,u as we,Z as va,g as ma,S as ga}from"../chunks/DcY4jgG3.js";import{a as fa,b as ha,d as _a}from"../chunks/CWPZrTTJ.js";import{T as pa,P as ba}from"../chunks/V-MnMC1X.js";function xa(g,e){ft(e,!0);let i=xe(e,["$$slots","$$events","$$legacy"]);ue(g,be({name:"file-image"},()=>i,{iconNode:[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4"}],["circle",{cx:"10",cy:"12",r:"2"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22"}]],children:(v,a)=>{var r=dt(),N=A(r);Dt(N,()=>e.children??ce),o(v,r)},$$slots:{default:!0}})),ht()}function wa(g,e){ft(e,!0);let i=xe(e,["$$slots","$$events","$$legacy"]);ue(g,be({name:"images"},()=>i,{iconNode:[["path",{d:"M18 22H4a2 2 0 0 1-2-2V6"}],["path",{d:"m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18"}],["circle",{cx:"12",cy:"8",r:"2"}],["rect",{width:"16",height:"16",x:"6",y:"2",rx:"2"}]],children:(v,a)=>{var r=dt(),N=A(r);Dt(N,()=>e.children??ce),o(v,r)},$$slots:{default:!0}})),ht()}var ya=C('<!> <span class="hidden sm:inline">Home</span>',1),Sa=C('<!> <span class="max-w-[150px] truncate"> </span>',1),Aa=C('<!> <span class="hidden sm:inline">Samples</span>',1),$a=C('<!> <span class="max-w-[200px] truncate"><!></span>',1),Ia=C("<!> <!> <!> <!> <!> <!> <!>",1);function Pa(g,e){ft(e,!0);const[i,b]=Lt(),v=()=>Z(a,"$samplesTotalCount",i),{samplesTotalCount:a}=pe();la(g,{class:"mb-2","data-testid":"sample-details-breadcrumb",children:(r,N)=>{ia(r,{children:(V,K)=>{var P=Ia(),G=A(P);Ct(G,{children:(x,ot)=>{const E=s(()=>Bt.toHome());jt(x,{get href(){return t(E)},class:"flex items-center gap-2",children:($,T)=>{var l=ya(),w=A(l);da(w,{class:"h-4 w-4"}),Ot(2),o($,l)},$$slots:{default:!0}})},$$slots:{default:!0}});var B=c(G,2);Vt(B,{});var M=c(B,2);Ct(M,{children:(x,ot)=>{const E=s(()=>Bt.toSamples(e.dataset.dataset_id));jt(x,{get href(){return t(E)},class:"flex items-center gap-2",get title(){return e.dataset.directory},children:($,T)=>{var l=Sa(),w=A(l);ca(w,{class:"h-4 w-4"});var f=c(w,2),k=m(f,!0);u(f),gt(()=>{j(f,"title",e.dataset.directory),Kt(k,e.dataset.name)}),o($,l)},$$slots:{default:!0}})},$$slots:{default:!0}});var U=c(M,2);Vt(U,{});var J=c(U,2);Ct(J,{children:(x,ot)=>{const E=s(()=>Bt.toSamples(e.dataset.dataset_id));jt(x,{get href(){return t(E)},class:"flex items-center gap-2",children:($,T)=>{var l=Aa(),w=A(l);wa(w,{class:"h-4 w-4"}),Ot(2),o($,l)},$$slots:{default:!0}})},$$slots:{default:!0}});var W=c(J,2);Vt(W,{});var nt=c(W,2);Ct(nt,{children:(x,ot)=>{ua(x,{class:"flex items-center gap-2",children:(E,$)=>{var T=$a(),l=A(T);xa(l,{class:"h-4 w-4"});var w=c(l,2),f=m(w);{var k=X=>{var p=se();gt(()=>Kt(p,`Sample ${e.sampleIndex+1} of ${v()??""}`)),o(X,p)},F=X=>{var p=se("Sample");o(X,p)};H(f,X=>{e.sampleIndex!==void 0?X(k):X(F,!1)})}u(w),o(E,T)},$$slots:{default:!0}})},$$slots:{default:!0}}),o(V,P)},$$slots:{default:!0}})},$$slots:{default:!0}}),ht(),b()}function ka(g,e){ft(e,!0);const[i,b]=Lt(),v=()=>Z(t(P),"$annotationResp",i),a=()=>Z(t(J),"$sample",i),r=()=>Z(V,"$showAnnotationTextLabelsStore",i),N=()=>Z(M,"$isEditingMode",i),{showAnnotationTextLabelsStore:V}=ve(),K=s(()=>Te({datasetId:e.datasetId,annotationId:e.annotationId})),P=s(()=>t(K).annotation),G=s(()=>t(K).updateAnnotation);let B=s(()=>v().data);const{isEditingMode:M}=wt.data.globalStorage,U=s(()=>we({sampleId:e.sampleId,datasetId:e.datasetId})),J=s(()=>t(U).sample);let W=s(()=>v().data?me(v().data):void 0);const nt=$=>{(async()=>{try{await t(G)({annotation_id:e.annotationId,dataset_id:e.datasetId,bounding_box:$})}catch(l){console.error("Failed to update annotation:",l.message)}})()};var x=dt(),ot=A(x);{var E=$=>{var T=dt(),l=A(T);He(l,()=>t(W),w=>{Ne(w,{get groupId(){return t(B).annotation_id},get onSelect(){return e.toggleAnnotationSelection},get box(){return t(W)},get isSelected(){return e.isSelected},children:(f,k)=>{const F=s(()=>({x:0,y:0,width:a().data.width,height:a().data.height}));na(f,{get annotation(){return t(B)},get showLabel(){return r()},get imageWidth(){return a().data.width},get constraintBox(){return t(F)},get isResizable(){return N()},onBoundingBoxChanged:nt})},$$slots:{default:!0}})}),o($,T)};H(ot,$=>{t(B)&&a().data&&t(W)&&$(E)})}o(g,x),ht(),b()}const Ca=({datasetId:g})=>{const e=Gt(fa());return e.subscribe(()=>{}),{createAnnotation:b=>new Promise((v,a)=>{Mt(e).mutate({path:{dataset_id:g},body:b},{onSuccess:r=>{v(r)},onError:r=>{a(r)}})})}},Ba=()=>{const g=Gt(ha());return g.subscribe(()=>{}),{createLabel:i=>new Promise((b,v)=>{Mt(g).mutate({body:i},{onSuccess:a=>{b(a)},onError:a=>{v(a)}})})}},Ma=({datasetId:g})=>{const e=Gt(_a());return e.subscribe(()=>{}),{deleteAnnotation:b=>new Promise((v,a)=>{Mt(e).mutate({path:{dataset_id:g,annotation_id:b}},{onSuccess:()=>{v()},onError:r=>{a(r)}})})}};var Ea=Et('<rect class="select-none" fill="transparent" role="button" style="outline: 0;cursor: crosshair;" tabindex="0"></rect>'),La=Et('<line x1="0" stroke-width="1" vector-effect="non-scaling-stroke" stroke-dasharray="5,5" opacity="0.6"></line><line y1="0" vector-effect="non-scaling-stroke" stroke-width="1" stroke-dasharray="5,5" opacity="0.6"></line>',1),Da=Et("<!><g><!><!><!></g>",1),Ra=Et("<image></image><!>",1),Ha=C('<div class="h-full w-full overflow-hidden"><div class="sample relative h-full w-full"><div class="absolute right-4 top-2 z-30"><!></div> <!> <!></div></div>'),Na=C('<div class="flex h-full w-full flex-col space-y-4"><div class="flex w-full items-center"><!></div> <!> <div class="flex min-h-0 flex-1 gap-4"><div class="flex-1"><!></div> <div class="relative w-[375px]"><!></div></div></div>');function Ta(g,e){ft(e,!0);const[i,b]=Lt(),v=()=>Z(E,"$labels",i),a=()=>Z(t(nt),"$sample",i),r=()=>Z(V,"$selectedSampleIds",i),N=()=>Z(G,"$isHidden",i),{selectedSampleIds:V,toggleSampleSelection:K}=pe(),P=e.dataset.dataset_id,{isHidden:G,handleKeyEvent:B}=Ue(),{settingsStore:M}=ve(),{deleteAnnotation:U}=Ma({datasetId:P}),J=()=>{ta(Bt.toSamples(P))},W=s(()=>we({sampleId:e.sampleId,datasetId:P})),nt=s(()=>t(W).sample),x=s(()=>t(W).refetch),{createAnnotation:ot}=Ca({datasetId:P}),E=ge(),{createLabel:$}=Ba(),T=async({x:n,y:d,width:D,height:O,labelName:y})=>{if(!v().data)return;let Y=v().data.find(R=>R.annotation_label_name===y);Y||(Y=await $({annotation_label_name:y}));try{const R=await ot({sample_id:e.sampleId,annotation_type:"object_detection",x:Math.round(n),y:Math.round(d),width:Math.round(D),height:Math.round(O),annotation_label_id:Y.annotation_label_id});return t(x)(),h(f,at(R.annotation_id)),kt.success("Annotation created successfully"),R}catch(R){kt.error("Failed to create annotation. Please try again."),console.error("Error creating annotation:",R);return}},l=n=>{switch(n.key){case Mt(M).key_go_back:J();break;case" ":n.preventDefault(),K(e.sampleId);break}B(n)};let w=s(()=>ma(e.sampleId)),f=it(void 0);qe(()=>{h(f,void 0),h(F,void 0)});const k=n=>{t(f)===n?h(f,void 0):h(f,at(n))};let F=it(void 0);const X=n=>{if(a().data.annotations){const d=a().data.annotations.find(D=>D.annotation_id===n);d&&h(F,at(me(d)))}};let p=it(!1);const _t=()=>{h(p,!t(p))};let Q=it(!1),I=it(null),L=it(null),_=it(null);const ct=()=>{h(Q,!1),h(I,null),h(_,null)};let q=it(!1);const yt=10,Rt=()=>{if(!t(L))return;const n=oa(t(L));let d=null;const D=sa().on("start",O=>{if(!t(q))return;h(Q,!0);const y=t(L).getBoundingClientRect(),Y=O.sourceEvent.clientX,R=O.sourceEvent.clientY,rt=(Y-y.left)/y.width*a().data.width,tt=(R-y.top)/y.height*a().data.height;d={x:rt,y:tt},h(I,at({x:rt,y:tt,width:0,height:0})),h(_,at({x:rt,y:tt}))}).on("drag",O=>{if(!t(I)||!t(Q)||!d)return;const y=t(L).getBoundingClientRect(),Y=O.sourceEvent.clientX,R=O.sourceEvent.clientY,rt=(Y-y.left)/y.width*a().data.width,tt=(R-y.top)/y.height*a().data.height,Tt=Math.min(d.x,rt),Ut=Math.min(d.y,tt),mt=Math.abs(rt-d.x),bt=Math.abs(tt-d.y);h(I,at({x:Tt,y:Ut,width:mt,height:bt})),h(_,at({x:rt,y:tt}))}).on("end",()=>{!t(I)||!t(Q)||(t(I).width>yt&&t(I).height>yt&&t(z)&&T({x:t(I).x,y:t(I).y,width:t(I).width,height:t(I).height,labelName:t(z).label}),ct(),d=null)});return n.call(D),n.on("mousemove",ut),()=>{D.on("start",null).on("drag",null).on("end",null)}},Ht=n=>{if(!t(L)||t(Q))return;const d=t(L).getBoundingClientRect(),D=n.clientX,O=n.clientY,y=(D-d.left)/d.width*a().data.width,Y=(O-d.top)/d.height*a().data.height;h(_,at({x:y,y:Y})),n.stopPropagation(),n.preventDefault()},ut=Fe.throttle(Ht,50);Re(()=>{Rt()});let z=it(void 0);const pt=s(()=>{if(!a().data)return[];let n=Ye(a().data);return t(p)&&(n=n.filter(d=>d.annotation_id===t(f))),n}),vt=s(()=>t(z)?je(t(z).label,1).color:"blue"),St=async n=>{if(!a().data)return;(async()=>{try{await U(n),kt.success("Annotation deleted successfully"),t(x)(),t(f)===n&&h(f,void 0)}catch(D){kt.error("Failed to delete annotation. Please try again."),console.error("Error deleting annotation:",D)}})()};var st=dt();ie("keydown",oe,l),ie("keyup",oe,B);var xt=A(st);{var Nt=n=>{var d=Na(),D=m(d),O=m(D);Pa(O,{get dataset(){return e.dataset},get sampleIndex(){return e.sampleIndex}}),u(D);var y=c(D,2);aa(y,{class:"mb-4 bg-border-hard"});var Y=c(y,2),R=m(Y),rt=m(R);fe(rt,{className:"h-full",children:(mt,bt)=>{he(mt,{className:"h-full",children:(Se,Ka)=>{var Ft=Ha(),Jt=m(Ft),Xt=m(Jt),Ae=m(Xt);const $e=s(()=>r().has(e.sampleId));Xe(Ae,{onSelect:()=>K(e.sampleId),get isSelected(){return t($e)}}),u(Xt);var Wt=c(Xt,2);{var Ie=At=>{var $t=dt(),It=A($t);Dt(It,()=>e.children),o(At,$t)};H(Wt,At=>{e.children&&At(Ie)})}var Pe=c(Wt,2);const ke=s(()=>t(q)?"crosshair":"auto");va(Pe,{get width(){return a().data.width},get height(){return a().data.height},get cursor(){return t(ke)},get boundingBox(){return t(F)},zoomableContent:$t=>{var It=Ra(),Qt=A(It),Ce=c(Qt);{var Be=zt=>{var qt=Da(),te=A(qt);{var Me=S=>{var et=Ea();ea(et,lt=>h(L,lt),()=>t(L)),gt(()=>{j(et,"width",a().data.width),j(et,"height",a().data.height)}),o(S,et)};H(te,S=>{t(q)&&S(Me)})}var Yt=c(te);let ee;var ae=m(Yt);Zt(ae,17,()=>t(pt),S=>S.annotation_id,(S,et)=>{const lt=s(()=>t(f)===t(et).annotation_id);ka(S,{get annotationId(){return t(et).annotation_id},get sampleId(){return e.sampleId},datasetId:P,get isSelected(){return t(lt)},toggleAnnotationSelection:k})});var ne=c(ae);{var Ee=S=>{ra(S,{get bbox(){return t(I)},get colorStroke(){return t(vt)},colorFill:"rgba(0, 123, 255, 0.1)",style:"outline: 0;",opacity:.8,scale:1})};H(ne,S=>{t(I)&&t(Q)&&t(z)&&S(Ee)})}var Le=c(ne);{var De=S=>{var et=La(),lt=A(et),Pt=c(lt);gt(()=>{j(lt,"y1",t(_).y),j(lt,"x2",a().data.width),j(lt,"y2",t(_).y),j(lt,"stroke",t(vt)),j(Pt,"x1",t(_).x),j(Pt,"x2",t(_).x),j(Pt,"y2",a().data.height),j(Pt,"stroke",t(vt))}),o(S,et)};H(Le,S=>{t(_)&&t(q)&&S(De)})}u(Yt),gt(S=>ee=_e(Yt,0,"",null,ee,S),[()=>({invisible:N()})]),o(zt,qt)};H(Ce,zt=>{a().data&&zt(Be)})}gt(()=>j(Qt,"href",t(w))),o($t,It)},$$slots:{zoomableContent:!0}}),u(Jt),u(Ft),o(Se,Ft)},$$slots:{default:!0}})},$$slots:{default:!0}}),u(R);var tt=c(R,2),Tt=m(tt);{var Ut=mt=>{Oa(mt,{get sample(){return a().data},get selectedAnnotationId(){return t(f)},get hideUnselected(){return t(p)},toggleHideUnselected:_t,onAnnotationClick:k,onClickCenterIcon:X,onDeleteAnnotation:St,get onUpdate(){return t(x)},get addAnnotationEnabled(){return t(q)},set addAnnotationEnabled(bt){h(q,at(bt))},get addAnnotationLabel(){return t(z)},set addAnnotationLabel(bt){h(z,at(bt))}})};H(Tt,mt=>{a().data&&mt(Ut)})}u(tt),u(Y),u(d),o(n,d)},ye=n=>{ze(n,{})};H(xt,n=>{a().data?n(Nt):n(ye,!1)})}o(g,st),ht(),b()}var Ua=C("<div> </div>"),Fa=C('<div class="flex gap-1"></div>'),Xa=C("<!> Add annotation",1),za=C('<label class="flex w-full flex-col gap-3 text-muted-foreground"><div class="text-sm">Select a label to create new annotation.</div> <!></label>'),Ya=C('<div class="items-left mb-2 flex flex-col justify-between space-y-2 bg-muted p-2"><div class="mb-2 w-full"><!></div> <!></div>'),ja=C('<div class="flex flex-col gap-3 space-y-4"><!> <div class="mb-2 flex items-center justify-between"><div class="space-y-2"><!></div></div> <div class="flex flex-col gap-2"></div></div>'),Va=C('<div class="flex h-full min-h-0 flex-col space-y-4 overflow-y-auto dark:[color-scheme:dark]"><!> <!> <!></div>');function Oa(g,e){ft(e,!0);const[i,b]=Lt(),v=()=>Z(G,"$annotationLabels",i),a=()=>Z(P,"$isEditingMode",i);let r=de(e,"addAnnotationEnabled",15,!1),N=de(e,"addAnnotationLabel",15,void 0);const V=e.sample.tags,K=s(()=>e.sample.annotations?[...e.sample.annotations].sort((M,U)=>M.annotation_label.annotation_label_name.localeCompare(U.annotation_label.annotation_label_name)):[]),{isEditingMode:P}=wt.data.globalStorage,G=ge(),B=s(()=>Qe(v().data||[]));fe(g,{className:"h-full",children:(M,U)=>{he(M,{className:"h-full flex flex-col",children:(J,W)=>{var nt=Va(),x=m(nt);{var ot=l=>{re(l,{title:"Tags",icon:pa,children:(w,f)=>{var k=Fa();Zt(k,21,()=>V,le,(F,X)=>{var p=Ua(),_t=m(p,!0);u(p),gt(Q=>{_e(p,1,Q),Kt(_t,t(X).name)},[()=>Ve(Oe("inline rounded-lg bg-card px-2 py-2 text-xs"))]),o(F,p)}),u(k),o(w,k)}})};H(x,l=>{V&&V.length>0&&l(ot)})}var E=c(x,2);{var $=l=>{re(l,{title:"Annotations",children:(w,f)=>{var k=ja(),F=m(k);{var X=L=>{var _=Ya(),ct=m(_),q=m(ct);const yt=s(()=>r()?"default":"outline");Ge(q,{title:"Add annotation",get variant(){return t(yt)},"data-testid":"create-rectangle",class:"w-full",onclick:()=>{r(!r())},children:(ut,z)=>{var pt=Xa(),vt=A(pt);ba(vt,{class:"h-4 w-4"}),Ot(),o(ut,pt)},$$slots:{default:!0}}),u(ct);var Rt=c(ct,2);{var Ht=ut=>{var z=za(),pt=c(m(z),2);const vt=s(()=>t(B).find(St=>{var st;return St.value===((st=N())==null?void 0:st.value)}));Je(pt,{get items(){return t(B)},get selectedItem(){return t(vt)},name:"annotation-label",label:"Choose a label",className:"w-full",placeholder:"Select a label",onSelect:st=>{N(st)},notFound:(st,xt)=>{let Nt=()=>xt==null?void 0:xt().inputValue;We(st,{get label(){return Nt()}})},$$slots:{notFound:!0}}),u(z),o(ut,z)};H(Rt,ut=>{r()&&ut(Ht)})}u(_),o(L,_)};H(F,L=>{a()&&L(X)})}var p=c(F,2),_t=m(p),Q=m(_t);Ze(Q,{name:"hide-unselected",label:"Hide unselected annotations",get isChecked(){return e.hideUnselected},get onCheckedChange(){return e.toggleHideUnselected}}),u(_t),u(p);var I=c(p,2);Zt(I,21,()=>t(K),le,(L,_)=>{const ct=s(()=>e.selectedAnnotationId===t(_).annotation_id);Ke(L,{get annotation(){return t(_)},get isSelected(){return t(ct)},onClick:()=>e.onAnnotationClick(t(_).annotation_id),onDeleteAnnotation:()=>e.onDeleteAnnotation(t(_).annotation_id),onClickCenterIcon:q=>{q.stopPropagation(),e.onClickCenterIcon(t(_).annotation_id)},get onUpdate(){return e.onUpdate}})}),u(I),u(k),o(w,k)}})};H(E,l=>{t(K).length>0&&l($)})}var T=c(E,2);ga(T,{get sample(){return e.sample}}),u(nt),o(J,nt)},$$slots:{default:!0}})},$$slots:{default:!0}}),ht(),b()}var Za=C('<div class="flex h-full w-full space-x-4 px-4 pb-4" data-testid="sample-details"><div class="h-full w-full space-y-6 rounded-[1vw] bg-card p-4"><!></div></div>');function _n(g,e){ft(e,!0);const i=s(()=>wt.params.sampleId),b=wt.data.dataset,v=s(()=>Number(wt.params.sampleIndex));var a=Za(),r=m(a),N=m(r);Ta(N,{get sampleId(){return t(i)},dataset:b,get sampleIndex(){return t(v)},children:(V,K)=>{var P=dt(),G=A(P);{var B=M=>{var U=dt(),J=A(U);Dt(J,()=>e.children),o(M,U)};H(G,M=>{e.children&&M(B)})}o(V,P)},$$slots:{default:!0}}),u(r),u(a),o(g,a),ht()}export{_n as component};
@@ -0,0 +1 @@
1
+ import{r as s}from"../chunks/H7C68rOM.js";import{r as d}from"../chunks/CxFKfZ9T.js";import{r as n}from"../chunks/B90CZVMX.js";const i=async()=>{const{data:t}=await d();if(!t||t.length===0)throw new Error("No datasets found");const e=t.toSorted((r,o)=>new Date(o.created_at||0).getTime()-new Date(r.created_at||0).getTime())[0],a=e==null?void 0:e.dataset_id;if(!a)throw new Error("No valid dataset ID found");n(307,s.toSamples(a))},m=Object.freeze(Object.defineProperty({__proto__:null,load:i},Symbol.toStringTag,{value:"Module"}));export{m as universal};
@@ -0,0 +1 @@
1
+ import"../chunks/CWj6FrbW.js";import{p as f,u as $,a as h,g as o,d as r}from"../chunks/CH6P3X75.js";import{s as S,a as i}from"../chunks/DA6bFLPR.js";import{A as T}from"../chunks/DQe_kdRt.js";import{u as _}from"../chunks/6t3IJ0vQ.js";import"../chunks/DEgUu98i.js";import"../chunks/8NsknIT2.js";import"../chunks/CxFKfZ9T.js";import"../chunks/keKYsoph.js";import"../chunks/69_IOA4Y.js";import{u as G}from"../chunks/CCx7Ho51.js";function j(p,t){f(t,!0);const[e,m]=S(),n=()=>i(l,"$lastGridType",e),s=()=>i(d,"$sampleSize",e),{datasetId:a,sampleSize:d,selectedAnnotationFilterIds:c}=t.data,{lastGridType:l}=_(),u=r(()=>G({dataset_id:a})),g=r(()=>o(u).clearTagsSelected);$(()=>{n()!=="annotations"&&o(g)()}),T(p,{get itemHeight(){return s().height},get itemWidth(){return s().width},dataset_id:a,selectedAnnotationFilterIds:c}),h(),m()}export{j as component};
@@ -0,0 +1 @@
1
+ import{p as T,f as B,n as Gt,a as H,w as Pt,l as _t,$ as ft,g as t,d as i,c as f,r as m,s as S,t as F,J as Kt,a7 as qt,ax as Mt}from"../chunks/CH6P3X75.js";import{c as Vt}from"../chunks/CxFKfZ9T.js";import{u as ht}from"../chunks/6t3IJ0vQ.js";import"../chunks/CWj6FrbW.js";import{c as Z,a as p,t as P,n as Jt}from"../chunks/RmD8FzRo.js";import{i as O,a as j,s as K}from"../chunks/DA6bFLPR.js";import{e as pt}from"../chunks/D4whDBUi.js";import{I as Zt,l as X,F as Xt,D as at,U as Yt,V as Qt,W as ta,X as aa,z as gt,O as ea,j as na,t as oa,J as Nt,K as Ct,y as Bt,i as sa,p as ia,S as ra,B as da,n as la,H as ca}from"../chunks/DQe_kdRt.js";import{g as tt,c as ua}from"../chunks/DEgUu98i.js";import{f as kt,S as va}from"../chunks/CR2upx_Q.js";import{r as z}from"../chunks/H7C68rOM.js";import"../chunks/8NsknIT2.js";import{p as R}from"../chunks/keKYsoph.js";import"../chunks/69_IOA4Y.js";import{s as ma}from"../chunks/CCx7Ho51.js";import{S as _a}from"../chunks/D6r9vr07.js";import{S as fa,B as pa,a as ga,b as Q,c as vt,H as ha,d as mt,D as ba,e as xa,Z as Ia,g as Aa,u as wa}from"../chunks/DcY4jgG3.js";import{S as Sa}from"../chunks/BdfTHw61.js";import{s as ya,r as $a,a as Ma}from"../chunks/DQXoLcsF.js";import{s as G}from"../chunks/DGTPl6Gk.js";import{C as ka}from"../chunks/CwPowJfP.js";function Pa(v,a){T(a,!0);let o=$a(a,["$$slots","$$events","$$legacy"]);Zt(v,ya({name:"square-dashed"},()=>o,{iconNode:[["path",{d:"M5 3a2 2 0 0 0-2 2"}],["path",{d:"M19 3a2 2 0 0 1 2 2"}],["path",{d:"M21 19a2 2 0 0 1-2 2"}],["path",{d:"M5 21a2 2 0 0 1-2-2"}],["path",{d:"M9 3h1"}],["path",{d:"M9 21h1"}],["path",{d:"M14 3h1"}],["path",{d:"M14 21h1"}],["path",{d:"M3 9v1"}],["path",{d:"M21 9v1"}],["path",{d:"M3 14v1"}],["path",{d:"M21 14v1"}]],children:(e,s)=>{var r=Z(),I=B(r);ma(I,()=>a.children??Gt),p(e,r)},$$slots:{default:!0}})),H()}const Na=({annotationIndex:v,...a})=>{const o=Pt({isLoading:!1});return(async()=>{o.update(e=>({...e,isLoading:!0}));try{const{data:e}=await Vt({path:{dataset_id:a.dataset_id},query:{cursor:v>0?v-1:0,limit:3,annotation_label_ids:a.annotation_label_ids,tag_ids:a.tag_ids}});if(!e){o.update(n=>({...n,isLoading:!1,error:"No annotations data received",data:void 0}));return}const{setAnnotationsTotalCount:s}=ht();s(e.total_count);let r;const I=v>0?e.data[0]:void 0;e.data.length>1&&(r=v===0?e.data[1]:e.data[2]),o.update(n=>({...n,isLoading:!1,error:void 0,data:{annotationNext:r,annotationPrevious:I}}))}catch(e){o.update(s=>({...s,isLoading:!1,error:String(e)}))}})(),o},Ca=async({parent:v,params:{dataset_id:a,annotationId:o,annotationIndex:c}})=>{const{annotationsSelectedTagsIds:e,annotationsSelectedAnnotationLabelsIds:s,dataset:r}=await v(),I=parseInt(c,10),n=Pt();if(!r)throw new Error("Dataset data not found");return Na({annotationIndex:I,dataset_id:a,currentAnnotationId:o,annotation_label_ids:Array.from(_t(s)),tag_ids:Array.from(_t(e))}).subscribe(({data:N})=>{n.set(N)}),{annotationAdjacents:n,annotationIndex:I,annotationId:o,dataset:r}},ye=Object.freeze(Object.defineProperty({__proto__:null,load:Ca},Symbol.toStringTag,{value:"Module"}));function Ba(v,a){T(a,!0);const[o,c]=K(),e=()=>j(t(r),"$annotationAdjacents",o),s=i(()=>R.data.annotationIndex),r=i(()=>R.data.annotationAdjacents),I=()=>{e().annotationNext&&tt(z.toSampleWithAnnotation({datasetId:e().annotationNext.dataset_id,sampleId:e().annotationNext.sample_id,annotationId:e().annotationNext.annotation_id,annotationIndex:t(s)+1}))},n=()=>{e().annotationPrevious&&tt(z.toSampleWithAnnotation({datasetId:e().annotationPrevious.dataset_id,sampleId:e().annotationPrevious.sample_id,annotationId:e().annotationPrevious.annotation_id,annotationIndex:t(s)-1}))},N=h=>{switch(h.key){case"ArrowRight":I();break;case"ArrowLeft":n();break}};var y=Z();pt("keydown",ft,N);var w=B(y);{var $=h=>{const b=i(()=>!!e().annotationPrevious),A=i(()=>!!e().annotationNext);Sa(h,{get hasPrevious(){return t(b)},get hasNext(){return t(A)},onPrevious:n,onNext:I})};O(w,h=>{e()&&h($)})}p(v,y),H(),c()}const Da={object_detection:"Object Detection",instance_segmentation:"Instance Segmentation",semantic_segmentation:"Semantic Segmentation",classification:"Classification"};var La=P('<span class="text-sm"> </span> <span class="break-all text-sm"> </span>',1);function ja(v,a){var o=La(),c=B(o),e=f(c,!0);m(c);var s=S(c,2),r=f(s,!0);m(s),F(()=>{G(e,a.label),X(s,"data-testid",`annotation-metadata-${a.id}`),G(r,a.value)}),p(v,o)}var Ea=P('<span class="break-all text-sm"> </span>'),Ra=P('<span class="text-sm"> </span> <!>',1);function Ta(v,a){T(a,!0);const[o,c]=K(),e=()=>j(r,"$result",o),s=()=>j(a.isEditingMode,"$isEditingMode",o),r=Xt(),{updateAnnotation:I}=at({datasetId:a.datasetId,annotationId:a.annotationId,onUpdate:a.onUpdate}),n=i(()=>ta(e().data||[])),N=i(()=>{const x=t(n).find(u=>u.value===a.value);return x||{value:a.value,label:a.value}});var y=Ra(),w=B(y),$=f(w,!0);m(w);var h=S(w,2);{var b=x=>{const u=i(()=>t(n).find(d=>{var g;return d.value===((g=t(N))==null?void 0:g.value)}));Yt(x,{get items(){return t(n)},get selectedItem(){return t(u)},name:"annotation-label",placeholder:"Select a label",onSelect:g=>{I({annotation_id:a.annotationId,dataset_id:a.datasetId,label_name:g.value})},notFound:(g,_)=>{let k=()=>_==null?void 0:_().inputValue;Qt(g,{get label(){return k()}})},$$slots:{notFound:!0}})},A=x=>{var u=Ea();X(u,"data-testid","annotation-metadata-label");var d=f(u,!0);m(u),F(()=>G(d,a.value)),p(x,u)};O(h,x=>{s()?x(b):x(A,!1)})}F(()=>G($,a.label)),p(v,y),H(),c()}var Ha=P('<div class="flex flex-col gap-4"><div class="grid grid-cols-[6rem_1fr] gap-y-3 text-diffuse-foreground"></div></div>');function Ua(v,a){T(a,!0);const[o,c]=K(),e=()=>j(t(I),"$annotationResp",o),{datasetId:s}=R.data,r=i(()=>at({datasetId:s,annotationId:a.annotationId})),I=i(()=>t(r).annotation);let n=i(()=>e().data);const N=i(()=>{var A,x;if(!t(n))return[];let b=[{id:"label",label:"Label:",value:(x=(A=t(n))==null?void 0:A.annotation_label)==null?void 0:x.annotation_label_name},{id:"type",label:"Type:",value:Da[t(n).annotation_type]||"Unknown"}];if(t(n)&&!aa(t(n))){const{height:u,width:d}=gt(t(n));b=[{id:"height",label:"Height:",value:kt(Math.round(u))+"px"},{id:"width",label:"Width:",value:kt(Math.round(d))+"px"},...b]}return b}),{isEditingMode:y}=R.data.globalStorage;var w=Z(),$=B(w);{var h=b=>{ea(b,{title:"Annotation details",children:(A,x)=>{var u=Ha(),d=f(u);na(d,21,()=>t(N),({label:g,value:_,id:k})=>g,(g,_)=>{let k=()=>t(_).label,D=()=>t(_).value,M=()=>t(_).id;var C=Z(),l=B(C);{var q=E=>{Ta(E,{get onUpdate(){return a.onUpdate},get annotationId(){return a.annotationId},datasetId:s,get label(){return k()},get value(){return D()},isEditingMode:y})},et=E=>{ja(E,{get label(){return k()},get id(){return M()},get value(){return D()}})};O(l,E=>{M()==="label"&&y?E(q):E(et,!1)})}p(g,C)}),m(d),m(u),p(A,u)}})};O($,b=>{t(N).length>0&&b(h)})}p(v,w),H(),c()}var za=P('<!> <h2 class="py-2 text-lg font-semibold"><a>Check all sample annotations</a></h2>',1),Fa=P('<div class="flex h-full w-full items-center justify-center"><!></div>'),Oa=P('<div class="flex h-full min-h-0 flex-col space-y-4 overflow-hidden dark:[color-scheme:dark]"><!> <!></div>');function Wa(v,a){T(a,!0);const{datasetId:o}=R.data;let c=qt(void 0);at({datasetId:o,annotationId:a.annotationId}).annotation.subscribe(n=>{n.isSuccess&&Kt(c,Ma(n.data.sample))});const s=oa(),[r,I]=s;Nt(v,{className:"h-full",children:(n,N)=>{Ct(n,{className:"h-full flex flex-col",children:(y,w)=>{var $=Oa(),h=f($);Ua(h,{get annotationId(){return a.annotationId},get onUpdate(){return a.onUpdate}});var b=S(h,2);{var A=u=>{var d=za(),g=B(d);fa(g,{get sample(){return t(c)},showCustomMetadata:!1});var _=S(g,2),k=f(_);m(_),F(D=>X(k,"href",D),[()=>r(z.toSample({sampleId:t(c).sample_id,datasetId:t(c).dataset_id}),void 0)]),p(u,d)},x=u=>{var d=Fa(),g=f(d);Bt(g,{size:"large",align:"center"}),m(d),p(u,d)};O(b,u=>{t(c)?u(A):u(x,!1)})}m($),p(y,$)},$$slots:{default:!0}})},$$slots:{default:!0}}),H()}var Ga=P('<!> <span class="hidden sm:inline">Home</span>',1),Ka=P('<!> <span class="max-w-[150px] truncate"> </span>',1),qa=P('<!> <span class="hidden sm:inline">Annotations</span>',1),Va=P('<!> <span class="max-w-[200px] truncate"> </span>',1),Ja=P("<!> <!> <!> <!> <!> <!> <!>",1);function Za(v,a){T(a,!0);const[o,c]=K(),e=()=>j(s,"$annotationsTotalCount",o),{annotationsTotalCount:s}=ht();pa(v,{class:"mb-2",children:(r,I)=>{ga(r,{children:(n,N)=>{var y=Ja(),w=B(y);Q(w,{children:(d,g)=>{const _=i(()=>z.toHome());vt(d,{get href(){return t(_)},class:"flex items-center gap-2",children:(k,D)=>{var M=Ga(),C=B(M);ha(C,{class:"h-4 w-4"}),Mt(2),p(k,M)},$$slots:{default:!0}})},$$slots:{default:!0}});var $=S(w,2);mt($,{});var h=S($,2);Q(h,{children:(d,g)=>{const _=i(()=>z.toAnnotations(a.dataset.dataset_id));vt(d,{get href(){return t(_)},class:"flex items-center gap-2",get title(){return a.dataset.directory},children:(k,D)=>{var M=Ka(),C=B(M);ba(C,{class:"h-4 w-4"});var l=S(C,2),q=f(l,!0);m(l),F(()=>{X(l,"title",a.dataset.directory),G(q,a.dataset.name)}),p(k,M)},$$slots:{default:!0}})},$$slots:{default:!0}});var b=S(h,2);mt(b,{});var A=S(b,2);Q(A,{children:(d,g)=>{const _=i(()=>z.toAnnotations(a.dataset.dataset_id));vt(d,{get href(){return t(_)},class:"flex items-center gap-2",children:(k,D)=>{var M=qa(),C=B(M);ka(C,{class:"h-4 w-4"}),Mt(2),p(k,M)},$$slots:{default:!0}})},$$slots:{default:!0}});var x=S(A,2);mt(x,{});var u=S(x,2);Q(u,{children:(d,g)=>{xa(d,{class:"flex items-center gap-2",children:(_,k)=>{var D=Va(),M=B(D);Pa(M,{class:"h-4 w-4"});var C=S(M,2),l=f(C);m(C),F(()=>G(l,`Annotation ${a.annotationIndex+1} of ${e()??""}`)),p(_,D)},$$slots:{default:!0}})},$$slots:{default:!0}}),p(n,y)},$$slots:{default:!0}})},$$slots:{default:!0}}),H(),c()}var Xa=Jt("<image></image><g><!></g>",1),Ya=P('<div class="h-full w-full overflow-hidden"><div class="sample relative h-full w-full"><div class="absolute right-4 top-2 z-30"><!></div> <!> <!></div></div>'),Qa=P('<div class="flex h-full w-full items-center justify-center"><!></div>'),te=P('<div class="flex h-full w-full flex-col space-y-4"><div class="flex w-full items-center"><!></div> <!> <div class="flex min-h-0 flex-1 gap-4"><div class="flex-1"><!></div> <div class="relative w-[375px]"><!></div></div></div>');function ae(v,a){T(a,!0);const[o,c]=K(),e=()=>j(t(k),"$annotationResp",o),s=()=>j(N,"$selectedSampleAnnotationCropIds",o),r=()=>j($,"$isHidden",o),I=()=>j(E,"$isEditingMode",o),{toggleSampleAnnotationCropSelection:n,selectedSampleAnnotationCropIds:N,clearReversibleActionsByGroupId:y,addReversibleAction:w}=ht(),{isHidden:$,handleKeyEvent:h}=sa(),{settingsStore:b}=ia(),A=" ",x=_t(b).key_go_back,u=()=>{var L;(L=a.sample)!=null&&L.dataset_id?tt(z.toAnnotations(a.sample.dataset_id)):tt("/")},d=L=>{switch(L.key){case x:u();break;case A:L.preventDefault(),n(a.annotationId);break}h(L)},g=R.data.datasetId,_=i(()=>at({datasetId:g,annotationId:a.annotationId})),k=i(()=>t(_).annotation),D=i(()=>t(_).updateAnnotation),M="bbox-change-annotation-details";ua(()=>{y(M)});const C=L=>{if(t(l)){const V={annotation_id:t(l).annotation_id,dataset_id:t(l).dataset_id,bounding_box:L},it=gt(t(l)),At=async()=>{const J={annotation_id:t(l).annotation_id,dataset_id:t(l).dataset_id,bounding_box:it};await t(D)(J)};(async()=>{try{await t(D)(V),w({id:`bbox-change-${t(l).annotation_id}-${Date.now()}`,description:`Revert bounding box change for annotation ${t(l).annotation_id}`,execute:At,timestamp:new Date,groupId:M})}catch(J){ca.error("Failed to update annotations:"+J.message)}})()}};let l=i(()=>e().data),q=i(()=>{var L,V;return Aa(((V=(L=t(l))==null?void 0:L.sample)==null?void 0:V.sample_id)||"")}),et=i(()=>t(l)?gt(t(l)):void 0);const{isEditingMode:E}=R.data.globalStorage;var nt=te();pt("keydown",ft,d),pt("keyup",ft,h);var ot=f(nt),Dt=f(ot);Za(Dt,{get dataset(){return a.dataset},get annotationIndex(){return a.annotationIndex}}),m(ot);var bt=S(ot,2);va(bt,{class:"mb-4 bg-border-hard"});var xt=S(bt,2),st=f(xt),Lt=f(st);Nt(Lt,{className:"h-full",children:(L,V)=>{Ct(L,{className:"h-full",children:(it,At)=>{var rt=Z(),J=B(rt);{var Et=W=>{var U=Ya(),Y=f(U),dt=f(Y),Tt=f(dt);const Ht=i(()=>s().has(a.annotationId));ra(Tt,{onSelect:()=>n(a.annotationId),get isSelected(){return t(Ht)}}),m(dt);var wt=S(dt,2);Ba(wt,{});var Ut=S(wt,2);Ia(Ut,{get width(){return t(l).sample.width},get height(){return t(l).sample.height},get boundingBox(){return t(et)},zoomableContent:(zt,lt)=>{let Ft=()=>lt==null?void 0:lt().scale;var St=Xa(),yt=B(St),ct=S(yt);let $t;var Ot=f(ct);da(Ot,()=>e().dataUpdatedAt,ut=>{const Wt=i(()=>({x:0,y:0,width:t(l).sample.width,height:t(l).sample.height}));_a(ut,{get annotation(){return t(l)},showLabel:!0,get scale(){return Ft()},get imageWidth(){return t(l).sample.width},get isResizable(){return I()},onBoundingBoxChanged:C,get constraintBox(){return t(Wt)}})}),m(ct),F(ut=>{X(yt,"href",t(q)),$t=la(ct,0,"",null,$t,ut)},[()=>({invisible:r()})]),p(zt,St)},$$slots:{zoomableContent:!0}}),m(Y),m(U),p(W,U)},Rt=W=>{var U=Qa(),Y=f(U);Bt(Y,{size:"large",align:"center"}),m(U),p(W,U)};O(J,W=>{t(l)?W(Et):W(Rt,!1)})}p(it,rt)},$$slots:{default:!0}})},$$slots:{default:!0}}),m(st);var It=S(st,2),jt=f(It);Wa(jt,{get annotationId(){return a.annotationId}}),m(It),m(xt),m(nt),p(v,nt),H(),c()}var ee=P('<div class="flex h-full w-full space-x-4 px-4 pb-4" data-testid="annotation-details"><div class="h-full w-full space-y-6 rounded-[1vw] bg-card p-4"><!></div></div>');function $e(v,a){T(a,!0);const[o,c]=K(),e=()=>j(t(y),"$sample",o),s=i(()=>a.data.annotationId),r=i(()=>a.data.dataset),I=i(()=>a.data.annotationIndex),{sampleId:n}=R.params,N=i(()=>wa({sampleId:n,datasetId:t(r).dataset_id})),y=i(()=>t(N).sample);var w=ee(),$=f(w),h=f($);{var b=A=>{ae(A,{get annotationId(){return t(s)},get annotationIndex(){return t(I)},get dataset(){return t(r)},get sample(){return e().data}})};O(h,A=>{e().data&&t(s)&&t(r)&&A(b)})}m($),m(w),p(v,w),H(),c()}export{$e as component,ye as universal};
@@ -1 +1 @@
1
- import"../chunks/CWj6FrbW.js";import{s as n,a as d}from"../chunks/XO7A28GO.js";import"../chunks/CvOmgdoc.js";import"../chunks/vC4nQVEB.js";import"../chunks/CxtLVaYz.js";import"../chunks/D6su9Aln.js";import"../chunks/Bx1xMsFy.js";import"../chunks/Bsi3UGy5.js";import"../chunks/69_IOA4Y.js";import"../chunks/BJXwVxaE.js";import{S as l}from"../chunks/CcaPhhk3.js";function I(e,o){const[s,i]=n(),t=()=>d(a,"$sampleSize",s),{datasetId:r,sampleSize:a,selectedAnnotationFilterIds:p,globalStorage:{textEmbedding:m}}=o.data;l(e,{get sampleHeight(){return t().height},get sampleWidth(){return t().width},textEmbedding:m,dataset_id:r,selectedAnnotationFilterIds:p}),i()}export{I as component};
1
+ import"../chunks/CWj6FrbW.js";import{s as n,a as d}from"../chunks/DA6bFLPR.js";import"../chunks/DQe_kdRt.js";import"../chunks/6t3IJ0vQ.js";import"../chunks/DEgUu98i.js";import"../chunks/8NsknIT2.js";import"../chunks/CxFKfZ9T.js";import"../chunks/keKYsoph.js";import"../chunks/69_IOA4Y.js";import"../chunks/CCx7Ho51.js";import{S as l}from"../chunks/DKGxBSlK.js";function I(e,o){const[s,i]=n(),t=()=>d(a,"$sampleSize",s),{datasetId:r,sampleSize:a,selectedAnnotationFilterIds:p,globalStorage:{textEmbedding:m}}=o.data;l(e,{get sampleHeight(){return t().height},get sampleWidth(){return t().width},textEmbedding:m,dataset_id:r,selectedAnnotationFilterIds:p}),i()}export{I as component};