lx-annotate 0.2.2__tar.gz → 0.2.3__tar.gz
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.
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/PKG-INFO +4 -5
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/README.md +2 -2
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/file_watcher.py +38 -67
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/settings/settings_base.py +0 -2
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/manage.py +0 -2
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/pyproject.toml +2 -3
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/.vite/manifest.json +10 -5
- lx_annotate-0.2.3/staticfiles/AnonymizationCorrectionComponent.css +1 -0
- lx_annotate-0.2.3/staticfiles/AnonymizationCorrectionComponent.js +1 -0
- lx_annotate-0.2.3/staticfiles/AnonymizationOverview.js +1 -0
- lx_annotate-0.2.3/staticfiles/Export.js +1 -0
- lx_annotate-0.2.3/staticfiles/FinalizedResultPage.js +1 -0
- lx_annotate-0.2.3/staticfiles/VideoExamination.css +1 -0
- lx_annotate-0.2.3/staticfiles/VideoExamination.js +1 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/main.js +2 -2
- lx_annotate-0.2.3/staticfiles/mediaUrls.js +1 -0
- lx_annotate-0.2.3/staticfiles/videoStore.js +1 -0
- lx_annotate-0.2.2/staticfiles/AnonymizationCorrectionComponent.css +0 -1
- lx_annotate-0.2.2/staticfiles/AnonymizationCorrectionComponent.js +0 -1
- lx_annotate-0.2.2/staticfiles/AnonymizationOverview.js +0 -1
- lx_annotate-0.2.2/staticfiles/Export.js +0 -1
- lx_annotate-0.2.2/staticfiles/FinalizedResultPage.js +0 -1
- lx_annotate-0.2.2/staticfiles/VideoExamination.css +0 -1
- lx_annotate-0.2.2/staticfiles/VideoExamination.js +0 -1
- lx_annotate-0.2.2/staticfiles/mediaUrls.js +0 -1
- lx_annotate-0.2.2/staticfiles/videoStore.js +0 -1
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/.gitignore +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/LICENSE +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/admin.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/apps.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/asgi.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/celery.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/checks.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/hub/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/hub/hub_export_audit.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/hub/hub_export_cleanup.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/hub/hub_export_jobs.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/hub/hub_export_payloads.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/hub/hub_export_reconciliation.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/hub/hub_export_state.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/hub/hub_export_worker.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/management/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/management/commands/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/management/commands/export_route_manifest.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/management/commands/repair_managed_payloads.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/management/commands/run_filewatcher.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/management/commands/start_filewatcher.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/management/commands/verify_encrypted_storage.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/middleware/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/middleware/lookup_tracker.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0001_initial.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0001_squashed_0001_initial.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0002_export_flags.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0003_patientexaminationreport_report_and_more.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0004_videofile_uuid.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0005_rawpdffile_uuid.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0006_applicationsettings.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0007_pdfprocessinghistory.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0008_imageclassificationannotation_upsert_fields.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0009_patientexamination_draft_updated_at_and_more.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0010_remove_requirementset_reqset_exam_links_and_more.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0011_hub_ingest_metadata.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0012_networknode_transferjob.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0013_remove_legacy_requirement_models.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0014_sensitivemeta_tags_sensitivemeta_validation_comment_and_more.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/0015_uploadjob_content_hash_and_more.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migration_overrides/endoreg_db/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migrations/0001_outboundhubtransferjob.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migrations/0002_outboundhubtransferjob_local_cleanup_fields.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migrations/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/migrations/max_migration.txt +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/models.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/serializers.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/settings/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/settings/config.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/settings/secret_key.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/settings/settings_dev.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/settings/settings_prod.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/settings/settings_test.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/signals.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/AnnotationDashboard-D35JYvrC.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/AnnotationDashboard-DMZZ8ZMX.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/AnnotationDashboard-OeFWLB-b.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/Anonymization-Bd9LTm0-.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/AnonymizationCorrectionComponent-BPyn1Euk.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/AnonymizationCorrectionComponent-CAO-Cg0B.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/AnonymizationOverview-CGBsqOFg.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/AnonymizationOverview-DUuDRweL.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/AnonymizationValidationComponent-BARZClvg.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/AnonymizationValidationComponent-Bd7Ndg-z.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/Dashboard-DsKQzZNG.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/Examination-CeCEv25w.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/PageOverview-B8gUoFeQ.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/PatientAdder-BlwvntXl.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/PatientAdder-CFDJpfd1.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/PatientAdder-DOhN0oE-.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/PatientOverview-C7XuyKPN.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/PatientOverview-oorWuJjf.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/Profil-lke9QkYz.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/ReportGenerator-DJn6kaoO.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/RequirementGenerator-BC9a09T1.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/RequirementGenerator-CeDfg9J_.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/Timeline-CMheelus.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/Timeline-DA5RpACe.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/UeberUns-DnTs7q1V.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/Validierung-Bobt4Qg1.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/Validierung-u-u0EBv0.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/VideoExamination-B8b7SxA_.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/VideoExamination-DdMsVSAF.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/autocomplete.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/base.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/changelists.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/dark_mode.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/dashboard.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/forms.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/login.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/nav_sidebar.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/responsive.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/responsive_rtl.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/rtl.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/unusable_password_field.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/vendor/select2/LICENSE-SELECT2.md +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/vendor/select2/select2.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/vendor/select2/select2.min.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/css/widgets.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/LICENSE +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/README.txt +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/calendar-icons.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/gis/move_vertex_off.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/gis/move_vertex_on.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-addlink.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-alert.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-calendar.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-changelink.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-clock.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-deletelink.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-hidelink.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-no.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-unknown-alt.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-unknown.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-viewlink.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/icon-yes.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/inline-delete.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/search.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/selector-icons.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/sorting-icons.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/tooltag-add.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/img/tooltag-arrowright.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/SelectBox.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/SelectFilter2.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/actions.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/admin/DateTimeShortcuts.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/admin/RelatedObjectLookups.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/autocomplete.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/calendar.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/cancel.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/change_form.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/core.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/filters.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/inlines.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/jquery.init.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/nav_sidebar.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/popup_response.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/prepopulate.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/prepopulate_init.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/theme.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/unusable_password_field.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/urlify.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/jquery/LICENSE.txt +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/jquery/jquery.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/jquery/jquery.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/LICENSE.md +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/af.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ar.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/az.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/bg.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/bn.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/bs.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ca.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/cs.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/da.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/de.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/dsb.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/el.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/en.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/es.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/et.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/eu.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/fa.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/fi.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/fr.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/gl.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/he.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/hi.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/hr.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/hsb.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/hu.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/hy.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/id.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/is.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/it.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ja.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ka.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/km.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ko.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/lt.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/lv.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/mk.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ms.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/nb.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ne.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/nl.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/pl.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ps.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/pt-BR.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/pt.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ro.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/ru.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/sk.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/sl.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/sq.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/sr-Cyrl.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/sr.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/sv.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/th.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/tk.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/tr.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/uk.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/vi.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/zh-CN.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/i18n/zh-TW.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/select2.full.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/select2/select2.full.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/xregexp/LICENSE.txt +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/xregexp/xregexp.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/admin/js/vendor/xregexp/xregexp.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/annotationStore-DEHKjdKh.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/AnnotationDashboard-D35JYvrC.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/AnnotationDashboard-DMZZ8ZMX.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/AnnotationDashboard-OeFWLB-b.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/Anonymization-Bd9LTm0-.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/AnonymizationCorrectionComponent-BPyn1Euk.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/AnonymizationCorrectionComponent-CAO-Cg0B.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/AnonymizationOverview-CGBsqOFg.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/AnonymizationOverview-DUuDRweL.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/AnonymizationValidationComponent-BARZClvg.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/AnonymizationValidationComponent-Bd7Ndg-z.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/Dashboard-DsKQzZNG.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/Examination-CeCEv25w.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/PageOverview-B8gUoFeQ.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/PatientAdder-BlwvntXl.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/PatientAdder-CFDJpfd1.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/PatientAdder-DOhN0oE-.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/PatientOverview-C7XuyKPN.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/PatientOverview-oorWuJjf.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/Profil-lke9QkYz.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/ReportGenerator-DJn6kaoO.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/RequirementGenerator-BC9a09T1.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/RequirementGenerator-CeDfg9J_.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/Timeline-CMheelus.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/Timeline-DA5RpACe.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/UeberUns-DnTs7q1V.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/Validierung-Bobt4Qg1.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/Validierung-u-u0EBv0.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/VideoExamination-B8b7SxA_.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/VideoExamination-DdMsVSAF.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/annotationStore-DEHKjdKh.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/authStore-w8taChNC.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/base.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/css/material-dashboard.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/css/material-dashboard.css.map +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/css/material-dashboard.min.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/css/nucleo-icons.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/css/nucleo-svg.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/fonts/nucleo-icons.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/fonts/nucleo-icons.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/fonts/nucleo-icons.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/fonts/nucleo-icons.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/fonts/nucleo-icons.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/fonts/nucleo.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/fonts/nucleo.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/fonts/nucleo.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/fonts/nucleo.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/core/bootstrap.bundle.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/core/bootstrap.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/core/popper.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/material-dashboard.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/material-dashboard.js.map +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/material-dashboard.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/Chart.extension.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/bootstrap-notify.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/chartjs.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/countup.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/get_annotations.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/perfect-scrollbar.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/random-name-generator.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/smooth-scrollbar.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/submission-handler.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/js/plugins/world.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/logo.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/main-DGGk9Vng.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/main-DethiONo.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/main.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/mediaTypeStore-D6KIykKn.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/nucleo-icons-BgnVbBvX.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/nucleo-icons-BuEzPWOc.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/nucleo-icons-C6OFysxg.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/nucleo-icons-CTnIBWcu.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/nucleo-icons-kNTzvw2K.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/patientStore-BazAFCNw.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_alert.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_avatars.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_breadcrumbs.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_cards.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_dark-version.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_dropdown.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_dropup.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_fixed-plugin.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_footer.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_gradients.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_header.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_icons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_info-areas.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_misc.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_nav.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_navbar-vertical.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_navbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_popovers.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_progress.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_ripple.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_rtl.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_social-buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_tables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_tilt.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_timeline.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_tooltips.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_typography.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_utilities-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/_variables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_accordion.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_alert.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_breadcrumb.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_button-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_card.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_carousel.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_close.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_containers.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_dropdown.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_functions.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_grid.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_helpers.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_images.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_list-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_maps.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_mixins.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_modal.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_nav.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_navbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_offcanvas.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_placeholders.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_popover.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_progress.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_reboot.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_root.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_spinners.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_tables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_toasts.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_tooltip.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_transitions.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_type.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/_variables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/bootstrap-grid.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/bootstrap-reboot.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/bootstrap-utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/bootstrap.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/forms/_floating-labels.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/forms/_form-check.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/forms/_form-control.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/forms/_form-range.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/forms/_form-select.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/forms/_form-text.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/forms/_input-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/forms/_labels.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/forms/_validation.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_clearfix.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_color-bg.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_colored-links.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_position.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_ratio.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_stacks.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_stretched-link.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_text-truncation.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_visually-hidden.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/helpers/_vr.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_alert.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_backdrop.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_banner.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_border-radius.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_box-shadow.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_breakpoints.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_caret.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_clearfix.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_color-scheme.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_container.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_deprecate.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_gradients.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_grid.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_image.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_list-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_lists.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_reset-text.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_resize.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_table-variants.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_text-truncate.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_transition.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/mixins/_visually-hidden.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/utilities/_api.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/bootstrap/vendor/_rfs.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/cards/card-background.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/cards/card-rotate.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/custom/_styles.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/custom/_variables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/forms/_form-check.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/forms/_form-select.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/forms/_form-switch.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/forms/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/forms/_input-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/forms/_inputs.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/forms/_labels.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/mixins/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/mixins/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/mixins/_colored-shadows.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/mixins/_hover.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/mixins/_social-buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/mixins/_vendor.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/mixins/mixins.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/plugins/free/_flatpickr.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/plugins/free/_nouislider.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/plugins/free/_perfect-scrollbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/plugins/free/_prism.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/plugins/free/plugins.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/theme.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_animations.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_avatars.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_breadcrumb.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_cards-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_cards.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_choices.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_dark-version.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_dropdowns.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_fixed-plugin.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_form-switch.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_full-calendar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_header.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_info-areas.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_misc-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_misc.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_navbar-vertical.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_navbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_ripple.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_rtl.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_social-buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_table.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_timeline.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_utilities-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard/variables/_virtual-reality.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/scss/material-dashboard.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/usePollingProtection-5vxQa-Ko.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/assets/videoStore-ClqdABXQ.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/authStore-w8taChNC.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/base.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/css/material-dashboard.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/css/material-dashboard.css.map +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/css/material-dashboard.min.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/css/nucleo-icons.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/css/nucleo-svg.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/django_extensions/css/jquery.autocomplete.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/django_extensions/img/indicator.gif +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/django_extensions/js/jquery.ajaxQueue.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/django_extensions/js/jquery.autocomplete.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/django_extensions/js/jquery.bgiframe.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/fonts/nucleo-icons.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/fonts/nucleo-icons.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/fonts/nucleo-icons.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/fonts/nucleo-icons.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/fonts/nucleo-icons.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/fonts/nucleo.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/fonts/nucleo.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/fonts/nucleo.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/fonts/nucleo.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/ColoReg.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/Universitaetsklinikum_Wuerzburg.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/ag_lux_logo_light_grey.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/apple-icon.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/bg-pricing.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/bg-smart-home-1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/bg-smart-home-2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/bruce-mars.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/down-arrow-dark.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/down-arrow-white.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/down-arrow.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/drake.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/favicon.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/frames_demo/frame1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/frames_demo/frame2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/frames_demo/frame3.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/frames_demo/frame4.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/home-decor-1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/home-decor-2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/home-decor-3.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/icons/flags/AU.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/icons/flags/BR.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/icons/flags/DE.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/icons/flags/GB.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/icons/flags/US.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/chat.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/danger-chat-ill.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/dark-lock-ill.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/error-404.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/error-500.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/illustration-lock.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/illustration-reset.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/illustration-signin.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/illustration-signup.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/illustration-verification.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/lock.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/pattern-tree.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/illustrations/rocket-white.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/ivana-square.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/ivana-squares.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/ivancik.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/kal-visuals-square.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logo-ct-dark.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logo-ct.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/ag_lux_logo_light_grey.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/ag_lux_logo_white.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/gray-logos/logo-coinbase.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/gray-logos/logo-nasa.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/gray-logos/logo-netflix.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/gray-logos/logo-pinterest.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/gray-logos/logo-spotify.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/gray-logos/logo-vodafone.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/mastercard.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/logos/visa.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/marie.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/meeting.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/office-dark.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/product-12.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-1-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-11.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-2-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-3-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-4-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-5-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-6-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-7-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-details-1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-details-2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-details-3.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-details-4.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/products/product-details-5.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/shapes/pattern-lines.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/shapes/waves-white.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/bootstrap.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/creative-tim.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/devto.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/github.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/google-webdev.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/icon-bulb.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/icon-sun-cloud.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/logo-asana.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/logo-atlassian.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/logo-invision.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/logo-jira.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/logo-slack.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/logo-spotify.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/small-logos/logo-xd.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/team-1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/team-2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/team-3.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/team-4.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/team-5.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/tesla-model-s.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/img/vr-bg.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/core/bootstrap.bundle.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/core/bootstrap.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/core/popper.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/material-dashboard.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/material-dashboard.js.map +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/material-dashboard.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/Chart.extension.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/bootstrap-notify.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/chartjs.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/countup.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/get_annotations.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/perfect-scrollbar.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/random-name-generator.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/smooth-scrollbar.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/submission-handler.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/js/plugins/world.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/logo.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/main-DGGk9Vng.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/main-DethiONo.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/main.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/mediaTypeStore-D6KIykKn.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/modeltranslation/css/tabbed_translation_fields.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/modeltranslation/js/clearable_inputs.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/modeltranslation/js/force_jquery.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/modeltranslation/js/tabbed_translation_fields.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/nucleo-icons-BgnVbBvX.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/nucleo-icons-BuEzPWOc.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/nucleo-icons-C6OFysxg.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/nucleo-icons-CTnIBWcu.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/nucleo-icons-kNTzvw2K.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/patientStore-BazAFCNw.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/css/bootstrap-theme.min.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/css/bootstrap-theme.min.css.map +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/css/bootstrap-tweaks.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/css/bootstrap.min.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/css/bootstrap.min.css.map +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/css/default.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/css/font-awesome-4.0.3.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/css/prettify.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/docs/css/base.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/docs/css/highlight.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/docs/css/jquery.json-view.min.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/docs/img/favicon.ico +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/docs/img/grid.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/docs/js/api.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/docs/js/highlight.pack.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/docs/js/jquery.json-view.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/fonts/fontawesome-webfont.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/fonts/fontawesome-webfont.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/fonts/fontawesome-webfont.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/fonts/fontawesome-webfont.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/fonts/glyphicons-halflings-regular.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/fonts/glyphicons-halflings-regular.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/fonts/glyphicons-halflings-regular.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/fonts/glyphicons-halflings-regular.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/img/glyphicons-halflings-white.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/img/glyphicons-halflings.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/img/grid.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/js/ajax-form.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/js/bootstrap.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/js/coreapi-0.1.1.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/js/csrf.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/js/default.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/js/jquery-3.7.1.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/js/load-ajax-form.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/rest_framework/js/prettify-min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_alert.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_avatars.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_breadcrumbs.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_cards.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_dark-version.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_dropdown.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_dropup.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_fixed-plugin.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_footer.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_gradients.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_header.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_icons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_info-areas.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_misc.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_nav.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_navbar-vertical.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_navbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_popovers.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_progress.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_ripple.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_rtl.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_social-buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_tables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_tilt.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_timeline.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_tooltips.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_typography.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_utilities-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/_variables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_accordion.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_alert.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_breadcrumb.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_button-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_card.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_carousel.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_close.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_containers.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_dropdown.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_functions.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_grid.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_helpers.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_images.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_list-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_maps.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_mixins.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_modal.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_nav.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_navbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_offcanvas.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_placeholders.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_popover.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_progress.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_reboot.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_root.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_spinners.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_tables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_toasts.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_tooltip.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_transitions.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_type.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/_variables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/bootstrap-grid.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/bootstrap-reboot.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/bootstrap-utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/bootstrap.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/forms/_floating-labels.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/forms/_form-check.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/forms/_form-control.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/forms/_form-range.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/forms/_form-select.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/forms/_form-text.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/forms/_input-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/forms/_labels.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/forms/_validation.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_clearfix.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_color-bg.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_colored-links.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_position.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_ratio.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_stacks.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_stretched-link.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_text-truncation.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_visually-hidden.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/helpers/_vr.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_alert.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_backdrop.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_banner.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_border-radius.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_box-shadow.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_breakpoints.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_caret.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_clearfix.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_color-scheme.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_container.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_deprecate.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_gradients.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_grid.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_image.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_list-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_lists.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_reset-text.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_resize.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_table-variants.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_text-truncate.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_transition.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/mixins/_visually-hidden.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/utilities/_api.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/bootstrap/vendor/_rfs.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/cards/card-background.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/cards/card-rotate.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/custom/_styles.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/custom/_variables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/forms/_form-check.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/forms/_form-select.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/forms/_form-switch.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/forms/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/forms/_input-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/forms/_inputs.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/forms/_labels.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/mixins/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/mixins/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/mixins/_colored-shadows.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/mixins/_hover.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/mixins/_social-buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/mixins/_vendor.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/mixins/mixins.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/plugins/free/_flatpickr.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/plugins/free/_nouislider.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/plugins/free/_perfect-scrollbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/plugins/free/_prism.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/plugins/free/plugins.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/theme.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_animations.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_avatars.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_breadcrumb.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_cards-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_cards.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_choices.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_dark-version.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_dropdowns.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_fixed-plugin.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_form-switch.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_full-calendar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_header.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_info-areas.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_misc-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_misc.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_navbar-vertical.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_navbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_ripple.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_rtl.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_social-buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_table.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_timeline.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_utilities-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard/variables/_virtual-reality.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/scss/material-dashboard.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/silent-check-sso.html +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/usePollingProtection-5vxQa-Ko.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/static/videoStore-ClqdABXQ.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/storage/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/storage/encrypted.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/storage/encryption.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/tasks.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/templates/base.html +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/urls.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/views/__init__.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/views/hub_export.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/lx_annotate/wsgi.py +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/AboutUs.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/AnnotationDashboard.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/AnnotationDashboard.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/AnnotationDashboard2.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/AnonymizationOverview.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/AnonymizationValidationComponent.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/AnonymizationValidationComponent.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ApplicationSettingsPage.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ApplicationSettingsPage.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/CaseResolutionPage.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/CaseSetupPage.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ColoReg.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/Dashboard.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/Documentation.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/Documentation.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/Export.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/FindingsCapturePage.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/FindingsCapturePage.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/FrameAnnotation.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/FrameAnnotation.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/FrameSelectorPage.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/FrameSelectorPage.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/HubExport.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/HubExport.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ModelTrainingPage.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ModelTrainingPage.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/PageOverview.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/PageOverview.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/PatientOverview.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/PatientOverview.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/Profile.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ReportEditorPage.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ReportTemplateBuilderPage.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ReportingShell.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ReportingShell.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/ReportingWorklistPage.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/Timeline.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/Timeline.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/applicationSettingsApi.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/base.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/css/material-dashboard.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/css/material-dashboard.css.map +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/css/material-dashboard.min.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/css/nucleo-icons.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/css/nucleo-svg.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/fonts/nucleo-icons.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/fonts/nucleo-icons.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/fonts/nucleo-icons.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/fonts/nucleo-icons.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/fonts/nucleo-icons.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/fonts/nucleo.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/fonts/nucleo.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/fonts/nucleo.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/fonts/nucleo.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/core/bootstrap.bundle.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/core/bootstrap.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/core/popper.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/material-dashboard.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/material-dashboard.js.map +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/material-dashboard.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/Chart.extension.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/bootstrap-notify.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/chartjs.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/countup.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/get_annotations.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/perfect-scrollbar.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/random-name-generator.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/smooth-scrollbar.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/submission-handler.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/js/plugins/world.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/logo.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/main.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_alert.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_avatars.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_breadcrumbs.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_cards.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_dark-version.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_dropdown.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_dropup.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_fixed-plugin.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_footer.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_gradients.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_header.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_icons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_info-areas.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_misc.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_nav.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_navbar-vertical.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_navbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_popovers.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_progress.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_ripple.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_rtl.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_social-buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_tables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_tilt.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_timeline.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_tooltips.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_typography.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_utilities-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/_variables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_accordion.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_alert.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_breadcrumb.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_button-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_card.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_carousel.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_close.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_containers.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_dropdown.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_functions.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_grid.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_helpers.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_images.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_list-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_maps.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_mixins.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_modal.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_nav.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_navbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_offcanvas.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_placeholders.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_popover.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_progress.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_reboot.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_root.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_spinners.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_tables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_toasts.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_tooltip.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_transitions.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_type.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/_variables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/bootstrap-grid.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/bootstrap-reboot.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/bootstrap-utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/bootstrap.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/forms/_floating-labels.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/forms/_form-check.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/forms/_form-control.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/forms/_form-range.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/forms/_form-select.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/forms/_form-text.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/forms/_input-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/forms/_labels.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/forms/_validation.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_clearfix.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_color-bg.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_colored-links.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_position.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_ratio.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_stacks.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_stretched-link.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_text-truncation.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_visually-hidden.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/helpers/_vr.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_alert.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_backdrop.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_banner.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_border-radius.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_box-shadow.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_breakpoints.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_caret.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_clearfix.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_color-scheme.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_container.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_deprecate.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_gradients.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_grid.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_image.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_list-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_lists.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_reset-text.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_resize.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_table-variants.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_text-truncate.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_transition.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/mixins/_visually-hidden.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/utilities/_api.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/bootstrap/vendor/_rfs.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/cards/card-background.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/cards/card-rotate.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/custom/_styles.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/custom/_variables.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/forms/_form-check.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/forms/_form-select.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/forms/_form-switch.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/forms/_forms.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/forms/_input-group.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/forms/_inputs.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/forms/_labels.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/mixins/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/mixins/_buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/mixins/_colored-shadows.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/mixins/_hover.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/mixins/_social-buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/mixins/_vendor.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/mixins/mixins.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/plugins/free/_flatpickr.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/plugins/free/_nouislider.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/plugins/free/_perfect-scrollbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/plugins/free/_prism.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/plugins/free/plugins.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/theme.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_animations.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_avatars.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_badge.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_breadcrumb.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_cards-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_cards.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_choices.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_dark-version.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_dropdowns.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_fixed-plugin.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_form-switch.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_full-calendar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_header.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_info-areas.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_misc-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_misc.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_navbar-vertical.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_navbar.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_pagination.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_ripple.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_rtl.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_social-buttons.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_table.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_timeline.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_utilities-extend.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_utilities.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard/variables/_virtual-reality.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/assets/scss/material-dashboard.scss +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/dateHelpers.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/examinationStore.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/findingsApi.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/Universitaetsklinikum_Wuerzburg.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/ag_lux_logo_light_grey.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/apple-icon.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/bg-pricing.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/bg-smart-home-1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/bg-smart-home-2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/bruce-mars.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/down-arrow-dark.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/down-arrow-white.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/down-arrow.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/drake.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/favicon.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/frames_demo/frame1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/frames_demo/frame2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/frames_demo/frame3.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/frames_demo/frame4.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/home-decor-1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/home-decor-2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/home-decor-3.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/icons/flags/AU.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/icons/flags/BR.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/icons/flags/DE.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/icons/flags/GB.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/icons/flags/US.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/chat.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/danger-chat-ill.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/dark-lock-ill.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/error-404.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/error-500.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/illustration-lock.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/illustration-reset.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/illustration-signin.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/illustration-signup.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/illustration-verification.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/lock.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/pattern-tree.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/illustrations/rocket-white.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/ivana-square.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/ivana-squares.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/ivancik.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/kal-visuals-square.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logo-ct-dark.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logo-ct.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/ag_lux_logo_light_grey.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/ag_lux_logo_white.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/gray-logos/logo-coinbase.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/gray-logos/logo-nasa.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/gray-logos/logo-netflix.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/gray-logos/logo-pinterest.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/gray-logos/logo-spotify.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/gray-logos/logo-vodafone.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/mastercard.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/logos/visa.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/marie.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/meeting.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/office-dark.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/product-12.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-1-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-11.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-2-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-3-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-4-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-5-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-6-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-7-min.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-details-1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-details-2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-details-3.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-details-4.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/products/product-details-5.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/shapes/pattern-lines.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/shapes/waves-white.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/bootstrap.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/creative-tim.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/devto.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/github.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/google-webdev.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/icon-bulb.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/icon-sun-cloud.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/logo-asana.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/logo-atlassian.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/logo-invision.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/logo-jira.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/logo-slack.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/logo-spotify.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/small-logos/logo-xd.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/team-1.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/team-2.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/team-3.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/team-4.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/team-5.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/tesla-model-s.png +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/img/vr-bg.jpg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/index.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/main.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/mediaTypeStore.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/nucleo-icons.eot +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/nucleo-icons.svg +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/nucleo-icons.ttf +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/nucleo-icons.woff +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/nucleo-icons.woff2 +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/patientExaminationStore.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/patientStore.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/pdf.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/pdf.worker.min.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/pdf.worker.min.mjs +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/reportTemplatesApi.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/silent-check-sso.html +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/timeHelpers.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/useDebug.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/useFindingSelectors.js +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/useReportTemplates.css +0 -0
- {lx_annotate-0.2.2 → lx_annotate-0.2.3}/staticfiles/useReportTemplates.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lx-annotate
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: This webapp provides a frontend interface for pseudonymizing and annotating data and applying AI predictions.
|
|
5
5
|
Author-email: Max Hild <maxhild10@gmail.com>, "Thomas J. Lux" <lux_t1@ukw.de>
|
|
6
6
|
Maintainer: Hamza Zahid, Peter Kowalczyk
|
|
@@ -31,9 +31,8 @@ Requires-Dist: django-webpack-loader>=0.7.0
|
|
|
31
31
|
Requires-Dist: django==6.0.3
|
|
32
32
|
Requires-Dist: djangorestframework>=3.12.4
|
|
33
33
|
Requires-Dist: drf-spectacular>=0.28.0
|
|
34
|
-
Requires-Dist: endoreg-db==0.9.
|
|
34
|
+
Requires-Dist: endoreg-db==0.9.5.1
|
|
35
35
|
Requires-Dist: gunicorn>=23.0.0
|
|
36
|
-
Requires-Dist: lx-anonymizer==0.9.0.9
|
|
37
36
|
Requires-Dist: lx-dtypes==0.1.4
|
|
38
37
|
Requires-Dist: mozilla-django-oidc>=4.0.1
|
|
39
38
|
Requires-Dist: mypy>=1.18.2
|
|
@@ -222,7 +221,7 @@ deployment requirements for LuxNix and host environments:
|
|
|
222
221
|
`central_hub`, `site_node`, `standalone`
|
|
223
222
|
- for `central_hub`, require authenticated API uploads with declared
|
|
224
223
|
`center_key`; do not rely on default-center fallback for API ingest
|
|
225
|
-
- keep `STORAGE_DIR`
|
|
224
|
+
- keep `STORAGE_DIR` inside
|
|
226
225
|
`LX_ANNOTATE_ENCRYPTED_DATA_DIR`
|
|
227
226
|
- run package migrations during upgrade so upload-job and content-hash lifecycle
|
|
228
227
|
changes are active
|
|
@@ -322,7 +321,7 @@ Current runtime path roles:
|
|
|
322
321
|
- `LX_ANNOTATE_DATA_DIR`: compatibility alias for the same root
|
|
323
322
|
- `DATA_DIR`: legacy compatibility alias for the same root
|
|
324
323
|
- `STORAGE_DIR`: managed storage subtree, usually `${LX_ANNOTATE_ENCRYPTED_DATA_DIR}/storage`
|
|
325
|
-
|
|
324
|
+
|
|
326
325
|
|
|
327
326
|
New deployment code should anchor path derivation on
|
|
328
327
|
`LX_ANNOTATE_ENCRYPTED_DATA_DIR` and treat the other variables as derived paths
|
|
@@ -136,7 +136,7 @@ deployment requirements for LuxNix and host environments:
|
|
|
136
136
|
`central_hub`, `site_node`, `standalone`
|
|
137
137
|
- for `central_hub`, require authenticated API uploads with declared
|
|
138
138
|
`center_key`; do not rely on default-center fallback for API ingest
|
|
139
|
-
- keep `STORAGE_DIR`
|
|
139
|
+
- keep `STORAGE_DIR` inside
|
|
140
140
|
`LX_ANNOTATE_ENCRYPTED_DATA_DIR`
|
|
141
141
|
- run package migrations during upgrade so upload-job and content-hash lifecycle
|
|
142
142
|
changes are active
|
|
@@ -236,7 +236,7 @@ Current runtime path roles:
|
|
|
236
236
|
- `LX_ANNOTATE_DATA_DIR`: compatibility alias for the same root
|
|
237
237
|
- `DATA_DIR`: legacy compatibility alias for the same root
|
|
238
238
|
- `STORAGE_DIR`: managed storage subtree, usually `${LX_ANNOTATE_ENCRYPTED_DATA_DIR}/storage`
|
|
239
|
-
|
|
239
|
+
|
|
240
240
|
|
|
241
241
|
New deployment code should anchor path derivation on
|
|
242
242
|
`LX_ANNOTATE_ENCRYPTED_DATA_DIR` and treat the other variables as derived paths
|
|
@@ -16,41 +16,42 @@ from pathlib import Path
|
|
|
16
16
|
from typing import Iterator, Set
|
|
17
17
|
|
|
18
18
|
import requests
|
|
19
|
-
from watchdog.events import
|
|
19
|
+
from watchdog.events import (
|
|
20
|
+
DirCreatedEvent,
|
|
21
|
+
FileCreatedEvent,
|
|
22
|
+
FileMovedEvent,
|
|
23
|
+
FileSystemEventHandler,
|
|
24
|
+
DirMovedEvent,
|
|
25
|
+
)
|
|
20
26
|
from watchdog.observers import Observer
|
|
21
|
-
|
|
27
|
+
from django.db.models.fields.files import FieldFile
|
|
22
28
|
from endoreg_db.models import Center, EndoscopyProcessor, VideoFile
|
|
23
29
|
from endoreg_db.services.environment_readiness import assert_environment_readiness
|
|
24
30
|
from endoreg_db.services.hub.ingest import (
|
|
25
31
|
process_preanonymized_watcher_file,
|
|
26
32
|
process_watcher_file,
|
|
33
|
+
UploadProvenance,
|
|
27
34
|
)
|
|
28
|
-
|
|
29
|
-
data_paths,
|
|
30
|
-
WATCHER_VIDEO_DROP_DIR,
|
|
31
|
-
WATCHER_REPORT_DROP_DIR,
|
|
32
|
-
)
|
|
35
|
+
import endoreg_db.utils.paths as path_utils
|
|
33
36
|
from endoreg_db.utils.storage import ensure_local_file
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
project_root = root_data_paths["project_root"]
|
|
39
|
-
except (ImportError, ModuleNotFoundError, KeyError):
|
|
40
|
-
project_root = Path(__file__).resolve().parent.parent
|
|
41
|
-
|
|
42
|
-
PROJECT_ROOT = Path(project_root)
|
|
43
|
-
RUNTIME_DATA_DIR = Path(
|
|
44
|
-
os.getenv(
|
|
45
|
-
"LX_ANNOTATE_ENCRYPTED_DATA_DIR",
|
|
46
|
-
os.getenv(
|
|
47
|
-
"LX_ANNOTATE_DATA_DIR",
|
|
48
|
-
os.getenv("DATA_DIR", "/var/lib/lx-annotate/data"),
|
|
49
|
-
),
|
|
50
|
-
)
|
|
37
|
+
from endoreg_db.exceptions import InsufficientStorageError
|
|
38
|
+
from endoreg_db.models.media.video.create_from_file import (
|
|
39
|
+
check_storage_capacity,
|
|
51
40
|
)
|
|
52
|
-
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
LOG_DIR = path_utils.LOG_DIR
|
|
53
44
|
LOG_DIR.mkdir(parents=True, exist_ok=True)
|
|
45
|
+
MANAGED_VAULT_ROOT = path_utils.STORAGE_DIR.resolve()
|
|
46
|
+
|
|
47
|
+
INTAKE_VIDEO_DIR = path_utils.WATCHER_VIDEO_DROP_DIR
|
|
48
|
+
INTAKE_REPORT_DIR = path_utils.WATCHER_REPORT_DROP_DIR
|
|
49
|
+
INTAKE_PREANONYMIZED_DIR = path_utils.WATCHER_PREANONYMIZED_DROP_DIR
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
storage_root_global = path_utils.STORAGE_DIR
|
|
53
|
+
storage_root_report_sensitive = path_utils.SENSITIVE_REPORT_DIR
|
|
54
|
+
storage_root_video_sensitive = path_utils.SENSITIVE_VIDEO_DIR
|
|
54
55
|
|
|
55
56
|
|
|
56
57
|
def _setup_ffmpeg() -> None:
|
|
@@ -93,21 +94,6 @@ logging.getLogger("watchdog.observers.inotify_buffer").setLevel(logging.WARNING)
|
|
|
93
94
|
logger = logging.getLogger(__name__)
|
|
94
95
|
|
|
95
96
|
|
|
96
|
-
def _resolve_intake_dir(env_name: str, data_paths_key: str) -> Path:
|
|
97
|
-
configured = os.getenv(env_name, "").strip()
|
|
98
|
-
if configured:
|
|
99
|
-
return Path(configured).expanduser().resolve()
|
|
100
|
-
return data_paths[data_paths_key].resolve()
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
INTAKE_VIDEO_DIR = WATCHER_VIDEO_DROP_DIR
|
|
104
|
-
INTAKE_REPORT_DIR = WATCHER_REPORT_DROP_DIR
|
|
105
|
-
INTAKE_PREANONYMIZED_DIR = _resolve_intake_dir(
|
|
106
|
-
"WATCHER_PREANONYMIZED_DIR", "import_preanonymized"
|
|
107
|
-
)
|
|
108
|
-
MANAGED_VAULT_ROOT = RUNTIME_DATA_DIR.resolve()
|
|
109
|
-
|
|
110
|
-
|
|
111
97
|
def _is_relative_to(path: Path, root: Path) -> bool:
|
|
112
98
|
try:
|
|
113
99
|
path.resolve().relative_to(root.resolve())
|
|
@@ -136,7 +122,7 @@ def is_managed_vault_path(path: str | Path) -> bool:
|
|
|
136
122
|
|
|
137
123
|
|
|
138
124
|
def iter_storage_chunks(
|
|
139
|
-
field_file, *, chunk_size: int = 1024 * 1024
|
|
125
|
+
field_file: FieldFile, *, chunk_size: int = 1024 * 1024
|
|
140
126
|
) -> Iterator[bytes]:
|
|
141
127
|
"""
|
|
142
128
|
Yield managed-media bytes through Django's storage API.
|
|
@@ -153,7 +139,9 @@ def iter_storage_chunks(
|
|
|
153
139
|
|
|
154
140
|
|
|
155
141
|
@contextmanager
|
|
156
|
-
def managed_media_temp_path(
|
|
142
|
+
def managed_media_temp_path(
|
|
143
|
+
field_file: FieldFile, *, suffix: str | None = None
|
|
144
|
+
) -> Iterator[Path]:
|
|
157
145
|
"""
|
|
158
146
|
Materialize managed media into a short-lived plaintext temp file.
|
|
159
147
|
|
|
@@ -361,11 +349,11 @@ class AutoProcessingHandler(FileSystemEventHandler):
|
|
|
361
349
|
|
|
362
350
|
super().dispatch(event)
|
|
363
351
|
|
|
364
|
-
def on_created(self, event):
|
|
352
|
+
def on_created(self, event: DirCreatedEvent | FileCreatedEvent):
|
|
365
353
|
if isinstance(event, FileCreatedEvent) and not event.is_directory:
|
|
366
354
|
self._submit_file(str(event.src_path))
|
|
367
355
|
|
|
368
|
-
def on_moved(self, event) -> None:
|
|
356
|
+
def on_moved(self, event: DirMovedEvent | FileMovedEvent) -> None:
|
|
369
357
|
if isinstance(event, FileMovedEvent) and not event.is_directory:
|
|
370
358
|
self._submit_file(str(event.dest_path))
|
|
371
359
|
|
|
@@ -419,8 +407,7 @@ class AutoProcessingHandler(FileSystemEventHandler):
|
|
|
419
407
|
logger.debug("Parent: %s", parent_dir)
|
|
420
408
|
|
|
421
409
|
if (
|
|
422
|
-
parent_dir ==
|
|
423
|
-
and parent_dir == INTAKE_VIDEO_DIR
|
|
410
|
+
parent_dir == INTAKE_VIDEO_DIR
|
|
424
411
|
and file_extension in self.video_extensions
|
|
425
412
|
):
|
|
426
413
|
logger.info("New video detected: %s", path)
|
|
@@ -481,15 +468,7 @@ class AutoProcessingHandler(FileSystemEventHandler):
|
|
|
481
468
|
)
|
|
482
469
|
|
|
483
470
|
try:
|
|
484
|
-
|
|
485
|
-
from endoreg_db.models.media.video.create_from_file import (
|
|
486
|
-
check_storage_capacity,
|
|
487
|
-
)
|
|
488
|
-
|
|
489
|
-
storage_root = os.getenv(
|
|
490
|
-
"DJANGO_DATA_DIR", str(RUNTIME_DATA_DIR / "videos")
|
|
491
|
-
)
|
|
492
|
-
check_storage_capacity(video_path, Path(storage_root))
|
|
471
|
+
check_storage_capacity(video_path, Path(storage_root_global))
|
|
493
472
|
except InsufficientStorageError as storage_error:
|
|
494
473
|
logger.error(
|
|
495
474
|
"Insufficient storage space for %s: %s",
|
|
@@ -514,7 +493,7 @@ class AutoProcessingHandler(FileSystemEventHandler):
|
|
|
514
493
|
)
|
|
515
494
|
video_hash = str(getattr(upload_job, "content_hash", "") or "").strip()
|
|
516
495
|
if not video_hash:
|
|
517
|
-
provenance = (
|
|
496
|
+
provenance: UploadProvenance = (
|
|
518
497
|
getattr(upload_job, "processing_provenance", None) or {}
|
|
519
498
|
)
|
|
520
499
|
video_hash = str(provenance.get("content_hash", "")).strip()
|
|
@@ -623,14 +602,7 @@ class AutoProcessingHandler(FileSystemEventHandler):
|
|
|
623
602
|
)
|
|
624
603
|
|
|
625
604
|
try:
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
storage_root = os.getenv(
|
|
629
|
-
"report_STORAGE_ROOT", str(RUNTIME_DATA_DIR / "reports")
|
|
630
|
-
)
|
|
631
|
-
storage_root_path = Path(storage_root)
|
|
632
|
-
if not storage_root_path.is_absolute():
|
|
633
|
-
storage_root_path = PROJECT_ROOT / storage_root_path
|
|
605
|
+
storage_root_path = storage_root_report_sensitive
|
|
634
606
|
storage_root_path.mkdir(parents=True, exist_ok=True)
|
|
635
607
|
if not storage_root_path.exists():
|
|
636
608
|
raise InsufficientStorageError(
|
|
@@ -644,7 +616,7 @@ class AutoProcessingHandler(FileSystemEventHandler):
|
|
|
644
616
|
center=source_center,
|
|
645
617
|
source_system="watcher",
|
|
646
618
|
)
|
|
647
|
-
if upload_job.
|
|
619
|
+
if upload_job.is_complete:
|
|
648
620
|
logger.info(
|
|
649
621
|
"Report imported through shared hub ingest: %s",
|
|
650
622
|
upload_job.id,
|
|
@@ -845,7 +817,7 @@ class FileWatcherService:
|
|
|
845
817
|
self.observer.start()
|
|
846
818
|
|
|
847
819
|
try:
|
|
848
|
-
storage_root =
|
|
820
|
+
storage_root = storage_root_global
|
|
849
821
|
if storage_root.exists():
|
|
850
822
|
total, used, free = shutil.disk_usage(storage_root)
|
|
851
823
|
free_gb = free / (1024**3)
|
|
@@ -867,6 +839,5 @@ class FileWatcherService:
|
|
|
867
839
|
|
|
868
840
|
def run_file_watcher() -> None:
|
|
869
841
|
logger.info("Starting File Watcher Service")
|
|
870
|
-
logger.info("Project root: %s", PROJECT_ROOT)
|
|
871
842
|
logger.info("Django settings: %s", os.environ.get("DJANGO_SETTINGS_MODULE"))
|
|
872
843
|
FileWatcherService().start()
|
|
@@ -38,7 +38,6 @@ XDG_DATA_HOME = Path(os.getenv("XDG_DATA_HOME", Path.home() / ".local" / "share"
|
|
|
38
38
|
APP_DATA_DIR = _resolve_runtime_data_dir()
|
|
39
39
|
APP_DATA_DIR.mkdir(parents=True, exist_ok=True)
|
|
40
40
|
APP_STORAGE_DIR = APP_DATA_DIR / "storage"
|
|
41
|
-
APP_IO_DIR = APP_DATA_DIR
|
|
42
41
|
APP_STORAGE_DIR.mkdir(parents=True, exist_ok=True)
|
|
43
42
|
|
|
44
43
|
PROTECTED_MEDIA_URL = (
|
|
@@ -104,7 +103,6 @@ os.environ.setdefault("LX_ANNOTATE_DATA_DIR", str(APP_DATA_DIR))
|
|
|
104
103
|
os.environ.setdefault("DATA_DIR", str(APP_DATA_DIR))
|
|
105
104
|
os.environ.setdefault("LX_ANNOTATE_ENCRYPTED_DATA_DIR", str(APP_DATA_DIR))
|
|
106
105
|
os.environ.setdefault("STORAGE_DIR", str(APP_STORAGE_DIR))
|
|
107
|
-
os.environ.setdefault("IO_DIR", str(APP_IO_DIR))
|
|
108
106
|
os.environ.setdefault("NGINX_PROTECTED_MEDIA_URL", PROTECTED_MEDIA_URL)
|
|
109
107
|
os.environ["PROTECTED_MEDIA_ROOT"] = str(PROTECTED_MEDIA_ROOT)
|
|
110
108
|
os.environ.setdefault("LX_ANNOTATE_STREAMABLE_VIDEO_ROOT", str(STREAMABLE_VIDEO_ROOT))
|
|
@@ -61,12 +61,10 @@ default_data_dir = os.environ.get(
|
|
|
61
61
|
if not default_data_dir:
|
|
62
62
|
default_data_dir = str(Path(BASE_DIR) / "data")
|
|
63
63
|
default_storage_dir = os.environ.get("STORAGE_DIR", str(Path(default_data_dir) / "storage"))
|
|
64
|
-
default_io_dir = os.environ.get("IO_DIR", default_data_dir)
|
|
65
64
|
os.environ.setdefault("LX_ANNOTATE_ENCRYPTED_DATA_DIR", default_data_dir)
|
|
66
65
|
os.environ.setdefault("LX_ANNOTATE_DATA_DIR", default_data_dir)
|
|
67
66
|
os.environ.setdefault("DATA_DIR", default_data_dir)
|
|
68
67
|
os.environ.setdefault("STORAGE_DIR", default_storage_dir)
|
|
69
|
-
os.environ.setdefault("IO_DIR", default_io_dir)
|
|
70
68
|
|
|
71
69
|
|
|
72
70
|
def main():
|
|
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "lx-annotate"
|
|
7
7
|
|
|
8
|
-
version = "0.2.
|
|
8
|
+
version = "0.2.3"
|
|
9
9
|
description = "This webapp provides a frontend interface for pseudonymizing and annotating data and applying AI predictions."
|
|
10
10
|
authors = [
|
|
11
11
|
{ name = "Max Hild", email = "maxhild10@gmail.com"},
|
|
@@ -61,7 +61,7 @@ dependencies = [
|
|
|
61
61
|
"types-requests>=2.32.4.20250913",
|
|
62
62
|
"black>=25.12.0",
|
|
63
63
|
"mypy>=1.18.2",
|
|
64
|
-
"endoreg-db==0.9.
|
|
64
|
+
"endoreg-db==0.9.5.1",
|
|
65
65
|
"pydantic-settings>=2.12.0",
|
|
66
66
|
"pydantic>=2.12.5",
|
|
67
67
|
"sops>=1.18",
|
|
@@ -71,7 +71,6 @@ dependencies = [
|
|
|
71
71
|
"django-linear-migrations>=2.19.0",
|
|
72
72
|
"build>=1.4.2",
|
|
73
73
|
"lx-dtypes==0.1.4",
|
|
74
|
-
"lx-anonymizer==0.9.0.9",
|
|
75
74
|
]
|
|
76
75
|
|
|
77
76
|
[tool.pytest.ini_options]
|
|
@@ -130,7 +130,8 @@
|
|
|
130
130
|
"file": "videoStore.js",
|
|
131
131
|
"name": "videoStore",
|
|
132
132
|
"imports": [
|
|
133
|
-
"src/main.ts"
|
|
133
|
+
"src/main.ts",
|
|
134
|
+
"_mediaUrls.js"
|
|
134
135
|
]
|
|
135
136
|
},
|
|
136
137
|
"node_modules/pdf-lib/es/index.js": {
|
|
@@ -189,7 +190,8 @@
|
|
|
189
190
|
"isDynamicEntry": true,
|
|
190
191
|
"imports": [
|
|
191
192
|
"src/main.ts",
|
|
192
|
-
"_mediaTypeStore.js"
|
|
193
|
+
"_mediaTypeStore.js",
|
|
194
|
+
"_mediaUrls.js"
|
|
193
195
|
],
|
|
194
196
|
"dynamicImports": [
|
|
195
197
|
"node_modules/pdfjs-dist/legacy/build/pdf.mjs",
|
|
@@ -290,7 +292,8 @@
|
|
|
290
292
|
"imports": [
|
|
291
293
|
"src/main.ts",
|
|
292
294
|
"_videoStore.js",
|
|
293
|
-
"_mediaTypeStore.js"
|
|
295
|
+
"_mediaTypeStore.js",
|
|
296
|
+
"_mediaUrls.js"
|
|
294
297
|
],
|
|
295
298
|
"css": [
|
|
296
299
|
"AnonymizationOverview.css"
|
|
@@ -339,7 +342,8 @@
|
|
|
339
342
|
"imports": [
|
|
340
343
|
"src/main.ts",
|
|
341
344
|
"_videoStore.js",
|
|
342
|
-
"_timeHelpers.js"
|
|
345
|
+
"_timeHelpers.js",
|
|
346
|
+
"_mediaUrls.js"
|
|
343
347
|
],
|
|
344
348
|
"css": [
|
|
345
349
|
"Export.css"
|
|
@@ -466,7 +470,8 @@
|
|
|
466
470
|
"src": "src/views/reporting/FinalizedResultPage.vue",
|
|
467
471
|
"isDynamicEntry": true,
|
|
468
472
|
"imports": [
|
|
469
|
-
"src/main.ts"
|
|
473
|
+
"src/main.ts",
|
|
474
|
+
"_mediaUrls.js"
|
|
470
475
|
]
|
|
471
476
|
},
|
|
472
477
|
"src/views/reporting/FindingsCapturePage.vue": {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.video-container[data-v-89598210]{background-color:#000;border-radius:.25rem;overflow:hidden}.pdf-editor-stage[data-v-89598210]{position:relative;display:inline-block;max-width:100%;border:1px solid #dee2e6;border-radius:.25rem;overflow:auto;background:#f5f5f5}.pdf-page-canvas[data-v-89598210]{display:block;max-width:100%;height:auto}.pdf-overlay-canvas[data-v-89598210]{position:absolute;left:0;top:0;cursor:crosshair}.pdf-zoom-range[data-v-89598210]{width:220px;margin:0 .5rem}.pdf-preview-frame[data-v-89598210]{width:100%;min-height:720px;border:1px solid #dee2e6;border-radius:.25rem}.form-check-label[data-v-89598210]{cursor:pointer}.progress[data-v-89598210]{background-color:#e9ecef}.table th[data-v-89598210]{border-top:none;font-weight:600;color:#6c757d;font-size:.875rem}.table td[data-v-89598210]{vertical-align:middle}.badge[data-v-89598210]{font-size:.75rem}.card-header[data-v-89598210]{background-color:#f8f9fa;border-bottom:1px solid #dee2e6}.btn-group .btn[data-v-89598210]{border-radius:.375rem}@media(max-width:768px){.video-container video[data-v-89598210]{height:300px}.pdf-preview-frame[data-v-89598210]{min-height:420px}.card-body[data-v-89598210]{padding:1rem .75rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as ms,D as ps,b as l,c as W,y as fs,w as be,M as gs,f as c,g as s,k as r,s as z,t as u,F as ne,z as h,B as j,i as U,A as he,Y as H,H as bs,h as hs,m as ys,a as w,r as C,Z as ye,n as _s,o as v,_ as ws}from"./main.js";import{u as ks}from"./mediaTypeStore.js";import{b as xs,a as Ps}from"./mediaUrls.js";const Ms={class:"container-fluid py-4"},Fs={class:"card"},Cs={class:"card-header pb-0 d-flex justify-content-between align-items-center"},Ss={class:"d-flex gap-2"},Ds=["disabled"],Vs={class:"card-body"},Es={key:0,class:"text-center py-5"},Rs={key:1,class:"alert alert-danger",role:"alert"},zs={key:2,class:"alert alert-info",role:"alert"},Us={class:"row mb-4"},Bs={class:"col-12"},Ls={class:"card bg-light"},Ns={class:"card-body"},Os={class:"row"},As={class:"col-md-8"},Ts={class:"card-title"},$s={class:"mb-1"},Is={class:"mb-1"},Ws={class:"mb-0"},js={class:"col-md-4 text-end"},Hs={class:"d-flex flex-column gap-2"},Gs=["disabled"],Ks=["disabled"],Ys=["disabled"],Xs=["disabled"],Zs={class:"row g-3"},Js={class:"col-xl-9"},qs={class:"card h-100"},Qs={class:"card-header d-flex flex-wrap gap-2 align-items-center justify-content-between"},et={class:"d-flex align-items-center gap-2"},st=["disabled"],tt={class:"small text-muted"},at=["disabled"],nt={class:"card-body"},ot={class:"mb-3 d-flex flex-wrap gap-2 align-items-center"},lt={class:"small text-muted"},it={key:0,class:"text-center py-5"},rt={key:1,class:"alert alert-danger mb-0",role:"alert"},dt={key:2,class:"pdf-editor-stage"},ut={class:"col-xl-3"},ct={class:"card h-100"},vt={class:"card-body d-flex flex-column gap-3"},mt={class:"mb-1"},pt={class:"mb-0"},ft=["disabled"],gt=["disabled"],bt=["disabled"],ht={key:0,class:"row mt-4"},yt={class:"col-12"},_t={class:"card"},wt={class:"card-body"},kt=["src"],xt={class:"row mb-4"},Pt={class:"col-12"},Mt={class:"card bg-light"},Ft={class:"card-body"},Ct={class:"row"},St={class:"col-md-8"},Dt={class:"card-title"},Vt={class:"row"},Et={class:"col-sm-6"},Rt={class:"mb-1"},zt={class:"mb-1"},Ut={class:"mb-1"},Bt={class:"col-sm-6"},Lt={class:"mb-1"},Nt={class:"mb-1"},Ot={class:"mb-1"},At={class:"col-md-4 text-end"},Tt={class:"d-flex flex-column gap-2"},$t=["disabled"],It=["disabled"],Wt={class:"row mb-4"},jt={class:"col-md-6"},Ht={class:"card h-100"},Gt={class:"card-body"},Kt={class:"mb-3"},Yt={key:0,class:"mb-3"},Xt={key:1,class:"mb-3"},Zt={class:"row"},Jt={class:"col-6"},qt={class:"col-6"},Qt={class:"row mt-2"},ea={class:"col-6"},sa={class:"col-6"},ta={class:"mb-3"},aa={class:"form-check"},na={class:"form-check"},oa=["disabled"],la={key:0},ia={key:1},ra={class:"col-md-6"},da={class:"card h-100"},ua={class:"card-body"},ca={class:"mb-3"},va={class:"form-check"},ma={class:"form-check"},pa={key:0,class:"mb-3"},fa={key:1,class:"mb-3"},ga={class:"mb-3"},ba={class:"form-check"},ha={class:"form-check"},ya=["disabled"],_a={key:0},wa={key:1},ka={key:0,class:"row mb-4"},xa={class:"col-12"},Pa={class:"card border-warning"},Ma={class:"card-body"},Fa={class:"d-flex align-items-center"},Ca={class:"flex-grow-1"},Sa={class:"mb-1"},Da={class:"progress",style:{height:"8px"}},Va={class:"text-muted mt-1"},Ea={class:"row"},Ra={class:"col-12"},za={class:"card"},Ua={class:"card-header"},Ba={class:"d-flex gap-2 mt-2"},La=["disabled"],Na={class:"card-body"},Oa={class:"video-container"},Aa=["src"],Ta={class:"mt-3 d-flex justify-content-between align-items-center"},$a={class:"d-flex gap-2"},Ia={class:"text-muted"},Wa={key:1,class:"row mt-4"},ja={class:"col-12"},Ha={class:"card"},Ga={class:"card-body"},Ka={class:"table-responsive"},Ya={class:"table table-sm"},Xa={class:"text-muted"},Za=["onClick"],Ja=ms({__name:"AnonymizationCorrectionComponent",props:{fileId:{},mediaType:{}},setup(Ve){const Ee=_s(),Re=ys(),ze=ps(),q=ks(),G=l(!1),y=l(""),Q=l(!1),m=l(!1),b=l(""),k=l(0),x=l(""),A=l("original"),oe=l(null),o=l(null);l(null);const B=l({sensitiveFrameCount:null,totalFrames:null,sensitiveRatio:null,duration:null,resolution:null});l({patientFirstName:"",patientLastName:"",patientGender:"",patientDob:"",casenumber:"",examiner:"",centerName:"",endoscopeType:"",endoscopeSn:""}),l(""),l(!1),l({firstNamePseudonym:"",lastNamePseudonym:"",originalFirstName:"",originalLastName:""});const i=l({type:"device_default",deviceName:"olympus_cv_1500",processingMethod:"streaming",endoscopeX:550,endoscopeY:0,endoscopeWidth:1350,endoscopeHeight:1080}),p=l({selectionMethod:"automatic",detectionEngine:"minicpm",processingMethod:"streaming",manualFrames:""}),V=l([]),le=l(null),T=l(null),L=l(""),S=l(!1),K=l(0),g=l(1),Y=l(1.25),P=l({}),ie=l(null),N=l(null),M=l(""),$=l(!1),O=l(null),E=l(null);let re=null,I=null;const Ue=W(()=>o.value&&!m.value&&(i.value.type!=="custom"||i.value.endoscopeX>=0&&i.value.endoscopeY>=0&&i.value.endoscopeWidth>0&&i.value.endoscopeHeight>0)),Be=W(()=>o.value&&!m.value&&(p.value.selectionMethod!=="manual"||p.value.manualFrames.trim().length>0)),_e=W(()=>V.value.some(t=>t.status==="success"&&t.outputPath)),D=Ve,de=W(()=>{const t=String(Re.query.mediaType||"").toLowerCase(),a=String(D.mediaType||"").toLowerCase()||t;if(a==="pdf")return"pdf";if(a==="video")return"video";const n=ze.overview.find(f=>f.id===D.fileId);return n?.mediaType==="pdf"?"pdf":n?.mediaType==="video"?"video":String(o.value?.filename||"").toLowerCase().endsWith(".pdf")?"pdf":"video"}),ee=W(()=>de.value==="pdf"),se=W(()=>Object.values(P.value).reduce((t,e)=>t+e.length,0)),Le=()=>{Ee.push("/anonymisierung/uebersicht")},ue=async()=>{o.value?o.value.id=D.fileId:o.value={id:D.fileId},Q.value=!0;try{await ce(o.value.id)}finally{Q.value=!1}},ce=async t=>{if(ee.value){await Ne(t);return}await Oe(t)},Ne=async t=>{G.value=!0,y.value="",L.value="",I=null,P.value={},K.value=0,g.value=1,N.value=null,M.value&&(URL.revokeObjectURL(M.value),M.value="");try{const a=(await w.get(C(`media/pdfs/${t}/`))).data||{};o.value={id:t,mediaType:"pdf",filename:a.filename||`document_${t}.pdf`,anonymizationStatus:a.is_validated?"validated":"done_processing_anonymization",fileSize:a.file_size??null,createdAt:a.uploaded_at||null},q.setCurrentByKey("pdf",t),await we(t)}catch(e){y.value=e.response?.data?.error||"Fehler beim Laden der PDF-Details",console.error("Error loading pdf details:",e)}finally{G.value=!1}},Oe=async t=>{G.value=!0,y.value="";try{const[e,a,n]=await Promise.all([w.get(C(`media/videos/video-correction/${t}`)),w.get(C(`media/videos/${t}/metadata/`)),w.get(C(`media/videos/${t}/processing-history/`))]);o.value=e.data,B.value=a.data,V.value=n.data,o.value&&q.setCurrentItem(o.value)}catch(e){y.value=e.response?.data?.error||"Fehler beim Laden der Video-Details",console.error("Error loading video details:",e)}finally{G.value=!1}},Ae=async()=>{if(re)return;const[t,e]=await Promise.all([ye(()=>import("./pdf.js"),[]),ye(()=>import("./pdf.worker.min.js"),[])]);t.GlobalWorkerOptions.workerSrc=e.default,re=t},we=async t=>{S.value=!0,L.value="";try{await Ae();const e=await w.get(xs(t,"raw"),{responseType:"arraybuffer"}),a=new Uint8Array(e.data);ie.value=a,I=await re.getDocument({data:a}).promise,K.value=I.numPages,g.value=1,await te()}catch(e){L.value="PDF konnte nicht geladen werden.",console.error("Error loading PDF document:",e)}finally{S.value=!1}},Te=async()=>{o.value&&await we(o.value.id)},ve=()=>(P.value[g.value]||[]).length,ke=(t,e)=>{const a=Math.min(t.x,e.x),n=Math.min(t.y,e.y),d=Math.abs(e.x-t.x),f=Math.abs(e.y-t.y);return{x:a,y:n,width:d,height:f}},R=()=>{const t=T.value;if(!t)return;const e=t.getContext("2d");if(!e)return;e.clearRect(0,0,t.width,t.height),e.fillStyle="#000000";const a=P.value[g.value]||[];for(const n of a)e.fillRect(n.x*t.width,n.y*t.height,n.width*t.width,n.height*t.height);if($.value&&O.value&&E.value){const n=ke(O.value,E.value);e.save(),e.fillStyle="rgba(0, 0, 0, 0.45)",e.strokeStyle="#111111",e.lineWidth=1,e.setLineDash([6,4]),e.fillRect(n.x,n.y,n.width,n.height),e.strokeRect(n.x,n.y,n.width,n.height),e.restore()}},te=async()=>{if(!(!I||!le.value||!T.value)){S.value=!0,L.value="";try{const t=await I.getPage(g.value),e=t.getViewport({scale:Y.value}),a=le.value,n=a.getContext("2d");if(!n)throw new Error("PDF canvas context not available");a.width=Math.floor(e.width),a.height=Math.floor(e.height),a.style.width=`${e.width}px`,a.style.height=`${e.height}px`;const d={canvasContext:n,viewport:e};await t.render(d).promise;const f=T.value;f.width=a.width,f.height=a.height,f.style.width=a.style.width,f.style.height=a.style.height,R()}catch(t){L.value="PDF-Seite konnte nicht gerendert werden.",console.error("Error rendering PDF page:",t)}finally{S.value=!1}}},xe=t=>{const e=T.value;if(!e)return null;const a=e.getBoundingClientRect();if(!a.width||!a.height)return null;const n=Math.min(Math.max(t.clientX-a.left,0),a.width),d=Math.min(Math.max(t.clientY-a.top,0),a.height);return{x:n,y:d,width:a.width,height:a.height}},$e=t=>{if(S.value)return;const e=xe(t);e&&($.value=!0,O.value={x:e.x,y:e.y},E.value={x:e.x,y:e.y},R())},Ie=t=>{if(!$.value)return;const e=xe(t);e&&(E.value={x:e.x,y:e.y},R())},Pe=()=>{const t=T.value;if(!t||!O.value||!E.value){$.value=!1,O.value=null,E.value=null;return}const e=ke(O.value,E.value);if(e.width>=4&&e.height>=4){const a={x:e.x/t.width,y:e.y/t.height,width:e.width/t.width,height:e.height/t.height},n=P.value[g.value]||[];P.value[g.value]=[...n,a]}$.value=!1,O.value=null,E.value=null,R()},We=()=>{Pe()},je=()=>{$.value&&Pe()},He=async()=>{g.value<=1||(g.value-=1,await te())},Ge=async()=>{g.value>=K.value||(g.value+=1,await te())},Ke=()=>{const t=P.value[g.value]||[];t.length&&(P.value[g.value]=t.slice(0,-1),R())},Ye=()=>{P.value[g.value]=[],R()},Xe=()=>{P.value={},R()},Ze=async()=>{if(ie.value){m.value=!0,b.value="pdf_redaction",k.value=0,x.value="Anonymisierte PDF wird erzeugt...";try{const{PDFDocument:t,rgb:e}=await ye(async()=>{const{PDFDocument:f,rgb:F}=await import("./index.js");return{PDFDocument:f,rgb:F}},[]),a=await t.load(ie.value),n=a.getPages();Object.entries(P.value).forEach(([f,F])=>{const _=Number(f)-1;if(!Number.isInteger(_)||_<0||_>=n.length)return;const X=n[_],Z=X.getWidth(),ae=X.getHeight();for(const J of F)X.drawRectangle({x:J.x*Z,y:(1-J.y-J.height)*ae,width:J.width*Z,height:J.height*ae,color:e(0,0,0),borderWidth:0})});const d=await a.save();N.value=d,M.value&&URL.revokeObjectURL(M.value),M.value=URL.createObjectURL(new Blob([d],{type:"application/pdf"})),k.value=100,x.value="Anonymisierte PDF erfolgreich erzeugt",V.value.unshift({id:Date.now(),timestamp:new Date().toISOString(),operation:"pdf_redaction",status:"success",details:`${se.value} Box(en) angewendet`})}catch(t){y.value="Fehler beim Erzeugen der anonymisierten PDF",console.error("Error generating redacted PDF:",t)}finally{m.value=!1,b.value=""}}},Je=()=>{if(!N.value||!o.value)return;const t=String(o.value.filename||`document_${o.value.id}.pdf`),e=t.toLowerCase().endsWith(".pdf")?t.slice(0,-4):t,a=new Blob([N.value],{type:"application/pdf"}),n=URL.createObjectURL(a),d=document.createElement("a");d.href=n,d.download=`${e}_anonymized.pdf`,document.body.appendChild(d),d.click(),d.remove(),URL.revokeObjectURL(n)},qe=async()=>{if(!(!N.value||!o.value)){m.value=!0,b.value="pdf_upload",k.value=0,x.value="Anonymisierte PDF wird hochgeladen...";try{const t=String(o.value.filename||`document_${o.value.id}.pdf`),e=t.toLowerCase().endsWith(".pdf")?`${t.slice(0,-4)}_anonymized.pdf`:`${t}_anonymized.pdf`,a=new File([N.value],e,{type:"application/pdf"}),n=new FormData;n.append("file",a);const d=await w.post(C("upload/"),n,{headers:{"Content-Type":"multipart/form-data"}});k.value=100,x.value="Upload erfolgreich gestartet",V.value.unshift({id:Date.now(),timestamp:new Date().toISOString(),operation:"pdf_upload",status:"success",details:`Upload-ID: ${d.data.upload_id||"n/a"}`})}catch(t){y.value=t.response?.data?.error||"Fehler beim Upload der anonymisierten PDF",console.error("Error uploading redacted PDF:",t)}finally{m.value=!1,b.value=""}}},Qe=async()=>{if(o.value){m.value=!0,b.value="analysis",k.value=0,x.value="Video wird analysiert...";try{const t=await w.post(C(`media/videos/${o.value.id}/analyze/`),{use_minicpm:p.value.detectionEngine!=="traditional",detailed_analysis:!0});B.value={...B.value,...t.data},k.value=100,x.value="Analyse abgeschlossen",V.value.unshift({id:Date.now(),timestamp:new Date().toISOString(),operation:"analysis",status:"success",details:`${t.data.sensitiveFrameCount||0} sensible Frames gefunden`})}catch(t){y.value=t.response?.data?.error||"Fehler bei der Video-Analyse",console.error("Error analyzing video:",t)}finally{m.value=!1,b.value=""}}},es=async()=>{if(o.value){m.value=!0,b.value="masking",k.value=0,x.value="Maskierung wird vorbereitet...";try{const t={mask_type:i.value.type,device_name:i.value.deviceName,use_streaming:i.value.processingMethod==="streaming",custom_mask:i.value.type==="custom"?{endoscope_x:i.value.endoscopeX,endoscope_y:i.value.endoscopeY,endoscope_width:i.value.endoscopeWidth,endoscope_height:i.value.endoscopeHeight}:void 0},e=await w.post(C(`media/videos/${o.value.id}/apply-mask/`),t),a=e.data.task_id;a?await Me(a,"masking"):await me("masking",{output_path:e.data.output_file,summary:e.data.message||"Maskierung erfolgreich abgeschlossen"})}catch(t){y.value=t.response?.data?.error||"Fehler bei der Maskierung",console.error("Error applying mask:",t),m.value=!1,b.value=""}}},ss=async()=>{if(o.value){m.value=!0,b.value="frame_removal",k.value=0,x.value="Frame-Entfernung wird vorbereitet...";try{const t={selection_method:p.value.selectionMethod,detection_engine:p.value.detectionEngine,use_streaming:p.value.processingMethod==="streaming",manual_frames:p.value.selectionMethod==="manual"?as(p.value.manualFrames):void 0},e=await w.post(C(`media/videos/${o.value.id}/remove-frames/`),t),a=e.data.task_id;a?await Me(a,"frame_removal"):await me("frame_removal",{output_path:e.data.output_file,summary:e.data.message||"Frame-Entfernung erfolgreich abgeschlossen"})}catch(t){y.value=t.response?.data?.error||"Fehler bei der Frame-Entfernung",console.error("Error removing frames:",t),m.value=!1,b.value=""}}},ts=async t=>{await w.post(C(`media/videos/${t}/segments/validation-status/`),{isValidated:!0,notes:`Korrektur abgeschlossen am ${new Date().toLocaleString("de-DE")}`,informationSourceName:"manual_correction"})},as=t=>{const e=[],a=t.split(",");for(const n of a){const d=n.trim();if(d.includes("-")){const[f,F]=d.split("-").map(_=>parseInt(_.trim()));if(!isNaN(f)&&!isNaN(F))for(let _=f;_<=F;_++)e.push(_)}else{const f=parseInt(d);isNaN(f)||e.push(f)}}return[...new Set(e)].sort((n,d)=>n-d)},Me=async(t,e)=>{let d=0;const f=async()=>{if(d>=300)throw new Error("Zeitüberschreitung bei der Verarbeitung");try{const F=await w.get(C(`media/videos/task-status/${t}/`)),{status:_,progress:X,message:Z,result:ae}=F.data;if(k.value=X||0,x.value=Z||"Verarbeitung läuft...",_==="SUCCESS"){await me(e,ae);return}if(_==="FAILURE")throw new Error(Z||"Verarbeitung fehlgeschlagen");d++,setTimeout(f,5e3)}catch(F){throw console.error("Polling error:",F),F}};await f()},me=async(t,e)=>{o.value&&(k.value=100,x.value="Verarbeitung abgeschlossen",V.value.unshift({id:Date.now(),timestamp:new Date().toISOString(),operation:t,status:"success",details:e?.summary||"Verarbeitung erfolgreich",outputPath:e?.output_path}),await ts(o.value.id),await ue(),m.value=!1,b.value="")},ns=async()=>{m.value=!1,b.value="",k.value=0,x.value=""},os=async()=>{if(o.value)try{await w.post(C(`media/videos/${o.value.id}/reprocess/`)),await ue()}catch(t){y.value=t.response?.data?.error||"Fehler bei der Neuverarbeitung",console.error("Error reprocessing video:",t)}},Fe=()=>{if(!o.value)return"";const t=A.value==="processed"&&_e.value?"processed":"raw";return Ps(o.value.id,t)},Ce=t=>{oe.value&&(oe.value.currentTime+=t)},ls=async t=>{if(o.value)try{const e=await w.get(`/api/media/processed-videos/${o.value.id}/${t}/`,{responseType:"blob"}),a=window.URL.createObjectURL(new Blob([e.data])),n=document.createElement("a");n.href=a,n.setAttribute("download",`${o.value.filename}_processed.mp4`),document.body.appendChild(n),n.click(),n.remove(),window.URL.revokeObjectURL(a)}catch(e){y.value=e.response?.data?.error||"Fehler beim Download",console.error("Error downloading result:",e)}},is=t=>{console.error("Video loading error:",t);const e=t.target;console.error("Video error details:",{error:e.error,networkState:e.networkState,readyState:e.readyState,currentSrc:e.currentSrc})},rs=()=>{console.log("Video loading started for:",Fe())},ds=()=>{console.log("Video can play, loaded successfully")},Se=t=>{if(!t)return"Unbekannt";const e=["Bytes","KB","MB","GB"],a=Math.floor(Math.log(t)/Math.log(1024));return Math.round(t/Math.pow(1024,a)*100)/100+" "+e[a]},pe=t=>t?new Date(t).toLocaleDateString("de-DE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"-",us=t=>t==null?"Unbekannt":`${(t*100).toFixed(1)}%`,fe=t=>({not_started:"bg-secondary",processing:"bg-warning",processing_anonymization:"bg-warning",done_processing_anonymization:"bg-success",validated:"bg-success",failed:"bg-danger",success:"bg-success"})[t]||"bg-secondary",ge=t=>({not_started:"Nicht gestartet",processing:"In Bearbeitung",processing_anonymization:"In Bearbeitung",done_processing_anonymization:"Fertig",validated:"Validiert",failed:"Fehlgeschlagen",success:"Erfolgreich"})[t]||t,cs=t=>t==null?"badge bg-secondary":t>.1?"badge bg-danger":t>.05?"badge bg-warning":"badge bg-success",De=t=>({analysis:"Video-Analyse",masking:"Maskierung",frame_removal:"Frame-Entfernung",reprocessing:"Neuverarbeitung",pdf_redaction:"PDF-Redaktion",pdf_upload:"PDF-Upload"})[t]||t,vs=t=>({analysis:"bg-info",masking:"bg-warning",frame_removal:"bg-danger",reprocessing:"bg-primary",pdf_redaction:"bg-dark",pdf_upload:"bg-info"})[t]||"bg-secondary";return fs(async()=>{isNaN(D.fileId)||q.setCurrentByKey(de.value,D.fileId),isNaN(D.fileId)?y.value="Ungültige Datei-ID":await ce(D.fileId)}),be(()=>D.fileId,async t=>{t&&!isNaN(t)&&(q.setCurrentByKey(de.value,t),await ce(t))}),be(Y,async()=>{!ee.value||!I||await te()}),be(g,()=>{ee.value&&R()}),gs(()=>{M.value&&URL.revokeObjectURL(M.value)}),(t,e)=>(v(),c("div",Ms,[s("div",Fs,[s("div",Cs,[e[21]||(e[21]=s("h4",{class:"mb-0"},"Anonymisierungskorrektur",-1)),s("div",Ss,[s("button",{class:"btn btn-outline-secondary btn-sm",onClick:Le},[...e[19]||(e[19]=[s("i",{class:"fas fa-arrow-left me-1"},null,-1),r(" Zurück zur Übersicht ",-1)])]),s("button",{class:"btn btn-outline-primary btn-sm",onClick:ue,disabled:Q.value},[s("i",{class:z(["fas fa-sync-alt",{"fa-spin":Q.value}])},null,2),e[20]||(e[20]=r(" Aktualisieren ",-1))],8,Ds)])]),s("div",Vs,[G.value?(v(),c("div",Es,[...e[22]||(e[22]=[s("div",{class:"spinner-border text-primary",role:"status"},[s("span",{class:"visually-hidden"},"Wird geladen...")],-1),s("p",{class:"mt-2"},"Datei wird geladen...",-1)])])):y.value?(v(),c("div",Rs,[e[23]||(e[23]=s("strong",null,"Fehler:",-1)),r(" "+u(y.value),1)])):o.value?(v(),c(ne,{key:3},[ee.value?(v(),c(ne,{key:0},[s("div",Us,[s("div",Bs,[s("div",Ls,[s("div",Ns,[s("div",Os,[s("div",As,[s("h5",Ts,u(o.value.filename),1),s("p",$s,[e[25]||(e[25]=s("strong",null,"Status:",-1)),s("span",{class:z([fe(o.value.anonymizationStatus),"badge ms-1"])},u(ge(o.value.anonymizationStatus)),3)]),s("p",Is,[e[26]||(e[26]=s("strong",null,"Größe:",-1)),r(" "+u(Se(o.value.fileSize??null)),1)]),s("p",Ws,[e[27]||(e[27]=s("strong",null,"Erstellt:",-1)),r(" "+u(pe(o.value.createdAt)),1)])]),s("div",js,[s("div",Hs,[s("button",{class:"btn btn-outline-primary btn-sm",onClick:Te,disabled:S.value},[...e[28]||(e[28]=[s("i",{class:"fas fa-file-pdf me-1"},null,-1),r(" PDF neu laden ",-1)])],8,Gs),s("button",{class:"btn btn-success btn-sm",onClick:Ze,disabled:S.value||se.value===0},[...e[29]||(e[29]=[s("i",{class:"fas fa-shield-alt me-1"},null,-1),r(" Anonymisierte PDF erzeugen ",-1)])],8,Ks),s("button",{class:"btn btn-outline-success btn-sm",onClick:Je,disabled:!M.value},[...e[30]||(e[30]=[s("i",{class:"fas fa-download me-1"},null,-1),r(" PDF herunterladen ",-1)])],8,Ys),s("button",{class:"btn btn-outline-info btn-sm",onClick:qe,disabled:!N.value||m.value},[...e[31]||(e[31]=[s("i",{class:"fas fa-upload me-1"},null,-1),r(" Als neue Datei hochladen ",-1)])],8,Xs)])])])])])])]),s("div",Zs,[s("div",Js,[s("div",qs,[s("div",Qs,[e[34]||(e[34]=s("h5",{class:"mb-0"},"PDF Redaktion",-1)),s("div",et,[s("button",{class:"btn btn-outline-secondary btn-sm",onClick:He,disabled:g.value<=1||S.value},[...e[32]||(e[32]=[s("i",{class:"fas fa-chevron-left"},null,-1)])],8,st),s("span",tt,"Seite "+u(g.value)+" / "+u(K.value||1),1),s("button",{class:"btn btn-outline-secondary btn-sm",onClick:Ge,disabled:g.value>=K.value||S.value},[...e[33]||(e[33]=[s("i",{class:"fas fa-chevron-right"},null,-1)])],8,at)])]),s("div",nt,[s("div",ot,[e[35]||(e[35]=s("label",{class:"form-label mb-0"},"Zoom:",-1)),h(s("input",{type:"range",min:"0.75",max:"2.5",step:"0.25","onUpdate:modelValue":e[0]||(e[0]=a=>Y.value=a),class:"form-range pdf-zoom-range"},null,512),[[j,Y.value,void 0,{number:!0}]]),s("span",lt,u(Math.round(Y.value*100))+"%",1)]),S.value?(v(),c("div",it,[...e[36]||(e[36]=[s("div",{class:"spinner-border text-primary",role:"status"},[s("span",{class:"visually-hidden"},"Wird geladen...")],-1),s("p",{class:"mt-2 mb-0"},"PDF-Seite wird gerendert...",-1)])])):L.value?(v(),c("div",rt,u(L.value),1)):(v(),c("div",dt,[s("canvas",{ref_key:"pdfPageCanvas",ref:le,class:"pdf-page-canvas"},null,512),s("canvas",{ref_key:"pdfOverlayCanvas",ref:T,class:"pdf-overlay-canvas",onMousedown:$e,onMousemove:Ie,onMouseup:We,onMouseleave:je},null,544)]))])])]),s("div",ut,[s("div",ct,[e[44]||(e[44]=s("div",{class:"card-header"},[s("h5",{class:"mb-0"},"Werkzeuge")],-1)),s("div",vt,[s("div",null,[s("p",mt,[e[37]||(e[37]=s("strong",null,"Aktive Seite:",-1)),r(" "+u(ve())+" Boxen",1)]),s("p",pt,[e[38]||(e[38]=s("strong",null,"Gesamt:",-1)),r(" "+u(se.value)+" Boxen",1)])]),s("button",{class:"btn btn-outline-secondary btn-sm",onClick:Ke,disabled:ve()===0},[...e[39]||(e[39]=[s("i",{class:"fas fa-undo me-1"},null,-1),r(" Letzte Box entfernen ",-1)])],8,ft),s("button",{class:"btn btn-outline-warning btn-sm",onClick:Ye,disabled:ve()===0},[...e[40]||(e[40]=[s("i",{class:"fas fa-eraser me-1"},null,-1),r(" Seite leeren ",-1)])],8,gt),s("button",{class:"btn btn-outline-danger btn-sm",onClick:Xe,disabled:se.value===0},[...e[41]||(e[41]=[s("i",{class:"fas fa-trash me-1"},null,-1),r(" Alle Boxen löschen ",-1)])],8,bt),e[42]||(e[42]=s("hr",{class:"my-2"},null,-1)),e[43]||(e[43]=s("p",{class:"small text-muted mb-0"}," Zeichnen Sie mit gedrückter Maustaste schwarze Rechtecke über sensible Inhalte. ",-1))])])])]),M.value?(v(),c("div",ht,[s("div",yt,[s("div",_t,[e[45]||(e[45]=s("div",{class:"card-header"},[s("h5",{class:"mb-0"},"Vorschau der anonymisierten PDF")],-1)),s("div",wt,[s("iframe",{src:M.value,class:"pdf-preview-frame",title:"Anonymisierte PDF Vorschau"},null,8,kt)])])])])):U("",!0)],64)):(v(),c(ne,{key:1},[s("div",xt,[s("div",Pt,[s("div",Mt,[s("div",Ft,[s("div",Ct,[s("div",St,[s("h5",Dt,u(o.value.filename),1),s("div",Vt,[s("div",Et,[s("p",Rt,[e[46]||(e[46]=s("strong",null,"Status:",-1)),s("span",{class:z([fe(o.value.anonymizationStatus),"badge ms-1"])},u(ge(o.value.anonymizationStatus)),3)]),s("p",zt,[e[47]||(e[47]=s("strong",null,"Größe:",-1)),r(" "+u(Se(o.value.fileSize??null)),1)]),s("p",Ut,[e[48]||(e[48]=s("strong",null,"Erstellt:",-1)),r(" "+u(pe(o.value.createdAt)),1)])]),s("div",Bt,[s("p",Lt,[e[49]||(e[49]=s("strong",null,"Sensitive Frames:",-1)),r(" "+u(B.value.sensitiveFrameCount||"Unbekannt"),1)]),s("p",Nt,[e[50]||(e[50]=s("strong",null,"Gesamte Frames:",-1)),r(" "+u(B.value.totalFrames||"Unbekannt"),1)]),s("p",Ot,[e[51]||(e[51]=s("strong",null,"Sensitive Ratio:",-1)),s("span",{class:z(cs(B.value.sensitiveRatio))},u(us(B.value.sensitiveRatio)),3)])])])]),s("div",At,[s("div",Tt,[s("button",{class:"btn btn-outline-info btn-sm",onClick:Qe,disabled:m.value},[...e[52]||(e[52]=[s("i",{class:"fas fa-search me-1"},null,-1),r(" Video analysieren ",-1)])],8,$t),s("button",{class:"btn btn-outline-warning btn-sm",onClick:os,disabled:m.value},[...e[53]||(e[53]=[s("i",{class:"fas fa-redo me-1"},null,-1),r(" Erneut verarbeiten ",-1)])],8,It)])])])])])])]),s("div",Wt,[s("div",jt,[s("div",Ht,[e[68]||(e[68]=s("div",{class:"card-header"},[s("h5",{class:"mb-0"},[s("i",{class:"fas fa-mask me-2"}),r(" Video Maskierung ")])],-1)),s("div",Gt,[e[67]||(e[67]=s("p",{class:"text-muted mb-3"}," Empfohlen bei hoher Sensitivität (>10%). Verdeckt sensible Bereiche dauerhaft. ",-1)),s("div",Kt,[e[55]||(e[55]=s("label",{class:"form-label"},"Maskierungstyp:",-1)),h(s("select",{"onUpdate:modelValue":e[1]||(e[1]=a=>i.value.type=a),class:"form-select"},[...e[54]||(e[54]=[s("option",{value:"device_default"},"Gerätespezifische Maske",-1),s("option",{value:"roi_based"},"ROI-basierte Maske",-1),s("option",{value:"custom"},"Benutzerdefiniert",-1)])],512),[[he,i.value.type]])]),i.value.type==="device_default"?(v(),c("div",Yt,[e[57]||(e[57]=s("label",{class:"form-label"},"Endoskop-Gerät:",-1)),h(s("select",{"onUpdate:modelValue":e[2]||(e[2]=a=>i.value.deviceName=a),class:"form-select"},[...e[56]||(e[56]=[s("option",{value:"olympus_cv_1500"},"Olympus CV-1500",-1),s("option",{value:"olympus_cv_190"},"Olympus CV-190",-1),s("option",{value:"pentax_epk_i7010"},"Pentax EPK-i7010",-1),s("option",{value:"fujifilm_vp_4450hd"},"Fujifilm VP-4450HD",-1)])],512),[[he,i.value.deviceName]])])):U("",!0),i.value.type==="custom"?(v(),c("div",Xt,[s("div",Zt,[s("div",Jt,[e[58]||(e[58]=s("label",{class:"form-label"},"Endoskop X:",-1)),h(s("input",{type:"number","onUpdate:modelValue":e[3]||(e[3]=a=>i.value.endoscopeX=a),class:"form-control",min:"0"},null,512),[[j,i.value.endoscopeX,void 0,{number:!0}]])]),s("div",qt,[e[59]||(e[59]=s("label",{class:"form-label"},"Endoskop Y:",-1)),h(s("input",{type:"number","onUpdate:modelValue":e[4]||(e[4]=a=>i.value.endoscopeY=a),class:"form-control",min:"0"},null,512),[[j,i.value.endoscopeY,void 0,{number:!0}]])])]),s("div",Qt,[s("div",ea,[e[60]||(e[60]=s("label",{class:"form-label"},"Breite:",-1)),h(s("input",{type:"number","onUpdate:modelValue":e[5]||(e[5]=a=>i.value.endoscopeWidth=a),class:"form-control",min:"1"},null,512),[[j,i.value.endoscopeWidth,void 0,{number:!0}]])]),s("div",sa,[e[61]||(e[61]=s("label",{class:"form-label"},"Höhe:",-1)),h(s("input",{type:"number","onUpdate:modelValue":e[6]||(e[6]=a=>i.value.endoscopeHeight=a),class:"form-control",min:"1"},null,512),[[j,i.value.endoscopeHeight,void 0,{number:!0}]])])])])):U("",!0),s("div",ta,[e[64]||(e[64]=s("label",{class:"form-label"},"Verarbeitungsmethode:",-1)),s("div",aa,[h(s("input",{class:"form-check-input",type:"radio","onUpdate:modelValue":e[7]||(e[7]=a=>i.value.processingMethod=a),value:"streaming",id:"maskStreaming"},null,512),[[H,i.value.processingMethod]]),e[62]||(e[62]=s("label",{class:"form-check-label",for:"maskStreaming"},[s("strong",null,"Streaming (Empfohlen)"),r(" - Schnelle Verarbeitung mit Named Pipes ")],-1))]),s("div",na,[h(s("input",{class:"form-check-input",type:"radio","onUpdate:modelValue":e[8]||(e[8]=a=>i.value.processingMethod=a),value:"direct",id:"maskDirect"},null,512),[[H,i.value.processingMethod]]),e[63]||(e[63]=s("label",{class:"form-check-label",for:"maskDirect"}," Direkte Verarbeitung - Für spezielle Anforderungen ",-1))])]),s("button",{class:"btn btn-warning w-100",onClick:es,disabled:m.value||!Ue.value},[e[66]||(e[66]=s("i",{class:"fas fa-mask me-2"},null,-1)),m.value&&b.value==="masking"?(v(),c("span",la,[...e[65]||(e[65]=[s("i",{class:"fas fa-spinner fa-spin me-1"},null,-1),r(" Maskierung wird angewendet... ",-1)])])):(v(),c("span",ia," Maskierung anwenden "))],8,oa)])])]),s("div",ra,[s("div",da,[e[82]||(e[82]=s("div",{class:"card-header"},[s("h5",{class:"mb-0"},[s("i",{class:"fas fa-cut me-2"}),r(" Frame-Entfernung ")])],-1)),s("div",ua,[e[81]||(e[81]=s("p",{class:"text-muted mb-3"}," Empfohlen bei niedriger Sensitivität (≤10%). Entfernt einzelne sensible Frames. ",-1)),s("div",ca,[e[71]||(e[71]=s("label",{class:"form-label"},"Frame-Auswahl:",-1)),s("div",va,[h(s("input",{class:"form-check-input",type:"radio","onUpdate:modelValue":e[9]||(e[9]=a=>p.value.selectionMethod=a),value:"automatic",id:"frameAutomatic"},null,512),[[H,p.value.selectionMethod]]),e[69]||(e[69]=s("label",{class:"form-check-label",for:"frameAutomatic"},[s("strong",null,"Automatisch"),r(" - KI-basierte Erkennung sensibler Frames ")],-1))]),s("div",ma,[h(s("input",{class:"form-check-input",type:"radio","onUpdate:modelValue":e[10]||(e[10]=a=>p.value.selectionMethod=a),value:"manual",id:"frameManual"},null,512),[[H,p.value.selectionMethod]]),e[70]||(e[70]=s("label",{class:"form-check-label",for:"frameManual"}," Manuell - Eigene Frame-Liste eingeben ",-1))])]),p.value.selectionMethod==="manual"?(v(),c("div",pa,[e[72]||(e[72]=s("label",{class:"form-label"},"Frame-Nummern (kommagetrennt):",-1)),h(s("textarea",{"onUpdate:modelValue":e[11]||(e[11]=a=>p.value.manualFrames=a),class:"form-control",rows:"3",placeholder:"z.B. 10,25,30-35,100"},null,512),[[j,p.value.manualFrames]]),e[73]||(e[73]=s("small",{class:"form-text text-muted"}," Unterstützt einzelne Frames (10) und Bereiche (30-35) ",-1))])):U("",!0),p.value.selectionMethod==="automatic"?(v(),c("div",fa,[e[75]||(e[75]=s("label",{class:"form-label"},"Erkennungs-Engine:",-1)),h(s("select",{"onUpdate:modelValue":e[12]||(e[12]=a=>p.value.detectionEngine=a),class:"form-select"},[...e[74]||(e[74]=[s("option",{value:"minicpm"},"MiniCPM-o 2.6 (Empfohlen)",-1),s("option",{value:"traditional"},"Traditionell (OCR + LLM)",-1),s("option",{value:"hybrid"},"Hybrid (Beide kombiniert)",-1)])],512),[[he,p.value.detectionEngine]])])):U("",!0),s("div",ga,[e[78]||(e[78]=s("label",{class:"form-label"},"Verarbeitungsmethode:",-1)),s("div",ba,[h(s("input",{class:"form-check-input",type:"radio","onUpdate:modelValue":e[13]||(e[13]=a=>p.value.processingMethod=a),value:"streaming",id:"frameStreaming"},null,512),[[H,p.value.processingMethod]]),e[76]||(e[76]=s("label",{class:"form-check-label",for:"frameStreaming"},[s("strong",null,"Streaming (Empfohlen)"),r(" - Bis zu 10x schneller ")],-1))]),s("div",ha,[h(s("input",{class:"form-check-input",type:"radio","onUpdate:modelValue":e[14]||(e[14]=a=>p.value.processingMethod=a),value:"traditional",id:"frameTraditional"},null,512),[[H,p.value.processingMethod]]),e[77]||(e[77]=s("label",{class:"form-check-label",for:"frameTraditional"}," Traditionell - Für Kompatibilität ",-1))])]),s("button",{class:"btn btn-danger w-100",onClick:ss,disabled:m.value||!Be.value},[e[80]||(e[80]=s("i",{class:"fas fa-cut me-2"},null,-1)),m.value&&b.value==="frame_removal"?(v(),c("span",_a,[...e[79]||(e[79]=[s("i",{class:"fas fa-spinner fa-spin me-1"},null,-1),r(" Frames werden entfernt... ",-1)])])):(v(),c("span",wa," Frames entfernen "))],8,ya)])])])]),m.value?(v(),c("div",ka,[s("div",xa,[s("div",Pa,[s("div",Ma,[s("div",Fa,[e[84]||(e[84]=s("div",{class:"spinner-border spinner-border-sm text-warning me-3",role:"status"},[s("span",{class:"visually-hidden"},"Verarbeitung...")],-1)),s("div",Ca,[s("h6",Sa,u(De(b.value)),1),s("div",Da,[s("div",{class:"progress-bar progress-bar-striped progress-bar-animated",style:bs({width:k.value+"%"})},null,4)]),s("small",Va,u(x.value),1)]),s("button",{class:"btn btn-outline-danger btn-sm",onClick:ns},[...e[83]||(e[83]=[s("i",{class:"fas fa-times me-1"},null,-1),r(" Abbrechen ",-1)])])])])])])])):U("",!0),s("div",Ea,[s("div",Ra,[s("div",za,[s("div",Ua,[e[85]||(e[85]=s("h5",{class:"mb-0"},"Video-Vorschau",-1)),s("div",Ba,[s("button",{class:z(["btn btn-sm",A.value==="original"?"btn-primary":"btn-outline-primary"]),onClick:e[15]||(e[15]=a=>A.value="original")}," Original ",2),s("button",{class:z(["btn btn-sm",A.value==="processed"?"btn-primary":"btn-outline-primary"]),onClick:e[16]||(e[16]=a=>A.value="processed"),disabled:!_e.value}," Verarbeitet ",10,La)])]),s("div",Na,[s("div",Oa,[s("video",{ref_key:"videoElement",ref:oe,controls:"",width:"100%",height:"600px",src:Fe(),onError:is,onLoadstart:rs,onCanplay:ds}," Ihr Browser unterstützt dieses Video-Format nicht. ",40,Aa)]),s("div",Ta,[s("div",$a,[s("button",{class:"btn btn-outline-secondary btn-sm",onClick:e[17]||(e[17]=a=>Ce(-10))},[...e[86]||(e[86]=[s("i",{class:"fas fa-backward me-1"},null,-1),r(" -10s ",-1)])]),s("button",{class:"btn btn-outline-secondary btn-sm",onClick:e[18]||(e[18]=a=>Ce(10))},[...e[87]||(e[87]=[s("i",{class:"fas fa-forward me-1"},null,-1),r(" +10s ",-1)])])]),s("div",Ia,[s("small",null,u(A.value==="original"?"Original-Video":"Verarbeitetes Video"),1)])])])])])]),V.value.length?(v(),c("div",Wa,[s("div",ja,[s("div",Ha,[e[90]||(e[90]=s("div",{class:"card-header"},[s("h5",{class:"mb-0"},"Verarbeitungsverlauf")],-1)),s("div",Ga,[s("div",Ka,[s("table",Ya,[e[89]||(e[89]=s("thead",null,[s("tr",null,[s("th",null,"Zeitstempel"),s("th",null,"Operation"),s("th",null,"Status"),s("th",null,"Details"),s("th",null,"Aktionen")])],-1)),s("tbody",null,[(v(!0),c(ne,null,hs(V.value,a=>(v(),c("tr",{key:a.id},[s("td",null,u(pe(a.timestamp)),1),s("td",null,[s("span",{class:z(["badge",vs(a.operation)])},u(De(a.operation)),3)]),s("td",null,[s("span",{class:z(["badge",fe(a.status)])},u(ge(a.status)),3)]),s("td",null,[s("small",Xa,u(a.details),1)]),s("td",null,[a.status==="success"&&a.outputPath?(v(),c("button",{key:0,class:"btn btn-outline-primary btn-sm",onClick:n=>ls(a.id)},[...e[88]||(e[88]=[s("i",{class:"fas fa-download"},null,-1)])],8,Za)):U("",!0)])]))),128))])])])])])])])):U("",!0)],64))],64)):(v(),c("div",zs,[...e[24]||(e[24]=[s("i",{class:"fas fa-info-circle me-2"},null,-1),r(" Keine Datei ausgewählt. Bitte wählen Sie eine Datei aus der Übersicht aus. ",-1)])]))])])]))}}),sn=ws(Ja,[["__scopeId","data-v-89598210"]]);export{sn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as L,K as U,a as X,e as b,c as T,d as j,n as Y,D as I,y as ee,M as te,o as m,f as p,g as t,s as $,k as v,j as N,t as _,i as S,F as ne,h as se,_ as H,l as ae}from"./main.js";import{u as oe}from"./videoStore.js";import{u as ie}from"./mediaTypeStore.js";import"./mediaUrls.js";const h=X;class w{static async getStatusOverview(){return(await h.get(`/api/${b.mediaManagement.status}`)).data}static async performCleanup(o="unfinished",a=!1){return(await h.delete(`/api/${b.mediaManagement.cleanup}`,{params:{type:o,force:a}})).data}static async forceRemoveMedia(o){return(await h.delete(`/api/${b.mediaManagement.forceRemove(o)}`)).data}static async resetProcessingStatus(o){return(await h.post(`/api/${b.mediaManagement.resetStatus(o)}`)).data}static async getPollingCoordinatorInfo(){return(await h.get(`/api/${b.anonymization.pollingInfo}`)).data}static async clearProcessingLocks(o){return(await h.delete(`/api/${b.anonymization.clearLocks}`,{params:o?{type:o}:void 0})).data}static async getAnonymizationStatusSafe(o,a){return(await h.get(`/api/${b.anonymization.status(o)}`)).data}static async startAnonymizationSafe(o){return(await h.post(`/api/${b.anonymization.start(o)}`)).data}static async validateAnonymizationSafe(o,a){return(await h.post(`/api/${b.anonymization.validate(o)}`,{...a?{document_type:a}:{}})).data}static async reimportVideo(o){return(await h.post(`/api/${b.media.videoReimport(o)}`)).data}static async reimportPdf(o){return(await h.post(`/api/${b.media.pdfReimport(o)}`)).data}static async deleteMediaFile(o){return(await h.delete(`/api/${b.mediaManagement.forceRemove(o)}`)).data}}function J(){const z=L(!1),o=L(null),a=async l=>{z.value=!0,o.value=null;try{return await l()}catch(c){return console.error("Media Management API Error:",c),c.response?.status===429?o.value="Zu viele Anfragen. Bitte warten Sie einen Moment.":c.response?.status===409?o.value="Datei wird bereits verarbeitet.":c.response?.data?.detail?o.value=c.response.data.detail:o.value="Ein unerwarteter Fehler ist aufgetreten.",null}finally{z.value=!1}};return{isLoading:U(z),error:U(o),clearError:()=>{o.value=null},getStatusOverview:()=>a(()=>w.getStatusOverview()),performCleanup:(l,c=!1)=>a(()=>w.performCleanup(l,c)),forceRemoveMedia:l=>a(()=>w.forceRemoveMedia(l)),resetProcessingStatus:l=>a(()=>w.resetProcessingStatus(l)),deleteMediaFile:l=>a(()=>w.deleteMediaFile(l)),reimportVideo:l=>a(()=>w.reimportVideo(l)),reimportPdf:l=>a(()=>w.reimportPdf(l)),getStatusSafe:(l,c)=>a(()=>w.getAnonymizationStatusSafe(l,c)),startAnonymizationSafe:l=>a(()=>w.startAnonymizationSafe(l)),validateAnonymizationSafe:(l,c)=>a(()=>w.validateAnonymizationSafe(l,c)),getPollingInfo:()=>a(()=>w.getPollingCoordinatorInfo()),clearAllLocks:l=>a(()=>w.clearProcessingLocks(l))}}function re(){const{getStatusSafe:z,startAnonymizationSafe:o,validateAnonymizationSafe:a,clearAllLocks:l}=J(),c=5e3,g=L(new Map),M=(i,r)=>`${r}:${i}`,A=()=>{const i=Date.now();g.value.forEach((r,d)=>{r<=i&&g.value.delete(d)})},f=T(()=>(i,r)=>{A();const d=M(i,r),k=g.value.get(d);return k?k<=Date.now()?(g.value.delete(d),!0):!1:!0}),y=(i,r,d=c)=>{A();const k=M(i,r),O=g.value.get(k);return O&&O>Date.now()?!1:(g.value.set(k,Date.now()+Math.max(1e3,d)),!0)},x=(i,r)=>{const d=M(i,r);g.value.delete(d)},F=async(i,r)=>{try{return await z(i,r)}catch(d){throw console.error(`Status check failed for ${r}:${i}:`,d),d}},D=async(i,r)=>{if(!y(i,r))throw new Error("Datei wird bereits verarbeitet");try{return await o(i)}catch(k){throw k}finally{x(i,r)}},R=async(i,r)=>{y(i,r);try{return await a(i)}catch(d){throw console.error(`Validation failed for ${r}:${i}:`,d),d}finally{x(i,r)}},V=()=>{const i=g.value.size;g.value.clear(),console.log(`Cleared ${i} local processing locks`)},B=async i=>{try{await l(i),i?Array.from(g.value.keys()).forEach(r=>{r.startsWith(`${i}:`)&&g.value.delete(r)}):V(),console.log("All processing locks cleared successfully")}catch(r){throw console.error("Failed to clear processing locks:",r),r}},K=T(()=>{const i=Array.from(g.value.entries()).map(([r,d])=>({key:r,expiresAt:d}));return{totalLocks:i.length,locks:i,videoLocks:i.filter(r=>r.key.startsWith("video:")),pdfLocks:i.filter(r=>r.key.startsWith("pdf:"))}});return{processingLocks:T(()=>Array.from(g.value.entries())),getProcessingLocksInfo:K,canProcessMedia:f,acquireProcessingLock:y,releaseProcessingLock:x,getStatusSafeWithProtection:F,startAnonymizationSafeWithProtection:D,validateAnonymizationSafeWithProtection:R,clearAllLocalLocks:V,clearAllProcessingLocks:B}}const le={class:"container-fluid py-4"},de={class:"card"},ce={class:"card-header pb-0 d-flex justify-content-between align-items-center"},ue={class:"d-flex gap-2"},me=["disabled"],pe={class:"card-body"},ge={key:0,class:"alert alert-danger",role:"alert"},ye={key:1,class:"text-center py-5"},ve={key:2,class:"text-center py-5"},fe={key:3,class:"table-responsive"},be={class:"table table-hover"},_e={class:"d-flex align-items-center"},he={class:"fw-medium"},we={key:0,class:"fas fa-spinner fa-spin me-1"},ke=["onClick","disabled"],Se={key:1,class:"badge bg-success"},ze={key:2,class:"text-muted"},Ae={key:0,class:"text-success"},Fe={key:1,class:"text-danger"},xe={class:"text-muted"},Ce={class:"btn-group btn-group-sm",role:"group"},Me=["onClick","disabled"],Pe=["onClick","disabled"],$e=["onClick","disabled"],Te=["onClick","disabled"],Le=["onClick","disabled"],De=["onClick","disabled"],Ve={key:5,class:"btn btn-outline-info",disabled:""},Oe={key:6,class:"btn btn-outline-info",disabled:""},Ee={key:4,class:"row mt-4"},Re={class:"col-md-12"},Be={class:"card bg-light"},Ke={class:"card-body"},Ne={class:"row text-center"},We={class:"col-md-3"},qe={class:"mb-2"},Ue={class:"badge bg-secondary fs-6"},je={class:"col-md-3"},He={class:"mb-2"},Je={class:"badge bg-warning fs-6"},Ze={class:"col-md-3"},Ge={class:"mb-2"},Qe={class:"badge bg-warning fs-6"},Xe={class:"col-md-3"},Ye={class:"mb-2"},Ie={class:"badge bg-success fs-6"},et={class:"col-md-3"},tt={class:"mb-2"},nt={class:"badge bg-danger fs-6"},st={key:5,class:"alert alert-warning mt-3",role:"alert"},at=j({__name:"AnonymizationOverviewComponent",setup(z){const o=Y(),a=I(),l=oe(),c=ie(),g=re(),M=J(),A=L(!1),f=L(new Set),y=T(()=>a.overview),x=T(()=>a.overview.length-y.value.length),F=async()=>{A.value=!0;try{await a.fetchOverview(),c.seedTypesFromOverview(a.overview)}finally{A.value=!1}},D=async n=>{const e=y.value.find(C=>C.id===n);if(!e){console.warn("File not found for anonymization:",n);return}const s=e.mediaType==="video"?"video":"pdf";(await g.startAnonymizationSafeWithProtection(n,s))?.success?(await F(),console.log("Anonymization started successfully for file",n)):console.warn("startAnonymization failed - staying on current page")},R=async n=>{const e=y.value.find(s=>s.id===n);if(e)c.setCurrentItem(e);else{console.warn("File not found for correction:",n);return}o.push({name:"Anonymisierung Korrektur",query:{fileId:String(n),mediaType:e.mediaType}})},V=n=>{const e=y.value.find(s=>s.id===n);return e?e.anonymizationStatus==="done_processing_anonymization":!1},B=async(n,e)=>{if(f.value.add(n),!n){console.warn("File not found for validation:",n);return}try{if(await a.setCurrentForValidation(n,e)){const u=y.value.find(E=>E.id===n&&E.mediaType===e);if(!u){console.warn("File not found for validation with given mediaType:",{fileId:n,mediaType:e});return}c.setCurrentItem(u);const C=u.mediaType;try{c.rememberType(n,C,C)}catch(E){console.error("Error remembering media type for file:",n,E)}u.sensitiveMetaId&&c.rememberType(u.sensitiveMetaId,C,"meta"),sessionStorage.setItem("last:fileId",String(n)),sessionStorage.setItem("last:scope",C),console.log("File set for validation:",n,"file media type:",u.mediaType),o.push({name:"AnonymisierungValidierung",query:{fileId:String(n),mediaType:u.mediaType}})}}catch(s){console.error("Navigation to validation failed:",s)}finally{f.value.delete(n)}},K=async n=>{f.value.add(n);try{await a.reimportVideo(n)?(await F(),console.log("Video re-imported successfully:",n)):console.warn("Re-import failed - staying on current page")}finally{f.value.delete(n)}},i=async n=>{f.value.add(n);try{await a.reimportPdf(n)?(await F(),console.log("PDF re-imported successfully:",n)):console.warn("PDF re-import failed - staying on current page")}catch(e){console.error("PDF re-import failed:",e)}finally{f.value.delete(n)}},r=async n=>{const e=y.value.find(u=>u.id===n);if(!e){console.warn("File not found for deletion:",n);return}if(confirm(`Sind Sie sicher, dass Sie die Datei "${e.filename}" permanent löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.`)){f.value.add(n);try{await M.deleteMediaFile(n)?(await F(),console.log("File deleted successfully:",n)):console.warn("File deletion failed")}catch(u){console.error("File deletion failed:",u)}finally{f.value.delete(n)}}},d=n=>{const e=y.value.find(u=>u.id===n);if(!e)return!1;const s=c.detectMediaType(e);return s==="unknown"?f.value.has(n):f.value.has(n)||!g.canProcessMedia.value(n,s)},k=n=>n.mediaType==="video"?!n.metadataImported:n.mediaType==="pdf"?!n.metadataImported||n.anonymizationStatus==="failed"||n.anonymizationStatus==="not_started":!1,O=n=>c.getMediaTypeIcon(n),Z=n=>c.getMediaTypeBadgeClass(n),W=n=>({not_started:"bg-secondary",processing_anonymization:"bg-warning",extracting_frames:"bg-info",predicting_segments:"bg-info",done_processing_anonymization:"bg-success",validated:"bg-success",failed:"bg-danger"})[n]||"bg-secondary",q=n=>({not_started:"Nicht gestartet",processing_anonymization:"Anonymisierung läuft",extracting_frames:"Frames extrahieren",predicting_segments:"Segmente vorhersagen",done_processing_anonymization:"Fertig",validated:"Validiert",failed:"Fehlgeschlagen"})[n]||n,G=n=>n?new Date(n).toLocaleDateString("de-DE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"-",P=n=>{const s={not_started:["not_started"],processing:["processing_anonymization","extracting_frames","predicting_segments"],done_processing_anonymization:["done_processing_anonymization","validated"],failed:["failed"]}[n]||[n];return y.value.filter(u=>s.includes(u.anonymizationStatus)).length},Q=n=>n.mediaType==="video"?l.hasRawVideoFile?.valueOf()??!1:n.mediaType==="pdf"?!!(n.rawFile&&n.rawFile.trim()!==""):!0;return ee(async()=>{await a.fetchOverview(),c.seedTypesFromOverview(a.overview),console.table(a.overview.map(e=>({id:e.id,fromOverview:e.mediaType,remembered:c.getType(e.id)})));const n=["processing_anonymization","extracting_frames","predicting_segments"];a.overview.forEach(e=>{n.includes(e.anonymizationStatus)?(console.log(`Starting polling for processing file ${e.id} (status: ${e.anonymizationStatus})`),a.startPolling(e.id)):console.log(`Skipping polling for file ${e.id} (status: ${e.anonymizationStatus})`)})}),te(()=>{a.stopAllPolling(),g.clearAllLocalLocks()}),(n,e)=>(m(),p("div",le,[t("div",de,[t("div",ce,[e[1]||(e[1]=t("h4",{class:"mb-0"},"Anonymisierungs-Übersicht",-1)),t("div",ue,[t("button",{class:"btn btn-outline-primary btn-sm",onClick:F,disabled:A.value},[t("i",{class:$(["fas fa-sync-alt",{"fa-spin":A.value}])},null,2),e[0]||(e[0]=v(" Aktualisieren ",-1))],8,me)])]),t("div",pe,[N(a).error?(m(),p("div",ge,[e[2]||(e[2]=t("strong",null,"Fehler:",-1)),v(" "+_(N(a).error),1)])):S("",!0),N(a).loading&&!y.value.length?(m(),p("div",ye,[...e[3]||(e[3]=[t("div",{class:"spinner-border text-primary",role:"status"},[t("span",{class:"visually-hidden"},"Wird geladen...")],-1),t("p",{class:"mt-2"},"Dateien werden geladen...",-1)])])):y.value.length?(m(),p("div",fe,[t("table",be,[e[17]||(e[17]=t("thead",{class:"table-light"},[t("tr",null,[t("th",null,"Dateiname"),t("th",null,"Typ"),t("th",null,"Anonymisierung"),t("th",null,"Annotation"),t("th",null,"Validierung"),t("th",null,"Unverarbeitete Daten vorhanden"),t("th",null,"Erstellt"),t("th",null,"Aktionen")])],-1)),t("tbody",null,[(m(!0),p(ne,null,se(y.value,s=>(m(),p("tr",{key:`${s.mediaType}-${s.id}`},[t("td",null,[t("div",_e,[t("i",{class:$([O(s.mediaType),"me-2"])},null,2),t("span",he,_(s.filename),1)])]),t("td",null,[t("span",{class:$([Z(s.mediaType),"badge"])},_(s.mediaType.toUpperCase()),3)]),t("td",null,[t("span",{class:$([W(s.anonymizationStatus),"badge"])},[s.anonymizationStatus==="processing_anonymization"?(m(),p("i",we)):S("",!0),v(" "+_(q(s.anonymizationStatus)),1)],2)]),t("td",null,[t("span",{class:$([W(s.annotationStatus),"badge"])},_(q(s.annotationStatus)),3)]),t("td",null,[s.anonymizationStatus==="done_processing_anonymization"?(m(),p("button",{key:0,onClick:u=>B(s.id,s.mediaType),class:"btn btn-success btn-sm",disabled:!V(s.id)},[...e[5]||(e[5]=[t("i",{class:"fas fa-eye me-1"},null,-1),v(" Validieren ",-1)])],8,ke)):s.anonymizationStatus==="validated"?(m(),p("span",Se,[...e[6]||(e[6]=[t("i",{class:"fas fa-check me-1"},null,-1),v(" Validiert ",-1)])])):(m(),p("span",ze,"-"))]),t("td",null,[Q(s)?(m(),p("span",Ae,[...e[7]||(e[7]=[t("i",{class:"fas fa-check-circle me-1"},null,-1),v(" Ja ",-1)])])):(m(),p("span",Fe,[...e[8]||(e[8]=[t("i",{class:"fas fa-times-circle me-1"},null,-1),v(" Nein ",-1)])]))]),t("td",null,[t("small",xe,_(G(s.createdAt)),1)]),t("td",null,[t("div",Ce,[s.mediaType==="video"&&k(s)?(m(),p("button",{key:0,onClick:u=>K(s.id),class:"btn btn-outline-info",disabled:d(s.id),title:"Video erneut importieren und Metadaten aktualisieren"},[...e[9]||(e[9]=[t("i",{class:"fas fa-redo-alt"},null,-1),v(" Erneut importieren ",-1)])],8,Me)):S("",!0),s.mediaType==="pdf"&&k(s)?(m(),p("button",{key:1,onClick:u=>i(s.id),class:"btn btn-outline-info",disabled:d(s.id),title:"PDF erneut importieren und verarbeiten"},[...e[10]||(e[10]=[t("i",{class:"fas fa-redo-alt"},null,-1),v(" Erneut importieren ",-1)])],8,Pe)):S("",!0),s.anonymizationStatus==="not_started"?(m(),p("button",{key:2,onClick:u=>D(s.id),class:"btn btn-outline-primary",disabled:d(s.id)},[...e[11]||(e[11]=[t("i",{class:"fas fa-play"},null,-1),v(" Starten ",-1)])],8,$e)):S("",!0),s.anonymizationStatus==="failed"?(m(),p("button",{key:3,onClick:u=>D(s.id),class:"btn btn-outline-warning",disabled:d(s.id)},[...e[12]||(e[12]=[t("i",{class:"fas fa-redo"},null,-1),v(" Erneut versuchen ",-1)])],8,Te)):S("",!0),s.mediaType==="video"&&(s.anonymizationStatus==="done_processing_anonymization"||s.anonymizationStatus==="validated")?(m(),p("button",{key:4,onClick:u=>R(s.id),class:"btn btn-outline-warning",disabled:d(s.id)},[...e[13]||(e[13]=[t("i",{class:"fas fa-edit"},null,-1),v(" Korrektur ",-1)])],8,Le)):S("",!0),t("button",{onClick:u=>r(s.id),class:"btn btn-outline-danger",disabled:d(s.id),title:"Datei permanent löschen"},[...e[14]||(e[14]=[t("i",{class:"fas fa-trash"},null,-1),v(" Löschen ",-1)])],8,De),s.anonymizationStatus==="processing_anonymization"?(m(),p("button",Ve,[...e[15]||(e[15]=[t("i",{class:"fas fa-spinner fa-spin me-1"},null,-1),v(" Anonymisierung... ",-1)])])):S("",!0),s.anonymizationStatus==="extracting_frames"?(m(),p("button",Oe,[...e[16]||(e[16]=[t("i",{class:"fas fa-spinner fa-spin me-1"},null,-1),v(" Frames extrahieren... ",-1)])])):S("",!0)])])]))),128))])])])):(m(),p("div",ve,[...e[4]||(e[4]=[t("div",{class:"mb-4"},[t("i",{class:"fas fa-folder-open fa-3x text-muted"})],-1),t("h5",{class:"text-muted"},"Keine Dateien vorhanden",-1),t("p",{class:"text-muted mb-4"}," Laden Sie Videos oder PDFs in den data Ordner oder den import ordner, um mit der Anonymisierung zu beginnen. ",-1)])])),y.value.length?(m(),p("div",Ee,[t("div",Re,[t("div",Be,[t("div",Ke,[e[23]||(e[23]=t("h6",{class:"card-title"},"Status-Übersicht",-1)),t("div",Ne,[t("div",We,[t("div",qe,[t("span",Ue,_(P("not_started")),1)]),e[18]||(e[18]=t("small",{class:"text-muted"},"Nicht gestartet",-1))]),t("div",je,[t("div",He,[t("span",Je,_(P("processing")),1)]),e[19]||(e[19]=t("small",{class:"text-muted"},"In Bearbeitung",-1))]),t("div",Ze,[t("div",Ge,[t("span",Qe,_(P("started")),1)]),e[20]||(e[20]=t("small",{class:"text-muted"},"Anonymisierung gestartet",-1))]),t("div",Xe,[t("div",Ye,[t("span",Ie,_(P("done_processing_anonymization")),1)]),e[21]||(e[21]=t("small",{class:"text-muted"},"Fertig",-1))]),t("div",et,[t("div",tt,[t("span",nt,_(P("failed")),1)]),e[22]||(e[22]=t("small",{class:"text-muted"},"Fehlgeschlagen",-1))])])])])])])):S("",!0),x.value>0?(m(),p("div",st,[e[24]||(e[24]=t("i",{class:"fas fa-exclamation-triangle me-2"},null,-1)),e[25]||(e[25]=t("strong",null,"Hinweis:",-1)),v(" "+_(x.value)+" Datei(en) wurden ausgeblendet, da die ursprünglichen Dateien nicht mehr verfügbar sind. ",1)])):S("",!0)])])]))}}),ot=H(at,[["__scopeId","data-v-aad5db21"]]),it={class:"anonymization-overview-page"},rt=j({__name:"AnonymizationOverview",setup(z){return(o,a)=>(m(),p("div",it,[ae(ot)]))}}),mt=H(rt,[["__scopeId","data-v-4b00a75f"]]);export{mt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as X,P as ve,D as pe,L as fe,b as n,c as l,w as ge,y as xe,o as i,f as d,g as t,i as b,z as m,A as G,t as r,F as $,h as J,j as he,C as k,B as D,s as be,a as R,r as H,_ as ke,l as ye}from"./main.js";import{u as _e}from"./videoStore.js";import{f as we}from"./timeHelpers.js";import"./mediaUrls.js";const Ve={class:"card export-annotations"},Se={class:"card-body"},Ee={key:0,class:"text-muted"},Fe=["disabled"],Ae={value:null},Be=["value"],ze={key:1,class:"text-muted"},Ce={class:"export-toggle"},Ie={class:"form-check form-switch"},Te=["checked","disabled"],Ue={class:"export-list mt-3"},Le={key:0,class:"text-muted mt-2"},Ne={class:"export-segment-info"},$e={class:"segment-label"},De={class:"segment-time"},Me={class:"form-check form-switch"},qe=["checked","disabled","onChange"],Ke={key:3,class:"export-controls mt-4"},Pe={class:"d-flex flex-column flex-md-row align-items-start align-items-md-center justify-content-between gap-3 mb-3"},je={class:"export-dir text-break"},Oe={class:"d-flex align-items-center gap-2 flex-wrap"},Qe={class:"form-check form-switch mb-0"},We={class:"export-extra d-flex flex-wrap gap-3"},Ge={class:"form-check form-switch"},Je={class:"form-check form-switch"},Re={class:"form-check form-switch"},He={class:"export-extra mt-3"},Xe={class:"form-check form-switch"},Ye={key:0,class:"transcode-options row gx-2 mt-2"},Ze={class:"col-6 col-md-3"},et={class:"col-6 col-md-3"},tt={class:"col-12 col-md-4"},st=["disabled"],ot=["disabled"],at=X({__name:"ExportAnnotations",props:{videoId:{default:null},segments:{default:()=>[]}},setup(M){const p=M,c=_e(),y=ve(),q=pe(),{overview:K}=fe(q),Y=c.getTranslationForLabel,g=n(new Set),S=n(!1),a=n(p.videoId??null),E=l(()=>p.videoId!==null&&p.videoId!==void 0);ge(()=>p.videoId,o=>{o!==void 0&&(a.value=o??null)});const P=l(()=>c.videoList.videos),F=l(()=>P.value),A=l(()=>F.value.length>0),Z=l(()=>P.value.length===0?"Keine Videos verfügbar. Bitte laden Sie zuerst Videos hoch.":"Keine exportierbaren Videos verfügbar."),ee=l(()=>p.videoId!==null&&p.videoId!==void 0?p.segments:a.value?c.allSegments:[]),f=l(()=>[...ee.value].sort((o,e)=>o.startTime-e.startTime)),te=l(()=>!a.value||f.value.length===0?!1:f.value.every(o=>o.exportSegment===!0)),j=o=>typeof o!="number"||Number.isNaN(o)?"00:00":we(o),se=o=>g.value.has(o),oe=async o=>{const e=o.target,s=e.checked;await O(s)||(e.checked=!s)},ae=async(o,e)=>{const s=e.target,v=s.checked;g.value.add(o);try{await c.setSegmentExportFlag(o,v)||(s.checked=!v,y.error({text:"Segment-Export-Flag konnte nicht gespeichert werden."}))}finally{g.value.delete(o)}},O=async o=>{if(f.value.length===0)return!1;S.value=!0;let e=!0;try{for(const s of f.value){if(s.exportSegment===o)continue;if(g.value.add(s.id),!await c.setSegmentExportFlag(s.id,o)){y.error({text:`Segment ${s.id} konnte nicht aktualisiert werden.`}),e=!1;break}g.value.delete(s.id)}}finally{g.value.clear(),S.value=!1}return e},ne=o=>{const e=K.value.find(v=>v.id===o&&v.mediaType==="video");return e?{not_started:"⏳ Wartend",processing_anonymization:"🔄 In Verarbeitung",extracting_frames:"🎬 Frames",done_processing_anonymization:"✅ Anonymisiert - Validierung steht aus",validated:"🛡️ Validiert & Anonymisiert",failed:"❌ Fehler"}[e.anonymizationStatus]||e.anonymizationStatus:""},Q=async()=>{if(!E.value){if(!a.value){c.clearVideo();return}try{await c.fetchAllSegments(a.value),await O(!0)}catch(o){console.error("Fehler beim Laden der Segmente:",o),y.error({text:"Segmente konnten nicht geladen werden."})}}},le=()=>{Q()},re=async()=>{if(E.value||a.value)return;const o=F.value[0];o&&(a.value=o.id,await Q())};xe(async()=>{if(c.videoList.videos.length===0)try{await c.fetchAllVideos()}catch(o){console.error("Fehler beim Laden der Videos:",o),y.error({text:"Videos konnten nicht geladen werden."})}if(K.value.length===0)try{await q.fetchOverview()}catch(o){console.error("Fehler beim Laden der Anonymisierungsübersicht:",o)}await re()});const B=n("csv"),x=n(!0),z=n(!0),C=n(!1),_=n(!1),I=n(30),T=n(23),U=n("mp4"),L=n(!1),w=n(!1),u=n(null),V=n(!1),W=l(()=>String("data/export").replace(/\/+$/,"")),N=l(()=>a.value?`${W.value}/video_${a.value}_annotated`:W.value),h=l(()=>f.value.filter(o=>o.exportSegment===!0).map(o=>o.id)),ie=()=>a.value?N.value?!x.value&&h.value.length===0?'Bitte mindestens ein Segment markieren oder "Export-Flags verwenden" aktivieren.':null:"Kein Ausgabe-Verzeichnis konfiguriert.":"Bitte zuerst ein Video auswählen.",de=l(()=>w.value?"Export läuft …":"Export starten"),ue=l(()=>V.value?"Annotationen werden erzeugt …":"Fehlende Annotationen erzeugen"),ce=async()=>{if(u.value=null,!a.value){u.value={type:"error",text:"Bitte zuerst ein Video auswählen."};return}V.value=!0;try{const o=await R.post(H(`media/videos/${a.value}/ensure-segment-annotations/`),{only_validated:!0}),e=Number(o?.data?.annotationsCreated??o?.data?.annotations_created??0);u.value={type:"success",text:`Backfill abgeschlossen. Neu erzeugte Annotationen: ${e}.`}}catch(o){console.error("Backfill request failed",o),u.value={type:"error",text:o?.response?.data?.detail||o?.response?.data?.error||o?.message||"Backfill fehlgeschlagen"}}finally{V.value=!1}},me=async()=>{u.value=null;const o=ie();if(o){u.value={type:"error",text:o};return}const e={output_dir:N.value,output_format:B.value,use_export_flags:x.value,export_videos:z.value,export_frames:C.value,use_frame_pk_paths:L.value};a.value&&(e.video_id=a.value),h.value.length>0&&(e.segmentIds=h.value),!x.value&&h.value.length>0&&(e.segment_ids=h.value),_.value&&(e.transcode_frames=!0,e.transcode_fps=I.value,e.transcode_quality=T.value,e.transcode_ext=U.value),w.value=!0;try{await R.post(H("media/videos/export-annotated/"),e),u.value={type:"success",text:"Exportauftrag erfolgreich gestartet. Überprüfen Sie die Logs für den Fortschritt."}}catch(s){console.error("Export request failed",s),u.value={type:"error",text:s?.response?.data?.detail||s?.message||"Export fehlgeschlagen"}}finally{w.value=!1}};return(o,e)=>(i(),d("div",Ve,[e[24]||(e[24]=t("div",{class:"card-header pb-0"},[t("h5",{class:"mb-0"},"Export-Auswahl"),t("p",{class:"text-muted mb-0"}," Wähle, welche Segmente für den Export markiert werden sollen. ")],-1)),t("div",Se,[a.value?b("",!0):(i(),d("div",Ee," Bitte zuerst ein Video auswählen. ")),e[23]||(e[23]=t("label",{class:"form-label"},"Video auswählen:",-1)),m(t("select",{"onUpdate:modelValue":e[0]||(e[0]=s=>a.value=s),onChange:le,class:"form-select",disabled:!A.value||E.value},[t("option",Ae,r(A.value?"Bitte Video auswählen...":"Keine Videos verfügbar"),1),(i(!0),d($,null,J(F.value,s=>(i(),d("option",{key:s.id,value:s.id}," 📹 "+r(s.original_file_name||"Video Nr. "+s.id)+" "+r(ne(s.id))+" | Center: "+r(s.centerName||"Unbekannt")+" | Processor: "+r(s.processorName||"Unbekannt"),9,Be))),128))],40,Fe),[[G,a.value,void 0,{number:!0}]]),A.value?(i(),d($,{key:2},[t("div",Ce,[e[10]||(e[10]=t("label",{class:"form-check-label",for:"export-all-video"}," Alle Segmente dieses Videos für den Export markieren ",-1)),t("div",Ie,[t("input",{id:"export-all-video",class:"form-check-input",type:"checkbox",checked:te.value,disabled:S.value||f.value.length===0,onChange:oe},null,40,Te)])]),t("div",Ue,[e[11]||(e[11]=t("div",{class:"export-list-header"},[t("span",null,"Segmente")],-1)),f.value.length===0?(i(),d("div",Le," Keine Segmente vorhanden. ")):b("",!0),(i(!0),d($,null,J(f.value,s=>(i(),d("div",{key:s.id,class:"export-segment"},[t("div",Ne,[t("span",$e,r(he(Y)(s.label)),1),t("span",De,r(j(s.startTime))+" – "+r(j(s.endTime)),1)]),t("div",Me,[t("input",{class:"form-check-input",type:"checkbox",checked:s.exportSegment===!0,disabled:se(s.id),onChange:v=>ae(s.id,v)},null,40,qe)])]))),128))])],64)):(i(),d("small",ze,r(Z.value),1)),a.value?(i(),d("div",Ke,[t("div",Pe,[t("div",null,[e[12]||(e[12]=t("small",{class:"text-muted"},"Ausgabe-Verzeichnis",-1)),t("div",je,r(N.value),1)]),t("div",Oe,[e[15]||(e[15]=t("label",{class:"form-label mb-0"},"Format",-1)),m(t("select",{"onUpdate:modelValue":e[1]||(e[1]=s=>B.value=s),class:"form-select form-select-sm"},[...e[13]||(e[13]=[t("option",{value:"csv"},"CSV",-1),t("option",{value:"json"},"JSON",-1)])],512),[[G,B.value]]),t("div",Qe,[m(t("input",{id:"use-export-flags",class:"form-check-input",type:"checkbox","onUpdate:modelValue":e[2]||(e[2]=s=>x.value=s)},null,512),[[k,x.value]]),e[14]||(e[14]=t("label",{class:"form-check-label",for:"use-export-flags"}," Export-Flags verwenden ",-1))])])]),t("div",We,[t("div",Ge,[m(t("input",{id:"export-videos",class:"form-check-input",type:"checkbox","onUpdate:modelValue":e[3]||(e[3]=s=>z.value=s)},null,512),[[k,z.value]]),e[16]||(e[16]=t("label",{class:"form-check-label",for:"export-videos"}," Video-Dateien exportieren ",-1))]),t("div",Je,[m(t("input",{id:"export-frames",class:"form-check-input",type:"checkbox","onUpdate:modelValue":e[4]||(e[4]=s=>C.value=s)},null,512),[[k,C.value]]),e[17]||(e[17]=t("label",{class:"form-check-label",for:"export-frames"}," Frames exportieren ",-1))]),t("div",Re,[m(t("input",{id:"use-frame-pk-paths",class:"form-check-input",type:"checkbox","onUpdate:modelValue":e[5]||(e[5]=s=>L.value=s)},null,512),[[k,L.value]]),e[18]||(e[18]=t("label",{class:"form-check-label",for:"use-frame-pk-paths"}," use_frame_pk_paths verwenden ",-1))])]),t("div",He,[t("div",Xe,[m(t("input",{id:"transcode-frames",class:"form-check-input",type:"checkbox","onUpdate:modelValue":e[6]||(e[6]=s=>_.value=s)},null,512),[[k,_.value]]),e[19]||(e[19]=t("label",{class:"form-check-label",for:"transcode-frames"}," Frames transkodieren ",-1))]),_.value?(i(),d("div",Ye,[t("div",Ze,[e[20]||(e[20]=t("label",{class:"form-label mb-0",for:"transcode-fps"},"FPS",-1)),m(t("input",{id:"transcode-fps",type:"number",min:"1",class:"form-control form-control-sm","onUpdate:modelValue":e[7]||(e[7]=s=>I.value=s)},null,512),[[D,I.value,void 0,{number:!0}]])]),t("div",et,[e[21]||(e[21]=t("label",{class:"form-label mb-0",for:"transcode-quality"},"Quality",-1)),m(t("input",{id:"transcode-quality",type:"number",min:"1",max:"51",class:"form-control form-control-sm","onUpdate:modelValue":e[8]||(e[8]=s=>T.value=s)},null,512),[[D,T.value,void 0,{number:!0}]])]),t("div",tt,[e[22]||(e[22]=t("label",{class:"form-label mb-0",for:"transcode-ext"},"Extension",-1)),m(t("input",{id:"transcode-ext",type:"text",class:"form-control form-control-sm","onUpdate:modelValue":e[9]||(e[9]=s=>U.value=s)},null,512),[[D,U.value]])])])):b("",!0)]),t("button",{type:"button",class:"btn btn-success w-100",disabled:w.value,onClick:me},r(de.value),9,st),t("button",{type:"button",class:"btn btn-outline-primary w-100 mt-2",disabled:V.value||!a.value,onClick:ce},r(ue.value),9,ot),u.value?(i(),d("div",{key:0,class:be(["alert",u.value.type==="success"?"alert-success":"alert-danger","mt-3"]),role:"alert"},r(u.value.text),3)):b("",!0)])):b("",!0)])]))}}),nt=ke(at,[["__scopeId","data-v-d8233d96"]]),lt={class:"container-fluid h-100 w-100 py-1 px-4"},mt=X({__name:"Export",setup(M){return(p,c)=>(i(),d("div",lt,[ye(nt)]))}});export{mt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as N,u as V,b as p,c as r,r as w,e as x,y as C,f as s,g as e,t as u,i as d,F as L,s as S,k as F,m as $,a as D,o as l}from"./main.js";import{b as I}from"./mediaUrls.js";const z={class:"d-flex flex-column gap-3"},M={class:"card shadow-sm"},K={class:"card-header d-flex justify-content-between align-items-center"},j=["disabled"],q={class:"card-body"},G={key:0,class:"alert alert-danger py-2"},H={key:1,class:"alert alert-success py-2"},J={class:"row g-3 mb-3"},O={class:"col-md-6"},Q=["value"],W={class:"col-md-6"},X=["value"],Y={key:2,class:"text-muted"},Z={key:3,class:"alert alert-info mb-0"},ee={class:"row g-3 mb-3"},te={class:"col-md-3"},ae={class:"col-md-3"},ne={class:"col-md-3"},se={class:"col-md-3"},le={class:"d-flex flex-wrap gap-2"},ie=["href"],re=["href"],oe=["href"],ue={key:0,class:"alert alert-warning mt-3 mb-0"},me=N({__name:"FinalizedResultPage",setup(de){const _=V(),T=$(),b=p(!1),c=p(null),v=p(null),i=p(null),o=p(null),m=r(()=>{const t=Number(T.params.patient_examination_id);return Number.isFinite(t)&&t>0?t:_.patientExaminationId}),E=r(()=>{const t=(i.value?.status||"").toLowerCase();return t==="final"?"bg-success":t==="draft"?"bg-warning text-dark":"bg-secondary"}),n=r(()=>o.value?.persistedArtifacts||null),R=r(()=>{const t=n.value?.documentType||n.value?.document_type;if(typeof t=="string"&&t.trim().length>0)return t;const a=o.value?.documentType||o.value?.document_type;return typeof a=="string"&&a.trim().length>0?a:null}),g=r(()=>typeof n.value?.pdfId=="number"?n.value.pdfId:typeof o.value?.persistedPdfArtifactId=="number"?o.value.persistedPdfArtifactId:null),y=r(()=>n.value?.pdfViewUrl?n.value.pdfViewUrl:g.value?I(g.value,"raw"):null),h=r(()=>n.value?.pdfDownloadUrl?n.value.pdfDownloadUrl:g.value?I(g.value,"raw",{download:1}):null);function A(t){if(!m.value||t.includes("patient_examination_id="))return t;const a=t.includes("?")?"&":"?";return`${t}${a}patient_examination_id=${m.value}`}const k=r(()=>n.value?.patientTimelineUrl?A(n.value.patientTimelineUrl):_.selectedPatientId?A(`/${w(x.media.patientTimeline(_.selectedPatientId))}`):null);function B(t){if(!t)return"n/a";const a=new Date(t);return Number.isNaN(a.getTime())?t:a.toLocaleString()}async function P(){if(!m.value){c.value="Keine Patientenuntersuchung ausgewählt.";return}b.value=!0,c.value=null,v.value=null,i.value=null,o.value=null;try{const t=await D.get(w(x.report.patientExaminationReportsByPatientExamination(m.value))),a=Array.isArray(t.data?.results)?t.data.results:t.data,f=Array.isArray(a)?a:[];if(!f.length){v.value="Es ist noch kein Bericht vorhanden.";return}i.value=f[0],_.setActiveReportId(f[0].id);const U=await D.get(w(x.report.patientExaminationReportById(f[0].id)));o.value=U.data||null,v.value=`Bericht #${f[0].id} geladen.`}catch(t){c.value=t?.response?.data?.detail||t?.message||"Fehler beim Laden der Finalisierungsdaten."}finally{b.value=!1}}return C(async()=>{await P()}),(t,a)=>(l(),s("div",z,[e("div",M,[e("div",K,[a[0]||(a[0]=e("div",null,[e("h5",{class:"mb-0"},"Finalisierung / Artefakte"),e("small",{class:"text-muted"},"Finalen Bericht laden, PDF öffnen und Timeline aufrufen.")],-1)),e("button",{class:"btn btn-outline-secondary btn-sm",disabled:b.value,onClick:P}," Aktualisieren ",8,j)]),e("div",q,[c.value?(l(),s("div",G,u(c.value),1)):d("",!0),v.value?(l(),s("div",H,u(v.value),1)):d("",!0),e("div",J,[e("div",O,[a[1]||(a[1]=e("label",{class:"form-label"},"PatientExamination-ID",-1)),e("input",{class:"form-control",value:m.value??"",readonly:""},null,8,Q)]),e("div",W,[a[2]||(a[2]=e("label",{class:"form-label"},"Report-ID",-1)),e("input",{class:"form-control",value:i.value?.id??"",readonly:""},null,8,X)])]),b.value?(l(),s("div",Y,"Lade Finalisierungsdaten...")):i.value?(l(),s(L,{key:4},[e("div",ee,[e("div",te,[a[3]||(a[3]=e("div",{class:"small text-muted"},"Status",-1)),e("div",null,[e("span",{class:S(["badge",E.value])},u(i.value.status||"unknown"),3)])]),e("div",ae,[a[4]||(a[4]=e("div",{class:"small text-muted"},"Version",-1)),e("div",null,u(i.value.version??"n/a"),1)]),e("div",ne,[a[5]||(a[5]=e("div",{class:"small text-muted"},"Aktualisiert",-1)),e("div",null,u(B(i.value.updatedAt||i.value.createdAt)),1)]),e("div",se,[a[6]||(a[6]=e("div",{class:"small text-muted"},"Dokumenttyp",-1)),e("div",null,u(R.value||"n/a"),1)])]),e("div",le,[y.value?(l(),s("a",{key:0,class:"btn btn-outline-dark btn-sm",href:y.value,target:"_blank",rel:"noopener"}," PDF öffnen ",8,ie)):d("",!0),h.value?(l(),s("a",{key:1,class:"btn btn-outline-primary btn-sm",href:h.value,target:"_blank",rel:"noopener"}," PDF herunterladen ",8,re)):d("",!0),k.value?(l(),s("a",{key:2,class:"btn btn-outline-secondary btn-sm",href:k.value,target:"_blank",rel:"noopener"}," Patienten-Timeline ",8,oe)):d("",!0)]),!y.value&&!h.value&&!k.value?(l(),s("div",ue," Es sind noch keine Artefakt-Links verfügbar. ")):d("",!0)],64)):(l(),s("div",Z," Kein Bericht für diese Patientenuntersuchung gefunden. "))])]),a[7]||(a[7]=e("div",{class:"alert alert-secondary mb-0"},[F(" Alternativ kann der Bericht im Editor unter "),e("code",null,"/reporting/<id>/report-editor"),F(" erneut gespeichert werden. ")],-1))]))}});export{me as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.video-container[data-v-9c9b73fd]{position:relative;background:#000;border-radius:8px;overflow:hidden;z-index:100}:fullscreen .label-overlay[data-v-9c9b73fd]{display:flex!important;z-index:2147483647}.fullscreen-toggle[data-v-9c9b73fd]{position:absolute;top:8px;right:8px;z-index:6;border:none;border-radius:999px;padding:6px 10px;background:#0009;color:#fff;cursor:pointer}.fullscreen-toggle[data-v-9c9b73fd]:hover{background:#000000bf}.simple-timeline-track[data-v-9c9b73fd]{position:relative;height:20px;background:#e9ecef;border-radius:10px;cursor:pointer;overflow:hidden}.progress-bar[data-v-9c9b73fd]{height:100%;background:linear-gradient(90deg,#007bff,#0056b3);border-radius:10px;transition:width .1s ease}.examination-marker[data-v-9c9b73fd]{position:absolute;top:0;width:3px;height:100%;background:#dc3545;cursor:pointer;z-index:2}.examination-marker[data-v-9c9b73fd]:hover{background:#c82333;width:5px}.timeline-wrapper[data-v-9c9b73fd]{border:1px solid #dee2e6;border-radius:8px;padding:15px;background:#f8f9fa}.timeline-controls[data-v-9c9b73fd]{border-top:1px solid #dee2e6;padding-top:15px}.control-select[data-v-9c9b73fd]{min-width:180px}.control-button[data-v-9c9b73fd]{min-width:140px}.list-group-item[data-v-9c9b73fd]{border:none;border-bottom:1px solid #dee2e6}.list-group-item[data-v-9c9b73fd]:last-child{border-bottom:none}.video-status-card[data-v-9c9b73fd]{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-left:4px solid #007bff}.status-badge-container[data-v-9c9b73fd]{display:flex;flex-wrap:wrap;gap:.5rem}.status-badge-container .badge[data-v-9c9b73fd]{font-size:.75rem;padding:.375rem .75rem;border-radius:.375rem}.video-dropdown-option[data-v-9c9b73fd]{font-family:Segoe UI,system-ui,sans-serif}.video-dropdown[data-v-9c9b73fd]{position:relative}.video-dropdown-trigger[data-v-9c9b73fd]{width:100%;min-height:42px;border:1px solid #ced4da;border-radius:.375rem;background:#fff;color:#212529;display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;text-align:left}.video-dropdown-trigger[data-v-9c9b73fd]:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.video-dropdown-trigger-text[data-v-9c9b73fd]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.video-dropdown-menu[data-v-9c9b73fd]{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:2000;max-height:320px;overflow-y:auto;border:1px solid #ced4da;border-radius:.5rem;background:#fff;box-shadow:0 10px 24px #0000001f}.video-dropdown-item[data-v-9c9b73fd]{width:100%;border:none;background:transparent;padding:.6rem .75rem;text-align:left;border-bottom:1px solid #eef1f4}.video-dropdown-item[data-v-9c9b73fd]:last-child{border-bottom:none}.video-dropdown-item[data-v-9c9b73fd]:hover:not(:disabled){background:#f8f9fa}.video-dropdown-item[data-v-9c9b73fd]:disabled{opacity:.7;cursor:not-allowed}.video-dropdown-main[data-v-9c9b73fd]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.video-dropdown-title[data-v-9c9b73fd]{font-weight:600}.video-dropdown-status-badge[data-v-9c9b73fd]{font-size:.72rem;border-radius:999px;padding:.15rem .5rem;white-space:nowrap}.badge-validated[data-v-9c9b73fd]{background:#d1e7dd;color:#0f5132}.badge-pending[data-v-9c9b73fd]{background:#fff3cd;color:#664d03}.video-dropdown-meta[data-v-9c9b73fd]{font-size:.78rem;color:#5f6b76;display:flex;flex-wrap:wrap;gap:.25rem}.video-dropdown-item-selected[data-v-9c9b73fd]{background:#e7f1ff}.video-dropdown-item-validated[data-v-9c9b73fd]{border-left:4px solid #198754}.video-dropdown-item-pending[data-v-9c9b73fd]{border-left:4px solid #ffc107}.validation-status-alert[data-v-9c9b73fd]{border-left:4px solid #28a745;background:linear-gradient(135deg,#d4edda,#c3e6cb)}.validation-status-alert .fas[data-v-9c9b73fd]{opacity:.8}.validation-action-button[data-v-9c9b73fd]{font-size:.9rem;font-weight:600;padding:.45rem 1rem;border-radius:999px;border:1px solid #1f7a3a;background:linear-gradient(135deg,#32b55b,#239245);color:#fff;box-shadow:0 4px 10px #23924540}.validation-action-button[data-v-9c9b73fd]:hover{background:linear-gradient(135deg,#2ca650,#1f7a3a);color:#fff}.validation-action-button[data-v-9c9b73fd]:focus{box-shadow:0 0 0 .2rem #2392454d}.validation-action-button-clicked[data-v-9c9b73fd]{border-color:#0f5a2b;background:linear-gradient(135deg,#248649,#176b37);box-shadow:0 0 0 .2rem #24864947}.validation-action-icon[data-v-9c9b73fd]{font-size:18px}.validation-click-indicator[data-v-9c9b73fd]{border:1px solid #d5dbe3}.validation-click-indicator-active[data-v-9c9b73fd]{background:linear-gradient(135deg,#e4f7eb,#d2f0dd);border-color:#2e9e55;color:#165b33}.validation-click-indicator-muted[data-v-9c9b73fd]{background:#f8f9fa;color:#495057}.label-overlay[data-v-9c9b73fd]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000073;z-index:2147483647}.label-overlay-card[data-v-9c9b73fd]{background:#fff;border-radius:10px;padding:12px;min-width:260px;max-width:70%;box-shadow:0 8px 24px #00000040}.label-overlay-header[data-v-9c9b73fd]{display:flex;align-items:center;justify-content:space-between;font-weight:600;margin-bottom:4px}.label-overlay-close[data-v-9c9b73fd]{border:none;background:transparent;font-size:18px;line-height:1;cursor:pointer}.label-overlay-hint[data-v-9c9b73fd]{font-size:.8rem;color:#6c757d;margin-bottom:8px}.label-overlay-list[data-v-9c9b73fd]{display:grid;gap:6px;max-height:45vh;overflow:auto}.label-overlay-item[data-v-9c9b73fd]{width:100%;text-align:left;padding:8px 10px;border-radius:6px;border:1px solid #dee2e6;background:#f8f9fa;cursor:pointer}.label-overlay-item.active[data-v-9c9b73fd]{border-color:#0d6efd;background:#e7f1ff}.shortcuts-details[data-v-9c9b73fd]{display:inline-block}.shortcuts-toggle[data-v-9c9b73fd]{list-style:none;display:inline-flex;align-items:center;gap:6px;padding:2px 10px 2px 6px;border:1px solid #dee2e6;border-radius:999px;background:#f8f9fa;cursor:pointer;user-select:none}.shortcuts-toggle[data-v-9c9b73fd]::-webkit-details-marker{display:none}.shortcuts-icon[data-v-9c9b73fd]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#0d6efd;color:#fff;font-weight:700;font-size:12px;line-height:1}.shortcuts-body[data-v-9c9b73fd]{margin-top:6px;padding:6px 10px;border:1px dashed #dee2e6;border-radius:6px;background:#fff}
|