@ioai/lerobot-studio 1.0.2 → 1.1.0
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/CHANGELOG.md +12 -0
- package/dist-lib/{DockviewLayout-DjLrI3Yt.js → DockviewLayout-DeRL52Yo.js} +3001 -2981
- package/dist-lib/{LeRobotDataLoader-DYBXb4dz.js → LeRobotDataLoader-B8wZijIi.js} +1308 -1277
- package/dist-lib/lerobot-studio.css +11 -1
- package/dist-lib/lerobot.d.ts +21 -0
- package/dist-lib/lerobot.es.js +1229 -1056
- package/dist-lib/{react-window-B1KnRC6j.js → react-window-BIZRp3dx.js} +83 -69
- package/package.json +1 -1
|
@@ -3169,6 +3169,10 @@ var hn = {
|
|
|
3169
3169
|
message: "数据文件不存在",
|
|
3170
3170
|
suggestion: "按 v2 格式在 data/ 目录下生成分片 parquet 文件"
|
|
3171
3171
|
},
|
|
3172
|
+
EPISODE_DATA_MISSING: {
|
|
3173
|
+
message: "{{total}} 个 episode 中有 {{missing}} 个 parquet 文件缺失",
|
|
3174
|
+
suggestion: "补全缺失的 episode parquet,或打开完整数据集"
|
|
3175
|
+
},
|
|
3172
3176
|
DATA_FILE_CHECK_FAILED: {
|
|
3173
3177
|
message: "无法检查数据文件是否存在",
|
|
3174
3178
|
suggestion: "确认 data/chunk-xxx/episode_xxxxxx.parquet 文件已生成"
|
|
@@ -3636,7 +3640,8 @@ var hn = {
|
|
|
3636
3640
|
requirements: "需支持 CORS + Range;签名链接需在有效期内",
|
|
3637
3641
|
preview: "预览",
|
|
3638
3642
|
download: "下载",
|
|
3639
|
-
openDirect: "浏览官方样例数据集"
|
|
3643
|
+
openDirect: "浏览官方样例数据集",
|
|
3644
|
+
unknown: "未知样例 \"{{id}}\"。请检查样例 id,或从列表中打开数据集。"
|
|
3640
3645
|
}
|
|
3641
3646
|
},
|
|
3642
3647
|
validation: {
|
|
@@ -3900,6 +3905,10 @@ var hn = {
|
|
|
3900
3905
|
message: "Data file does not exist",
|
|
3901
3906
|
suggestion: "Generate Parquet data files under data/ per v2 format"
|
|
3902
3907
|
},
|
|
3908
|
+
EPISODE_DATA_MISSING: {
|
|
3909
|
+
message: "{{missing}} of {{total}} episode parquet files are missing",
|
|
3910
|
+
suggestion: "Download the missing episode parquet files or open a complete dataset"
|
|
3911
|
+
},
|
|
3903
3912
|
DATA_FILE_CHECK_FAILED: {
|
|
3904
3913
|
message: "Could not check if data file exists",
|
|
3905
3914
|
suggestion: "Ensure data/chunk-xxx/episode_xxxxxx.parquet files exist"
|
|
@@ -4367,7 +4376,8 @@ var hn = {
|
|
|
4367
4376
|
requirements: "Requires CORS + Range; signed URLs must be valid",
|
|
4368
4377
|
openDirect: "Open/Download Official Samples",
|
|
4369
4378
|
preview: "Preview",
|
|
4370
|
-
download: "Download"
|
|
4379
|
+
download: "Download",
|
|
4380
|
+
unknown: "Unknown sample \"{{id}}\". Check the sample id or open a dataset from the list."
|
|
4371
4381
|
}
|
|
4372
4382
|
},
|
|
4373
4383
|
validation: {
|
|
@@ -4481,7 +4491,7 @@ var hn = {
|
|
|
4481
4491
|
},
|
|
4482
4492
|
speed: "再生速度"
|
|
4483
4493
|
},
|
|
4484
|
-
health: /* @__PURE__ */ JSON.parse("{\"noData\":\"データセットを読み込むとヘルスチェックを表示します\",\"statusErrors\":\"検証でエラーを検出\",\"statusWarnings\":\"検証で警告を検出\",\"statusOk\":\"フォーマットチェック完了\",\"checks\":\"チェック項目\",\"noIssues\":\"問題はありません\",\"fpsInvalid\":\"info.fps が未設定または ≤ 0 です。再生が不正になる可能性があります。\",\"zeroLengthEpisodes\":\"{{count}} 件のエピソードの長さが 0 です\",\"episodeCountMismatch\":\"有効エピソード数({{effective}})が info.total_episodes({{total}})と一致しません。編集/削除を反映しました。\",\"footnote\":\"フォーマット検証は読み込み時に実行されます。データ品質(NaN/外れ値)は今後のバージョンで対応予定です。\",\"healthCheckButton\":\"データセットヘルスチェック\",\"check\":\"チェック\",\"validation\":{\"columns\":{\"field\":\"チェック項目\",\"current\":\"現在\",\"expected\":\"期待値\",\"suggestion\":\"推奨対応\"},\"dialog\":{\"title\":\"データセット品質レポート\",\"summaryErrors\":\"検証でエラーを検出\",\"summaryWarnings\":\"検証で警告を検出\",\"summaryOk\":\"すべてのチェックを通過\",\"errorsCount\":\"エラー {{count}} 件\",\"warningsCount\":\"警告 {{count}} 件\",\"passedCount\":\"{{count}} 件通過\",\"filterErrors\":\"エラー {{count}} 件のみを表示\",\"filterWarnings\":\"警告 {{count}} 件のみを表示\",\"filterPassed\":\"通過した {{count}} 件のみを表示\",\"close\":\"閉じる\",\"retry\":\"再試行\",\"export\":\"エクスポート\",\"exportCsv\":\"CSV でエクスポート\",\"exportPdf\":\"PDF でエクスポート\"},\"categories\":{\"file_structure\":\"ファイル構造\",\"meta_info\":\"メタデータ\",\"features\":\"特徴量\",\"episodes\":\"エピソード\"},\"terms\":{\"exists\":\"存在する\",\"missing\":\"欠損\",\"notExists\":\"見つかりません\",\"invalidJson\":\"無効な JSON\",\"validJson\":\"有効な JSON ファイル\",\"positiveInteger\":\"正の整数\",\"nonNegativeInteger\":\"0 以上の整数\",\"positiveNumber\":\"正の数\",\"nonEmptyString\":\"空でない文字列\",\"present\":\"存在\",\"unknown\":\"不明\",\"validDtype\":\"有効な dtype\",\"object\":\"オブジェクト\",\"arrayOrNull\":\"配列または null\",\"nFeatures\":\"{{count}} 特徴量\",\"pathOrFileExists\":\"パスまたはファイルが存在\",\"fieldExists\":\"フィールドが存在\",\"positiveIntArray\":\"[正の整数, ...]\",\"stringArrayMatchShape\":\"string[](長さ = shape の最終次元)\",\"objectWithFeatures\":\"1 つ以上の feature を持つオブジェクト\",\"positiveIntMatchTotalEpisodes\":\"正の整数、total_episodes と一致\",\"episodeLengthPositive\":\"各エピソードの length > 0\",\"nonNegativeIntCount\":\"0 以上の整数(件数)\",\"requiredParquetColumns\":\"frame_index, episode_index, index, timestamp など\",\"objectWithTrainKey\":\"\\\"train\\\" キーを持つオブジェクト\",\"containsTrain\":\"\\\"train\\\" を含む\",\"requiredEpisodesColumns\":\"episode_index, length, dataset_from_index, dataset_to_index\",\"tasksPresent\":\"tasks.jsonl または tasks.parquet が存在\"},\"codes\":{\"INFO_MISSING\":{\"message\":\"meta/info.json が存在しないか読み取れません\",\"suggestion\":\"LeRobot データセットルートに meta/info.json があることを確認してください\"},\"INFO_PARSE_ERROR\":{\"message\":\"meta/info.json の JSON 解析に失敗しました\",\"suggestion\":\"JSON 構文を確認してください(例: https://jsonlint.com)\"},\"VERSION_MISMATCH\":{\"message\":\"codebase_version が v2.x ではありません\",\"suggestion\":\"v3.0 の場合は対応ローダーを使用するか、codebase_version を v2.0 または v2.1 に設定してください\"},\"VERSION_MISMATCH_V3\":{\"message\":\"codebase_version が v3.x ではありません\",\"suggestion\":\"codebase_version を v3.0 に設定してください\"},\"ROBOT_TYPE_MISSING\":{\"message\":\"robot_type が未設定または空です\",\"suggestion\":\"ロボットタイプを設定してください(例: \\\"so100\\\", \\\"lekiwi\\\")\"},\"TOTAL_EPISODES_INVALID\":{\"message\":\"total_episodes は正の整数である必要があります\",\"suggestion\":\"正しいエピソード総数を設定してください\"},\"TOTAL_FRAMES_INVALID\":{\"message\":\"total_frames は正の整数である必要があります\",\"suggestion\":\"正しいフレーム総数を設定してください\"},\"TOTAL_TASKS_INVALID\":{\"message\":\"total_tasks は 0 以上の整数である必要があります\",\"suggestion\":\"正しいタスク総数を設定してください(0 可)\"},\"FPS_INVALID\":{\"message\":\"fps は正の数である必要があります\",\"suggestion\":\"正しい FPS を設定してください(例: 30)\"},\"CHUNKS_SIZE_MISSING\":{\"message\":\"chunks_size が未設定です。デフォルト 1000 を使用します\",\"suggestion\":\"chunks_size フィールドを追加してください(推奨: 1000)\"},\"FEATURES_EMPTY\":{\"message\":\"features が未設定または空です\",\"suggestion\":\"info.json の features にデータセットの全カラムを定義してください\"},\"EPISODES_MISSING\":{\"message\":\"meta/episodes.jsonl が存在しないか読み取れません\",\"suggestion\":\"1 行 1 エピソードの JSON で meta/episodes.jsonl を作成してください\"},\"EPISODES_INVALID_JSONL\":{\"message\":\"episodes.jsonl の行の JSON 解析に失敗しました\",\"suggestion\":\"各行が有効な JSON オブジェクトであることを確認してください\"},\"EPISODES_EMPTY\":{\"message\":\"episodes.jsonl は空です\",\"suggestion\":\"episodes.jsonl にデータがあることを確認してください\"},\"EPISODES_COUNT_MISMATCH\":{\"message\":\"解析したエピソード数({{parsed}})が total_episodes({{expected}})と一致しません\",\"suggestion\":\"episodes.jsonl を再生成するか info.json の total_episodes を修正してください\"},\"ZERO_LENGTH_EPISODES\":{\"message\":\"{{count}} 件のエピソードの長さが 0 です\",\"suggestion\":\"各エピソードが正のフレーム数を持つよう episodes.jsonl を再生成してください\"},\"EPISODES_NO_LENGTH\":{\"message\":\"{{count}} 件のエピソードに length/num_frames がありません\",\"suggestion\":\"episodes.jsonl の各行に \\\"length\\\" を追加してください\"},\"TASKS_MISSING\":{\"message\":\"meta/tasks.jsonl が存在しないか空です\",\"suggestion\":\"1 行 1 JSON で tasks.jsonl を作成: {\\\"task_index\\\": 0, \\\"task\\\": \\\"説明\\\"}\"},\"DATA_FILE_MISSING\":{\"message\":\"データファイルが存在しません\",\"suggestion\":\"v2 形式で data/ に Parquet ファイルを生成してください\"},\"DATA_FILE_CHECK_FAILED\":{\"message\":\"データファイルの存在を確認できませんでした\",\"suggestion\":\"data/chunk-xxx/episode_xxxxxx.parquet が存在することを確認してください\"},\"VIDEO_FILE_MISSING\":{\"message\":\"動画ファイルが存在しません\",\"suggestion\":\"videos/chunk-xxx/<key>/episode_xxxxxx.mp4 を生成してください\"},\"VIDEO_FILE_CHECK_FAILED\":{\"message\":\"動画ファイルの存在を確認できませんでした\",\"suggestion\":\"videos/chunk-xxx/<key>/episode_xxxxxx.mp4 が存在することを確認してください\"},\"PARQUET_MISSING_COLS\":{\"message\":\"データ Parquet に必須カラムがありません: {{cols}}\",\"suggestion\":\"システムカラムを含むデータ Parquet を再生成してください\"},\"DEFAULT_FEATURE_MISSING\":{\"message\":\"システムフィールド {{key}} がありません\",\"suggestion\":\"meta/info.json の features に \\\"{{key}}\\\" を追加してください\"},\"FEATURE_INVALID\":{\"message\":\"features.{{key}} は有効なオブジェクトではありません\",\"suggestion\":\"各 feature が dtype と shape を持つオブジェクトであることを確認してください\"},\"DTYPE_MISSING\":{\"message\":\"features.{{key}}.dtype がありません\",\"suggestion\":\"dtype を追加してください(例: float32, int64, video, image, string)\"},\"DTYPE_INVALID\":{\"message\":\"features.{{key}}.dtype が無効です: {{dtype}}\",\"suggestion\":\"標準の dtype を使用してください\"},\"SHAPE_INVALID\":{\"message\":\"features.{{key}}.shape は正の整数の非空配列である必要があります\",\"suggestion\":\"shape を設定してください(例: [7], [3, 480, 640])\"},\"NAMES_INVALID\":{\"message\":\"features.{{key}}.names は配列ではありません\",\"suggestion\":\"names を文字列配列または null に設定してください\"},\"NAMES_LENGTH_MISMATCH\":{\"message\":\"features.{{key}}.names の長さ({{actual}})が shape の最終次元({{expected}})と一致しません\",\"suggestion\":\"names の長さを shape の最終次元と一致させてください\"},\"VIDEO_FPS_MISSING\":{\"message\":\"動画 feature {{key}} の fps が未設定または ≤0 です。info.fps を使用します\",\"suggestion\":\"オプション: この feature に fps を設定。未設定の場合は info.fps を使用\"},\"VIDEO_SHAPE_CHANNELS\":{\"message\":\"動画の shape チャンネル数が一般的ではありません\",\"suggestion\":\"通常は 3(RGB)です。[C,H,W] と [H,W,C] の両方に対応\"},\"VIDEO_SHAPE_NDIM\":{\"message\":\"動画 shape は 3D (C, H, W) である必要があります。現在 {{n}}D です\",\"suggestion\":\"shape を [C, H, W] に設定してください\"},\"IMAGE_SHAPE_NDIM\":{\"message\":\"画像 shape は 3D (C, H, W) である必要があります。現在 {{n}}D です\",\"suggestion\":\"shape を [C, H, W] に設定してください\"},\"EPISODES_PARQUET_MISSING\":{\"message\":\"meta/episodes の最初のファイルが存在しません\",\"suggestion\":\"v3 形式で meta/episodes/chunk-xxx/file-xxx.parquet を生成してください\"},\"EPISODES_PARQUET_INVALID\":{\"message\":\"meta/episodes の最初のファイルを Parquet として解析できませんでした\",\"suggestion\":\"episodes Parquet ファイルが有効であることを確認してください\"},\"DATA_PATH_TEMPLATE\":{\"message\":\"info.data_path がデフォルトテンプレートと一致しません\",\"suggestion\":\"デフォルトの data パステンプレートを使用するか、カスタムパスを一貫させてください\"},\"VIDEO_PATH_TEMPLATE\":{\"message\":\"info.video_path がデフォルトテンプレートと一致しません\",\"suggestion\":\"デフォルトの動画パステンプレートを使用してください\"},\"TASKS_PRESENT\":{\"message\":\"タスクメタデータを検出しました\",\"suggestion\":\"\"},\"EPISODE_COUNT\":{\"message\":\"{{count}} 件のエピソードを解析しました\",\"suggestion\":\"\"},\"TASK_COUNT\":{\"message\":\"{{count}} 件のタスクを解析しました\",\"suggestion\":\"\"},\"SPLITS_MISSING_TRAIN\":{\"message\":\"splits に \\\"train\\\" が必要です\",\"suggestion\":\"splits に少なくとも \\\"train\\\" キーを追加してください\"}}}}"),
|
|
4494
|
+
health: /* @__PURE__ */ JSON.parse("{\"noData\":\"データセットを読み込むとヘルスチェックを表示します\",\"statusErrors\":\"検証でエラーを検出\",\"statusWarnings\":\"検証で警告を検出\",\"statusOk\":\"フォーマットチェック完了\",\"checks\":\"チェック項目\",\"noIssues\":\"問題はありません\",\"fpsInvalid\":\"info.fps が未設定または ≤ 0 です。再生が不正になる可能性があります。\",\"zeroLengthEpisodes\":\"{{count}} 件のエピソードの長さが 0 です\",\"episodeCountMismatch\":\"有効エピソード数({{effective}})が info.total_episodes({{total}})と一致しません。編集/削除を反映しました。\",\"footnote\":\"フォーマット検証は読み込み時に実行されます。データ品質(NaN/外れ値)は今後のバージョンで対応予定です。\",\"healthCheckButton\":\"データセットヘルスチェック\",\"check\":\"チェック\",\"validation\":{\"columns\":{\"field\":\"チェック項目\",\"current\":\"現在\",\"expected\":\"期待値\",\"suggestion\":\"推奨対応\"},\"dialog\":{\"title\":\"データセット品質レポート\",\"summaryErrors\":\"検証でエラーを検出\",\"summaryWarnings\":\"検証で警告を検出\",\"summaryOk\":\"すべてのチェックを通過\",\"errorsCount\":\"エラー {{count}} 件\",\"warningsCount\":\"警告 {{count}} 件\",\"passedCount\":\"{{count}} 件通過\",\"filterErrors\":\"エラー {{count}} 件のみを表示\",\"filterWarnings\":\"警告 {{count}} 件のみを表示\",\"filterPassed\":\"通過した {{count}} 件のみを表示\",\"close\":\"閉じる\",\"retry\":\"再試行\",\"export\":\"エクスポート\",\"exportCsv\":\"CSV でエクスポート\",\"exportPdf\":\"PDF でエクスポート\"},\"categories\":{\"file_structure\":\"ファイル構造\",\"meta_info\":\"メタデータ\",\"features\":\"特徴量\",\"episodes\":\"エピソード\"},\"terms\":{\"exists\":\"存在する\",\"missing\":\"欠損\",\"notExists\":\"見つかりません\",\"invalidJson\":\"無効な JSON\",\"validJson\":\"有効な JSON ファイル\",\"positiveInteger\":\"正の整数\",\"nonNegativeInteger\":\"0 以上の整数\",\"positiveNumber\":\"正の数\",\"nonEmptyString\":\"空でない文字列\",\"present\":\"存在\",\"unknown\":\"不明\",\"validDtype\":\"有効な dtype\",\"object\":\"オブジェクト\",\"arrayOrNull\":\"配列または null\",\"nFeatures\":\"{{count}} 特徴量\",\"pathOrFileExists\":\"パスまたはファイルが存在\",\"fieldExists\":\"フィールドが存在\",\"positiveIntArray\":\"[正の整数, ...]\",\"stringArrayMatchShape\":\"string[](長さ = shape の最終次元)\",\"objectWithFeatures\":\"1 つ以上の feature を持つオブジェクト\",\"positiveIntMatchTotalEpisodes\":\"正の整数、total_episodes と一致\",\"episodeLengthPositive\":\"各エピソードの length > 0\",\"nonNegativeIntCount\":\"0 以上の整数(件数)\",\"requiredParquetColumns\":\"frame_index, episode_index, index, timestamp など\",\"objectWithTrainKey\":\"\\\"train\\\" キーを持つオブジェクト\",\"containsTrain\":\"\\\"train\\\" を含む\",\"requiredEpisodesColumns\":\"episode_index, length, dataset_from_index, dataset_to_index\",\"tasksPresent\":\"tasks.jsonl または tasks.parquet が存在\"},\"codes\":{\"INFO_MISSING\":{\"message\":\"meta/info.json が存在しないか読み取れません\",\"suggestion\":\"LeRobot データセットルートに meta/info.json があることを確認してください\"},\"INFO_PARSE_ERROR\":{\"message\":\"meta/info.json の JSON 解析に失敗しました\",\"suggestion\":\"JSON 構文を確認してください(例: https://jsonlint.com)\"},\"VERSION_MISMATCH\":{\"message\":\"codebase_version が v2.x ではありません\",\"suggestion\":\"v3.0 の場合は対応ローダーを使用するか、codebase_version を v2.0 または v2.1 に設定してください\"},\"VERSION_MISMATCH_V3\":{\"message\":\"codebase_version が v3.x ではありません\",\"suggestion\":\"codebase_version を v3.0 に設定してください\"},\"ROBOT_TYPE_MISSING\":{\"message\":\"robot_type が未設定または空です\",\"suggestion\":\"ロボットタイプを設定してください(例: \\\"so100\\\", \\\"lekiwi\\\")\"},\"TOTAL_EPISODES_INVALID\":{\"message\":\"total_episodes は正の整数である必要があります\",\"suggestion\":\"正しいエピソード総数を設定してください\"},\"TOTAL_FRAMES_INVALID\":{\"message\":\"total_frames は正の整数である必要があります\",\"suggestion\":\"正しいフレーム総数を設定してください\"},\"TOTAL_TASKS_INVALID\":{\"message\":\"total_tasks は 0 以上の整数である必要があります\",\"suggestion\":\"正しいタスク総数を設定してください(0 可)\"},\"FPS_INVALID\":{\"message\":\"fps は正の数である必要があります\",\"suggestion\":\"正しい FPS を設定してください(例: 30)\"},\"CHUNKS_SIZE_MISSING\":{\"message\":\"chunks_size が未設定です。デフォルト 1000 を使用します\",\"suggestion\":\"chunks_size フィールドを追加してください(推奨: 1000)\"},\"FEATURES_EMPTY\":{\"message\":\"features が未設定または空です\",\"suggestion\":\"info.json の features にデータセットの全カラムを定義してください\"},\"EPISODES_MISSING\":{\"message\":\"meta/episodes.jsonl が存在しないか読み取れません\",\"suggestion\":\"1 行 1 エピソードの JSON で meta/episodes.jsonl を作成してください\"},\"EPISODES_INVALID_JSONL\":{\"message\":\"episodes.jsonl の行の JSON 解析に失敗しました\",\"suggestion\":\"各行が有効な JSON オブジェクトであることを確認してください\"},\"EPISODES_EMPTY\":{\"message\":\"episodes.jsonl は空です\",\"suggestion\":\"episodes.jsonl にデータがあることを確認してください\"},\"EPISODES_COUNT_MISMATCH\":{\"message\":\"解析したエピソード数({{parsed}})が total_episodes({{expected}})と一致しません\",\"suggestion\":\"episodes.jsonl を再生成するか info.json の total_episodes を修正してください\"},\"ZERO_LENGTH_EPISODES\":{\"message\":\"{{count}} 件のエピソードの長さが 0 です\",\"suggestion\":\"各エピソードが正のフレーム数を持つよう episodes.jsonl を再生成してください\"},\"EPISODES_NO_LENGTH\":{\"message\":\"{{count}} 件のエピソードに length/num_frames がありません\",\"suggestion\":\"episodes.jsonl の各行に \\\"length\\\" を追加してください\"},\"TASKS_MISSING\":{\"message\":\"meta/tasks.jsonl が存在しないか空です\",\"suggestion\":\"1 行 1 JSON で tasks.jsonl を作成: {\\\"task_index\\\": 0, \\\"task\\\": \\\"説明\\\"}\"},\"DATA_FILE_MISSING\":{\"message\":\"データファイルが存在しません\",\"suggestion\":\"v2 形式で data/ に Parquet ファイルを生成してください\"},\"EPISODE_DATA_MISSING\":{\"message\":\"{{total}} 件中 {{missing}} 件の episode parquet がありません\",\"suggestion\":\"欠けている episode parquet を入手するか、完全なデータセットを開いてください\"},\"DATA_FILE_CHECK_FAILED\":{\"message\":\"データファイルの存在を確認できませんでした\",\"suggestion\":\"data/chunk-xxx/episode_xxxxxx.parquet が存在することを確認してください\"},\"VIDEO_FILE_MISSING\":{\"message\":\"動画ファイルが存在しません\",\"suggestion\":\"videos/chunk-xxx/<key>/episode_xxxxxx.mp4 を生成してください\"},\"VIDEO_FILE_CHECK_FAILED\":{\"message\":\"動画ファイルの存在を確認できませんでした\",\"suggestion\":\"videos/chunk-xxx/<key>/episode_xxxxxx.mp4 が存在することを確認してください\"},\"PARQUET_MISSING_COLS\":{\"message\":\"データ Parquet に必須カラムがありません: {{cols}}\",\"suggestion\":\"システムカラムを含むデータ Parquet を再生成してください\"},\"DEFAULT_FEATURE_MISSING\":{\"message\":\"システムフィールド {{key}} がありません\",\"suggestion\":\"meta/info.json の features に \\\"{{key}}\\\" を追加してください\"},\"FEATURE_INVALID\":{\"message\":\"features.{{key}} は有効なオブジェクトではありません\",\"suggestion\":\"各 feature が dtype と shape を持つオブジェクトであることを確認してください\"},\"DTYPE_MISSING\":{\"message\":\"features.{{key}}.dtype がありません\",\"suggestion\":\"dtype を追加してください(例: float32, int64, video, image, string)\"},\"DTYPE_INVALID\":{\"message\":\"features.{{key}}.dtype が無効です: {{dtype}}\",\"suggestion\":\"標準の dtype を使用してください\"},\"SHAPE_INVALID\":{\"message\":\"features.{{key}}.shape は正の整数の非空配列である必要があります\",\"suggestion\":\"shape を設定してください(例: [7], [3, 480, 640])\"},\"NAMES_INVALID\":{\"message\":\"features.{{key}}.names は配列ではありません\",\"suggestion\":\"names を文字列配列または null に設定してください\"},\"NAMES_LENGTH_MISMATCH\":{\"message\":\"features.{{key}}.names の長さ({{actual}})が shape の最終次元({{expected}})と一致しません\",\"suggestion\":\"names の長さを shape の最終次元と一致させてください\"},\"VIDEO_FPS_MISSING\":{\"message\":\"動画 feature {{key}} の fps が未設定または ≤0 です。info.fps を使用します\",\"suggestion\":\"オプション: この feature に fps を設定。未設定の場合は info.fps を使用\"},\"VIDEO_SHAPE_CHANNELS\":{\"message\":\"動画の shape チャンネル数が一般的ではありません\",\"suggestion\":\"通常は 3(RGB)です。[C,H,W] と [H,W,C] の両方に対応\"},\"VIDEO_SHAPE_NDIM\":{\"message\":\"動画 shape は 3D (C, H, W) である必要があります。現在 {{n}}D です\",\"suggestion\":\"shape を [C, H, W] に設定してください\"},\"IMAGE_SHAPE_NDIM\":{\"message\":\"画像 shape は 3D (C, H, W) である必要があります。現在 {{n}}D です\",\"suggestion\":\"shape を [C, H, W] に設定してください\"},\"EPISODES_PARQUET_MISSING\":{\"message\":\"meta/episodes の最初のファイルが存在しません\",\"suggestion\":\"v3 形式で meta/episodes/chunk-xxx/file-xxx.parquet を生成してください\"},\"EPISODES_PARQUET_INVALID\":{\"message\":\"meta/episodes の最初のファイルを Parquet として解析できませんでした\",\"suggestion\":\"episodes Parquet ファイルが有効であることを確認してください\"},\"DATA_PATH_TEMPLATE\":{\"message\":\"info.data_path がデフォルトテンプレートと一致しません\",\"suggestion\":\"デフォルトの data パステンプレートを使用するか、カスタムパスを一貫させてください\"},\"VIDEO_PATH_TEMPLATE\":{\"message\":\"info.video_path がデフォルトテンプレートと一致しません\",\"suggestion\":\"デフォルトの動画パステンプレートを使用してください\"},\"TASKS_PRESENT\":{\"message\":\"タスクメタデータを検出しました\",\"suggestion\":\"\"},\"EPISODE_COUNT\":{\"message\":\"{{count}} 件のエピソードを解析しました\",\"suggestion\":\"\"},\"TASK_COUNT\":{\"message\":\"{{count}} 件のタスクを解析しました\",\"suggestion\":\"\"},\"SPLITS_MISSING_TRAIN\":{\"message\":\"splits に \\\"train\\\" が必要です\",\"suggestion\":\"splits に少なくとも \\\"train\\\" キーを追加してください\"}}}}"),
|
|
4485
4495
|
summary: {
|
|
4486
4496
|
noData: "データセットを読み込むと概要を表示します",
|
|
4487
4497
|
overview: "概要",
|
|
@@ -4856,7 +4866,8 @@ var hn = {
|
|
|
4856
4866
|
requirements: "CORS + Range 対応が必要。署名付き URL は有効期限内であること",
|
|
4857
4867
|
openDirect: "公式サンプルを開く/ダウンロード",
|
|
4858
4868
|
preview: "プレビュー",
|
|
4859
|
-
download: "ダウンロード"
|
|
4869
|
+
download: "ダウンロード",
|
|
4870
|
+
unknown: "不明なサンプル \"{{id}}\" です。サンプル id を確認するか、一覧からデータセットを開いてください。"
|
|
4860
4871
|
}
|
|
4861
4872
|
},
|
|
4862
4873
|
validation: {
|
|
@@ -10836,25 +10847,28 @@ function Sp(e, t, n) {
|
|
|
10836
10847
|
row2: c
|
|
10837
10848
|
};
|
|
10838
10849
|
}
|
|
10839
|
-
function Cp(e
|
|
10850
|
+
function Cp(e) {
|
|
10851
|
+
return e > 0 && e < 900 ? 2 : 4;
|
|
10852
|
+
}
|
|
10853
|
+
function wp(e, t = 6, n = 4) {
|
|
10840
10854
|
return Array.from(new Set(e)).length >= fp ? xp(e, t, n) : Sp(e, t, n);
|
|
10841
10855
|
}
|
|
10842
10856
|
//#endregion
|
|
10843
10857
|
//#region src/react/contexts/LeRobotContext.ts
|
|
10844
|
-
var
|
|
10845
|
-
let e = l(Tp);
|
|
10846
|
-
if (!e) throw Error("useLeRobotData must be used within LeRobotDataProvider");
|
|
10847
|
-
return e;
|
|
10848
|
-
}, Ap = () => {
|
|
10858
|
+
var Tp = i(null), Ep = i(null), Dp = i(null), Op = i(null), kp = i(null), Ap = () => {
|
|
10849
10859
|
let e = l(Ep);
|
|
10850
|
-
if (!e) throw Error("
|
|
10860
|
+
if (!e) throw Error("useLeRobotData must be used within LeRobotDataProvider");
|
|
10851
10861
|
return e;
|
|
10852
10862
|
}, jp = () => {
|
|
10853
10863
|
let e = l(Dp);
|
|
10864
|
+
if (!e) throw Error("useLeRobotPlayback must be used within LeRobotDataProvider");
|
|
10865
|
+
return e;
|
|
10866
|
+
}, Mp = () => {
|
|
10867
|
+
let e = l(Op);
|
|
10854
10868
|
if (!e) throw Error("useLeRobotSelection must be used within LeRobotDataProvider");
|
|
10855
10869
|
return e;
|
|
10856
|
-
},
|
|
10857
|
-
function
|
|
10870
|
+
}, Np = typeof window < "u" ? f : u;
|
|
10871
|
+
function Pp(e) {
|
|
10858
10872
|
if (e !== void 0) switch (typeof e) {
|
|
10859
10873
|
case "number": return e;
|
|
10860
10874
|
case "string":
|
|
@@ -10862,15 +10876,15 @@ function Np(e) {
|
|
|
10862
10876
|
break;
|
|
10863
10877
|
}
|
|
10864
10878
|
}
|
|
10865
|
-
function
|
|
10879
|
+
function Fp({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i, mode: a, style: o }) {
|
|
10866
10880
|
let { styleHeight: s, styleWidth: c } = p(() => ({
|
|
10867
|
-
styleHeight:
|
|
10868
|
-
styleWidth:
|
|
10881
|
+
styleHeight: Pp(o?.height),
|
|
10882
|
+
styleWidth: Pp(o?.width)
|
|
10869
10883
|
}), [o?.height, o?.width]), [l, u] = h({
|
|
10870
10884
|
height: t,
|
|
10871
10885
|
width: n
|
|
10872
10886
|
}), d = r || a === "only-height" && s !== void 0 || a === "only-width" && c !== void 0 || s !== void 0 && c !== void 0;
|
|
10873
|
-
return
|
|
10887
|
+
return Np(() => {
|
|
10874
10888
|
if (i === null || d) return;
|
|
10875
10889
|
let t = new ResizeObserver((e) => {
|
|
10876
10890
|
for (let t of e) {
|
|
@@ -10899,26 +10913,26 @@ function Pp({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i
|
|
|
10899
10913
|
c
|
|
10900
10914
|
]);
|
|
10901
10915
|
}
|
|
10902
|
-
function
|
|
10916
|
+
function Ip(e) {
|
|
10903
10917
|
let t = m(() => {
|
|
10904
10918
|
throw Error("Cannot call an event handler while rendering.");
|
|
10905
10919
|
});
|
|
10906
|
-
return
|
|
10920
|
+
return Np(() => {
|
|
10907
10921
|
t.current = e;
|
|
10908
10922
|
}, [e]), c((...e) => t.current?.(...e), [t]);
|
|
10909
10923
|
}
|
|
10910
|
-
var
|
|
10911
|
-
function
|
|
10912
|
-
if (
|
|
10924
|
+
var Lp = null;
|
|
10925
|
+
function Rp(e = !1) {
|
|
10926
|
+
if (Lp === null || e) {
|
|
10913
10927
|
let e = document.createElement("div"), t = e.style;
|
|
10914
10928
|
t.width = "50px", t.height = "50px", t.overflow = "scroll", t.direction = "rtl";
|
|
10915
10929
|
let n = document.createElement("div"), r = n.style;
|
|
10916
|
-
return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ?
|
|
10930
|
+
return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ? Lp = "positive-descending" : (e.scrollLeft = 1, Lp = e.scrollLeft === 0 ? "negative" : "positive-ascending"), document.body.removeChild(e), Lp;
|
|
10917
10931
|
}
|
|
10918
|
-
return
|
|
10932
|
+
return Lp;
|
|
10919
10933
|
}
|
|
10920
|
-
function
|
|
10921
|
-
if (t === "horizontal" && n) switch (
|
|
10934
|
+
function zp({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
|
|
10935
|
+
if (t === "horizontal" && n) switch (Rp()) {
|
|
10922
10936
|
case "negative": return -r;
|
|
10923
10937
|
case "positive-descending":
|
|
10924
10938
|
if (e) {
|
|
@@ -10929,26 +10943,26 @@ function Rp({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
|
|
|
10929
10943
|
}
|
|
10930
10944
|
return r;
|
|
10931
10945
|
}
|
|
10932
|
-
function
|
|
10946
|
+
function Bp(e, t = "Assertion error") {
|
|
10933
10947
|
if (!e) throw console.error(t), Error(t);
|
|
10934
10948
|
}
|
|
10935
|
-
function
|
|
10949
|
+
function Vp(e, t) {
|
|
10936
10950
|
if (e === t) return !0;
|
|
10937
|
-
if (!!e != !!t || (
|
|
10951
|
+
if (!!e != !!t || (Bp(e !== void 0), Bp(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
|
|
10938
10952
|
for (let n in e) if (!Object.is(t[n], e[n])) return !1;
|
|
10939
10953
|
return !0;
|
|
10940
10954
|
}
|
|
10941
|
-
function
|
|
10955
|
+
function Hp({ cachedBounds: e, itemCount: t, itemSize: n }) {
|
|
10942
10956
|
if (t === 0) return 0;
|
|
10943
10957
|
if (typeof n == "number") return t * n;
|
|
10944
10958
|
{
|
|
10945
10959
|
let n = e.get(e.size === 0 ? 0 : e.size - 1);
|
|
10946
|
-
return
|
|
10960
|
+
return Bp(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
|
|
10947
10961
|
}
|
|
10948
10962
|
}
|
|
10949
|
-
function
|
|
10963
|
+
function Up({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
|
|
10950
10964
|
if (n < 0 || n >= r) throw RangeError(`Invalid index specified: ${n}`, { cause: `Index ${n} is not within the range of 0 - ${r - 1}` });
|
|
10951
|
-
let s =
|
|
10965
|
+
let s = Hp({
|
|
10952
10966
|
cachedBounds: t,
|
|
10953
10967
|
itemCount: r,
|
|
10954
10968
|
itemSize: i
|
|
@@ -10960,7 +10974,7 @@ function Hp({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, co
|
|
|
10960
10974
|
default: return a >= u && a <= l ? a : a < u ? u : l;
|
|
10961
10975
|
}
|
|
10962
10976
|
}
|
|
10963
|
-
function
|
|
10977
|
+
function Wp({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
|
|
10964
10978
|
let a = r - 1, o = 0, s = -1, c = 0, l = -1, u = 0;
|
|
10965
10979
|
for (; u < a;) {
|
|
10966
10980
|
let n = e.get(u);
|
|
@@ -10979,11 +10993,11 @@ function Up({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemC
|
|
|
10979
10993
|
stopIndexOverscan: l
|
|
10980
10994
|
};
|
|
10981
10995
|
}
|
|
10982
|
-
function
|
|
10996
|
+
function Gp({ itemCount: e, itemProps: t, itemSize: n }) {
|
|
10983
10997
|
let r = /* @__PURE__ */ new Map();
|
|
10984
10998
|
return {
|
|
10985
10999
|
get(i) {
|
|
10986
|
-
for (
|
|
11000
|
+
for (Bp(i < e, `Invalid index ${i}`); r.size - 1 < i;) {
|
|
10987
11001
|
let e = r.size, a;
|
|
10988
11002
|
switch (typeof n) {
|
|
10989
11003
|
case "function":
|
|
@@ -10997,14 +11011,14 @@ function Wp({ itemCount: e, itemProps: t, itemSize: n }) {
|
|
|
10997
11011
|
});
|
|
10998
11012
|
else {
|
|
10999
11013
|
let t = r.get(e - 1);
|
|
11000
|
-
|
|
11014
|
+
Bp(t !== void 0, `Unexpected bounds cache miss for index ${i}`), r.set(e, {
|
|
11001
11015
|
scrollOffset: t.scrollOffset + t.size,
|
|
11002
11016
|
size: a
|
|
11003
11017
|
});
|
|
11004
11018
|
}
|
|
11005
11019
|
}
|
|
11006
11020
|
let a = r.get(i);
|
|
11007
|
-
return
|
|
11021
|
+
return Bp(a !== void 0, `Unexpected bounds cache miss for index ${i}`), a;
|
|
11008
11022
|
},
|
|
11009
11023
|
set(e, t) {
|
|
11010
11024
|
r.set(e, t);
|
|
@@ -11014,8 +11028,8 @@ function Wp({ itemCount: e, itemProps: t, itemSize: n }) {
|
|
|
11014
11028
|
}
|
|
11015
11029
|
};
|
|
11016
11030
|
}
|
|
11017
|
-
function
|
|
11018
|
-
return p(() =>
|
|
11031
|
+
function Kp({ itemCount: e, itemProps: t, itemSize: n }) {
|
|
11032
|
+
return p(() => Gp({
|
|
11019
11033
|
itemCount: e,
|
|
11020
11034
|
itemProps: t,
|
|
11021
11035
|
itemSize: n
|
|
@@ -11025,18 +11039,18 @@ function Gp({ itemCount: e, itemProps: t, itemSize: n }) {
|
|
|
11025
11039
|
n
|
|
11026
11040
|
]);
|
|
11027
11041
|
}
|
|
11028
|
-
function
|
|
11042
|
+
function qp({ containerSize: e, itemSize: t }) {
|
|
11029
11043
|
let n;
|
|
11030
11044
|
switch (typeof t) {
|
|
11031
11045
|
case "string":
|
|
11032
|
-
|
|
11046
|
+
Bp(t.endsWith("%"), `Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`), Bp(e !== void 0, "Container size must be defined if a percentage item size is specified"), n = e * parseInt(t) / 100;
|
|
11033
11047
|
break;
|
|
11034
11048
|
default: n = t;
|
|
11035
11049
|
}
|
|
11036
11050
|
return n;
|
|
11037
11051
|
}
|
|
11038
|
-
function
|
|
11039
|
-
let { height: d = n, width: p = n } =
|
|
11052
|
+
function Jp({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: l, overscanCount: u }) {
|
|
11053
|
+
let { height: d = n, width: p = n } = Fp({
|
|
11040
11054
|
defaultHeight: r === "vertical" ? n : void 0,
|
|
11041
11055
|
defaultWidth: r === "horizontal" ? n : void 0,
|
|
11042
11056
|
element: e,
|
|
@@ -11045,7 +11059,7 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
|
|
|
11045
11059
|
}), g = m({
|
|
11046
11060
|
height: 0,
|
|
11047
11061
|
width: 0
|
|
11048
|
-
}), _ = r === "vertical" ? d : p, v =
|
|
11062
|
+
}), _ = r === "vertical" ? d : p, v = qp({
|
|
11049
11063
|
containerSize: _,
|
|
11050
11064
|
itemSize: s
|
|
11051
11065
|
});
|
|
@@ -11062,11 +11076,11 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
|
|
|
11062
11076
|
l,
|
|
11063
11077
|
p
|
|
11064
11078
|
]);
|
|
11065
|
-
let y =
|
|
11079
|
+
let y = Kp({
|
|
11066
11080
|
itemCount: a,
|
|
11067
11081
|
itemProps: o,
|
|
11068
11082
|
itemSize: v
|
|
11069
|
-
}), b = c((e) => y.get(e), [y]), [x, S] = h(() =>
|
|
11083
|
+
}), b = c((e) => y.get(e), [y]), [x, S] = h(() => Wp({
|
|
11070
11084
|
cachedBounds: y,
|
|
11071
11085
|
containerScrollOffset: 0,
|
|
11072
11086
|
containerSize: _,
|
|
@@ -11077,7 +11091,7 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
|
|
|
11077
11091
|
startIndexOverscan: Math.min(a - 1, x.startIndexOverscan),
|
|
11078
11092
|
stopIndexVisible: Math.min(a - 1, x.stopIndexVisible),
|
|
11079
11093
|
stopIndexOverscan: Math.min(a - 1, x.stopIndexOverscan)
|
|
11080
|
-
}, D = c(() =>
|
|
11094
|
+
}, D = c(() => Hp({
|
|
11081
11095
|
cachedBounds: y,
|
|
11082
11096
|
itemCount: a,
|
|
11083
11097
|
itemSize: v
|
|
@@ -11086,13 +11100,13 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
|
|
|
11086
11100
|
a,
|
|
11087
11101
|
v
|
|
11088
11102
|
]), O = c((t) => {
|
|
11089
|
-
let n =
|
|
11103
|
+
let n = zp({
|
|
11090
11104
|
containerElement: e,
|
|
11091
11105
|
direction: r,
|
|
11092
11106
|
isRtl: i,
|
|
11093
11107
|
scrollOffset: t
|
|
11094
11108
|
});
|
|
11095
|
-
return
|
|
11109
|
+
return Wp({
|
|
11096
11110
|
cachedBounds: y,
|
|
11097
11111
|
containerScrollOffset: n,
|
|
11098
11112
|
containerSize: _,
|
|
@@ -11108,30 +11122,30 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
|
|
|
11108
11122
|
a,
|
|
11109
11123
|
u
|
|
11110
11124
|
]);
|
|
11111
|
-
return
|
|
11125
|
+
return Np(() => {
|
|
11112
11126
|
let t = (r === "vertical" ? e?.scrollTop : e?.scrollLeft) ?? 0;
|
|
11113
11127
|
S(O(t));
|
|
11114
11128
|
}, [
|
|
11115
11129
|
e,
|
|
11116
11130
|
r,
|
|
11117
11131
|
O
|
|
11118
|
-
]),
|
|
11132
|
+
]), Np(() => {
|
|
11119
11133
|
if (!e) return;
|
|
11120
11134
|
let t = () => {
|
|
11121
11135
|
S((t) => {
|
|
11122
|
-
let { scrollLeft: n, scrollTop: o } = e, s =
|
|
11136
|
+
let { scrollLeft: n, scrollTop: o } = e, s = zp({
|
|
11123
11137
|
containerElement: e,
|
|
11124
11138
|
direction: r,
|
|
11125
11139
|
isRtl: i,
|
|
11126
11140
|
scrollOffset: r === "vertical" ? o : n
|
|
11127
|
-
}), c =
|
|
11141
|
+
}), c = Wp({
|
|
11128
11142
|
cachedBounds: y,
|
|
11129
11143
|
containerScrollOffset: s,
|
|
11130
11144
|
containerSize: _,
|
|
11131
11145
|
itemCount: a,
|
|
11132
11146
|
overscanCount: u
|
|
11133
11147
|
});
|
|
11134
|
-
return
|
|
11148
|
+
return Vp(c, t) ? t : c;
|
|
11135
11149
|
});
|
|
11136
11150
|
};
|
|
11137
11151
|
return e.addEventListener("scroll", t), () => {
|
|
@@ -11147,8 +11161,8 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
|
|
|
11147
11161
|
]), {
|
|
11148
11162
|
getCellBounds: b,
|
|
11149
11163
|
getEstimatedSize: D,
|
|
11150
|
-
scrollToIndex:
|
|
11151
|
-
let s =
|
|
11164
|
+
scrollToIndex: Ip(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
|
|
11165
|
+
let s = Up({
|
|
11152
11166
|
align: t,
|
|
11153
11167
|
cachedBounds: y,
|
|
11154
11168
|
containerScrollOffset: n,
|
|
@@ -11158,14 +11172,14 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
|
|
|
11158
11172
|
itemSize: v
|
|
11159
11173
|
});
|
|
11160
11174
|
if (e) {
|
|
11161
|
-
if (s =
|
|
11175
|
+
if (s = zp({
|
|
11162
11176
|
containerElement: e,
|
|
11163
11177
|
direction: r,
|
|
11164
11178
|
isRtl: i,
|
|
11165
11179
|
scrollOffset: s
|
|
11166
11180
|
}), typeof e.scrollTo != "function") {
|
|
11167
11181
|
let e = O(s);
|
|
11168
|
-
|
|
11182
|
+
Vp(x, e) || S(e);
|
|
11169
11183
|
}
|
|
11170
11184
|
return s;
|
|
11171
11185
|
}
|
|
@@ -11176,19 +11190,19 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
|
|
|
11176
11190
|
stopIndexVisible: T
|
|
11177
11191
|
};
|
|
11178
11192
|
}
|
|
11179
|
-
function
|
|
11193
|
+
function Yp(e) {
|
|
11180
11194
|
return p(() => e, Object.values(e));
|
|
11181
11195
|
}
|
|
11182
|
-
function
|
|
11196
|
+
function Xp(e, t) {
|
|
11183
11197
|
let { ariaAttributes: n, style: r, ...i } = e, { ariaAttributes: a, style: o, ...s } = t;
|
|
11184
|
-
return
|
|
11198
|
+
return Vp(n, a) && Vp(r, o) && Vp(i, s);
|
|
11185
11199
|
}
|
|
11186
|
-
function
|
|
11200
|
+
function Zp(e) {
|
|
11187
11201
|
return typeof e == "object" && !!e && "getAverageRowHeight" in e && typeof e.getAverageRowHeight == "function";
|
|
11188
11202
|
}
|
|
11189
|
-
var
|
|
11190
|
-
function
|
|
11191
|
-
let S =
|
|
11203
|
+
var Qp = "data-react-window-index";
|
|
11204
|
+
function $p({ children: e, className: t, defaultHeight: n = 0, listRef: r, onResize: i, onRowsRendered: o, overscanCount: c = 3, rowComponent: l, rowCount: f, rowHeight: m, rowKey: g, rowProps: v, tagName: y = "div", style: b, ...x }) {
|
|
11205
|
+
let S = Yp(v), C = p(() => s(l, Xp), [l]), [w, T] = h(null), E = Zp(m), { getCellBounds: D, getEstimatedSize: O, scrollToIndex: k, startIndexOverscan: A, startIndexVisible: j, stopIndexOverscan: M, stopIndexVisible: N } = Jp({
|
|
11192
11206
|
containerElement: w,
|
|
11193
11207
|
containerStyle: b,
|
|
11194
11208
|
defaultContainerSize: n,
|
|
@@ -11214,12 +11228,12 @@ function Qp({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
|
|
|
11214
11228
|
top: r
|
|
11215
11229
|
});
|
|
11216
11230
|
}
|
|
11217
|
-
}), [w, k]),
|
|
11231
|
+
}), [w, k]), Np(() => {
|
|
11218
11232
|
if (!w) return;
|
|
11219
11233
|
let e = Array.from(w.children).filter((e, t) => {
|
|
11220
11234
|
if (e.hasAttribute("aria-hidden")) return !1;
|
|
11221
11235
|
let n = `${A + t}`;
|
|
11222
|
-
return e.setAttribute(
|
|
11236
|
+
return e.setAttribute(Qp, n), !0;
|
|
11223
11237
|
});
|
|
11224
11238
|
if (E) return m.observeRowElements(e);
|
|
11225
11239
|
}, [
|
|
@@ -11298,4 +11312,4 @@ function Qp({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
|
|
|
11298
11312
|
}, P, e, ee);
|
|
11299
11313
|
}
|
|
11300
11314
|
//#endregion
|
|
11301
|
-
export {
|
|
11315
|
+
export { Ra as $, Rf as A, Tu as B, Gf as C, Vf as D, Hf as E, wf as F, Gs as G, ic as H, Sf as I, js as J, Us as K, Hu as L, If as M, Ff as N, Bf as O, Pf as P, Ya as Q, Uu as R, Kf as S, Uf as T, Ys as U, zs as V, nc as W, ho as X, Ss as Y, co as Z, Xf as _, Pn as _t, Op as a, q as at, Zf as b, jp as c, G as ct, sp as d, bi as dt, J as et, ap as f, W as ft, ep as g, Ln as gt, $f as h, ui as ht, Dp as i, sa as it, Lf as j, zf as k, Mp as l, Ii as lt, Cp as m, pi as mt, Tp as n, Ta as nt, kp as o, K as ot, rp as p, fi as pt, ec as q, Ep as r, ha as rt, Ap as s, Wi as st, $p as t, ka as tt, wp as u, xi as ut, Qf as v, Wf as w, qf as x, Yf as y, Vu as z };
|